From 076ebe1d98069e3a447a86e72375f06c032731f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Sep 2023 08:40:10 +0000 Subject: [PATCH] Bump rector/rector from 0.17.12 to 0.18.2 (#120) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Markus Staab --- composer.json | 2 +- composer.lock | 164 +- vendor/bin/phpstan | 5 + vendor/bin/phpstan.phar | 5 + vendor/bin/rector | 5 + vendor/composer/autoload_classmap.php | 1 + vendor/composer/autoload_static.php | 1 + vendor/composer/installed.json | 184 +- vendor/composer/installed.php | 76 +- vendor/composer/semver/CHANGELOG.md | 5 + vendor/composer/semver/README.md | 7 +- vendor/composer/semver/composer.json | 2 +- vendor/composer/semver/phpstan-baseline.neon | 11 + vendor/composer/semver/src/VersionParser.php | 24 +- vendor/phpstan/phpstan/phpstan.phar | Bin 21972865 -> 22050170 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- vendor/rector/rector/bin/rector | 2 +- vendor/rector/rector/bin/rector.php | 12 +- vendor/rector/rector/composer.json | 2 +- vendor/rector/rector/config/config.php | 169 +- .../config/phpstan/static-reflection.neon | 1 + .../rector/rector/config/set/code-quality.php | 5 +- .../rector/rector/config/set/coding-style.php | 2 +- vendor/rector/rector/config/set/dead-code.php | 2 +- .../rector/rector/config/set/early-return.php | 2 +- .../rector/config/set/gmagick-to-imagick.php | 2 +- .../rector/rector/config/set/instanceof.php | 2 +- .../rector/config/set/level/up-to-php53.php | 2 +- .../rector/config/set/level/up-to-php54.php | 2 +- .../rector/config/set/level/up-to-php55.php | 2 +- .../rector/config/set/level/up-to-php56.php | 2 +- .../rector/config/set/level/up-to-php70.php | 2 +- .../rector/config/set/level/up-to-php71.php | 2 +- .../rector/config/set/level/up-to-php72.php | 2 +- .../rector/config/set/level/up-to-php73.php | 2 +- .../rector/config/set/level/up-to-php74.php | 2 +- .../rector/config/set/level/up-to-php80.php | 2 +- .../rector/config/set/level/up-to-php81.php | 2 +- .../rector/config/set/level/up-to-php82.php | 2 +- .../rector/config/set/mysql-to-mysqli.php | 2 +- vendor/rector/rector/config/set/naming.php | 2 +- vendor/rector/rector/config/set/php52.php | 2 +- vendor/rector/rector/config/set/php53.php | 2 +- vendor/rector/rector/config/set/php54.php | 2 +- vendor/rector/rector/config/set/php55.php | 2 +- vendor/rector/rector/config/set/php56.php | 2 +- vendor/rector/rector/config/set/php70.php | 2 +- vendor/rector/rector/config/set/php71.php | 2 +- vendor/rector/rector/config/set/php72.php | 2 +- vendor/rector/rector/config/set/php73.php | 2 +- vendor/rector/rector/config/set/php74.php | 2 +- vendor/rector/rector/config/set/php80.php | 4 +- vendor/rector/rector/config/set/php81.php | 5 +- vendor/rector/rector/config/set/php82.php | 2 +- .../rector/config/set/privatization.php | 2 +- .../rector/config/set/strict-booleans.php | 2 +- .../rector/config/set/type-declaration.php | 6 +- .../PhpDocInfo/PhpDocInfoFactory.php | 12 +- .../PhpDocManipulator/PhpDocClassRenamer.php | 2 +- .../BetterPhpDocParser/PhpDocNodeMapper.php | 12 +- .../PhpDocParser/BetterPhpDocParser.php | 9 +- .../PhpDocParser/ClassAnnotationMatcher.php | 8 +- .../DoctrineAnnotationDecorator.php | 2 +- .../PlainValueParser.php | 4 - .../Printer/DocBlockInliner.php | 2 +- .../Printer/PhpDocInfoPrinter.php | 4 +- .../DoctrineAnnotation/CurlyListNode.php | 2 +- .../rector/packages/Caching/CacheFactory.php | 2 +- .../Caching/Config/FileHashComputer.php | 36 +- .../Caching/Detector/ChangedFilesDetector.php | 38 +- .../rector/packages/Caching/Enum/CacheKey.php | 4 - .../Caching/FileSystem/DependencyResolver.php | 43 - .../packages/Caching/UnchangedFilesFilter.php | 8 +- .../ValueObject/Storage/FileCacheStorage.php | 9 +- .../Annotation/AnnotationExtractor.php | 2 +- .../Output/ConsoleOutputFormatter.php | 4 +- .../Output/JsonOutputFormatter.php | 2 +- .../ValueObject/RectorWithLineChange.php | 6 +- .../ValueObjectFactory/FileDiffFactory.php | 4 - .../packages/Config/LazyRectorConfig.php | 238 -- .../rector/packages/Config/RectorConfig.php | 131 +- .../Reflection/FamilyRelationsAnalyzer.php | 3 + .../Parser/FileInfoParser.php | 2 +- .../ClassConstFetchNameResolver.php | 4 +- .../NodeNameResolver/EmptyNameResolver.php | 26 - .../Regex/RegexPatternDetector.php | 2 +- .../BleedingEdgeIncludePurifier.php | 50 - .../PHPStanExtensionsConfigResolver.php | 51 - .../PHPStanServicesFactory.php | 47 +- .../NodeTypeResolver/Node/AttributeKey.php | 6 + .../NodeTypeResolver/NodeTypeResolver.php | 5 +- .../StaticCallMethodCallTypeResolver.php | 4 +- .../Scope/NodeVisitor/StmtKeyNodeVisitor.php | 2 +- .../Scope/PHPStanNodeScopeResolver.php | 147 +- .../ClassRenamePhpDocNodeVisitor.php | 6 +- .../NameImportingPhpDocNodeVisitor.php | 2 +- ...orBetterReflectionSourceLocatorFactory.php | 2 +- .../DynamicSourceLocatorProvider.php | 47 +- .../PHPStanStaticTypeMapper/Enum/TypeKind.php | 4 - .../PHPStanStaticTypeMapper.php | 4 +- .../TypeMapper/ArrayTypeMapper.php | 4 - .../TypeMapper/BooleanTypeMapper.php | 4 + .../TypeMapper/ClosureTypeMapper.php | 25 +- .../ConditionalTypeForParameterMapper.php | 4 - .../TypeMapper/ConditionalTypeMapper.php | 5 +- .../TypeMapper/NullTypeMapper.php | 19 +- .../TypeMapper/ObjectTypeMapper.php | 2 +- .../TypeMapper/UnionTypeMapper.php | 8 +- .../Application/ParallelFileProcessor.php | 32 +- .../Command/WorkerCommandLineFactory.php | 8 +- .../rector/packages/Parallel/WorkerRunner.php | 21 +- .../AnnotationToAttributeMapper.php | 18 +- .../ArrayAnnotationToAttributeMapper.php | 6 +- ...rayItemNodeAnnotationToAttributeMapper.php | 4 +- ...rlyListNodeAnnotationToAttributeMapper.php | 4 +- ...eAnnotationAnnotationToAttributeMapper.php | 2 - .../AttributeArrayNameInliner.php | 2 +- .../NodeFactory/NamedArgsFactory.php | 2 +- .../PhpNestedAttributeGroupFactory.php | 2 +- .../NodeVisitor/CallableNodeVisitor.php | 13 +- .../Application/PostFileProcessor.php | 13 +- .../Collector/UseNodesToAddCollector.php | 12 +- .../Rector/PostRectorDependencyInterface.php | 13 - .../Contract/Rector/PostRectorInterface.php | 3 +- .../Rector/ClassRenamingPostRector.php | 29 +- .../Rector/NameImportingPostRector.php | 24 - .../Rector/UnusedImportRemovingPostRector.php | 24 +- .../PostRector/Rector/UseAddingPostRector.php | 24 - .../SkippedClassResolver.php | 20 +- .../SkippedPathsResolver.php | 7 +- .../packages/Skipper/Skipper/Skipper.php | 2 +- .../Mapper/ScalarStringToTypeMapper.php | 2 +- .../Naming/NameScopeFactory.php | 4 - .../PhpDoc/PhpDocTypeMapper.php | 4 +- .../PhpDocParser/IdentifierTypeMapper.php | 2 +- .../Type/FullyQualifiedObjectType.php | 2 +- .../Testing/Fixture/FixtureFileFinder.php | 3 +- .../Testing/Fixture/FixtureFileUpdater.php | 9 +- .../Testing/Fixture/FixtureSplitter.php | 4 +- .../Testing/Fixture/FixtureTempFileDumper.php | 2 +- .../Testing/PHPUnit/AbstractLazyTestCase.php | 62 +- .../PHPUnit/AbstractRectorTestCase.php | 113 +- .../Testing/PHPUnit/AbstractTestCase.php | 40 +- .../PHPUnit/StaticPHPUnitEnvironment.php | 2 +- .../Testing/TestingParser/TestingParser.php | 15 +- .../ClassMethodReturnTypeOverrideGuard.php | 2 +- .../ParentClassMethodTypeOverrideGuard.php | 32 +- .../VersionBonding/PhpVersionedFilter.php | 6 +- .../ClassMethod/ArgumentAdderRector.php | 2 +- .../ReplaceArgumentDefaultValueRector.php | 2 +- ...tionArgumentDefaultValueReplacerRector.php | 2 +- .../FuncCall/SwapFuncCallArgumentsRector.php | 110 - .../RemoveMethodCallParamRector.php | 2 +- .../SwapMethodCallArgumentsRector.php | 125 -- .../ValueObject/SwapFuncCallArguments.php | 37 - .../ValueObject/SwapMethodCallArguments.php | 50 - .../Rector/Concat/JoinStringConcatRector.php | 2 +- .../FuncCall/SimplifyRegexPatternRector.php | 2 +- .../SimplifyUselessVariableRector.php | 16 +- .../SimplifyBoolIdenticalTrueRector.php | 39 +- .../If_/SimplifyIfElseToTernaryRector.php | 2 +- .../AbsolutizeRequireAndIncludePathRector.php | 2 +- .../NumberCompareToMaxFuncCallRector.php | 91 + .../UnnecessaryTernaryExpressionRector.php | 10 +- .../Application/UseImportsAdder.php | 2 +- .../ClassNameImport/ShortNameResolver.php | 2 +- .../rules/CodingStyle/Naming/ClassNaming.php | 2 +- .../NodeAnalyzer/UseImportNameMatcher.php | 2 +- .../CatchExceptionNameMatchingTypeRector.php | 2 +- .../EncapsedStringsToSprintfRector.php | 36 +- ...assKeywordForClassNameResolutionRector.php | 2 +- .../IsClassMethodUsedAnalyzer.php | 62 +- .../PhpDoc/DeadParamTagValueNodeAnalyzer.php | 10 +- .../PhpDoc/DeadReturnTagValueNodeAnalyzer.php | 20 +- .../PhpDoc/DeadVarTagValueNodeAnalyzer.php | 8 +- .../ClassLike/RemoveAnnotationRector.php | 2 +- .../SideEffect/SideEffectNodeDetector.php | 2 +- .../InflectorSingularResolver.php | 4 +- .../Naming/Naming/ConflictingNameResolver.php | 10 +- .../Naming/OverridenExistingNamesResolver.php | 10 +- .../rules/Naming/Naming/PropertyNaming.php | 13 +- ...iableToMatchMethodCallReturnTypeRector.php | 2 +- .../rules/Naming/RectorNamingInflector.php | 4 +- .../StringClassNameToClassConstantRector.php | 2 +- .../rector/rules/Php55/RegexMatcher.php | 2 +- .../rules/Php70/EregToPcreTransformer.php | 2 +- .../NodeFactory/AnonymousFunctionFactory.php | 2 +- .../SensitiveConstantNameRector.php | 2 +- .../Rector/FuncCall/RegexDashEscapeRector.php | 2 +- .../AddLiteralSeparatorToNumberRector.php | 4 +- ...AddParamBasedOnParentClassMethodRector.php | 31 +- .../Class_/AnnotationToAttributeRector.php | 6 +- .../NestedAnnotationToAttributeRector.php | 2 +- .../rules/Php81/NodeFactory/EnumFactory.php | 1 + .../NullToStrictStringFuncCallArgRector.php | 11 +- .../FunctionLike/IntersectionTypesRector.php | 119 - .../MyCLabsMethodCallToEnumConstRector.php | 72 +- .../SpatieEnumMethodCallToEnumConstRector.php | 2 +- .../AddSensitiveParameterAttributeRector.php | 2 +- .../NodeManipulator/VisibilityManipulator.php | 2 +- .../ClassMethod/ArgumentRemoverRector.php | 2 +- .../Rector/Class_/RemoveInterfacesRector.php | 2 +- .../Rector/Class_/RemoveTraitUseRector.php | 2 +- .../FuncCall/RemoveFuncCallArgRector.php | 2 +- .../Rector/FuncCall/RemoveFuncCallRector.php | 2 +- .../RenameClassConstFetchRector.php | 2 +- .../ClassMethod/RenameAnnotationRector.php | 2 +- .../ConstFetch/RenameConstantRector.php | 2 +- .../Rector/FuncCall/RenameFunctionRector.php | 2 +- .../Rector/MethodCall/RenameMethodRector.php | 2 +- .../Rector/Name/RenameClassRector.php | 2 +- .../PropertyFetch/RenamePropertyRector.php | 2 +- .../StaticCall/RenameStaticMethodRector.php | 2 +- .../Rector/String_/RenameStringRector.php | 2 +- .../AbstractFalsyScalarRuleFixerRector.php | 2 +- .../PropertyAssignToMethodCallRector.php | 2 +- .../PropertyFetchToMethodCallRector.php | 2 +- .../AttributeKeyToClassConstFetchRector.php | 2 +- .../ReturnTypeWillChangeRector.php | 2 +- .../Rector/ClassMethod/WrapReturnRector.php | 2 +- ...dAllowDynamicPropertiesAttributeRector.php | 2 +- .../Class_/AddInterfaceByTraitRector.php | 2 +- .../Rector/Class_/MergeInterfacesRector.php | 2 +- .../Class_/ParentClassToTraitsRector.php | 2 +- .../FuncCall/FuncCallToConstFetchRector.php | 2 +- .../FuncCall/FuncCallToMethodCallRector.php | 2 +- .../Rector/FuncCall/FuncCallToNewRector.php | 2 +- .../FuncCall/FuncCallToStaticCallRector.php | 2 +- .../MethodCall/MethodCallToFuncCallRector.php | 2 +- .../MethodCallToPropertyFetchRector.php | 2 +- .../MethodCallToStaticCallRector.php | 2 +- .../ReplaceParentCallByPropertyCallRector.php | 2 +- .../Rector/New_/NewToStaticCallRector.php | 2 +- .../StaticCall/StaticCallToFuncCallRector.php | 2 +- .../StaticCallToMethodCallRector.php | 2 +- .../StaticCall/StaticCallToNewRector.php | 2 +- .../String_/StringToClassConstantRector.php | 2 +- .../ValueObject/ParentClassToTraits.php | 2 +- .../Guard/ParamTypeAddGuard.php | 68 + ...AutowiredClassMethodOrPropertyAnalyzer.php | 2 +- .../PHPStan/ObjectTypeSpecifier.php | 2 +- ...amTypeBasedOnPHPUnitDataProviderRector.php | 2 +- .../AddParamTypeDeclarationRector.php | 2 +- .../AddParamTypeFromPropertyTypeRector.php | 29 +- ...larationBasedOnParentClassMethodRector.php | 36 +- .../AddReturnTypeDeclarationRector.php | 2 +- .../AddVoidReturnTypeWhereNoReturnRector.php | 5 - .../ParamTypeByMethodCallTypeRector.php | 42 +- ...ReturnTypeFromStrictFluentReturnRector.php | 131 ++ .../ReturnTypeFromStrictNewArrayRector.php | 6 +- .../ReturnTypeFromStrictParamRector.php | 23 +- .../StrictArrayParamDimFetchRector.php | 8 + .../StrictStringParamConcatRector.php | 14 +- .../AddPropertyTypeDeclarationRector.php | 2 +- ...FromStrictGetterMethodReturnTypeRector.php | 30 +- .../AssignToPropertyTypeInferer.php | 3 +- .../ChangeConstantVisibilityRector.php | 2 +- .../ChangeMethodVisibilityRector.php | 2 +- .../Application/ApplicationFileProcessor.php | 57 +- .../Application/ChangedNodeScopeRefresher.php | 4 +- .../FileProcessor/PhpFileProcessor.php | 19 +- .../src/Application/VersionResolver.php | 4 +- .../src/Autoloading/AdditionalAutoloader.php | 4 +- .../Autoloading/BootstrapFilesIncluder.php | 70 +- .../src/Bootstrap/RectorConfigsResolver.php | 4 +- .../ConfigureCallMergingLoaderFactory.php | 31 - .../src/Configuration/ConfigInitializer.php | 22 +- .../Configuration/ConfigurationFactory.php | 4 +- .../rector/src/Configuration/Option.php | 12 +- .../Parameter/SimpleParameterProvider.php | 10 +- .../RenamedClassesDataCollector.php | 10 +- .../src/Configuration/ValueObjectInliner.php | 83 - .../src/Console/Command/ListRulesCommand.php | 29 +- .../src/Console/Command/ProcessCommand.php | 10 +- .../src/Console/Command/SetupCICommand.php | 16 +- .../src/Console/Command/WorkerCommand.php | 20 +- .../rector/src/Console/ConsoleApplication.php | 24 +- vendor/rector/rector/src/Console/ExitCode.php | 2 +- .../Formatter/ColorConsoleDiffFormatter.php | 4 +- ...ompleteUnifiedDiffOutputBuilderFactory.php | 2 +- .../src/Console/Formatter/ConsoleDiffer.php | 4 +- .../src/Console/ProcessConfigureDecorator.php | 6 +- .../rector/src/Console/Style/RectorStyle.php | 12 +- .../src/Console/Style/SymfonyStyleFactory.php | 10 +- .../ResetableInterface.php | 9 + .../TypeToCallReflectionResolverInterface.php | 21 - .../Processor/FileProcessorInterface.php | 21 - .../Contract/Rector/NonPhpRectorInterface.php | 3 + .../Contract/Rector/PhpRectorInterface.php | 23 - .../src/Contract/Rector/RectorInterface.php | 17 +- ...face.php => ScopeAwareRectorInterface.php} | 2 +- .../ConfigureCallValuesCollector.php | 58 - ...dRectorConfigureCallValuesCompilerPass.php | 40 - .../RemoveSkippedRectorsCompilerPass.php | 50 - .../Laravel/ContainerMemento.php | 30 + .../LazyContainerFactory.php | 224 +- ...rableCallValuesCollectingPhpFileLoader.php | 60 - .../RectorContainerFactory.php | 23 +- .../rector/src/Differ/DefaultDiffer.php | 4 +- .../rector/src/FileSystem/FilePathHelper.php | 6 +- .../rector/src/FileSystem/FilesFinder.php | 8 +- .../src/FileSystem/InitFilePathsResolver.php | 4 +- .../rector/src/FileSystem/PhpFilesFinder.php | 42 - .../src/Kernel/ContainerBuilderBuilder.php | 29 - .../src/Kernel/ContainerBuilderFactory.php | 70 - .../rector/rector/src/Kernel/RectorKernel.php | 57 - .../src/Logging/CurrentRectorProvider.php | 15 +- .../rector/src/Logging/RectorOutput.php | 2 +- .../src/NodeAnalyzer/PropertyAnalyzer.php | 13 +- .../rector/src/NodeAnalyzer/ScopeAnalyzer.php | 12 +- .../ClassMethodAssignManipulator.php | 12 +- .../NodeManipulator/PropertyManipulator.php | 2 +- .../src/NonPhpFile/NonPhpFileProcessor.php | 107 - .../Rector/RenameClassNonPhpRector.php | 118 - .../ExprScopeFromStmtNodeVisitor.php | 59 + .../ClosureTypeToCallReflectionResolver.php | 31 - ...stantArrayTypeToCallReflectionResolver.php | 105 - ...tantStringTypeToCallReflectionResolver.php | 79 - .../ObjectTypeToCallReflectionResolver.php | 48 - .../TypeToCallReflectionResolverRegistry.php | 34 - .../ProjectComposerJsonPhpVersionResolver.php | 6 +- .../src/PhpParser/Node/BetterNodeFinder.php | 2 +- .../NodeTraverser/RectorNodeTraverser.php | 30 +- .../src/PhpParser/Parser/InlineCodeParser.php | 4 +- .../src/PhpParser/Parser/SimplePhpParser.php | 2 +- .../Printer/BetterStandardPrinter.php | 32 +- .../Printer/FormatPerservingPrinter.php | 2 +- .../src/ProcessAnalyzer/RectifiedAnalyzer.php | 17 +- .../rector/src/Rector/AbstractRector.php | 84 +- .../src/Rector/AbstractScopeAwareRector.php | 10 +- .../Reflection/ClassReflectionAnalyzer.php | 4 +- .../src/Reflection/ReflectionResolver.php | 22 +- .../DynamicSourceLocatorDecorator.php | 20 +- .../rector/rector/src/Util/MemoryLimiter.php | 2 +- vendor/rector/rector/src/Util/StringUtils.php | 2 +- .../rector/src/Validation/RectorAssert.php | 10 +- .../src/ValueObject/Application/File.php | 7 +- .../rector/src/ValueObject/Configuration.php | 2 +- .../src/ValueObject/Error/SystemError.php | 2 +- .../src/ValueObject/PhpVersionFeature.php | 12 + .../rector/src/ValueObject/ProcessResult.php | 2 +- .../src/ValueObject/Reporting/FileDiff.php | 6 +- .../Application/FileFactory.php | 32 +- vendor/rector/rector/src/constants.php | 2 +- .../rector/src/functions/node_helper.php | 5 +- .../templates/rector-github-action-check.yaml | 2 +- vendor/rector/rector/vendor/autoload.php | 2 +- vendor/rector/rector/vendor/bin/neon-lint | 94 - vendor/rector/rector/vendor/bin/php-parse | 6 +- vendor/rector/rector/vendor/bin/phpstan | 6 +- .../vendor/clue/ndjson-react/composer.json | 4 +- .../vendor/clue/ndjson-react/src/Decoder.php | 10 +- .../vendor/clue/ndjson-react/src/Encoder.php | 6 +- .../vendor/composer/InstalledVersions.php | 8 +- .../vendor/composer/autoload_classmap.php | 1546 +++++-------- .../rector/vendor/composer/autoload_files.php | 3 - .../rector/vendor/composer/autoload_psr4.php | 60 +- .../rector/vendor/composer/autoload_real.php | 10 +- .../vendor/composer/autoload_static.php | 1697 ++++++-------- .../rector/vendor/composer/installed.json | 857 ++----- .../rector/vendor/composer/installed.php | 4 +- .../rector/vendor/composer/pcre/composer.json | 4 +- .../composer/pcre/src/MatchAllResult.php | 2 +- .../pcre/src/MatchAllStrictGroupsResult.php | 2 +- .../pcre/src/MatchAllWithOffsetsResult.php | 2 +- .../vendor/composer/pcre/src/MatchResult.php | 2 +- .../pcre/src/MatchStrictGroupsResult.php | 2 +- .../pcre/src/MatchWithOffsetsResult.php | 2 +- .../composer/pcre/src/PcreException.php | 2 +- .../rector/vendor/composer/pcre/src/Preg.php | 2 +- .../rector/vendor/composer/pcre/src/Regex.php | 2 +- .../composer/pcre/src/ReplaceResult.php | 2 +- .../pcre/src/UnexpectedNullMatchException.php | 2 +- .../rector/vendor/composer/semver/README.md | 7 +- .../vendor/composer/semver/composer.json | 6 +- .../composer/semver/phpstan-baseline.neon | 11 + .../vendor/composer/semver/src/Comparator.php | 4 +- .../composer/semver/src/CompilingMatcher.php | 6 +- .../composer/semver/src/Constraint/Bound.php | 2 +- .../semver/src/Constraint/Constraint.php | 2 +- .../src/Constraint/ConstraintInterface.php | 2 +- .../src/Constraint/MatchAllConstraint.php | 2 +- .../src/Constraint/MatchNoneConstraint.php | 2 +- .../semver/src/Constraint/MultiConstraint.php | 2 +- .../vendor/composer/semver/src/Interval.php | 4 +- .../vendor/composer/semver/src/Intervals.php | 12 +- .../vendor/composer/semver/src/Semver.php | 4 +- .../composer/semver/src/VersionParser.php | 34 +- .../composer/xdebug-handler/composer.json | 4 +- .../composer/xdebug-handler/src/PhpConfig.php | 2 +- .../composer/xdebug-handler/src/Process.php | 4 +- .../composer/xdebug-handler/src/Status.php | 6 +- .../xdebug-handler/src/XdebugHandler.php | 6 +- .../vendor/doctrine/inflector/composer.json | 4 +- .../Inflector/CachedWordInflector.php | 2 +- .../GenericLanguageInflectorFactory.php | 4 +- .../lib/Doctrine/Inflector/Inflector.php | 4 +- .../Doctrine/Inflector/InflectorFactory.php | 14 +- .../lib/Doctrine/Inflector/Language.php | 2 +- .../Inflector/LanguageInflectorFactory.php | 4 +- .../Doctrine/Inflector/NoopWordInflector.php | 2 +- .../Inflector/Rules/English/Inflectible.php | 38 +- .../Rules/English/InflectorFactory.php | 6 +- .../Inflector/Rules/English/Rules.php | 10 +- .../Inflector/Rules/English/Uninflected.php | 4 +- .../Inflector/Rules/French/Inflectible.php | 10 +- .../Rules/French/InflectorFactory.php | 6 +- .../Doctrine/Inflector/Rules/French/Rules.php | 10 +- .../Inflector/Rules/French/Uninflected.php | 4 +- .../Rules/NorwegianBokmal/Inflectible.php | 10 +- .../NorwegianBokmal/InflectorFactory.php | 6 +- .../Inflector/Rules/NorwegianBokmal/Rules.php | 10 +- .../Rules/NorwegianBokmal/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Pattern.php | 2 +- .../lib/Doctrine/Inflector/Rules/Patterns.php | 2 +- .../Rules/Portuguese/Inflectible.php | 10 +- .../Rules/Portuguese/InflectorFactory.php | 6 +- .../Inflector/Rules/Portuguese/Rules.php | 10 +- .../Rules/Portuguese/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Ruleset.php | 2 +- .../Inflector/Rules/Spanish/Inflectible.php | 20 +- .../Rules/Spanish/InflectorFactory.php | 6 +- .../Inflector/Rules/Spanish/Rules.php | 10 +- .../Inflector/Rules/Spanish/Uninflected.php | 4 +- .../Doctrine/Inflector/Rules/Substitution.php | 2 +- .../Inflector/Rules/Substitutions.php | 4 +- .../Inflector/Rules/Transformation.php | 4 +- .../Inflector/Rules/Transformations.php | 4 +- .../Inflector/Rules/Turkish/Inflectible.php | 10 +- .../Rules/Turkish/InflectorFactory.php | 6 +- .../Inflector/Rules/Turkish/Rules.php | 10 +- .../Inflector/Rules/Turkish/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Word.php | 2 +- .../Doctrine/Inflector/RulesetInflector.php | 4 +- .../lib/Doctrine/Inflector/WordInflector.php | 2 +- .../vendor/evenement/evenement/composer.json | 4 +- .../evenement/evenement/src/EventEmitter.php | 2 +- .../evenement/src/EventEmitterInterface.php | 2 +- .../evenement/src/EventEmitterTrait.php | 2 +- .../fidry/cpu-core-counter/bin/diagnose.php | 6 +- .../fidry/cpu-core-counter/bin/execute.php | 6 +- .../fidry/cpu-core-counter/composer.json | 4 +- .../cpu-core-counter/src/CpuCoreCounter.php | 6 +- .../fidry/cpu-core-counter/src/Diagnoser.php | 4 +- .../src/Executor/ProcOpenExecutor.php | 2 +- .../src/Executor/ProcessExecutor.php | 2 +- .../src/Finder/CpuCoreFinder.php | 2 +- .../src/Finder/CpuInfoFinder.php | 2 +- .../src/Finder/DummyCpuCoreFinder.php | 2 +- .../src/Finder/FinderRegistry.php | 2 +- .../src/Finder/HwLogicalFinder.php | 2 +- .../src/Finder/HwPhysicalFinder.php | 2 +- .../src/Finder/LscpuLogicalFinder.php | 2 +- .../src/Finder/LscpuPhysicalFinder.php | 2 +- .../src/Finder/NProcFinder.php | 4 +- .../src/Finder/NProcessorFinder.php | 2 +- .../src/Finder/NullCpuCoreFinder.php | 2 +- .../src/Finder/OnlyOnOSFamilyFinder.php | 2 +- .../src/Finder/ProcOpenBasedFinder.php | 6 +- .../src/Finder/SkipOnOSFamilyFinder.php | 2 +- .../src/Finder/WmicLogicalFinder.php | 2 +- .../src/Finder/WmicPhysicalFinder.php | 2 +- .../src/Finder/_NProcessorFinder.php | 2 +- .../src/NumberOfCpuCoreNotFound.php | 2 +- .../illuminate/container/BoundMethod.php | 4 +- .../vendor/illuminate/container/Container.php | 8 +- .../container/ContextualBindingBuilder.php | 6 +- .../container/EntryNotFoundException.php | 4 +- .../container/RewindableGenerator.php | 2 +- .../vendor/illuminate/container/Util.php | 2 +- .../vendor/illuminate/container/composer.json | 2 +- .../contracts/Auth/Access/Authorizable.php | 2 +- .../illuminate/contracts/Auth/Access/Gate.php | 2 +- .../contracts/Auth/Authenticatable.php | 2 +- .../contracts/Auth/CanResetPassword.php | 2 +- .../illuminate/contracts/Auth/Factory.php | 2 +- .../illuminate/contracts/Auth/Guard.php | 2 +- .../Auth/Middleware/AuthenticatesRequests.php | 2 +- .../contracts/Auth/MustVerifyEmail.php | 2 +- .../contracts/Auth/PasswordBroker.php | 2 +- .../contracts/Auth/PasswordBrokerFactory.php | 2 +- .../contracts/Auth/StatefulGuard.php | 2 +- .../contracts/Auth/SupportsBasicAuth.php | 2 +- .../contracts/Auth/UserProvider.php | 2 +- .../contracts/Broadcasting/Broadcaster.php | 2 +- .../contracts/Broadcasting/Factory.php | 2 +- .../Broadcasting/HasBroadcastChannel.php | 2 +- .../contracts/Broadcasting/ShouldBeUnique.php | 2 +- .../Broadcasting/ShouldBroadcast.php | 2 +- .../Broadcasting/ShouldBroadcastNow.php | 2 +- .../illuminate/contracts/Bus/Dispatcher.php | 2 +- .../contracts/Bus/QueueingDispatcher.php | 2 +- .../illuminate/contracts/Cache/Factory.php | 2 +- .../illuminate/contracts/Cache/Lock.php | 2 +- .../contracts/Cache/LockProvider.php | 2 +- .../contracts/Cache/LockTimeoutException.php | 2 +- .../illuminate/contracts/Cache/Repository.php | 4 +- .../illuminate/contracts/Cache/Store.php | 2 +- .../contracts/Config/Repository.php | 2 +- .../contracts/Console/Application.php | 2 +- .../contracts/Console/Isolatable.php | 2 +- .../illuminate/contracts/Console/Kernel.php | 2 +- .../Console/PromptsForMissingInput.php | 2 +- .../Container/BindingResolutionException.php | 4 +- .../Container/CircularDependencyException.php | 4 +- .../contracts/Container/Container.php | 4 +- .../Container/ContextualBindingBuilder.php | 2 +- .../illuminate/contracts/Cookie/Factory.php | 2 +- .../contracts/Cookie/QueueingFactory.php | 2 +- .../contracts/Database/Eloquent/Builder.php | 4 +- .../contracts/Database/Eloquent/Castable.php | 2 +- .../Database/Eloquent/CastsAttributes.php | 4 +- .../Eloquent/CastsInboundAttributes.php | 4 +- .../Eloquent/DeviatesCastableAttributes.php | 2 +- .../Eloquent/SerializesCastableAttributes.php | 4 +- .../Eloquent/SupportsPartialRelations.php | 2 +- .../Database/Events/MigrationEvent.php | 2 +- .../contracts/Database/ModelIdentifier.php | 2 +- .../contracts/Database/Query/Builder.php | 2 +- .../Database/Query/ConditionExpression.php | 2 +- .../contracts/Database/Query/Expression.php | 4 +- .../contracts/Debug/ExceptionHandler.php | 2 +- .../contracts/Encryption/DecryptException.php | 2 +- .../contracts/Encryption/EncryptException.php | 2 +- .../contracts/Encryption/Encrypter.php | 2 +- .../contracts/Encryption/StringEncrypter.php | 2 +- .../contracts/Events/Dispatcher.php | 2 +- .../illuminate/contracts/Filesystem/Cloud.php | 2 +- .../contracts/Filesystem/Factory.php | 2 +- .../Filesystem/FileNotFoundException.php | 2 +- .../contracts/Filesystem/Filesystem.php | 2 +- .../Filesystem/LockTimeoutException.php | 2 +- .../contracts/Foundation/Application.php | 4 +- .../Foundation/CachesConfiguration.php | 2 +- .../contracts/Foundation/CachesRoutes.php | 2 +- .../Foundation/ExceptionRenderer.php | 2 +- .../contracts/Foundation/MaintenanceMode.php | 2 +- .../illuminate/contracts/Hashing/Hasher.php | 2 +- .../illuminate/contracts/Http/Kernel.php | 2 +- .../illuminate/contracts/Mail/Attachable.php | 2 +- .../illuminate/contracts/Mail/Factory.php | 2 +- .../illuminate/contracts/Mail/MailQueue.php | 2 +- .../illuminate/contracts/Mail/Mailable.php | 4 +- .../illuminate/contracts/Mail/Mailer.php | 2 +- .../contracts/Notifications/Dispatcher.php | 2 +- .../contracts/Notifications/Factory.php | 2 +- .../contracts/Pagination/CursorPaginator.php | 2 +- .../Pagination/LengthAwarePaginator.php | 2 +- .../contracts/Pagination/Paginator.php | 2 +- .../illuminate/contracts/Pipeline/Hub.php | 2 +- .../contracts/Pipeline/Pipeline.php | 2 +- .../contracts/Process/InvokedProcess.php | 2 +- .../contracts/Process/ProcessResult.php | 2 +- .../contracts/Queue/ClearableQueue.php | 2 +- .../Queue/EntityNotFoundException.php | 2 +- .../contracts/Queue/EntityResolver.php | 2 +- .../illuminate/contracts/Queue/Factory.php | 2 +- .../vendor/illuminate/contracts/Queue/Job.php | 2 +- .../illuminate/contracts/Queue/Monitor.php | 2 +- .../illuminate/contracts/Queue/Queue.php | 2 +- .../contracts/Queue/QueueableCollection.php | 2 +- .../contracts/Queue/QueueableEntity.php | 2 +- .../contracts/Queue/ShouldBeEncrypted.php | 2 +- .../contracts/Queue/ShouldBeUnique.php | 2 +- .../Queue/ShouldBeUniqueUntilProcessing.php | 2 +- .../contracts/Queue/ShouldQueue.php | 2 +- .../illuminate/contracts/Redis/Connection.php | 2 +- .../illuminate/contracts/Redis/Connector.php | 2 +- .../illuminate/contracts/Redis/Factory.php | 2 +- .../Redis/LimiterTimeoutException.php | 2 +- .../contracts/Routing/BindingRegistrar.php | 2 +- .../contracts/Routing/Registrar.php | 2 +- .../contracts/Routing/ResponseFactory.php | 2 +- .../contracts/Routing/UrlGenerator.php | 2 +- .../contracts/Routing/UrlRoutable.php | 2 +- .../Middleware/AuthenticatesSessions.php | 2 +- .../illuminate/contracts/Session/Session.php | 2 +- .../contracts/Support/Arrayable.php | 2 +- .../Support/CanBeEscapedWhenCastToString.php | 2 +- .../contracts/Support/DeferrableProvider.php | 2 +- .../Support/DeferringDisplayableValue.php | 2 +- .../illuminate/contracts/Support/Htmlable.php | 2 +- .../illuminate/contracts/Support/Jsonable.php | 2 +- .../contracts/Support/MessageBag.php | 2 +- .../contracts/Support/MessageProvider.php | 2 +- .../contracts/Support/Renderable.php | 2 +- .../contracts/Support/Responsable.php | 2 +- .../contracts/Support/ValidatedData.php | 2 +- .../Translation/HasLocalePreference.php | 2 +- .../contracts/Translation/Loader.php | 2 +- .../contracts/Translation/Translator.php | 2 +- .../contracts/Validation/DataAwareRule.php | 2 +- .../contracts/Validation/Factory.php | 2 +- .../contracts/Validation/ImplicitRule.php | 2 +- .../contracts/Validation/InvokableRule.php | 2 +- .../illuminate/contracts/Validation/Rule.php | 2 +- .../Validation/UncompromisedVerifier.php | 2 +- .../Validation/ValidatesWhenResolved.php | 2 +- .../contracts/Validation/ValidationRule.php | 2 +- .../contracts/Validation/Validator.php | 4 +- .../Validation/ValidatorAwareRule.php | 4 +- .../illuminate/contracts/View/Engine.php | 2 +- .../illuminate/contracts/View/Factory.php | 2 +- .../vendor/illuminate/contracts/View/View.php | 4 +- .../View/ViewCompilationException.php | 2 +- .../vendor/illuminate/contracts/composer.json | 2 +- .../rector/vendor/nette/neon/bin/neon-lint | 72 - .../rector/vendor/nette/neon/composer.json | 54 - .../rector/vendor/nette/neon/license.md | 60 - .../vendor/nette/neon/phpstan-baseline.neon | 41 - .../rector/rector/vendor/nette/neon/readme.md | 490 ---- .../vendor/nette/neon/src/Neon/Decoder.php | 32 - .../vendor/nette/neon/src/Neon/Encoder.php | 86 - .../vendor/nette/neon/src/Neon/Entity.php | 37 - .../vendor/nette/neon/src/Neon/Exception.php | 15 - .../vendor/nette/neon/src/Neon/Lexer.php | 68 - .../vendor/nette/neon/src/Neon/Neon.php | 59 - .../vendor/nette/neon/src/Neon/Node.php | 41 - .../neon/src/Neon/Node/ArrayItemNode.php | 75 - .../nette/neon/src/Neon/Node/ArrayNode.php | 27 - .../neon/src/Neon/Node/BlockArrayNode.php | 29 - .../neon/src/Neon/Node/EntityChainNode.php | 44 - .../nette/neon/src/Neon/Node/EntityNode.php | 44 - .../neon/src/Neon/Node/InlineArrayNode.php | 25 - .../nette/neon/src/Neon/Node/LiteralNode.php | 73 - .../nette/neon/src/Neon/Node/StringNode.php | 76 - .../vendor/nette/neon/src/Neon/Parser.php | 211 -- .../vendor/nette/neon/src/Neon/Token.php | 35 - .../nette/neon/src/Neon/TokenStream.php | 73 - .../vendor/nette/neon/src/Neon/Traverser.php | 64 - .../vendor/nette/utils/src/HtmlStringable.php | 2 +- .../utils/src/Iterators/CachingIterator.php | 4 +- .../nette/utils/src/Iterators/Mapper.php | 2 +- .../vendor/nette/utils/src/SmartObject.php | 4 +- .../vendor/nette/utils/src/StaticClass.php | 2 +- .../vendor/nette/utils/src/Translator.php | 2 +- .../nette/utils/src/Utils/ArrayHash.php | 4 +- .../nette/utils/src/Utils/ArrayList.php | 4 +- .../vendor/nette/utils/src/Utils/Arrays.php | 10 +- .../vendor/nette/utils/src/Utils/Callback.php | 4 +- .../vendor/nette/utils/src/Utils/DateTime.php | 4 +- .../nette/utils/src/Utils/FileSystem.php | 4 +- .../vendor/nette/utils/src/Utils/Floats.php | 4 +- .../vendor/nette/utils/src/Utils/Helpers.php | 4 +- .../vendor/nette/utils/src/Utils/Html.php | 6 +- .../vendor/nette/utils/src/Utils/Image.php | 4 +- .../vendor/nette/utils/src/Utils/Json.php | 4 +- .../nette/utils/src/Utils/ObjectHelpers.php | 6 +- .../nette/utils/src/Utils/ObjectMixin.php | 4 +- .../nette/utils/src/Utils/Paginator.php | 4 +- .../vendor/nette/utils/src/Utils/Random.php | 4 +- .../nette/utils/src/Utils/Reflection.php | 4 +- .../vendor/nette/utils/src/Utils/Strings.php | 6 +- .../vendor/nette/utils/src/Utils/Type.php | 6 +- .../nette/utils/src/Utils/Validators.php | 4 +- .../nette/utils/src/Utils/exceptions.php | 2 +- .../vendor/nette/utils/src/compatibility.php | 6 +- .../vendor/nette/utils/src/exceptions.php | 2 +- .../vendor/nikic/php-parser/bin/php-parse | 2 +- .../vendor/nikic/php-parser/grammar/php7.y | 14 +- .../nikic/php-parser/grammar/phpyLang.php | 12 +- .../php-parser/grammar/rebuildParsers.php | 2 +- .../lib/PhpParser/Builder/ClassConst.php | 16 +- .../lib/PhpParser/BuilderFactory.php | 6 +- .../lib/PhpParser/BuilderHelpers.php | 12 +- .../Internal/PrintableNewAnonClassNode.php | 9 +- .../nikic/php-parser/lib/PhpParser/Lexer.php | 8 +- .../PhpParser/Node/Expr/ClassConstFetch.php | 8 +- .../lib/PhpParser/Node/Stmt/ClassConst.php | 18 +- .../php-parser/lib/PhpParser/Parser/Php7.php | 933 ++++---- .../lib/PhpParser/PrettyPrinter/Standard.php | 25 +- .../lib/PhpParser/PrettyPrinterAbstract.php | 76 +- .../vendor/ondram/ci-detector/composer.json | 4 +- .../ondram/ci-detector/src/Ci/AbstractCi.php | 4 +- .../ondram/ci-detector/src/Ci/AppVeyor.php | 8 +- .../ci-detector/src/Ci/AwsCodeBuild.php | 8 +- .../ci-detector/src/Ci/AzurePipelines.php | 8 +- .../ondram/ci-detector/src/Ci/Bamboo.php | 8 +- .../ci-detector/src/Ci/BitbucketPipelines.php | 8 +- .../ondram/ci-detector/src/Ci/Buddy.php | 8 +- .../ondram/ci-detector/src/Ci/CiInterface.php | 6 +- .../ondram/ci-detector/src/Ci/Circle.php | 8 +- .../ondram/ci-detector/src/Ci/Codeship.php | 8 +- .../ci-detector/src/Ci/Continuousphp.php | 8 +- .../ondram/ci-detector/src/Ci/Drone.php | 8 +- .../ci-detector/src/Ci/GitHubActions.php | 8 +- .../ondram/ci-detector/src/Ci/GitLab.php | 8 +- .../ondram/ci-detector/src/Ci/Jenkins.php | 8 +- .../ondram/ci-detector/src/Ci/SourceHut.php | 8 +- .../ondram/ci-detector/src/Ci/TeamCity.php | 8 +- .../ondram/ci-detector/src/Ci/Travis.php | 8 +- .../ondram/ci-detector/src/Ci/Wercker.php | 8 +- .../ondram/ci-detector/src/CiDetector.php | 6 +- .../ci-detector/src/CiDetectorInterface.php | 6 +- .../vendor/ondram/ci-detector/src/Env.php | 2 +- .../src/Exception/CiNotDetectedException.php | 2 +- .../ondram/ci-detector/src/TrinaryLogic.php | 2 +- .../vendor/phpstan/phpstan/bootstrap.php | 4 +- .../rector/vendor/phpstan/phpstan/phpstan | 2 +- .../vendor/phpstan/phpstan/phpstan.phar | Bin 21972865 -> 22050170 bytes .../vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- .../rector/vendor/psr/cache/LICENSE.txt | 19 - .../rector/rector/vendor/psr/cache/README.md | 12 - .../rector/vendor/psr/cache/composer.json | 29 - .../vendor/psr/cache/src/CacheException.php | 10 - .../psr/cache/src/CacheItemInterface.php | 100 - .../psr/cache/src/CacheItemPoolInterface.php | 130 -- .../cache/src/InvalidArgumentException.php | 13 - .../rector/vendor/psr/container/composer.json | 2 +- .../src/ContainerExceptionInterface.php | 2 +- .../psr/container/src/ContainerInterface.php | 2 +- .../src/NotFoundExceptionInterface.php | 2 +- .../vendor/psr/event-dispatcher/LICENSE | 21 - .../vendor/psr/event-dispatcher/README.md | 6 - .../vendor/psr/event-dispatcher/composer.json | 30 - .../src/EventDispatcherInterface.php | 21 - .../src/ListenerProviderInterface.php | 19 - .../src/StoppableEventInterface.php | 26 - .../rector/vendor/psr/log/composer.json | 2 +- .../vendor/psr/log/src/AbstractLogger.php | 2 +- .../psr/log/src/InvalidArgumentException.php | 2 +- .../rector/vendor/psr/log/src/LogLevel.php | 2 +- .../psr/log/src/LoggerAwareInterface.php | 2 +- .../vendor/psr/log/src/LoggerAwareTrait.php | 2 +- .../vendor/psr/log/src/LoggerInterface.php | 2 +- .../rector/vendor/psr/log/src/LoggerTrait.php | 2 +- .../rector/vendor/psr/log/src/NullLogger.php | 2 +- .../vendor/psr/simple-cache/composer.json | 2 +- .../psr/simple-cache/src/CacheException.php | 2 +- .../psr/simple-cache/src/CacheInterface.php | 2 +- .../src/InvalidArgumentException.php | 2 +- .../rector/vendor/react/cache/composer.json | 4 +- .../vendor/react/cache/src/ArrayCache.php | 6 +- .../vendor/react/cache/src/CacheInterface.php | 4 +- .../vendor/react/child-process/composer.json | 4 +- .../react/child-process/src/Process.php | 20 +- .../rector/vendor/react/dns/composer.json | 4 +- .../react/dns/src/BadServerException.php | 2 +- .../vendor/react/dns/src/Config/Config.php | 2 +- .../vendor/react/dns/src/Config/HostsFile.php | 4 +- .../vendor/react/dns/src/Model/Message.php | 4 +- .../vendor/react/dns/src/Model/Record.php | 2 +- .../react/dns/src/Protocol/BinaryDumper.php | 8 +- .../vendor/react/dns/src/Protocol/Parser.php | 8 +- .../react/dns/src/Query/CachingExecutor.php | 8 +- .../dns/src/Query/CancellationException.php | 2 +- .../react/dns/src/Query/CoopExecutor.php | 4 +- .../react/dns/src/Query/ExecutorInterface.php | 2 +- .../react/dns/src/Query/FallbackExecutor.php | 4 +- .../react/dns/src/Query/HostsFileExecutor.php | 10 +- .../vendor/react/dns/src/Query/Query.php | 6 +- .../react/dns/src/Query/RetryExecutor.php | 6 +- .../src/Query/SelectiveTransportExecutor.php | 4 +- .../dns/src/Query/TcpTransportExecutor.php | 18 +- .../react/dns/src/Query/TimeoutException.php | 2 +- .../react/dns/src/Query/TimeoutExecutor.php | 8 +- .../dns/src/Query/UdpTransportExecutor.php | 20 +- .../react/dns/src/RecordNotFoundException.php | 2 +- .../vendor/react/dns/src/Resolver/Factory.php | 34 +- .../react/dns/src/Resolver/Resolver.php | 10 +- .../dns/src/Resolver/ResolverInterface.php | 2 +- .../vendor/react/event-loop/composer.json | 4 +- .../vendor/react/event-loop/src/ExtEvLoop.php | 6 +- .../react/event-loop/src/ExtEventLoop.php | 6 +- .../react/event-loop/src/ExtLibevLoop.php | 16 +- .../react/event-loop/src/ExtLibeventLoop.php | 6 +- .../vendor/react/event-loop/src/ExtUvLoop.php | 12 +- .../vendor/react/event-loop/src/Factory.php | 4 +- .../vendor/react/event-loop/src/Loop.php | 2 +- .../react/event-loop/src/LoopInterface.php | 2 +- .../react/event-loop/src/SignalsHandler.php | 2 +- .../react/event-loop/src/StreamSelectLoop.php | 8 +- .../event-loop/src/Tick/FutureTickQueue.php | 2 +- .../react/event-loop/src/Timer/Timer.php | 4 +- .../react/event-loop/src/Timer/Timers.php | 4 +- .../react/event-loop/src/TimerInterface.php | 2 +- .../rector/vendor/react/promise/composer.json | 4 +- .../src/CancellablePromiseInterface.php | 2 +- .../react/promise/src/CancellationQueue.php | 2 +- .../vendor/react/promise/src/Deferred.php | 2 +- .../promise/src/Exception/LengthException.php | 2 +- .../promise/src/ExtendedPromiseInterface.php | 2 +- .../react/promise/src/FulfilledPromise.php | 2 +- .../vendor/react/promise/src/LazyPromise.php | 2 +- .../vendor/react/promise/src/Promise.php | 2 +- .../react/promise/src/PromiseInterface.php | 2 +- .../react/promise/src/PromisorInterface.php | 2 +- .../react/promise/src/RejectedPromise.php | 2 +- .../src/UnhandledRejectionException.php | 2 +- .../vendor/react/promise/src/functions.php | 4 +- .../react/promise/src/functions_include.php | 4 +- .../rector/vendor/react/socket/README.md | 6 +- .../rector/vendor/react/socket/composer.json | 6 +- .../vendor/react/socket/src/Connection.php | 16 +- .../react/socket/src/ConnectionInterface.php | 4 +- .../vendor/react/socket/src/Connector.php | 12 +- .../react/socket/src/ConnectorInterface.php | 5 +- .../vendor/react/socket/src/DnsConnector.php | 8 +- .../vendor/react/socket/src/FdServer.php | 8 +- .../react/socket/src/FixedUriConnector.php | 2 +- .../src/HappyEyeBallsConnectionBuilder.php | 14 +- .../socket/src/HappyEyeBallsConnector.php | 10 +- .../react/socket/src/LimitingServer.php | 4 +- .../react/socket/src/SecureConnector.php | 12 +- .../vendor/react/socket/src/SecureServer.php | 8 +- .../rector/vendor/react/socket/src/Server.php | 8 +- .../react/socket/src/ServerInterface.php | 4 +- .../vendor/react/socket/src/SocketServer.php | 8 +- .../react/socket/src/StreamEncryption.php | 23 +- .../vendor/react/socket/src/TcpConnector.php | 8 +- .../vendor/react/socket/src/TcpServer.php | 8 +- .../react/socket/src/TimeoutConnector.php | 8 +- .../vendor/react/socket/src/UnixConnector.php | 8 +- .../vendor/react/socket/src/UnixServer.php | 8 +- .../rector/vendor/react/stream/composer.json | 4 +- .../react/stream/src/CompositeStream.php | 4 +- .../react/stream/src/DuplexResourceStream.php | 8 +- .../stream/src/DuplexStreamInterface.php | 2 +- .../stream/src/ReadableResourceStream.php | 8 +- .../stream/src/ReadableStreamInterface.php | 4 +- .../vendor/react/stream/src/ThroughStream.php | 4 +- .../rector/vendor/react/stream/src/Util.php | 2 +- .../stream/src/WritableResourceStream.php | 8 +- .../stream/src/WritableStreamInterface.php | 4 +- .../rector/extension-installer/rector.php | 4 +- .../src/GeneratedConfig.php | 2 +- .../src/PluginInstaller.php | 10 +- .../rector/rector-doctrine/composer.json | 9 +- .../rector/rector-doctrine/config/config.php | 11 - .../doctrine-annotations-to-attributes.php | 2 +- .../config/sets/doctrine-code-quality.php | 4 +- .../config/sets/doctrine-common-20.php | 2 +- .../config/sets/doctrine-dbal-210.php | 2 +- .../config/sets/doctrine-dbal-211.php | 2 +- .../config/sets/doctrine-dbal-30.php | 2 +- .../config/sets/doctrine-dbal-40.php | 2 +- ...ctrine-gedmo-annotations-to-attributes.php | 2 +- .../config/sets/doctrine-orm-213.php | 2 +- .../config/sets/doctrine-orm-214.php | 2 +- .../config/sets/doctrine-orm-25.php | 2 +- .../config/sets/doctrine-orm-29.php | 2 +- .../sets/doctrine-repository-as-service.php | 2 +- .../vendor/rector/rector-doctrine/easy-ci.php | 4 +- .../vendor/rector/rector-doctrine/rector.php | 3 +- .../RemoveEmptyTableAttributeRector.php | 8 +- .../Property/OrderByKeyToClassConstRector.php | 92 + .../ToOneRelationPropertyTypeResolver.php | 3 +- .../src/PhpDoc/ShortClassExpander.php | 2 +- .../PhpDocParser/DoctrineDocBlockResolver.php | 2 + .../rector/rector-downgrade-php/composer.json | 19 +- .../rector-downgrade-php/config/config.php | 12 - .../config/set/downgrade-php72.php | 2 +- .../config/set/downgrade-php73.php | 2 +- .../config/set/downgrade-php74.php | 2 +- .../config/set/downgrade-php80.php | 2 +- .../config/set/downgrade-php81.php | 10 +- .../config/set/downgrade-php82.php | 2 +- .../config/set/level/down-to-php71.php | 2 +- .../config/set/level/down-to-php72.php | 2 +- .../config/set/level/down-to-php73.php | 2 +- .../config/set/level/down-to-php74.php | 2 +- .../config/set/level/down-to-php80.php | 2 +- .../config/set/level/down-to-php81.php | 2 +- .../DowngradeParameterTypeWideningRector.php | 2 +- ...DowngradeListReferenceAssignmentRector.php | 3 +- .../Array_/DowngradeArraySpreadRector.php | 2 +- ...wngradeContravariantArgumentTypeRector.php | 9 + ...DowngradeClassOnObjectToGetClassRector.php | 4 +- ...siveDirectoryIteratorHasChildrenRector.php | 10 +- .../DowngradeStaticTypeDeclarationRector.php | 4 +- ...ngradeStringReturnTypeOnToStringRector.php | 4 +- ...veReturnTypeDeclarationFromCloneRector.php | 4 +- .../DowngradeAttributeToAnnotationRector.php | 13 +- .../DowngradePropertyPromotionRector.php | 24 +- ...gradeArbitraryExpressionsSupportRector.php | 2 +- .../DowngradeMixedTypeTypedPropertyRector.php | 17 +- .../StaticCall/DowngradePhpTokenRector.php | 12 +- .../ArrayMergeFromArraySpreadFactory.php | 15 +- .../DowngradeArraySpreadStringKeyRector.php | 8 +- .../FuncCall/DowngradeArrayIsListRector.php | 29 +- ...owngradeFirstClassCallableSyntaxRector.php | 13 +- .../LNumber/DowngradeOctalNumberRector.php | 68 + .../MethodCall/DowngradeIsEnumRector.php | 63 + .../Symfony/Component/Annotation/Route.php | 2 +- .../rector/rector-phpunit/composer.json | 13 +- .../rector/rector-phpunit/config/config.php | 11 - .../config/sets/annotations-to-attributes.php | 2 +- .../config/sets/level/up-to-phpunit-100.php | 2 +- .../config/sets/level/up-to-phpunit-50.php | 2 +- .../config/sets/level/up-to-phpunit-60.php | 2 +- .../config/sets/level/up-to-phpunit-70.php | 2 +- .../config/sets/level/up-to-phpunit-80.php | 2 +- .../config/sets/level/up-to-phpunit-90.php | 2 +- .../config/sets/level/up-to-phpunit-91.php | 2 +- .../config/sets/phpunit-code-quality.php | 2 +- .../config/sets/phpunit-exception.php | 2 +- .../config/sets/phpunit-specific-method.php | 2 +- .../rector-phpunit/config/sets/phpunit100.php | 5 +- .../rector-phpunit/config/sets/phpunit40.php | 2 +- .../rector-phpunit/config/sets/phpunit50.php | 2 +- .../rector-phpunit/config/sets/phpunit60.php | 2 +- .../rector-phpunit/config/sets/phpunit70.php | 2 +- .../config/sets/phpunit80-dms.php | 2 +- .../rector-phpunit/config/sets/phpunit80.php | 2 +- .../rector-phpunit/config/sets/phpunit90.php | 2 +- .../rector-phpunit/config/sets/phpunit91.php | 2 +- .../config/sets/remove-mocks.php | 2 +- .../vendor/rector/rector-phpunit/easy-ci.php | 4 +- .../vendor/rector/rector-phpunit/rector.php | 17 +- .../TestWithAnnotationToAttributeRector.php | 2 +- .../AnnotationWithValueToAttributeRector.php | 2 +- .../TicketAnnotationToAttributeRector.php | 2 +- .../RemoveDataProviderTestPrefixRector.php | 2 +- .../MethodCall/ExplicitPhpErrorApiRector.php | 8 +- .../DataProviderClassMethodFinder.php | 2 +- .../src/PhpDoc/DataProviderMethodRenamer.php | 2 +- .../WithConsecutiveRector.php | 153 ++ .../rector/rector-symfony/composer.json | 23 +- .../rector/rector-symfony/config/config.php | 13 - .../fosrest/annotations-to-attributes.php | 2 +- .../sets/jms/annotations-to-attributes.php | 2 +- .../sensiolabs/annotations-to-attributes.php | 2 +- .../symfony/annotations-to-attributes.php | 2 +- .../config/sets/symfony/configs.php | 2 +- .../sets/symfony/level/up-to-symfony-25.php | 2 +- .../sets/symfony/level/up-to-symfony-26.php | 2 +- .../sets/symfony/level/up-to-symfony-27.php | 2 +- .../sets/symfony/level/up-to-symfony-28.php | 2 +- .../sets/symfony/level/up-to-symfony-30.php | 2 +- .../sets/symfony/level/up-to-symfony-31.php | 2 +- .../sets/symfony/level/up-to-symfony-32.php | 2 +- .../sets/symfony/level/up-to-symfony-33.php | 2 +- .../sets/symfony/level/up-to-symfony-34.php | 2 +- .../sets/symfony/level/up-to-symfony-40.php | 2 +- .../sets/symfony/level/up-to-symfony-41.php | 2 +- .../sets/symfony/level/up-to-symfony-42.php | 2 +- .../sets/symfony/level/up-to-symfony-43.php | 2 +- .../sets/symfony/level/up-to-symfony-44.php | 2 +- .../sets/symfony/level/up-to-symfony-50.php | 2 +- .../sets/symfony/level/up-to-symfony-51.php | 2 +- .../sets/symfony/level/up-to-symfony-52.php | 2 +- .../sets/symfony/level/up-to-symfony-53.php | 2 +- .../sets/symfony/level/up-to-symfony-54.php | 2 +- .../sets/symfony/level/up-to-symfony-60.php | 2 +- .../sets/symfony/level/up-to-symfony-61.php | 2 +- .../sets/symfony/level/up-to-symfony-62.php | 2 +- .../sets/symfony/level/up-to-symfony-63.php | 2 +- .../sets/symfony/symfony-code-quality.php | 2 +- .../symfony/symfony-constructor-injection.php | 2 +- .../config/sets/symfony/symfony25.php | 2 +- .../config/sets/symfony/symfony26.php | 2 +- .../config/sets/symfony/symfony27.php | 2 +- .../config/sets/symfony/symfony28.php | 2 +- .../config/sets/symfony/symfony30.php | 2 +- .../config/sets/symfony/symfony31.php | 2 +- .../config/sets/symfony/symfony32.php | 2 +- .../config/sets/symfony/symfony33.php | 2 +- .../config/sets/symfony/symfony34.php | 2 +- .../config/sets/symfony/symfony40.php | 2 +- .../config/sets/symfony/symfony41.php | 2 +- .../config/sets/symfony/symfony42.php | 2 +- .../config/sets/symfony/symfony43.php | 2 +- .../config/sets/symfony/symfony44.php | 2 +- .../config/sets/symfony/symfony50-types.php | 2 +- .../config/sets/symfony/symfony50.php | 2 +- .../config/sets/symfony/symfony51.php | 2 +- .../symfony52-validator-attributes.php | 2 +- .../config/sets/symfony/symfony52.php | 2 +- .../config/sets/symfony/symfony53.php | 2 +- .../config/sets/symfony/symfony54.php | 2 +- .../symfony/symfony6/symfony-return-types.php | 2 +- .../config/sets/symfony/symfony60.php | 2 +- .../config/sets/symfony/symfony61.php | 2 +- .../config/sets/symfony/symfony62.php | 5 +- .../config/sets/symfony/symfony63.php | 2 +- .../config/sets/twig/level/up-to-twig-112.php | 2 +- .../config/sets/twig/level/up-to-twig-127.php | 2 +- .../config/sets/twig/level/up-to-twig-134.php | 2 +- .../config/sets/twig/level/up-to-twig-140.php | 2 +- .../config/sets/twig/level/up-to-twig-20.php | 2 +- .../config/sets/twig/level/up-to-twig-240.php | 2 +- .../twig/twig-underscore-to-namespace.php | 2 +- .../config/sets/twig/twig112.php | 2 +- .../config/sets/twig/twig127.php | 2 +- .../config/sets/twig/twig134.php | 2 +- .../config/sets/twig/twig140.php | 2 +- .../config/sets/twig/twig20.php | 2 +- .../config/sets/twig/twig240.php | 2 +- .../vendor/rector/rector-symfony/rector.php | 5 +- .../ClassMethod/ActionSuffixRemoverRector.php | 2 +- .../EventListenerToEventSubscriberRector.php | 2 +- .../ServiceSetStringNameToClassNameRector.php | 1 - ...iceSettersToSettersAutodiscoveryRector.php | 33 +- .../MethodCall/RedirectToRouteRector.php | 2 +- .../Rector/StaticCall/ParseFileRector.php | 2 +- .../RemoveDefaultGetBlockPrefixRector.php | 10 +- .../StringToArrayArgumentProcessRector.php | 3 +- .../EventDispatcherParentConstructRector.php | 4 + ...plateShortNotationToBundleSyntaxRector.php | 2 +- ...TwigBundleFilesystemLoaderToTwigRector.php | 8 +- .../FuncCall/ReplaceServiceArgumentRector.php | 2 +- ...mentValueResolverToValueResolverRector.php | 131 ++ .../Symfony/ContainerServiceProvider.php | 4 +- .../Symfony/Routing/SymfonyRoutesProvider.php | 4 +- .../src/DataProvider/ServiceMapProvider.php | 4 + .../FormTypeStringToTypeProvider.php | 2 +- .../src/Helper/TemplateGuesser.php | 2 +- .../ValueObject/IntlBundleClassToNewClass.php | 2 +- .../ValueObjectFactory/ServiceMapFactory.php | 6 +- .../rector/rector/vendor/scoper-autoload.php | 9 +- .../vendor/sebastian/diff/src/Chunk.php | 2 +- .../rector/vendor/sebastian/diff/src/Diff.php | 2 +- .../vendor/sebastian/diff/src/Differ.php | 4 +- .../src/Exception/ConfigurationException.php | 2 +- .../diff/src/Exception/Exception.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../rector/vendor/sebastian/diff/src/Line.php | 2 +- .../LongestCommonSubsequenceCalculator.php | 2 +- ...ientLongestCommonSubsequenceCalculator.php | 2 +- .../src/Output/AbstractChunkOutputBuilder.php | 2 +- .../diff/src/Output/DiffOnlyOutputBuilder.php | 4 +- .../src/Output/DiffOutputBuilderInterface.php | 2 +- .../Output/StrictUnifiedDiffOutputBuilder.php | 6 +- .../src/Output/UnifiedDiffOutputBuilder.php | 4 +- .../vendor/sebastian/diff/src/Parser.php | 2 +- ...ientLongestCommonSubsequenceCalculator.php | 2 +- .../symfony/config/Builder/ClassBuilder.php | 165 -- .../config/Builder/ConfigBuilderGenerator.php | 506 ----- .../ConfigBuilderGeneratorInterface.php | 25 - .../config/Builder/ConfigBuilderInterface.php | 28 - .../vendor/symfony/config/Builder/Method.php | 34 - .../symfony/config/Builder/Property.php | 92 - .../vendor/symfony/config/ConfigCache.php | 56 - .../symfony/config/ConfigCacheFactory.php | 43 - .../config/ConfigCacheFactoryInterface.php | 29 - .../symfony/config/ConfigCacheInterface.php | 43 - .../symfony/config/Definition/ArrayNode.php | 359 --- .../symfony/config/Definition/BaseNode.php | 501 ----- .../symfony/config/Definition/BooleanNode.php | 48 - .../Builder/ArrayNodeDefinition.php | 421 ---- .../Builder/BooleanNodeDefinition.php | 42 - .../Builder/BuilderAwareInterface.php | 26 - .../Definition/Builder/EnumNodeDefinition.php | 48 - .../config/Definition/Builder/ExprBuilder.php | 239 -- .../Builder/FloatNodeDefinition.php | 28 - .../Builder/IntegerNodeDefinition.php | 28 - .../Definition/Builder/MergeBuilder.php | 55 - .../config/Definition/Builder/NodeBuilder.php | 170 -- .../Definition/Builder/NodeDefinition.php | 296 --- .../Builder/NodeParentInterface.php | 20 - .../Builder/NormalizationBuilder.php | 54 - .../Builder/NumericNodeDefinition.php | 63 - .../Builder/ParentNodeDefinitionInterface.php | 46 - .../Builder/ScalarNodeDefinition.php | 28 - .../config/Definition/Builder/TreeBuilder.php | 56 - .../Definition/Builder/ValidationBuilder.php | 39 - .../Builder/VariableNodeDefinition.php | 54 - .../Definition/ConfigurableInterface.php | 23 - .../config/Definition/Configuration.php | 52 - .../Definition/ConfigurationInterface.php | 27 - .../Configurator/DefinitionConfigurator.php | 61 - .../Definition/Dumper/XmlReferenceDumper.php | 262 --- .../Definition/Dumper/YamlReferenceDumper.php | 232 -- .../symfony/config/Definition/EnumNode.php | 88 - .../Exception/DuplicateKeyException.php | 21 - .../config/Definition/Exception/Exception.php | 20 - .../Exception/ForbiddenOverwriteException.php | 21 - .../InvalidConfigurationException.php | 54 - .../Exception/InvalidDefinitionException.php | 20 - .../Exception/InvalidTypeException.php | 20 - .../Exception/UnsetKeyException.php | 21 - .../symfony/config/Definition/FloatNode.php | 44 - .../symfony/config/Definition/IntegerNode.php | 40 - .../Loader/DefinitionFileLoader.php | 106 - .../config/Definition/NodeInterface.php | 76 - .../symfony/config/Definition/NumericNode.php | 62 - .../symfony/config/Definition/Processor.php | 81 - .../Definition/PrototypeNodeInterface.php | 26 - .../config/Definition/PrototypedArrayNode.php | 348 --- .../symfony/config/Definition/ScalarNode.php | 59 - .../config/Definition/VariableNode.php | 130 -- ...LoaderImportCircularReferenceException.php | 25 - .../FileLocatorFileNotFoundException.php | 36 - .../config/Exception/LoaderLoadException.php | 101 - .../vendor/symfony/config/FileLocator.php | 74 - .../symfony/config/FileLocatorInterface.php | 32 - .../rector/vendor/symfony/config/LICENSE | 19 - .../config/Loader/DelegatingLoader.php | 46 - .../Loader/DirectoryAwareLoaderInterface.php | 24 - .../symfony/config/Loader/FileLoader.php | 171 -- .../symfony/config/Loader/GlobFileLoader.php | 35 - .../vendor/symfony/config/Loader/Loader.php | 65 - .../symfony/config/Loader/LoaderInterface.php | 49 - .../symfony/config/Loader/LoaderResolver.php | 66 - .../config/Loader/LoaderResolverInterface.php | 28 - .../config/Loader/ParamConfigurator.php | 32 - .../rector/vendor/symfony/config/README.md | 15 - .../Resource/ClassExistenceResource.php | 206 -- .../config/Resource/ComposerResource.php | 61 - .../config/Resource/DirectoryResource.php | 88 - .../config/Resource/FileExistenceResource.php | 53 - .../symfony/config/Resource/FileResource.php | 56 - .../symfony/config/Resource/GlobResource.php | 227 -- .../Resource/ReflectionClassResource.php | 191 -- .../config/Resource/ResourceInterface.php | 30 - .../Resource/SelfCheckingResourceChecker.php | 44 - .../SelfCheckingResourceInterface.php | 27 - .../config/ResourceCheckerConfigCache.php | 166 -- .../ResourceCheckerConfigCacheFactory.php | 40 - .../config/ResourceCheckerInterface.php | 42 - .../Util/Exception/InvalidXmlException.php | 21 - .../Util/Exception/XmlParsingException.php | 20 - .../vendor/symfony/config/Util/XmlUtils.php | 235 -- .../vendor/symfony/config/composer.json | 44 - .../vendor/symfony/console/Application.php | 92 +- .../symfony/console/Attribute/AsCommand.php | 2 +- .../console/CI/GithubActionReporter.php | 4 +- .../rector/vendor/symfony/console/Color.php | 4 +- .../symfony/console/Command/Command.php | 40 +- .../console/Command/CompleteCommand.php | 26 +- .../console/Command/DumpCompletionCommand.php | 16 +- .../symfony/console/Command/HelpCommand.php | 14 +- .../symfony/console/Command/LazyCommand.php | 22 +- .../symfony/console/Command/ListCommand.php | 16 +- .../symfony/console/Command/LockableTrait.php | 12 +- .../Command/SignalableCommandInterface.php | 2 +- .../CommandLoader/CommandLoaderInterface.php | 6 +- .../CommandLoader/ContainerCommandLoader.php | 8 +- .../CommandLoader/FactoryCommandLoader.php | 6 +- .../console/Completion/CompletionInput.php | 10 +- .../Completion/CompletionSuggestions.php | 4 +- .../Output/BashCompletionOutput.php | 6 +- .../Output/CompletionOutputInterface.php | 6 +- .../Output/FishCompletionOutput.php | 6 +- .../Completion/Output/ZshCompletionOutput.php | 6 +- .../symfony/console/Completion/Suggestion.php | 2 +- .../vendor/symfony/console/ConsoleEvents.php | 10 +- .../rector/vendor/symfony/console/Cursor.php | 4 +- .../AddConsoleCommandPass.php | 22 +- .../Descriptor/ApplicationDescription.php | 8 +- .../symfony/console/Descriptor/Descriptor.php | 16 +- .../Descriptor/DescriptorInterface.php | 4 +- .../console/Descriptor/JsonDescriptor.php | 12 +- .../console/Descriptor/MarkdownDescriptor.php | 16 +- .../Descriptor/ReStructuredTextDescriptor.php | 18 +- .../console/Descriptor/TextDescriptor.php | 16 +- .../console/Descriptor/XmlDescriptor.php | 12 +- .../Exception/CommandNotFoundException.php | 2 +- .../console/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../Exception/InvalidOptionException.php | 2 +- .../console/Exception/LogicException.php | 2 +- .../Exception/MissingInputException.php | 2 +- .../Exception/NamespaceNotFoundException.php | 2 +- .../console/Exception/RuntimeException.php | 2 +- .../console/Formatter/NullOutputFormatter.php | 2 +- .../Formatter/NullOutputFormatterStyle.php | 6 +- .../console/Formatter/OutputFormatter.php | 12 +- .../Formatter/OutputFormatterInterface.php | 2 +- .../Formatter/OutputFormatterStyle.php | 8 +- .../OutputFormatterStyleInterface.php | 2 +- .../Formatter/OutputFormatterStyleStack.php | 6 +- .../WrappableOutputFormatterInterface.php | 2 +- .../console/Helper/DebugFormatterHelper.php | 2 +- .../console/Helper/DescriptorHelper.php | 18 +- .../vendor/symfony/console/Helper/Dumper.php | 10 +- .../console/Helper/FormatterHelper.php | 4 +- .../vendor/symfony/console/Helper/Helper.php | 10 +- .../console/Helper/HelperInterface.php | 2 +- .../symfony/console/Helper/HelperSet.php | 4 +- .../console/Helper/InputAwareHelper.php | 6 +- .../symfony/console/Helper/OutputWrapper.php | 2 +- .../symfony/console/Helper/ProcessHelper.php | 10 +- .../symfony/console/Helper/ProgressBar.php | 14 +- .../console/Helper/ProgressIndicator.php | 8 +- .../symfony/console/Helper/QuestionHelper.php | 30 +- .../console/Helper/SymfonyQuestionHelper.php | 14 +- .../vendor/symfony/console/Helper/Table.php | 14 +- .../symfony/console/Helper/TableCell.php | 4 +- .../symfony/console/Helper/TableCellStyle.php | 4 +- .../symfony/console/Helper/TableRows.php | 2 +- .../symfony/console/Helper/TableSeparator.php | 2 +- .../symfony/console/Helper/TableStyle.php | 6 +- .../symfony/console/Input/ArgvInput.php | 4 +- .../symfony/console/Input/ArrayInput.php | 6 +- .../vendor/symfony/console/Input/Input.php | 6 +- .../symfony/console/Input/InputArgument.php | 16 +- .../console/Input/InputAwareInterface.php | 2 +- .../symfony/console/Input/InputDefinition.php | 6 +- .../symfony/console/Input/InputInterface.php | 6 +- .../symfony/console/Input/InputOption.php | 16 +- .../Input/StreamableInputInterface.php | 2 +- .../symfony/console/Input/StringInput.php | 4 +- .../symfony/console/Logger/ConsoleLogger.php | 12 +- .../symfony/console/Output/AnsiColorMode.php | 4 +- .../symfony/console/Output/BufferedOutput.php | 2 +- .../symfony/console/Output/ConsoleOutput.php | 4 +- .../console/Output/ConsoleOutputInterface.php | 2 +- .../console/Output/ConsoleSectionOutput.php | 21 +- .../symfony/console/Output/NullOutput.php | 6 +- .../vendor/symfony/console/Output/Output.php | 6 +- .../console/Output/OutputInterface.php | 4 +- .../symfony/console/Output/StreamOutput.php | 6 +- .../console/Output/TrimmedBufferOutput.php | 6 +- .../PATCHES.txt | 2 +- .../console/Question/ChoiceQuestion.php | 4 +- .../console/Question/ConfirmationQuestion.php | 2 +- .../symfony/console/Question/Question.php | 10 +- .../console/SignalRegistry/SignalRegistry.php | 2 +- .../console/SingleCommandApplication.php | 8 +- .../symfony/console/Style/OutputStyle.php | 10 +- .../symfony/console/Style/StyleInterface.php | 2 +- .../symfony/console/Style/SymfonyStyle.php | 40 +- .../vendor/symfony/console/Terminal.php | 4 +- .../vendor/symfony/console/composer.json | 2 +- .../contracts/Cache/CacheInterface.php | 56 - .../symfony/contracts/Cache/CacheTrait.php | 61 - .../contracts/Cache/CallbackInterface.php | 30 - .../vendor/symfony/contracts/Cache/README.md | 9 - .../Cache/TagAwareCacheInterface.php | 36 - .../symfony/contracts/Cache/composer.json | 44 - .../symfony/contracts/Deprecation/LICENSE | 19 - .../symfony/contracts/Deprecation/README.md | 26 - .../contracts/Deprecation/composer.json | 35 - .../contracts/Deprecation/function.php | 28 - .../contracts/EventDispatcher/Event.php | 50 - .../EventDispatcherInterface.php | 31 - .../symfony/contracts/EventDispatcher/LICENSE | 19 - .../contracts/EventDispatcher/README.md | 9 - .../contracts/EventDispatcher/composer.json | 44 - .../contracts/HttpClient/ChunkInterface.php | 63 - .../Exception/ClientExceptionInterface.php | 20 - .../Exception/DecodingExceptionInterface.php | 20 - .../Exception/ExceptionInterface.php | 20 - .../Exception/HttpExceptionInterface.php | 22 - .../RedirectionExceptionInterface.php | 20 - .../Exception/ServerExceptionInterface.php | 20 - .../Exception/TimeoutExceptionInterface.php | 20 - .../Exception/TransportExceptionInterface.php | 20 - .../HttpClient/HttpClientInterface.php | 115 - .../symfony/contracts/HttpClient/LICENSE | 19 - .../symfony/contracts/HttpClient/README.md | 9 - .../HttpClient/ResponseInterface.php | 102 - .../HttpClient/ResponseStreamInterface.php | 24 - .../HttpClient/Test/Fixtures/web/index.php | 159 -- .../HttpClient/Test/HttpClientTestCase.php | 807 ------- .../HttpClient/Test/TestHttpServer.php | 37 - .../contracts/HttpClient/composer.json | 46 - .../rector/vendor/symfony/contracts/LICENSE | 19 - .../rector/vendor/symfony/contracts/README.md | 54 - .../vendor/symfony/contracts/Service/LICENSE | 19 - .../symfony/contracts/Translation/LICENSE | 19 - .../Translation/LocaleAwareInterface.php | 27 - .../symfony/contracts/Translation/README.md | 9 - .../Translation/Test/TranslatorTest.php | 306 --- .../Translation/TranslatableInterface.php | 19 - .../Translation/TranslatorInterface.php | 66 - .../contracts/Translation/TranslatorTrait.php | 221 -- .../contracts/Translation/composer.json | 46 - .../vendor/symfony/contracts/composer.json | 62 - .../symfony/dependency-injection/Alias.php | 98 - .../Argument/AbstractArgument.php | 42 - .../Argument/ArgumentInterface.php | 22 - .../Argument/BoundArgument.php | 77 - .../Argument/IteratorArgument.php | 36 - .../Argument/ReferenceSetArgumentTrait.php | 54 - .../Argument/RewindableGenerator.php | 46 - .../Argument/ServiceClosureArgument.php | 49 - .../Argument/ServiceLocator.php | 64 - .../Argument/ServiceLocatorArgument.php | 51 - .../Argument/TaggedIteratorArgument.php | 89 - .../Attribute/AsDecorator.php | 35 - .../Attribute/AsTaggedItem.php | 34 - .../Attribute/Autoconfigure.php | 73 - .../Attribute/AutoconfigureTag.php | 25 - .../Attribute/Autowire.php | 69 - .../Attribute/MapDecorated.php | 16 - .../Attribute/TaggedIterator.php | 47 - .../Attribute/TaggedLocator.php | 47 - .../dependency-injection/Attribute/Target.php | 46 - .../dependency-injection/Attribute/When.php | 29 - .../dependency-injection/ChildDefinition.php | 92 - .../Compiler/AbstractRecursivePass.php | 226 -- .../AliasDeprecatedPublicServicesPass.php | 56 - .../Compiler/AnalyzeServiceReferencesPass.php | 188 -- .../AttributeAutoconfigurationPass.php | 146 -- .../Compiler/AutoAliasServicePass.php | 39 - .../Compiler/AutowireAsDecoratorPass.php | 44 - .../Compiler/AutowirePass.php | 588 ----- .../Compiler/AutowireRequiredMethodsPass.php | 98 - .../AutowireRequiredPropertiesPass.php | 55 - .../Compiler/CheckArgumentsValidityPass.php | 107 - .../Compiler/CheckCircularReferencesPass.php | 74 - .../Compiler/CheckDefinitionValidityPass.php | 82 - ...xceptionOnInvalidReferenceBehaviorPass.php | 98 - .../Compiler/CheckReferenceValidityPass.php | 43 - .../Compiler/CheckTypeDeclarationsPass.php | 270 --- .../Compiler/Compiler.php | 93 - .../Compiler/CompilerPassInterface.php | 25 - .../Compiler/DecoratorServicePass.php | 106 - .../Compiler/DefinitionErrorExceptionPass.php | 53 - .../Compiler/ExtensionCompilerPass.php | 34 - .../Compiler/InlineServiceDefinitionsPass.php | 214 -- .../MergeExtensionConfigurationPass.php | 197 -- .../Compiler/PassConfig.php | 203 -- .../Compiler/PriorityTaggedServiceTrait.php | 151 -- .../RegisterAutoconfigureAttributesPass.php | 65 - .../Compiler/RegisterEnvVarProcessorsPass.php | 65 - .../Compiler/RegisterReverseContainerPass.php | 58 - .../RegisterServiceSubscribersPass.php | 119 - .../RemoveAbstractDefinitionsPass.php | 31 - .../Compiler/RemovePrivateAliasesPass.php | 36 - .../Compiler/RemoveUnusedDefinitionsPass.php | 85 - .../ReplaceAliasByActualDefinitionPass.php | 97 - .../Compiler/ResolveBindingsPass.php | 222 -- .../Compiler/ResolveChildDefinitionsPass.php | 185 -- .../Compiler/ResolveClassPass.php | 38 - .../Compiler/ResolveDecoratorStackPass.php | 99 - .../Compiler/ResolveEnvPlaceholdersPass.php | 43 - .../Compiler/ResolveFactoryClassPass.php | 36 - .../Compiler/ResolveHotPathPass.php | 72 - .../ResolveInstanceofConditionalsPass.php | 145 -- .../Compiler/ResolveInvalidReferencesPass.php | 129 -- .../Compiler/ResolveNamedArgumentsPass.php | 134 -- .../Compiler/ResolveNoPreloadPass.php | 85 - .../ResolveParameterPlaceHoldersPass.php | 103 - .../ResolveReferencesToAliasesPass.php | 73 - .../ResolveServiceSubscribersPass.php | 52 - .../ResolveTaggedIteratorArgumentPass.php | 35 - .../Compiler/ServiceLocatorTagPass.php | 107 - .../Compiler/ServiceReferenceGraph.php | 92 - .../Compiler/ServiceReferenceGraphEdge.php | 101 - .../Compiler/ServiceReferenceGraphNode.php | 110 - .../Compiler/ValidateEnvPlaceholdersPass.php | 90 - .../Config/ContainerParametersResource.php | 42 - .../ContainerParametersResourceChecker.php | 48 - .../dependency-injection/Container.php | 362 --- .../ContainerAwareInterface.php | 24 - .../ContainerAwareTrait.php | 28 - .../dependency-injection/ContainerBuilder.php | 1426 ------------ .../ContainerInterface.php | 54 - .../dependency-injection/Definition.php | 762 ------- .../dependency-injection/Dumper/Dumper.php | 26 - .../Dumper/DumperInterface.php | 25 - .../Dumper/GraphvizDumper.php | 202 -- .../dependency-injection/Dumper/PhpDumper.php | 1995 ----------------- .../dependency-injection/Dumper/Preloader.php | 106 - .../dependency-injection/Dumper/XmlDumper.php | 366 --- .../Dumper/YamlDumper.php | 313 --- .../EnvVarLoaderInterface.php | 24 - .../dependency-injection/EnvVarProcessor.php | 237 -- .../EnvVarProcessorInterface.php | 36 - .../Exception/AutowiringFailedException.php | 76 - .../Exception/BadMethodCallException.php | 18 - .../Exception/EnvNotFoundException.php | 20 - .../Exception/EnvParameterException.php | 24 - .../Exception/ExceptionInterface.php | 22 - .../Exception/InvalidArgumentException.php | 20 - .../InvalidParameterTypeException.php | 30 - .../Exception/LogicException.php | 18 - .../Exception/OutOfBoundsException.php | 18 - .../ParameterCircularReferenceException.php | 33 - .../Exception/ParameterNotFoundException.php | 101 - .../Exception/RuntimeException.php | 20 - .../ServiceCircularReferenceException.php | 42 - .../Exception/ServiceNotFoundException.php | 67 - .../Extension/AbstractExtension.php | 54 - .../ConfigurableExtensionInterface.php | 29 - .../ConfigurationExtensionInterface.php | 28 - .../Extension/Extension.php | 121 - .../Extension/ExtensionInterface.php | 47 - .../Extension/ExtensionTrait.php | 58 - .../Extension/PrependExtensionInterface.php | 20 - .../symfony/dependency-injection/LICENSE | 19 - .../Instantiator/InstantiatorInterface.php | 32 - .../Instantiator/RealServiceInstantiator.php | 31 - .../LazyProxy/PhpDumper/DumperInterface.php | 33 - .../LazyProxy/PhpDumper/NullDumper.php | 44 - .../LazyProxy/ProxyHelper.php | 82 - .../Loader/ClosureLoader.php | 50 - .../Configurator/AbstractConfigurator.php | 98 - .../AbstractServiceConfigurator.php | 100 - .../Loader/Configurator/AliasConfigurator.php | 27 - .../ClosureReferenceConfigurator.php | 15 - .../Configurator/ContainerConfigurator.php | 201 -- .../Configurator/DefaultsConfigurator.php | 61 - .../Loader/Configurator/EnvConfigurator.php | 181 -- .../InlineServiceConfigurator.php | 47 - .../Configurator/InstanceofConfigurator.php | 45 - .../Configurator/ParametersConfigurator.php | 50 - .../Configurator/PrototypeConfigurator.php | 88 - .../Configurator/ReferenceConfigurator.php | 57 - .../Configurator/ServiceConfigurator.php | 78 - .../Configurator/ServicesConfigurator.php | 182 -- .../Configurator/Traits/AbstractTrait.php | 26 - .../Configurator/Traits/ArgumentTrait.php | 37 - .../Traits/AutoconfigureTrait.php | 28 - .../Configurator/Traits/AutowireTrait.php | 25 - .../Loader/Configurator/Traits/BindTrait.php | 39 - .../Loader/Configurator/Traits/CallTrait.php | 32 - .../Loader/Configurator/Traits/ClassTrait.php | 25 - .../Configurator/Traits/ConfiguratorTrait.php | 27 - .../Configurator/Traits/DecorateTrait.php | 31 - .../Configurator/Traits/DeprecateTrait.php | 32 - .../Configurator/Traits/FactoryTrait.php | 36 - .../Loader/Configurator/Traits/FileTrait.php | 25 - .../Loader/Configurator/Traits/LazyTrait.php | 30 - .../Configurator/Traits/ParentTrait.php | 41 - .../Configurator/Traits/PropertyTrait.php | 26 - .../Configurator/Traits/PublicTrait.php | 31 - .../Loader/Configurator/Traits/ShareTrait.php | 25 - .../Configurator/Traits/SyntheticTrait.php | 26 - .../Loader/Configurator/Traits/TagTrait.php | 34 - .../Loader/DirectoryLoader.php | 53 - .../Loader/FileLoader.php | 215 -- .../Loader/GlobFileLoader.php | 41 - .../Loader/IniFileLoader.php | 93 - .../Loader/PhpFileLoader.php | 188 -- .../Loader/XmlFileLoader.php | 667 ------ .../Loader/YamlFileLoader.php | 741 ------ .../schema/dic/services/services-1.0.xsd | 364 --- .../dependency-injection/Parameter.php | 32 - .../ParameterBag/ContainerBag.php | 49 - .../ParameterBag/ContainerBagInterface.php | 45 - .../EnvPlaceholderParameterBag.php | 153 -- .../ParameterBag/FrozenParameterBag.php | 63 - .../ParameterBag/ParameterBag.php | 238 -- .../ParameterBag/ParameterBagInterface.php | 83 - .../symfony/dependency-injection/README.md | 14 - .../dependency-injection/Reference.php | 44 - .../dependency-injection/ReverseContainer.php | 78 - .../dependency-injection/ServiceLocator.php | 137 -- .../TaggedContainerInterface.php | 26 - .../dependency-injection/TypedReference.php | 48 - .../symfony/dependency-injection/Variable.php | 40 - .../dependency-injection/composer.json | 56 - .../Exception/ExceptionInterface.php | 2 +- .../Exception/FileNotFoundException.php | 2 +- .../filesystem/Exception/IOException.php | 2 +- .../Exception/IOExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../filesystem/Exception/RuntimeException.php | 2 +- .../vendor/symfony/filesystem/Filesystem.php | 8 +- .../rector/vendor/symfony/filesystem/Path.php | 6 +- .../vendor/symfony/filesystem/composer.json | 2 +- .../symfony/finder/Comparator/Comparator.php | 2 +- .../finder/Comparator/DateComparator.php | 2 +- .../finder/Comparator/NumberComparator.php | 2 +- .../Exception/AccessDeniedException.php | 2 +- .../Exception/DirectoryNotFoundException.php | 2 +- .../rector/vendor/symfony/finder/Finder.php | 26 +- .../vendor/symfony/finder/Gitignore.php | 2 +- .../rector/vendor/symfony/finder/Glob.php | 2 +- .../finder/Iterator/CustomFilterIterator.php | 2 +- .../Iterator/DateRangeFilterIterator.php | 4 +- .../Iterator/DepthRangeFilterIterator.php | 2 +- .../ExcludeDirectoryFilterIterator.php | 4 +- .../Iterator/FileTypeFilterIterator.php | 2 +- .../Iterator/FilecontentFilterIterator.php | 4 +- .../Iterator/FilenameFilterIterator.php | 4 +- .../symfony/finder/Iterator/LazyIterator.php | 2 +- .../Iterator/MultiplePcreFilterIterator.php | 2 +- .../finder/Iterator/PathFilterIterator.php | 4 +- .../Iterator/RecursiveDirectoryIterator.php | 6 +- .../Iterator/SizeRangeFilterIterator.php | 4 +- .../finder/Iterator/SortableIterator.php | 2 +- .../Iterator/VcsIgnoredFilterIterator.php | 4 +- .../vendor/symfony/finder/SplFileInfo.php | 2 +- .../vendor/symfony/finder/composer.json | 2 +- .../symfony/polyfill-intl-normalizer/LICENSE | 19 - .../polyfill-intl-normalizer/Normalizer.php | 258 --- .../polyfill-intl-normalizer/README.md | 14 - .../Resources/stubs/Normalizer.php | 17 - .../unidata/canonicalComposition.php | 5 - .../unidata/canonicalDecomposition.php | 5 - .../Resources/unidata/combiningClass.php | 5 - .../unidata/compatibilityDecomposition.php | 5 - .../polyfill-intl-normalizer/bootstrap.php | 23 - .../polyfill-intl-normalizer/bootstrap80.php | 22 - .../polyfill-intl-normalizer/composer.json | 52 - .../vendor/symfony/polyfill-mbstring/LICENSE | 2 +- .../symfony/polyfill-mbstring/Mbstring.php | 69 +- .../Resources/unidata/caseFolding.php | 5 + .../Resources/unidata/lowerCase.php | 2 +- .../Resources/unidata/titleCaseRegexp.php | 2 +- .../Resources/unidata/upperCase.php | 2 +- .../symfony/polyfill-mbstring/bootstrap.php | 4 + .../symfony/polyfill-mbstring/bootstrap80.php | 4 + .../symfony/polyfill-mbstring/composer.json | 2 +- .../process/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../process/Exception/LogicException.php | 2 +- .../Exception/ProcessFailedException.php | 4 +- .../Exception/ProcessSignaledException.php | 4 +- .../Exception/ProcessTimedOutException.php | 4 +- .../process/Exception/RuntimeException.php | 2 +- .../symfony/process/ExecutableFinder.php | 2 +- .../vendor/symfony/process/InputStream.php | 16 +- .../symfony/process/PhpExecutableFinder.php | 2 +- .../vendor/symfony/process/PhpProcess.php | 6 +- .../symfony/process/Pipes/AbstractPipes.php | 4 +- .../symfony/process/Pipes/PipesInterface.php | 2 +- .../symfony/process/Pipes/UnixPipes.php | 4 +- .../symfony/process/Pipes/WindowsPipes.php | 6 +- .../rector/vendor/symfony/process/Process.php | 22 +- .../vendor/symfony/process/ProcessUtils.php | 4 +- .../vendor/symfony/process/composer.json | 2 +- .../Attribute/Required.php | 2 +- .../Attribute/SubscribedService.php | 6 +- .../Cache => service-contracts}/LICENSE | 0 .../Service => service-contracts}/README.md | 0 .../ResetInterface.php | 2 +- .../ServiceLocatorTrait.php | 6 +- .../ServiceProviderInterface.php | 4 +- .../ServiceSubscriberInterface.php | 4 +- .../ServiceSubscriberTrait.php | 8 +- .../Test/ServiceLocatorTest.php | 2 +- .../Test/ServiceLocatorTestCase.php | 10 +- .../composer.json | 2 +- .../vendor/symfony/string/AbstractString.php | 646 ------ .../symfony/string/AbstractUnicodeString.php | 523 ----- .../vendor/symfony/string/ByteString.php | 459 ---- .../vendor/symfony/string/CodePointString.php | 234 -- .../string/Exception/ExceptionInterface.php | 15 - .../Exception/InvalidArgumentException.php | 15 - .../string/Exception/RuntimeException.php | 15 - .../string/Inflector/EnglishInflector.php | 382 ---- .../string/Inflector/FrenchInflector.php | 122 - .../string/Inflector/InflectorInterface.php | 31 - .../rector/vendor/symfony/string/LICENSE | 19 - .../vendor/symfony/string/LazyString.php | 132 -- .../rector/vendor/symfony/string/README.md | 14 - .../Resources/data/wcswidth_table_wide.php | 11 - .../Resources/data/wcswidth_table_zero.php | 11 - .../symfony/string/Resources/functions.php | 34 - .../symfony/string/Slugger/AsciiSlugger.php | 164 -- .../string/Slugger/SluggerInterface.php | 25 - .../vendor/symfony/string/UnicodeString.php | 323 --- .../vendor/symfony/string/composer.json | 54 - .../symplify/easy-parallel/composer.json | 4 +- .../symplify/easy-parallel/config/config.php | 6 +- .../vendor/symplify/easy-parallel/easy-ci.php | 6 +- .../vendor/symplify/easy-parallel/ecs.php | 6 +- .../vendor/symplify/easy-parallel/rector.php | 2 +- .../CommandLine/WorkerCommandLineFactory.php | 10 +- .../src/Contract/SerializableInterface.php | 2 +- .../src/CpuCoreCountProvider.php | 6 +- .../easy-parallel/src/Enum/Action.php | 2 +- .../easy-parallel/src/Enum/Content.php | 2 +- .../easy-parallel/src/Enum/ReactCommand.php | 2 +- .../easy-parallel/src/Enum/ReactEvent.php | 2 +- .../ParallelShouldNotHappenException.php | 2 +- .../src/FileSystem/FilePathNormalizer.php | 4 +- .../CommandFromReflectionFactory.php | 6 +- .../easy-parallel/src/ScheduleFactory.php | 4 +- .../src/ValueObject/EasyParallelConfig.php | 2 +- .../src/ValueObject/ParallelProcess.php | 22 +- .../src/ValueObject/ProcessPool.php | 6 +- .../src/ValueObject/Schedule.php | 2 +- .../src/ValueObject/RuleDefinition.php | 2 +- .../vendor/webmozart/assert/composer.json | 6 +- .../vendor/webmozart/assert/src/Assert.php | 2 +- .../assert/src/InvalidArgumentException.php | 2 +- .../vendor/webmozart/assert/src/Mixin.php | 2 +- .../console/Formatter/OutputFormatter.php | 11 +- vendor/symfony/polyfill-ctype/LICENSE | 2 +- vendor/symfony/polyfill-ctype/composer.json | 2 +- vendor/symfony/polyfill-intl-grapheme/LICENSE | 2 +- .../polyfill-intl-grapheme/composer.json | 2 +- .../symfony/polyfill-intl-normalizer/LICENSE | 2 +- .../polyfill-intl-normalizer/composer.json | 2 +- vendor/symfony/polyfill-mbstring/LICENSE | 2 +- vendor/symfony/polyfill-mbstring/Mbstring.php | 87 +- .../Resources/unidata/caseFolding.php | 119 + .../symfony/polyfill-mbstring/bootstrap.php | 4 + .../symfony/polyfill-mbstring/bootstrap80.php | 4 + .../symfony/polyfill-mbstring/composer.json | 2 +- vendor/symfony/polyfill-php73/LICENSE | 2 +- vendor/symfony/polyfill-php73/composer.json | 2 +- vendor/symfony/polyfill-php80/LICENSE | 2 +- vendor/symfony/polyfill-php80/composer.json | 2 +- vendor/symfony/polyfill-php81/LICENSE | 2 +- vendor/symfony/polyfill-php81/README.md | 1 + .../Resources/stubs/CURLStringFile.php | 51 + vendor/symfony/polyfill-php81/composer.json | 2 +- vendor/symfony/process/Process.php | 2 +- 1586 files changed, 6996 insertions(+), 45351 deletions(-) create mode 100644 vendor/composer/semver/phpstan-baseline.neon delete mode 100644 vendor/rector/rector/packages/Caching/FileSystem/DependencyResolver.php delete mode 100644 vendor/rector/rector/packages/Config/LazyRectorConfig.php delete mode 100644 vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/EmptyNameResolver.php delete mode 100644 vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/BleedingEdgeIncludePurifier.php delete mode 100644 vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanExtensionsConfigResolver.php delete mode 100644 vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorDependencyInterface.php delete mode 100644 vendor/rector/rector/rules/Arguments/Rector/FuncCall/SwapFuncCallArgumentsRector.php delete mode 100644 vendor/rector/rector/rules/Arguments/Rector/MethodCall/SwapMethodCallArgumentsRector.php delete mode 100644 vendor/rector/rector/rules/Arguments/ValueObject/SwapFuncCallArguments.php delete mode 100644 vendor/rector/rector/rules/Arguments/ValueObject/SwapMethodCallArguments.php create mode 100644 vendor/rector/rector/rules/CodeQuality/Rector/Ternary/NumberCompareToMaxFuncCallRector.php delete mode 100644 vendor/rector/rector/rules/Php81/Rector/FunctionLike/IntersectionTypesRector.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictFluentReturnRector.php delete mode 100644 vendor/rector/rector/src/Config/Loader/ConfigureCallMergingLoaderFactory.php delete mode 100644 vendor/rector/rector/src/Configuration/ValueObjectInliner.php create mode 100644 vendor/rector/rector/src/Contract/DependencyInjection/ResetableInterface.php delete mode 100644 vendor/rector/rector/src/Contract/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverInterface.php delete mode 100644 vendor/rector/rector/src/Contract/Processor/FileProcessorInterface.php delete mode 100644 vendor/rector/rector/src/Contract/Rector/PhpRectorInterface.php rename vendor/rector/rector/src/Contract/Rector/{ScopeAwarePhpRectorInterface.php => ScopeAwareRectorInterface.php} (78%) delete mode 100644 vendor/rector/rector/src/DependencyInjection/Collector/ConfigureCallValuesCollector.php delete mode 100644 vendor/rector/rector/src/DependencyInjection/CompilerPass/MergeImportedRectorConfigureCallValuesCompilerPass.php delete mode 100644 vendor/rector/rector/src/DependencyInjection/CompilerPass/RemoveSkippedRectorsCompilerPass.php create mode 100644 vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php delete mode 100644 vendor/rector/rector/src/DependencyInjection/Loader/ConfigurableCallValuesCollectingPhpFileLoader.php delete mode 100644 vendor/rector/rector/src/FileSystem/PhpFilesFinder.php delete mode 100644 vendor/rector/rector/src/Kernel/ContainerBuilderBuilder.php delete mode 100644 vendor/rector/rector/src/Kernel/ContainerBuilderFactory.php delete mode 100644 vendor/rector/rector/src/Kernel/RectorKernel.php delete mode 100644 vendor/rector/rector/src/NonPhpFile/NonPhpFileProcessor.php delete mode 100644 vendor/rector/rector/src/NonPhpFile/Rector/RenameClassNonPhpRector.php create mode 100644 vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php delete mode 100644 vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php delete mode 100644 vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php delete mode 100644 vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php delete mode 100644 vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ObjectTypeToCallReflectionResolver.php delete mode 100644 vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverRegistry.php delete mode 100644 vendor/rector/rector/vendor/bin/neon-lint create mode 100644 vendor/rector/rector/vendor/composer/semver/phpstan-baseline.neon delete mode 100644 vendor/rector/rector/vendor/nette/neon/bin/neon-lint delete mode 100644 vendor/rector/rector/vendor/nette/neon/composer.json delete mode 100644 vendor/rector/rector/vendor/nette/neon/license.md delete mode 100644 vendor/rector/rector/vendor/nette/neon/phpstan-baseline.neon delete mode 100644 vendor/rector/rector/vendor/nette/neon/readme.md delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Decoder.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Encoder.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Entity.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Exception.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Lexer.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Neon.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayItemNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/BlockArrayNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityChainNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/InlineArrayNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/LiteralNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Node/StringNode.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Parser.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Token.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/TokenStream.php delete mode 100644 vendor/rector/rector/vendor/nette/neon/src/Neon/Traverser.php delete mode 100644 vendor/rector/rector/vendor/psr/cache/LICENSE.txt delete mode 100644 vendor/rector/rector/vendor/psr/cache/README.md delete mode 100644 vendor/rector/rector/vendor/psr/cache/composer.json delete mode 100644 vendor/rector/rector/vendor/psr/cache/src/CacheException.php delete mode 100644 vendor/rector/rector/vendor/psr/cache/src/CacheItemInterface.php delete mode 100644 vendor/rector/rector/vendor/psr/cache/src/CacheItemPoolInterface.php delete mode 100644 vendor/rector/rector/vendor/psr/cache/src/InvalidArgumentException.php delete mode 100644 vendor/rector/rector/vendor/psr/event-dispatcher/LICENSE delete mode 100644 vendor/rector/rector/vendor/psr/event-dispatcher/README.md delete mode 100644 vendor/rector/rector/vendor/psr/event-dispatcher/composer.json delete mode 100644 vendor/rector/rector/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php delete mode 100644 vendor/rector/rector/vendor/psr/event-dispatcher/src/ListenerProviderInterface.php delete mode 100644 vendor/rector/rector/vendor/psr/event-dispatcher/src/StoppableEventInterface.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/config/config.php create mode 100644 vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Property/OrderByKeyToClassConstRector.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-downgrade-php/config/config.php create mode 100644 vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/LNumber/DowngradeOctalNumberRector.php create mode 100644 vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/MethodCall/DowngradeIsEnumRector.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-phpunit/config/config.php create mode 100644 vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php delete mode 100644 vendor/rector/rector/vendor/rector/rector-symfony/config/config.php create mode 100644 vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Builder/ClassBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGenerator.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Builder/Method.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Builder/Property.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/ConfigCache.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/ConfigCacheFactory.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/ConfigCacheFactoryInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/ConfigCacheInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/ArrayNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/BaseNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/BooleanNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/ExprBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/MergeBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeParentInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/TreeBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/ValidationBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/ConfigurableInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Configuration.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/ConfigurationInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/EnumNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Exception/Exception.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidTypeException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Exception/UnsetKeyException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/FloatNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/IntegerNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/NodeInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/NumericNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/Processor.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/PrototypeNodeInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/PrototypedArrayNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/ScalarNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Definition/VariableNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Exception/LoaderLoadException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/FileLocator.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/FileLocatorInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/DelegatingLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/FileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/GlobFileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/Loader.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/LoaderInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolver.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolverInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Loader/ParamConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/ClassExistenceResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/ComposerResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/DirectoryResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/FileExistenceResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/FileResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/GlobResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/ReflectionClassResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/ResourceInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCache.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/ResourceCheckerInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Util/Exception/InvalidXmlException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Util/Exception/XmlParsingException.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/Util/XmlUtils.php delete mode 100644 vendor/rector/rector/vendor/symfony/config/composer.json rename vendor/rector/rector/vendor/symfony/{dependency-injection => console}/PATCHES.txt (54%) delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Cache/CacheInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Cache/CacheTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Cache/CallbackInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Cache/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Cache/TagAwareCacheInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Cache/composer.json delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Deprecation/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Deprecation/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Deprecation/composer.json delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Deprecation/function.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/Event.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/EventDispatcherInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/composer.json delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/ChunkInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ClientExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/DecodingExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/HttpExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/RedirectionExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ServerExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TimeoutExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TransportExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/HttpClientInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseStreamInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/Fixtures/web/index.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/HttpClientTestCase.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/TestHttpServer.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/HttpClient/composer.json delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Service/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/LocaleAwareInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/Test/TranslatorTest.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatableInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/Translation/composer.json delete mode 100644 vendor/rector/rector/vendor/symfony/contracts/composer.json delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Alias.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/AbstractArgument.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/BoundArgument.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/IteratorArgument.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsDecorator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autowire.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/MapDecorated.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedIterator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedLocator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Target.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/When.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ChildDefinition.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowirePass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/Compiler.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PassConfig.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Container.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ContainerBuilder.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ContainerInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Definition.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Dumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/DumperInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/PhpDumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Preloader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/XmlDumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/YamlDumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessor.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvParameterException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/LogicException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/RuntimeException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Extension/AbstractExtension.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Extension/Extension.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/ClosureLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/FileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/IniFileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Parameter.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Reference.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ReverseContainer.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/ServiceLocator.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/TaggedContainerInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/TypedReference.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/Variable.php delete mode 100644 vendor/rector/rector/vendor/symfony/dependency-injection/composer.json delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Normalizer.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalComposition.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php delete mode 100644 vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/composer.json create mode 100644 vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/Attribute/Required.php (90%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/Attribute/SubscribedService.php (88%) rename vendor/rector/rector/vendor/symfony/{contracts/Cache => service-contracts}/LICENSE (100%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/README.md (100%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/ResetInterface.php (94%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/ServiceLocatorTrait.php (95%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/ServiceProviderInterface.php (91%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/ServiceSubscriberInterface.php (95%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/ServiceSubscriberTrait.php (92%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/Test/ServiceLocatorTest.php (87%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/Test/ServiceLocatorTestCase.php (89%) rename vendor/rector/rector/vendor/symfony/{contracts/Service => service-contracts}/composer.json (94%) delete mode 100644 vendor/rector/rector/vendor/symfony/string/AbstractString.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/AbstractUnicodeString.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/ByteString.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/CodePointString.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Exception/ExceptionInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Exception/InvalidArgumentException.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Exception/RuntimeException.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Inflector/EnglishInflector.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Inflector/FrenchInflector.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Inflector/InflectorInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/LICENSE delete mode 100644 vendor/rector/rector/vendor/symfony/string/LazyString.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/README.md delete mode 100644 vendor/rector/rector/vendor/symfony/string/Resources/data/wcswidth_table_wide.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Resources/data/wcswidth_table_zero.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Resources/functions.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Slugger/AsciiSlugger.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/Slugger/SluggerInterface.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/UnicodeString.php delete mode 100644 vendor/rector/rector/vendor/symfony/string/composer.json create mode 100644 vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php create mode 100644 vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php diff --git a/composer.json b/composer.json index 6e3190049..40d4f6eef 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "require": { "php": ">=7.4", - "rector/rector": "0.17.12", + "rector/rector": "0.18.2", "friendsofphp/php-cs-fixer": "3.22.0", "redaxo/php-cs-fixer-config": "^1.0" }, diff --git a/composer.lock b/composer.lock index c127893f9..1b250cfa6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c991f60a709cc7ade25baef3c02f73ea", + "content-hash": "0ca606a31a09ad7574839e362ced0baa", "packages": [ { "name": "composer/pcre", @@ -79,16 +79,16 @@ }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -138,9 +138,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -156,7 +156,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T09:50:34+00:00" }, { "name": "composer/xdebug-handler", @@ -524,16 +524,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.28", + "version": "1.10.33", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e4545b55904ebef470423d3ddddb74fa7325497a" + "reference": "03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e4545b55904ebef470423d3ddddb74fa7325497a", - "reference": "e4545b55904ebef470423d3ddddb74fa7325497a", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1", + "reference": "03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1", "shasum": "" }, "require": { @@ -582,7 +582,7 @@ "type": "tidelift" } ], - "time": "2023-08-08T12:33:42+00:00" + "time": "2023-09-04T12:20:53+00:00" }, { "name": "psr/cache", @@ -783,21 +783,21 @@ }, { "name": "rector/rector", - "version": "0.17.12", + "version": "0.18.2", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "af3a14a8a9fffa3100b730571c356f6c658d5e09" + "reference": "8606564b50ce70f99839d35c67f4536dc2ea090d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/af3a14a8a9fffa3100b730571c356f6c658d5e09", - "reference": "af3a14a8a9fffa3100b730571c356f6c658d5e09", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/8606564b50ce70f99839d35c67f4536dc2ea090d", + "reference": "8606564b50ce70f99839d35c67f4536dc2ea090d", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.10.26" + "phpstan/phpstan": "^1.10.31" }, "conflict": { "rector/rector-doctrine": "*", @@ -827,7 +827,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.17.12" + "source": "https://github.com/rectorphp/rector/tree/0.18.2" }, "funding": [ { @@ -835,7 +835,7 @@ "type": "github" } ], - "time": "2023-08-10T15:22:02+00:00" + "time": "2023-09-06T08:50:38+00:00" }, { "name": "redaxo/php-cs-fixer-config", @@ -946,16 +946,16 @@ }, { "name": "symfony/console", - "version": "v5.4.26", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "b504a3d266ad2bb632f196c0936ef2af5ff6e273" + "reference": "f4f71842f24c2023b91237c72a365306f3c58827" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/b504a3d266ad2bb632f196c0936ef2af5ff6e273", - "reference": "b504a3d266ad2bb632f196c0936ef2af5ff6e273", + "url": "https://api.github.com/repos/symfony/console/zipball/f4f71842f24c2023b91237c72a365306f3c58827", + "reference": "f4f71842f24c2023b91237c72a365306f3c58827", "shasum": "" }, "require": { @@ -1025,7 +1025,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.26" + "source": "https://github.com/symfony/console/tree/v5.4.28" }, "funding": [ { @@ -1041,7 +1041,7 @@ "type": "tidelift" } ], - "time": "2023-07-19T20:11:33+00:00" + "time": "2023-08-07T06:12:30+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1472,16 +1472,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -1496,7 +1496,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1534,7 +1534,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -1550,20 +1550,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -1575,7 +1575,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1615,7 +1615,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -1631,20 +1631,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -1656,7 +1656,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1699,7 +1699,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -1715,20 +1715,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -1743,7 +1743,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1782,7 +1782,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -1798,20 +1798,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { @@ -1820,7 +1820,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1861,7 +1861,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -1877,20 +1877,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -1899,7 +1899,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1944,7 +1944,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -1960,20 +1960,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", "shasum": "" }, "require": { @@ -1982,7 +1982,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2023,7 +2023,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" }, "funding": [ { @@ -2039,20 +2039,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/process", - "version": "v5.4.26", + "version": "v5.4.28", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f" + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/1a44dc377ec86a50fab40d066cd061e28a6b482f", - "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f", + "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", "shasum": "" }, "require": { @@ -2085,7 +2085,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.26" + "source": "https://github.com/symfony/process/tree/v5.4.28" }, "funding": [ { @@ -2101,7 +2101,7 @@ "type": "tidelift" } ], - "time": "2023-07-12T15:44:31+00:00" + "time": "2023-08-07T10:36:04+00:00" }, { "name": "symfony/service-contracts", @@ -2348,5 +2348,5 @@ "platform-overrides": { "php": "7.4.30" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/vendor/bin/phpstan b/vendor/bin/phpstan index d76c0be76..79728a4c1 100755 --- a/vendor/bin/phpstan +++ b/vendor/bin/phpstan @@ -116,4 +116,9 @@ if (PHP_VERSION_ID < 80000) { } } + +if (__FILE__ === realpath($_SERVER['SCRIPT_NAME'])) { + $_SERVER['SCRIPT_NAME'] = realpath(__DIR__ . '/..'.'/phpstan/phpstan/phpstan'); +} + return include __DIR__ . '/..'.'/phpstan/phpstan/phpstan'; diff --git a/vendor/bin/phpstan.phar b/vendor/bin/phpstan.phar index fecf96f69..d0951b2ed 100755 --- a/vendor/bin/phpstan.phar +++ b/vendor/bin/phpstan.phar @@ -116,4 +116,9 @@ if (PHP_VERSION_ID < 80000) { } } + +if (__FILE__ === realpath($_SERVER['SCRIPT_NAME'])) { + $_SERVER['SCRIPT_NAME'] = realpath(__DIR__ . '/..'.'/phpstan/phpstan/phpstan.phar'); +} + return include __DIR__ . '/..'.'/phpstan/phpstan/phpstan.phar'; diff --git a/vendor/bin/rector b/vendor/bin/rector index 94b8f0fc6..fa1928615 100755 --- a/vendor/bin/rector +++ b/vendor/bin/rector @@ -116,4 +116,9 @@ if (PHP_VERSION_ID < 80000) { } } + +if (__FILE__ === realpath($_SERVER['SCRIPT_NAME'])) { + $_SERVER['SCRIPT_NAME'] = realpath(__DIR__ . '/..'.'/rector/rector/bin/rector'); +} + return include __DIR__ . '/..'.'/rector/rector/bin/rector'; diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index ee94447c7..84b3ce3cd 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -7,6 +7,7 @@ return array( 'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', + 'CURLStringFile' => $vendorDir . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php', 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', 'Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 44dc94b6c..6e9a5c8f5 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -188,6 +188,7 @@ class ComposerStaticInit432d9322d3d4193d52e9a1d1ec2ff418 public static $classMap = array ( 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', + 'CURLStringFile' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php', 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', 'Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index ff3b7bc95..db15f4c72 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -76,17 +76,17 @@ }, { "name": "composer/semver", - "version": "3.3.2", - "version_normalized": "3.3.2.0", + "version": "3.4.0", + "version_normalized": "3.4.0.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -96,7 +96,7 @@ "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, - "time": "2022-04-01T19:23:25+00:00", + "time": "2023-08-31T09:50:34+00:00", "type": "library", "extra": { "branch-alias": { @@ -138,9 +138,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -539,17 +539,17 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.28", - "version_normalized": "1.10.28.0", + "version": "1.10.33", + "version_normalized": "1.10.33.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "e4545b55904ebef470423d3ddddb74fa7325497a" + "reference": "03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e4545b55904ebef470423d3ddddb74fa7325497a", - "reference": "e4545b55904ebef470423d3ddddb74fa7325497a", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1", + "reference": "03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1", "shasum": "" }, "require": { @@ -558,7 +558,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "time": "2023-08-08T12:33:42+00:00", + "time": "2023-09-04T12:20:53+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -813,22 +813,22 @@ }, { "name": "rector/rector", - "version": "0.17.12", - "version_normalized": "0.17.12.0", + "version": "0.18.2", + "version_normalized": "0.18.2.0", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "af3a14a8a9fffa3100b730571c356f6c658d5e09" + "reference": "8606564b50ce70f99839d35c67f4536dc2ea090d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/af3a14a8a9fffa3100b730571c356f6c658d5e09", - "reference": "af3a14a8a9fffa3100b730571c356f6c658d5e09", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/8606564b50ce70f99839d35c67f4536dc2ea090d", + "reference": "8606564b50ce70f99839d35c67f4536dc2ea090d", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "phpstan/phpstan": "^1.10.26" + "phpstan/phpstan": "^1.10.31" }, "conflict": { "rector/rector-doctrine": "*", @@ -836,7 +836,7 @@ "rector/rector-phpunit": "*", "rector/rector-symfony": "*" }, - "time": "2023-08-10T15:22:02+00:00", + "time": "2023-09-06T08:50:38+00:00", "bin": [ "bin/rector" ], @@ -860,7 +860,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.17.12" + "source": "https://github.com/rectorphp/rector/tree/0.18.2" }, "funding": [ { @@ -985,17 +985,17 @@ }, { "name": "symfony/console", - "version": "v5.4.26", - "version_normalized": "5.4.26.0", + "version": "v5.4.28", + "version_normalized": "5.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "b504a3d266ad2bb632f196c0936ef2af5ff6e273" + "reference": "f4f71842f24c2023b91237c72a365306f3c58827" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/b504a3d266ad2bb632f196c0936ef2af5ff6e273", - "reference": "b504a3d266ad2bb632f196c0936ef2af5ff6e273", + "url": "https://api.github.com/repos/symfony/console/zipball/f4f71842f24c2023b91237c72a365306f3c58827", + "reference": "f4f71842f24c2023b91237c72a365306f3c58827", "shasum": "" }, "require": { @@ -1033,7 +1033,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2023-07-19T20:11:33+00:00", + "time": "2023-08-07T06:12:30+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1067,7 +1067,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.26" + "source": "https://github.com/symfony/console/tree/v5.4.28" }, "funding": [ { @@ -1532,17 +1532,17 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -1554,11 +1554,11 @@ "suggest": { "ext-ctype": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1597,7 +1597,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -1617,17 +1617,17 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -1636,11 +1636,11 @@ "suggest": { "ext-intl": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1681,7 +1681,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -1701,17 +1701,17 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -1720,11 +1720,11 @@ "suggest": { "ext-intl": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1768,7 +1768,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -1788,17 +1788,17 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -1810,11 +1810,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-07-28T09:04:16+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1854,7 +1854,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -1874,27 +1874,27 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { "php": ">=7.1" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1936,7 +1936,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -1956,27 +1956,27 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { "php": ">=7.1" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2022,7 +2022,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -2042,27 +2042,27 @@ }, { "name": "symfony/polyfill-php81", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", "shasum": "" }, "require": { "php": ">=7.1" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-01-26T09:26:14+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2104,7 +2104,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.0" }, "funding": [ { @@ -2124,24 +2124,24 @@ }, { "name": "symfony/process", - "version": "v5.4.26", - "version_normalized": "5.4.26.0", + "version": "v5.4.28", + "version_normalized": "5.4.28.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f" + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/1a44dc377ec86a50fab40d066cd061e28a6b482f", - "reference": "1a44dc377ec86a50fab40d066cd061e28a6b482f", + "url": "https://api.github.com/repos/symfony/process/zipball/45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", + "reference": "45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-php80": "^1.16" }, - "time": "2023-07-12T15:44:31+00:00", + "time": "2023-08-07T10:36:04+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2169,7 +2169,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.26" + "source": "https://github.com/symfony/process/tree/v5.4.28" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index e96fdafb8..752293df2 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => '76ec7117ea755d6635411e683b9a0afbb70e9fc4', + 'reference' => '55997c8c4fdcfa9b7f4e500626f10c179e899d32', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => '76ec7117ea755d6635411e683b9a0afbb70e9fc4', + 'reference' => '55997c8c4fdcfa9b7f4e500626f10c179e899d32', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -29,9 +29,9 @@ 'dev_requirement' => false, ), 'composer/semver' => array( - 'pretty_version' => '3.3.2', - 'version' => '3.3.2.0', - 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9', + 'pretty_version' => '3.4.0', + 'version' => '3.4.0.0', + 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), @@ -83,9 +83,9 @@ 'dev_requirement' => false, ), 'phpstan/phpstan' => array( - 'pretty_version' => '1.10.28', - 'version' => '1.10.28.0', - 'reference' => 'e4545b55904ebef470423d3ddddb74fa7325497a', + 'pretty_version' => '1.10.33', + 'version' => '1.10.33.0', + 'reference' => '03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), @@ -140,9 +140,9 @@ ), ), 'rector/rector' => array( - 'pretty_version' => '0.17.12', - 'version' => '0.17.12.0', - 'reference' => 'af3a14a8a9fffa3100b730571c356f6c658d5e09', + 'pretty_version' => '0.18.2', + 'version' => '0.18.2.0', + 'reference' => '8606564b50ce70f99839d35c67f4536dc2ea090d', 'type' => 'library', 'install_path' => __DIR__ . '/../rector/rector', 'aliases' => array(), @@ -167,9 +167,9 @@ 'dev_requirement' => false, ), 'symfony/console' => array( - 'pretty_version' => 'v5.4.26', - 'version' => '5.4.26.0', - 'reference' => 'b504a3d266ad2bb632f196c0936ef2af5ff6e273', + 'pretty_version' => 'v5.4.28', + 'version' => '5.4.28.0', + 'reference' => 'f4f71842f24c2023b91237c72a365306f3c58827', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), @@ -236,72 +236,72 @@ 'dev_requirement' => false, ), 'symfony/polyfill-ctype' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '5bbc823adecdae860bb64756d639ecfec17b050a', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => 'ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/polyfill-intl-grapheme' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '511a08c03c1960e08a883f4cffcacd219b758354', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '875e90aeea2777b6f135677f618529449334a612', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/polyfill-intl-normalizer' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/polyfill-mbstring' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '42292d99c55abe617799667f454222c54c60e229', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/polyfill-php73' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '9e8ecb5f92152187c4799efd3c96b78ccab18ff9', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => 'fe2f306d1d9d346a7fee353d0d5012e401e984b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php73', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/polyfill-php80' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '6caa57379c4aec19c0a12a38b59b26487dcfe4b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/polyfill-php81' => array( - 'pretty_version' => 'v1.27.0', - 'version' => '1.27.0.0', - 'reference' => '707403074c8ea6e2edaf8794b0157a0bfa52157a', + 'pretty_version' => 'v1.28.0', + 'version' => '1.28.0.0', + 'reference' => '7581cd600fa9fd681b797d00b02f068e2f13263b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php81', 'aliases' => array(), 'dev_requirement' => false, ), 'symfony/process' => array( - 'pretty_version' => 'v5.4.26', - 'version' => '5.4.26.0', - 'reference' => '1a44dc377ec86a50fab40d066cd061e28a6b482f', + 'pretty_version' => 'v5.4.28', + 'version' => '5.4.28.0', + 'reference' => '45261e1fccad1b5447a8d7a8e67aa7b4a9798b7b', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), diff --git a/vendor/composer/semver/CHANGELOG.md b/vendor/composer/semver/CHANGELOG.md index c95147735..3b1116124 100644 --- a/vendor/composer/semver/CHANGELOG.md +++ b/vendor/composer/semver/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +### [3.4.0] 2023-08-31 + + * Support larger major version numbers (#149) + ### [3.3.2] 2022-04-01 * Fixed handling of non-string values (#134) @@ -175,6 +179,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Namespace: `Composer\Test\Package\LinkConstraint` -> `Composer\Test\Semver\Constraint` * Changed: code style using php-cs-fixer. +[3.4.0]: https://github.com/composer/semver/compare/3.3.2...3.4.0 [3.3.2]: https://github.com/composer/semver/compare/3.3.1...3.3.2 [3.3.1]: https://github.com/composer/semver/compare/3.3.0...3.3.1 [3.3.0]: https://github.com/composer/semver/compare/3.2.9...3.3.0 diff --git a/vendor/composer/semver/README.md b/vendor/composer/semver/README.md index 35db99a5c..767784906 100644 --- a/vendor/composer/semver/README.md +++ b/vendor/composer/semver/README.md @@ -6,8 +6,9 @@ Semver (Semantic Versioning) library that offers utilities, version constraint p Originally written as part of [composer/composer](https://github.com/composer/composer), now extracted and made available as a stand-alone library. -[![Continuous Integration](https://github.com/composer/semver/workflows/Continuous%20Integration/badge.svg?branch=main)](https://github.com/composer/semver/actions) - +[![Continuous Integration](https://github.com/composer/semver/actions/workflows/continuous-integration.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/continuous-integration.yml) +[![PHP Lint](https://github.com/composer/semver/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/lint.yml) +[![PHPStan](https://github.com/composer/semver/actions/workflows/phpstan.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/phpstan.yml) Installation ------------ @@ -15,7 +16,7 @@ Installation Install the latest version with: ```bash -$ composer require composer/semver +composer require composer/semver ``` diff --git a/vendor/composer/semver/composer.json b/vendor/composer/semver/composer.json index ba78676dd..f3a6f4cc6 100644 --- a/vendor/composer/semver/composer.json +++ b/vendor/composer/semver/composer.json @@ -27,7 +27,7 @@ } ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues" }, "require": { diff --git a/vendor/composer/semver/phpstan-baseline.neon b/vendor/composer/semver/phpstan-baseline.neon new file mode 100644 index 000000000..933cf2031 --- /dev/null +++ b/vendor/composer/semver/phpstan-baseline.neon @@ -0,0 +1,11 @@ +parameters: + ignoreErrors: + - + message: "#^Parameter \\#1 \\$operator of class Composer\\\\Semver\\\\Constraint\\\\Constraint constructor expects '\\!\\='\\|'\\<'\\|'\\<\\='\\|'\\<\\>'\\|'\\='\\|'\\=\\='\\|'\\>'\\|'\\>\\=', non\\-falsy\\-string given\\.$#" + count: 1 + path: src/VersionParser.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and non\\-empty\\-string will always evaluate to false\\.$#" + count: 2 + path: src/VersionParser.php diff --git a/vendor/composer/semver/src/VersionParser.php b/vendor/composer/semver/src/VersionParser.php index 202ce2473..9318629a7 100644 --- a/vendor/composer/semver/src/VersionParser.php +++ b/vendor/composer/semver/src/VersionParser.php @@ -134,15 +134,15 @@ public function normalize($version, $fullVersion = null) } // match classical versioning - if (preg_match('{^v?(\d{1,5})(\.\d++)?(\.\d++)?(\.\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) { + if (preg_match('{^v?(\d{1,5}+)(\.\d++)?(\.\d++)?(\.\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) { $version = $matches[1] . (!empty($matches[2]) ? $matches[2] : '.0') . (!empty($matches[3]) ? $matches[3] : '.0') . (!empty($matches[4]) ? $matches[4] : '.0'); $index = 5; // match date(time) based versioning - } elseif (preg_match('{^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1,3})?)' . self::$modifierRegex . '$}i', $version, $matches)) { - $version = preg_replace('{\D}', '.', $matches[1]); + } elseif (preg_match('{^v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]?\d{1,3}){0,2})' . self::$modifierRegex . '$}i', $version, $matches)) { + $version = (string) preg_replace('{\D}', '.', $matches[1]); $index = 2; } @@ -260,16 +260,16 @@ public function parseConstraints($constraints) } $orGroups = array(); - foreach ($orConstraints as $constraints) { - $andConstraints = preg_split('{(?< ,]) *(?< ,]) *(? 1) { $constraintObjects = array(); - foreach ($andConstraints as $constraint) { - foreach ($this->parseConstraint($constraint) as $parsedConstraint) { - $constraintObjects[] = $parsedConstraint; + foreach ($andConstraints as $andConstraint) { + foreach ($this->parseConstraint($andConstraint) as $parsedAndConstraint) { + $constraintObjects[] = $parsedAndConstraint; } } } else { @@ -285,11 +285,11 @@ public function parseConstraints($constraints) $orGroups[] = $constraint; } - $constraint = MultiConstraint::create($orGroups, false); + $parsedConstraint = MultiConstraint::create($orGroups, false); - $constraint->setPrettyString($prettyConstraint); + $parsedConstraint->setPrettyString($prettyConstraint); - return $constraint; + return $parsedConstraint; } /** diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index c5cab46a49675f9179502620d9d8dd01c5137de4..6bf0b9c7a97ef4769339fff85fa4544f8892ec67 100755 GIT binary patch delta 398560 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 z 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 T;w#ZL>-n#|@=ElZv2XqllatxN delta 366727 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Ç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 YBfj5^Dzzx{3akjIDoKcg~H5C8xG diff --git a/vendor/phpstan/phpstan/phpstan.phar.asc b/vendor/phpstan/phpstan/phpstan.phar.asc index 0b5e655d2..2a8a4b65b 100644 --- a/vendor/phpstan/phpstan/phpstan.phar.asc +++ b/vendor/phpstan/phpstan/phpstan.phar.asc @@ -1,16 +1,16 @@ -----BEGIN PGP SIGNATURE----- -iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmTSNgUACgkQUcZzBf/C -5cA8rw/9EPjeTcTM6JkrBgoTxcowt5dQyQIlihqHZTymzi+sHyDRbCoE4/jXRRYL -xDbyKn6rb0klsdRkWtcfPmzTyNmPby7Ue61M6TdO9MNPbHQ75GOW6B72Lhvm8uAW -ackyZPO49hNsB2uT0ND5eVKKABQDa9qoiM+iiO06Sv6mvLyX5xP20SZTy/S7iEWd -EpCWkqmVHcdym2nQEIZVlmuI1tedMIMHTUdpRQPplwpGCbp1NJj3mGjix2ioGxaQ -EsfXWblsrG7zaYDSFRVBTFQHMfcsPD7vrXNC6/47Z+69467cCcsKf9xUnLKeJqcc -2l5qTfV3nm9oiKs9zNlGeyoTIgVRpRnvXmpmtDfZn0eFgBaYp2rBmNWQKhMHtlyJ -x1PFS3rWe3lgaKD4VRm9gcOVW12Ikpc0ZNez9wgldRx8gzYFUW8XgEGsT1nnnTdC -80KKjd8AgCkoqR2NJs2Es1nFfJVKv8QkcndBAfzRTwTyMbI5716S2EMhcVBZxdS/ -xf07/geRkBZUjahqarNH0RnClEN2XpRyjnMMaReiMBerMuuCHD7YfwenivgVqnZ3 -MFvzw7/IGO2pnxGP7Mop+FzrB3me7OvOP6reyOj/wR7uJyZu4328XZ2cvlkTEuSI -PyqJiQxkeuhX9I2NaYL8HMrNMgzPIrn4fRmsNjKGqfAnjevo2qQ= -=UH7D +iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmT1y40ACgkQUcZzBf/C +5cDm6Q//VupQizxW3TICxhwzMDz05+nI8d72mn5vd94Niat90L1wPVHSZ9eBQSs3 +xMGVKJufB/3tQp6rviYk0aFnTFsKYkgwQYSDk1P9D7VrcJdpB461P3FT4MGsRk8E +SSo55EuMGpiVvgoKbiPXeYV76yEpSMpelbKDNTm7iglLFVQKAnTv17aQv/UdBoYk +t/dOS0ovoWmjkj9837EA5o2FAkhA5njlpvRs1l5Jt/tZsZtJTcDjPYfP5kIGbOwp +V6xKYW7JYht+O0si3GxGmWGOE4VbOHLpUDpLMmVu53njjeGAIkPgX53TqBRbAbVL +FjpDSZYC08lE4WblqXZEP6aKqVqthQ4LcGfyZDvuWDgPGHf86cTvfHQvtqRY45kU +GhFDz6IfVlwBrfpc4hKfbhF6Q3Txm8ZSSfiVHim8JFjCqO+jn4qmaXGaOqbNUfv9 +fLgg7Bbnu1tZdMv6JJP5Kmk0x5wp4m2vFxDd6NGfm7uz9182/LtXOjqQ0MuGfL+j +Dw53dl+WdUpr4Xk1m1GkYwDF9zLIwBB7dEghz6c4nbiGvh31MUk6N+4N2eGkjtWW +B1PPORcpxxXSlhtftCwsJVxRFodQu9cmI0qmw4EUEipFrkFuT7a1rNF48NFyfRMh +PcB/UcUHMCL7owhfQEEuPvqIPJS4saesCdFeJAM0MKuXB1nNGTQ= +=HpaR -----END PGP SIGNATURE----- diff --git a/vendor/rector/rector/bin/rector b/vendor/rector/rector/bin/rector index 04535756c..10db8eded 100755 --- a/vendor/rector/rector/bin/rector +++ b/vendor/rector/rector/bin/rector @@ -1,5 +1,5 @@ #!/usr/bin/env php import(EasyParallelConfig::FILE_PATH); $rectorConfig->paths([]); $rectorConfig->skip([]); $rectorConfig->autoloadPaths([]); @@ -96,31 +21,9 @@ $rectorConfig->fileExtensions(['php']); $rectorConfig->cacheDirectory(\sys_get_temp_dir() . '/rector_cached_files'); $rectorConfig->containerCacheDirectory(\sys_get_temp_dir()); - $services = $rectorConfig->services(); - $services->defaults()->public()->autowire()->autoconfigure(); - $services->load('Rector\\', __DIR__ . '/../packages')->exclude([ - __DIR__ . '/../packages/Config/RectorConfig.php', - __DIR__ . '/../packages/*/{ValueObject,Contract,Exception}', - __DIR__ . '/../packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php', - __DIR__ . '/../packages/Testing/PHPUnit', - __DIR__ . '/../packages/BetterPhpDocParser/PhpDoc', - __DIR__ . '/../packages/PhpDocParser/NodeVisitor', - __DIR__ . '/../packages/PhpDocParser/PhpParser/SmartPhpParser.php', - __DIR__ . '/../packages/PhpDocParser/ValueObject', - __DIR__ . '/../packages/PhpDocParser/PhpDocParser/PhpDocNodeVisitor/CallablePhpDocNodeVisitor.php', - __DIR__ . '/../packages/PHPStanStaticTypeMapper/Enum', - __DIR__ . '/../packages/Caching/Cache.php', - __DIR__ . '/../packages/NodeTypeResolver/PHPStan/ObjectWithoutClassTypeWithParentTypes.php', - // used in PHPStan - __DIR__ . '/../packages/NodeTypeResolver/Reflection/BetterReflection/RectorBetterReflectionSourceLocatorFactory.php', - __DIR__ . '/../packages/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php', - ]); - $services->load('Rector\\', __DIR__ . '/../rules')->exclude([__DIR__ . '/../rules/*/ValueObject/*', __DIR__ . '/../rules/*/Rector/*', __DIR__ . '/../rules/*/Contract/*', __DIR__ . '/../rules/*/Exception/*', __DIR__ . '/../rules/*/Enum/*']); - $services->set(Filesystem::class); // use faster in-memory cache in CI. // CI always starts from scratch, therefore IO intensive caching is not worth it - $ciDetector = new CiDetector(); - if ($ciDetector->isCiDetected()) { + if ((new CiDetector())->isCiDetected()) { $rectorConfig->cacheClass(MemoryCacheStorage::class); } $extensionConfigResolver = new ExtensionConfigResolver(); @@ -128,70 +31,4 @@ foreach ($extensionConfigFiles as $extensionConfigFile) { $rectorConfig->import($extensionConfigFile); } - $services->load('Rector\\Core\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/Rector', __DIR__ . '/../src/Console/Style/RectorConsoleOutputStyle.php', __DIR__ . '/../src/Exception', __DIR__ . '/../src/DependencyInjection/CompilerPass', __DIR__ . '/../src/DependencyInjection/Loader', __DIR__ . '/../src/DependencyInjection/LazyContainerFactory.php', __DIR__ . '/../src/Kernel', __DIR__ . '/../src/ValueObject', __DIR__ . '/../src/Bootstrap', __DIR__ . '/../src/Enum', __DIR__ . '/../src/functions', __DIR__ . '/../src/PhpParser/Node/CustomNode', __DIR__ . '/../src/PhpParser/ValueObject', __DIR__ . '/../src/PHPStan/NodeVisitor', __DIR__ . '/../src/constants.php']); - $services->set(ConsoleApplication::class)->arg('$commands', tagged_iterator(Command::class)); - $services->alias(Application::class, ConsoleApplication::class); - $services->set(SimpleCallableNodeTraverser::class); - $services->set(BuilderFactory::class); - $services->set(CloningVisitor::class); - $services->set(NodeFinder::class); - $services->set(Parser::class)->factory([service(PHPStanServicesFactory::class), 'createPHPStanParser']); - $services->set(Lexer::class)->factory([service(PHPStanServicesFactory::class), 'createEmulativeLexer']); - $services->set(InflectorFactory::class); - $services->set(Inflector::class)->factory([service(InflectorFactory::class), 'build']); - $services->set(VersionParser::class); - // console - $services->set(SymfonyStyleFactory::class); - $services->alias(RectorStyle::class, SymfonyStyle::class); - $services->set(SymfonyStyle::class)->factory([service(SymfonyStyleFactory::class), 'create']); - // cache - $services->set(DependencyResolver::class)->factory([service(PHPStanServicesFactory::class), 'createDependencyResolver']); - $services->set(FileHelper::class)->factory([service(PHPStanServicesFactory::class), 'createFileHelper']); - $services->set(Cache::class)->factory([service(CacheFactory::class), 'create']); - // type resolving - $services->set(IntermediateSourceLocator::class); - $services->alias(TypeParser::class, BetterTypeParser::class); - // PHPStan services - $services->set(ReflectionProvider::class)->factory([service(PHPStanServicesFactory::class), 'createReflectionProvider']); - $services->set(NodeScopeResolver::class)->factory([service(PHPStanServicesFactory::class), 'createNodeScopeResolver']); - $services->set(ScopeFactory::class)->factory([service(PHPStanServicesFactory::class), 'createScopeFactory']); - $services->set(TypeNodeResolver::class)->factory([service(PHPStanServicesFactory::class), 'createTypeNodeResolver']); - $services->set(DynamicSourceLocatorProvider::class)->factory([service(PHPStanServicesFactory::class), 'createDynamicSourceLocatorProvider']); - // add commands optinally - if (\class_exists(MissingInSetCommand::class)) { - $services->set(MissingInSetCommand::class); - $services->set(OutsideAnySetCommand::class); - } - if (\class_exists(InitRecipeCommand::class)) { - $services->set(InitRecipeCommand::class); - $services->set(GenerateCommand::class); - } - // phpdoc parser - $services->set(SmartPhpParser::class)->factory([service(SmartPhpParserFactory::class), 'create']); - $services->set(ConstExprEvaluator::class); - $services->set(NodeFinder::class); - // phpdoc parser - $services->set(PhpDocParser::class); - $services->alias(PhpDocParser::class, BetterPhpDocParser::class); - $services->set(\PHPStan\PhpDocParser\Lexer\Lexer::class); - $services->set(TypeParser::class)->arg('$usedAttributes', ['lines' => \true, 'indexes' => \true]); - $services->set(ConstExprParser::class)->arg('$usedAttributes', ['lines' => \true, 'indexes' => \true]); - // tagged services - $services->set(PhpDocNodeMapper::class)->arg('$phpDocNodeVisitors', tagged_iterator(BasePhpDocNodeVisitorInterface::class)); - $services->set(BetterPhpDocParser::class)->arg('$phpDocNodeDecorators', tagged_iterator(PhpDocNodeDecoratorInterface::class)); - $services->set(NodeTypeResolver::class)->arg('$nodeTypeResolvers', tagged_iterator(NodeTypeResolverInterface::class)); - $services->set(PHPStanNodeScopeResolver::class)->arg('$nodeVisitors', tagged_iterator(ScopeResolverNodeVisitorInterface::class)); - $services->set(PHPStanStaticTypeMapper::class)->arg('$typeMappers', tagged_iterator(TypeMapperInterface::class)); - $services->set(PhpParserNodeMapper::class)->arg('$phpParserNodeMappers', tagged_iterator(PhpParserNodeMapperInterface::class)); - $services->set(PhpDocTypeMapper::class)->arg('$phpDocTypeMappers', tagged_iterator(PhpDocTypeMapperInterface::class)); - $services->set(ClassNameImportSkipper::class)->arg('$classNameImportSkipVoters', tagged_iterator(ClassNameImportSkipVoterInterface::class)); - $services->set(ConfigInitializer::class)->arg('$rectors', tagged_iterator(RectorInterface::class)); - $services->set(ListRulesCommand::class)->arg('$rectors', tagged_iterator(RectorInterface::class)); - $services->set(OutputFormatterCollector::class)->arg('$outputFormatters', tagged_iterator(OutputFormatterInterface::class)); - $services->set(NonPhpFileProcessor::class)->arg('$nonPhpRectors', tagged_iterator(NonPhpRectorInterface::class)); - $services->set(RectorNodeTraverser::class)->arg('$phpRectors', tagged_iterator(PhpRectorInterface::class)); - $services->set(NodeNameResolver::class)->arg('$nodeNameResolvers', tagged_iterator(NodeNameResolverInterface::class)); - $services->set(ApplicationFileProcessor::class)->arg('$fileProcessors', tagged_iterator(FileProcessorInterface::class)); - $services->set(FileFactory::class)->arg('$fileProcessors', tagged_iterator(FileProcessorInterface::class)); - $services->set(AnnotationToAttributeMapper::class)->arg('$annotationToAttributeMappers', tagged_iterator(AnnotationToAttributeMapperInterface::class)); }; diff --git a/vendor/rector/rector/config/phpstan/static-reflection.neon b/vendor/rector/rector/config/phpstan/static-reflection.neon index 740ca36b7..a54673113 100644 --- a/vendor/rector/rector/config/phpstan/static-reflection.neon +++ b/vendor/rector/rector/config/phpstan/static-reflection.neon @@ -2,6 +2,7 @@ parameters: # see https://github.com/rectorphp/rector/issues/3490#issue-634342324 featureToggles: disableRuntimeReflectionProvider: false + nodeConnectingVisitorCompatibility: false services: - Rector\NodeTypeResolver\Reflection\BetterReflection\RectorBetterReflectionSourceLocatorFactory diff --git a/vendor/rector/rector/config/set/code-quality.php b/vendor/rector/rector/config/set/code-quality.php index 46ba612e2..60e686b01 100644 --- a/vendor/rector/rector/config/set/code-quality.php +++ b/vendor/rector/rector/config/set/code-quality.php @@ -1,7 +1,7 @@ 'mb_strrpos', 'mbsubstr' => 'mb_substr', ]); - $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class, ConvertStaticPrivateConstantToSelfRector::class, LocallyCalledStaticMethodToNonStaticRector::class]); + $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class, ConvertStaticPrivateConstantToSelfRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class]); }; diff --git a/vendor/rector/rector/config/set/coding-style.php b/vendor/rector/rector/config/set/coding-style.php index 047b94380..94720b7b0 100644 --- a/vendor/rector/rector/config/set/coding-style.php +++ b/vendor/rector/rector/config/set/coding-style.php @@ -1,7 +1,7 @@ ruleWithConfiguration(RenameFunctionRector::class, ['pg_clientencoding' => 'pg_client_encoding', 'pg_cmdtuples' => 'pg_affected_rows', 'pg_errormessage' => 'pg_last_error', 'pg_fieldisnull' => 'pg_field_is_null', 'pg_fieldname' => 'pg_field_name', 'pg_fieldnum' => 'pg_field_num', 'pg_fieldprtlen' => 'pg_field_prtlen', 'pg_fieldsize' => 'pg_field_size', 'pg_fieldtype' => 'pg_field_type', 'pg_freeresult' => 'pg_free_result', 'pg_getlastoid' => 'pg_last_oid', 'pg_loclose' => 'pg_lo_close', 'pg_locreate' => 'pg_lo_create', 'pg_loexport' => 'pg_lo_export', 'pg_loimport' => 'pg_lo_import', 'pg_loopen' => 'pg_lo_open', 'pg_loread' => 'pg_lo_read', 'pg_loreadall' => 'pg_lo_read_all', 'pg_lounlink' => 'pg_lo_unlink', 'pg_lowrite' => 'pg_lo_write', 'pg_numfields' => 'pg_num_fields', 'pg_numrows' => 'pg_num_rows', 'pg_result' => 'pg_fetch_result', 'pg_setclientencoding' => 'pg_set_client_encoding']); $rectorConfig->rule(OptionalParametersAfterRequiredRector::class); - $rectorConfig->ruleWithConfiguration(FunctionArgumentDefaultValueReplacerRector::class, [new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'gte', 'ge'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'lte', 'le'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '', '!='), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '!', '!='), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'g', 'gt'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'l', 'lt'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'n', 'ne')]); + $rectorConfig->ruleWithConfiguration(FunctionArgumentDefaultValueReplacerRector::class, [new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'gte', 'ge'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'lte', 'le'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '', '!='), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, '!', '!='), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'g', 'gt'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'l', 'lt'), new ReplaceFuncCallArgumentDefaultValue('version_compare', 2, 'n', 'ne'), new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 0, \false), new ReplaceFuncCallArgumentDefaultValue('get_headers', 1, 1, \true)]); }; diff --git a/vendor/rector/rector/config/set/php81.php b/vendor/rector/rector/config/set/php81.php index 2e974c48d..fad3b7c26 100644 --- a/vendor/rector/rector/config/set/php81.php +++ b/vendor/rector/rector/config/set/php81.php @@ -1,7 +1,7 @@ rules([ReturnNeverTypeRector::class, MyCLabsClassToEnumRector::class, MyCLabsMethodCallToEnumConstRector::class, FinalizePublicClassConstantRector::class, ReadOnlyPropertyRector::class, SpatieEnumClassToEnumRector::class, SpatieEnumMethodCallToEnumConstRector::class, NewInInitializerRector::class, IntersectionTypesRector::class, NullToStrictStringFuncCallArgRector::class, FirstClassCallableRector::class]); + $rectorConfig->rules([ReturnNeverTypeRector::class, MyCLabsClassToEnumRector::class, MyCLabsMethodCallToEnumConstRector::class, FinalizePublicClassConstantRector::class, ReadOnlyPropertyRector::class, SpatieEnumClassToEnumRector::class, SpatieEnumMethodCallToEnumConstRector::class, NewInInitializerRector::class, NullToStrictStringFuncCallArgRector::class, FirstClassCallableRector::class]); }; diff --git a/vendor/rector/rector/config/set/php82.php b/vendor/rector/rector/config/set/php82.php index ac4ff10f7..6449fb061 100644 --- a/vendor/rector/rector/config/set/php82.php +++ b/vendor/rector/rector/config/set/php82.php @@ -1,7 +1,7 @@ rules([AddArrowFunctionReturnTypeRector::class, ParamTypeByMethodCallTypeRector::class, TypedPropertyFromAssignsRector::class, AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, TypedPropertyFromStrictConstructorReadonlyClassRector::class, ParamTypeFromStrictTypedPropertyRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromReturnNewRector::class, TypedPropertyFromStrictGetterMethodReturnTypeRector::class, AddMethodCallBasedStrictParamTypeRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, ReturnTypeFromStrictParamRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class, AddParamTypeSplFixedArrayRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, AddParamTypeFromPropertyTypeRector::class, AddReturnTypeDeclarationFromYieldsRector::class, ReturnTypeFromReturnDirectArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, ReturnTypeFromStrictTypedCallRector::class, ReturnNeverTypeRector::class, EmptyOnNullableObjectToInstanceOfRector::class, PropertyTypeFromStrictSetterGetterRector::class, ReturnTypeFromStrictTernaryRector::class, BoolReturnTypeFromStrictScalarReturnsRector::class, NumericReturnTypeFromStrictScalarReturnsRector::class, StrictArrayParamDimFetchRector::class, ReturnUnionTypeRector::class]); - $rectorConfig->rule(StrictStringParamConcatRector::class); + $rectorConfig->rules([AddArrowFunctionReturnTypeRector::class, ParamTypeByMethodCallTypeRector::class, TypedPropertyFromAssignsRector::class, AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, TypedPropertyFromStrictConstructorReadonlyClassRector::class, ParamTypeFromStrictTypedPropertyRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromReturnNewRector::class, TypedPropertyFromStrictGetterMethodReturnTypeRector::class, AddMethodCallBasedStrictParamTypeRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, ReturnTypeFromStrictParamRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class, AddParamTypeSplFixedArrayRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, AddParamTypeFromPropertyTypeRector::class, AddReturnTypeDeclarationFromYieldsRector::class, ReturnTypeFromReturnDirectArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, ReturnTypeFromStrictTypedCallRector::class, ReturnNeverTypeRector::class, EmptyOnNullableObjectToInstanceOfRector::class, PropertyTypeFromStrictSetterGetterRector::class, ReturnTypeFromStrictTernaryRector::class, BoolReturnTypeFromStrictScalarReturnsRector::class, NumericReturnTypeFromStrictScalarReturnsRector::class, StrictArrayParamDimFetchRector::class, ReturnUnionTypeRector::class, ReturnTypeFromStrictFluentReturnRector::class, StrictStringParamConcatRector::class]); }; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfoFactory.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfoFactory.php index d7eb822a2..6e2e9cbd6 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfoFactory.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfoFactory.php @@ -61,9 +61,9 @@ final class PhpDocInfoFactory */ private $phpDocNodeByTypeFinder; /** - * @var array + * @var array */ - private $phpDocInfosByObjectHash = []; + private $phpDocInfosByObjectId = []; public function __construct(PhpDocNodeMapper $phpDocNodeMapper, CurrentNodeProvider $currentNodeProvider, Lexer $lexer, BetterPhpDocParser $betterPhpDocParser, StaticTypeMapper $staticTypeMapper, AnnotationNaming $annotationNaming, RectorChangeCollector $rectorChangeCollector, PhpDocNodeByTypeFinder $phpDocNodeByTypeFinder) { $this->phpDocNodeMapper = $phpDocNodeMapper; @@ -90,9 +90,9 @@ public function createFromNodeOrEmpty(Node $node) : \Rector\BetterPhpDocParser\P } public function createFromNode(Node $node) : ?\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo { - $objectHash = \spl_object_hash($node); - if (isset($this->phpDocInfosByObjectHash[$objectHash])) { - return $this->phpDocInfosByObjectHash[$objectHash]; + $objectId = \spl_object_id($node); + if (isset($this->phpDocInfosByObjectId[$objectId])) { + return $this->phpDocInfosByObjectId[$objectId]; } /** @see \Rector\BetterPhpDocParser\PhpDocParser\DoctrineAnnotationDecorator::decorate() */ $this->currentNodeProvider->setNode($node); @@ -111,7 +111,7 @@ public function createFromNode(Node $node) : ?\Rector\BetterPhpDocParser\PhpDocI $this->setPositionOfLastToken($phpDocNode); } $phpDocInfo = $this->createFromPhpDocNode($phpDocNode, $tokenIterator, $node); - $this->phpDocInfosByObjectHash[$objectHash] = $phpDocInfo; + $this->phpDocInfosByObjectId[$objectId] = $phpDocInfo; return $phpDocInfo; } /** diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php index 058c5bd54..e2ffd96f8 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDocManipulator; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php index eaa6d1f28..098cbaafa 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php @@ -10,7 +10,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\CloningPhpDocNodeVisitor; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\ParentConnectingPhpDocNodeVisitor; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\BetterPhpDocParser\PhpDocNodeMapperTest */ @@ -39,7 +39,7 @@ final class PhpDocNodeMapper /** * @param BasePhpDocNodeVisitorInterface[] $phpDocNodeVisitors */ - public function __construct(CurrentTokenIteratorProvider $currentTokenIteratorProvider, ParentConnectingPhpDocNodeVisitor $parentConnectingPhpDocNodeVisitor, CloningPhpDocNodeVisitor $cloningPhpDocNodeVisitor, iterable $phpDocNodeVisitors) + public function __construct(CurrentTokenIteratorProvider $currentTokenIteratorProvider, ParentConnectingPhpDocNodeVisitor $parentConnectingPhpDocNodeVisitor, CloningPhpDocNodeVisitor $cloningPhpDocNodeVisitor, array $phpDocNodeVisitors) { $this->currentTokenIteratorProvider = $currentTokenIteratorProvider; $this->parentConnectingPhpDocNodeVisitor = $parentConnectingPhpDocNodeVisitor; @@ -50,13 +50,9 @@ public function __construct(CurrentTokenIteratorProvider $currentTokenIteratorPr public function transform(PhpDocNode $phpDocNode, BetterTokenIterator $betterTokenIterator) : void { $this->currentTokenIteratorProvider->setBetterTokenIterator($betterTokenIterator); - $parentPhpDocNodeTraverser = new PhpDocNodeTraverser(); - $parentPhpDocNodeTraverser->addPhpDocNodeVisitor($this->parentConnectingPhpDocNodeVisitor); - $parentPhpDocNodeTraverser->traverse($phpDocNode); - $cloningPhpDocNodeTraverser = new PhpDocNodeTraverser(); - $cloningPhpDocNodeTraverser->addPhpDocNodeVisitor($this->cloningPhpDocNodeVisitor); - $cloningPhpDocNodeTraverser->traverse($phpDocNode); $phpDocNodeTraverser = new PhpDocNodeTraverser(); + $phpDocNodeTraverser->addPhpDocNodeVisitor($this->parentConnectingPhpDocNodeVisitor); + $phpDocNodeTraverser->addPhpDocNodeVisitor($this->cloningPhpDocNodeVisitor); foreach ($this->phpDocNodeVisitors as $phpDocNodeVisitor) { $phpDocNodeTraverser->addPhpDocNodeVisitor($phpDocNodeVisitor); } diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php index 69c1c121e..7b009dc45 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php @@ -50,7 +50,7 @@ final class BetterPhpDocParser extends PhpDocParser /** * @param PhpDocNodeDecoratorInterface[] $phpDocNodeDecorators */ - public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, CurrentNodeProvider $currentNodeProvider, TokenIteratorFactory $tokenIteratorFactory, iterable $phpDocNodeDecorators, PrivatesAccessor $privatesAccessor = null) + public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, CurrentNodeProvider $currentNodeProvider, TokenIteratorFactory $tokenIteratorFactory, array $phpDocNodeDecorators, PrivatesAccessor $privatesAccessor = null) { $privatesAccessor = $privatesAccessor ?? new PrivatesAccessor(); $this->currentNodeProvider = $currentNodeProvider; @@ -71,8 +71,7 @@ public function __construct(TypeParser $typeParser, ConstExprParser $constExprPa // parseDoctrineAnnotations \false, // textBetweenTagsBelongsToDescription, default to false, exists since 1.23.0 - // @todo: make it true to allow next doc line text as part of current docblock - \false + \true ); } public function parse(TokenIterator $tokenIterator) : PhpDocNode @@ -114,9 +113,13 @@ public function parseTag(TokenIterator $tokenIterator) : PhpDocTagNode */ public function parseTagValue(TokenIterator $tokenIterator, string $tag) : PhpDocTagValueNode { + $isPrecededByHorizontalWhitespace = $tokenIterator->isPrecededByHorizontalWhitespace(); $startPosition = $tokenIterator->currentPosition(); $phpDocTagValueNode = parent::parseTagValue($tokenIterator, $tag); $endPosition = $tokenIterator->currentPosition(); + if ($isPrecededByHorizontalWhitespace && \property_exists($phpDocTagValueNode, 'description')) { + $phpDocTagValueNode->description = \str_replace("\n", "\n * ", (string) $phpDocTagValueNode->description); + } $startAndEnd = new StartAndEnd($startPosition, $endPosition); $phpDocTagValueNode->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); return $phpDocTagValueNode; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php index 55fe8026e..6df50c7d4 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/ClassAnnotationMatcher.php @@ -44,9 +44,9 @@ public function __construct(UseImportNameMatcher $useImportNameMatcher, UseImpor } public function resolveTagFullyQualifiedName(string $tag, Node $node) : string { - $uniqueHash = $tag . \spl_object_hash($node); - if (isset($this->fullyQualifiedNameByHash[$uniqueHash])) { - return $this->fullyQualifiedNameByHash[$uniqueHash]; + $uniqueId = $tag . \spl_object_id($node); + if (isset($this->fullyQualifiedNameByHash[$uniqueId])) { + return $this->fullyQualifiedNameByHash[$uniqueId]; } $tag = \ltrim($tag, '@'); $uses = $this->useImportsResolver->resolve(); @@ -54,7 +54,7 @@ public function resolveTagFullyQualifiedName(string $tag, Node $node) : string if ($fullyQualifiedClass === null) { $fullyQualifiedClass = $tag; } - $this->fullyQualifiedNameByHash[$uniqueHash] = $fullyQualifiedClass; + $this->fullyQualifiedNameByHash[$uniqueId] = $fullyQualifiedClass; return $fullyQualifiedClass; } /** diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php index 0e305c6d6..b6510ec5d 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDocParser; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php index e9a63ce77..b34f97cef 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php @@ -18,7 +18,6 @@ use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey; use Rector\Core\Configuration\CurrentNodeProvider; use Rector\Core\Exception\ShouldNotHappenException; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; final class PlainValueParser { /** @@ -44,9 +43,6 @@ public function __construct(ClassAnnotationMatcher $classAnnotationMatcher, Curr $this->classAnnotationMatcher = $classAnnotationMatcher; $this->currentNodeProvider = $currentNodeProvider; } - /** - * @required - */ public function autowire(StaticDoctrineAnnotationParser $staticDoctrineAnnotationParser, \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\ArrayParser $arrayParser) : void { $this->staticDoctrineAnnotationParser = $staticDoctrineAnnotationParser; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php index 265be1701..68ed14ecc 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\Printer; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; final class DocBlockInliner { /** diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php index 06ba4ad58..83214a7ac 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\Printer; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Stmt\InlineHTML; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; @@ -171,7 +171,7 @@ private function printPhpDocNode(PhpDocNode $phpDocNode) : string if (StringUtils::isMatch($output, self::OPENING_DOCBLOCK_REGEX) && !StringUtils::isMatch($output, self::CLOSING_DOCBLOCK_REGEX)) { $output .= ' */'; } - return $output; + return \str_replace(" \n", "\n", $output); } private function printDocChildNode(PhpDocChildNode $phpDocChildNode, int $key = 0, int $nodeCount = 0) : string { diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php b/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php index d25613d88..b562fcd64 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php @@ -5,7 +5,7 @@ use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Stringable; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; final class CurlyListNode extends \Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\AbstractValuesAwareNode { /** diff --git a/vendor/rector/rector/packages/Caching/CacheFactory.php b/vendor/rector/rector/packages/Caching/CacheFactory.php index 5a7559c61..01427c9ec 100644 --- a/vendor/rector/rector/packages/Caching/CacheFactory.php +++ b/vendor/rector/rector/packages/Caching/CacheFactory.php @@ -7,7 +7,7 @@ use Rector\Caching\ValueObject\Storage\MemoryCacheStorage; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; -use RectorPrefix202308\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202309\Symfony\Component\Filesystem\Filesystem; final class CacheFactory { /** diff --git a/vendor/rector/rector/packages/Caching/Config/FileHashComputer.php b/vendor/rector/rector/packages/Caching/Config/FileHashComputer.php index d4053eafe..8ea8c42ed 100644 --- a/vendor/rector/rector/packages/Caching/Config/FileHashComputer.php +++ b/vendor/rector/rector/packages/Caching/Config/FileHashComputer.php @@ -3,13 +3,9 @@ declare (strict_types=1); namespace Rector\Caching\Config; +use Rector\Core\Application\VersionResolver; +use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\Exception\ShouldNotHappenException; -use RectorPrefix202308\Symfony\Component\Config\FileLocator; -use RectorPrefix202308\Symfony\Component\Config\Loader\LoaderInterface; -use RectorPrefix202308\Symfony\Component\Config\Loader\LoaderResolver; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\GlobFileLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\PhpFileLoader; /** * Inspired by https://github.com/symplify/easy-coding-standard/blob/e598ab54686e416788f28fcfe007fd08e0f371d9/packages/changed-files-detector/src/FileHashComputer.php */ @@ -18,11 +14,8 @@ final class FileHashComputer public function compute(string $filePath) : string { $this->ensureIsPhp($filePath); - $containerBuilder = new ContainerBuilder(); - $fileLoader = $this->createFileLoader($filePath, $containerBuilder); - $fileLoader->load($filePath); - $parameterBag = $containerBuilder->getParameterBag(); - return $this->arrayToHash($containerBuilder->getDefinitions()) . $this->arrayToHash($parameterBag->all()); + $parametersHash = SimpleParameterProvider::hash(); + return \sha1($filePath . $parametersHash . VersionResolver::PACKAGE_VERSION); } private function ensureIsPhp(string $filePath) : void { @@ -32,27 +25,8 @@ private function ensureIsPhp(string $filePath) : void } throw new ShouldNotHappenException(\sprintf( // getRealPath() cannot be used, as it breaks in phar - 'Provide only PHP file, ready for Symfony Dependency Injection. "%s" given', + 'Provide only PHP file, ready for Dependency Injection. "%s" given', $filePath )); } - private function createFileLoader(string $filePath, ContainerBuilder $containerBuilder) : LoaderInterface - { - $fileLocator = new FileLocator([$filePath]); - $fileLoaders = [new GlobFileLoader($containerBuilder, $fileLocator), new PhpFileLoader($containerBuilder, $fileLocator)]; - $loaderResolver = new LoaderResolver($fileLoaders); - $loader = $loaderResolver->resolve($filePath); - if ($loader === \false) { - throw new ShouldNotHappenException(); - } - return $loader; - } - /** - * @param mixed[] $array - */ - private function arrayToHash(array $array) : string - { - $serializedArray = \serialize($array); - return \md5($serializedArray); - } } diff --git a/vendor/rector/rector/packages/Caching/Detector/ChangedFilesDetector.php b/vendor/rector/rector/packages/Caching/Detector/ChangedFilesDetector.php index c9e2ecdcf..e250f152b 100644 --- a/vendor/rector/rector/packages/Caching/Detector/ChangedFilesDetector.php +++ b/vendor/rector/rector/packages/Caching/Detector/ChangedFilesDetector.php @@ -29,10 +29,6 @@ final class ChangedFilesDetector * @var \Rector\Core\Util\FileHasher */ private $fileHasher; - /** - * @var array - */ - private $dependentFiles = []; /** * @var array */ @@ -43,15 +39,7 @@ public function __construct(FileHashComputer $fileHashComputer, Cache $cache, Fi $this->cache = $cache; $this->fileHasher = $fileHasher; } - /** - * @param string[] $dependentFiles - */ - public function addFileDependentFiles(string $filePath, array $dependentFiles) : void - { - $filePathCacheKey = $this->getFilePathCacheKey($filePath); - $this->dependentFiles[$filePathCacheKey] = $dependentFiles; - } - public function cacheFileWithDependencies(string $filePath) : void + public function cacheFile(string $filePath) : void { $filePathCacheKey = $this->getFilePathCacheKey($filePath); if (!isset($this->cachableFiles[$filePathCacheKey])) { @@ -59,10 +47,6 @@ public function cacheFileWithDependencies(string $filePath) : void } $hash = $this->hashFile($filePath); $this->cache->save($filePathCacheKey, CacheKey::FILE_HASH_KEY, $hash); - if (!isset($this->dependentFiles[$filePathCacheKey])) { - return; - } - $this->cache->save($filePathCacheKey . '_files', CacheKey::DEPENDENT_FILES_KEY, $this->dependentFiles[$filePathCacheKey]); } public function addCachableFile(string $filePath) : void { @@ -90,26 +74,6 @@ public function clear() : void { $this->cache->clear(); } - /** - * @return string[] - */ - public function getDependentFilePaths(string $filePath) : array - { - $fileInfoCacheKey = $this->getFilePathCacheKey($filePath); - $cacheValue = $this->cache->load($fileInfoCacheKey . '_files', CacheKey::DEPENDENT_FILES_KEY); - if ($cacheValue === null) { - return []; - } - $existingDependentFiles = []; - $dependentFiles = $cacheValue; - foreach ($dependentFiles as $dependentFile) { - if (!\file_exists($dependentFile)) { - continue; - } - $existingDependentFiles[] = $dependentFile; - } - return $existingDependentFiles; - } /** * @api */ diff --git a/vendor/rector/rector/packages/Caching/Enum/CacheKey.php b/vendor/rector/rector/packages/Caching/Enum/CacheKey.php index 6ba743ea4..de575b84f 100644 --- a/vendor/rector/rector/packages/Caching/Enum/CacheKey.php +++ b/vendor/rector/rector/packages/Caching/Enum/CacheKey.php @@ -16,8 +16,4 @@ final class CacheKey * @var string */ public const FILE_HASH_KEY = 'file_hash'; - /** - * @var string - */ - public const DEPENDENT_FILES_KEY = 'dependency_files_key'; } diff --git a/vendor/rector/rector/packages/Caching/FileSystem/DependencyResolver.php b/vendor/rector/rector/packages/Caching/FileSystem/DependencyResolver.php deleted file mode 100644 index 8c12fb6af..000000000 --- a/vendor/rector/rector/packages/Caching/FileSystem/DependencyResolver.php +++ /dev/null @@ -1,43 +0,0 @@ -nodeScopeResolver = $nodeScopeResolver; - $this->phpStanDependencyResolver = $phpStanDependencyResolver; - $this->privatesAccessor = $privatesAccessor; - } - /** - * @return string[] - */ - public function resolveDependencies(Stmt $stmt, MutatingScope $mutatingScope) : array - { - $analysedFileAbsolutesPaths = $this->privatesAccessor->getPrivateProperty($this->nodeScopeResolver, 'analysedFiles'); - $nodeDependencies = $this->phpStanDependencyResolver->resolveDependencies($stmt, $mutatingScope); - return $nodeDependencies->getFileDependencies($mutatingScope->getFile(), $analysedFileAbsolutesPaths); - } -} diff --git a/vendor/rector/rector/packages/Caching/UnchangedFilesFilter.php b/vendor/rector/rector/packages/Caching/UnchangedFilesFilter.php index 106783951..03dc4aaea 100644 --- a/vendor/rector/rector/packages/Caching/UnchangedFilesFilter.php +++ b/vendor/rector/rector/packages/Caching/UnchangedFilesFilter.php @@ -19,20 +19,16 @@ public function __construct(ChangedFilesDetector $changedFilesDetector) * @param string[] $filePaths * @return string[] */ - public function filterAndJoinWithDependentFileInfos(array $filePaths) : array + public function filterFileInfos(array $filePaths) : array { $changedFileInfos = []; - $dependentFileInfos = []; foreach ($filePaths as $filePath) { if (!$this->changedFilesDetector->hasFileChanged($filePath)) { continue; } $changedFileInfos[] = $filePath; $this->changedFilesDetector->invalidateFile($filePath); - $dependentFileInfos = \array_merge($dependentFileInfos, $this->changedFilesDetector->getDependentFilePaths($filePath)); } - // add dependent files - $dependentFileInfos = \array_merge($dependentFileInfos, $changedFileInfos); - return \array_unique($dependentFileInfos); + return \array_unique($changedFileInfos); } } diff --git a/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php b/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php index 7737d5f3a..412383450 100644 --- a/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php +++ b/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php @@ -4,8 +4,8 @@ namespace Rector\Caching\ValueObject\Storage; use FilesystemIterator; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Random; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Random; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Caching\ValueObject\CacheFilePaths; use Rector\Caching\ValueObject\CacheItem; @@ -26,11 +26,14 @@ final class FileCacheStorage implements CacheStorageInterface * @var \Symfony\Component\Filesystem\Filesystem */ private $filesystem; - public function __construct(string $directory, \RectorPrefix202308\Symfony\Component\Filesystem\Filesystem $filesystem) + public function __construct(string $directory, \RectorPrefix202309\Symfony\Component\Filesystem\Filesystem $filesystem) { $this->directory = $directory; $this->filesystem = $filesystem; } + /** + * @return mixed + */ public function load(string $key, string $variableKey) { return (function (string $key, string $variableKey) { diff --git a/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php b/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php index eef8240c2..7d2f57fbf 100644 --- a/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php +++ b/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Annotation; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\Core\Contract\Rector\RectorInterface; use ReflectionClass; /** diff --git a/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php b/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php index 20846b58c..cf6ace548 100644 --- a/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php +++ b/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php @@ -3,14 +3,14 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\ChangesReporting\Annotation\RectorsChangelogResolver; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Core\ValueObject\Configuration; use Rector\Core\ValueObject\Error\SystemError; use Rector\Core\ValueObject\ProcessResult; use Rector\Core\ValueObject\Reporting\FileDiff; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class ConsoleOutputFormatter implements OutputFormatterInterface { /** diff --git a/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php b/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php index e75a06df8..18accfe4e 100644 --- a/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php +++ b/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202308\Nette\Utils\Json; +use RectorPrefix202309\Nette\Utils\Json; use Rector\ChangesReporting\Annotation\RectorsChangelogResolver; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Core\ValueObject\Configuration; diff --git a/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php b/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php index bc4995c02..979399592 100644 --- a/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php +++ b/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php @@ -4,8 +4,8 @@ namespace Rector\ChangesReporting\ValueObject; use Rector\Core\Contract\Rector\RectorInterface; -use RectorPrefix202308\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202309\Webmozart\Assert\Assert; final class RectorWithLineChange implements SerializableInterface { /** @@ -48,7 +48,7 @@ public function getRectorClass() : string * @param array $json * @return $this */ - public static function decode(array $json) : \RectorPrefix202308\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202309\Symplify\EasyParallel\Contract\SerializableInterface { $rectorClass = $json[self::KEY_RECTOR_CLASS]; Assert::string($rectorClass); diff --git a/vendor/rector/rector/packages/ChangesReporting/ValueObjectFactory/FileDiffFactory.php b/vendor/rector/rector/packages/ChangesReporting/ValueObjectFactory/FileDiffFactory.php index 4692c4de2..a06679062 100644 --- a/vendor/rector/rector/packages/ChangesReporting/ValueObjectFactory/FileDiffFactory.php +++ b/vendor/rector/rector/packages/ChangesReporting/ValueObjectFactory/FileDiffFactory.php @@ -32,10 +32,6 @@ public function __construct(DefaultDiffer $defaultDiffer, ConsoleDiffer $console $this->consoleDiffer = $consoleDiffer; $this->filePathHelper = $filePathHelper; } - public function createFileDiff(File $file, string $oldContent, string $newContent) : FileDiff - { - return $this->createFileDiffWithLineChanges($file, $oldContent, $newContent, $file->getRectorWithLineChanges()); - } /** * @param RectorWithLineChange[] $rectorsWithLineChanges */ diff --git a/vendor/rector/rector/packages/Config/LazyRectorConfig.php b/vendor/rector/rector/packages/Config/LazyRectorConfig.php deleted file mode 100644 index fb4ca8a61..000000000 --- a/vendor/rector/rector/packages/Config/LazyRectorConfig.php +++ /dev/null @@ -1,238 +0,0 @@ -import($set); - } - } - public function disableParallel() : void - { - SimpleParameterProvider::setParameter(Option::PARALLEL, \false); - } - public function parallel(int $seconds = 120, int $maxNumberOfProcess = 16, int $jobSize = 20) : void - { - SimpleParameterProvider::setParameter(Option::PARALLEL, \true); - SimpleParameterProvider::setParameter(Option::PARALLEL_JOB_TIMEOUT_IN_SECONDS, $seconds); - SimpleParameterProvider::setParameter(Option::PARALLEL_MAX_NUMBER_OF_PROCESSES, $maxNumberOfProcess); - SimpleParameterProvider::setParameter(Option::PARALLEL_JOB_SIZE, $jobSize); - } - public function noDiffs() : void - { - SimpleParameterProvider::setParameter(Option::NO_DIFFS, \true); - } - public function memoryLimit(string $memoryLimit) : void - { - SimpleParameterProvider::setParameter(Option::MEMORY_LIMIT, $memoryLimit); - } - /** - * @param array $criteria - */ - public function skip(array $criteria) : void - { - SimpleParameterProvider::addParameter(Option::SKIP, $criteria); - } - public function removeUnusedImports(bool $removeUnusedImports = \true) : void - { - SimpleParameterProvider::setParameter(Option::REMOVE_UNUSED_IMPORTS, $removeUnusedImports); - } - public function importNames(bool $importNames = \true, bool $importDocBlockNames = \true) : void - { - SimpleParameterProvider::setParameter(Option::AUTO_IMPORT_NAMES, $importNames); - SimpleParameterProvider::setParameter(Option::AUTO_IMPORT_DOC_BLOCK_NAMES, $importDocBlockNames); - } - public function importShortClasses(bool $importShortClasses = \true) : void - { - SimpleParameterProvider::setParameter(Option::IMPORT_SHORT_CLASSES, $importShortClasses); - } - /** - * Set PHPStan custom config to load extensions and custom configuration to Rector. - * By default, the "phpstan.neon" path is used. - */ - public function phpstanConfig(string $filePath) : void - { - Assert::fileExists($filePath); - SimpleParameterProvider::setParameter(Option::PHPSTAN_FOR_RECTOR_PATH, $filePath); - } - /** - * @param class-string $rectorClass - * @param mixed[] $configuration - */ - public function ruleWithConfiguration(string $rectorClass, array $configuration) : void - { - Assert::classExists($rectorClass); - Assert::isAOf($rectorClass, RectorInterface::class); - Assert::isAOf($rectorClass, ConfigurableRectorInterface::class); - // decorate with value object inliner so Symfony understands, see https://getrector.com/blog/2020/09/07/how-to-inline-value-object-in-symfony-php-config - \array_walk_recursive($configuration, static function (&$value) { - if (\is_object($value)) { - $value = ValueObjectInliner::inline($value); - } - return $value; - }); - $this->singleton($rectorClass); - $this->extend($rectorClass, static function (ConfigurableRectorInterface $configurableRector) use($configuration) : void { - $configurableRector->configure($configuration); - }); - $this->tagRectorService($rectorClass); - } - /** - * @param class-string $rectorClass - */ - public function rule(string $rectorClass) : void - { - Assert::classExists($rectorClass); - Assert::isAOf($rectorClass, RectorInterface::class); - $this->singleton($rectorClass); - $this->tagRectorService($rectorClass); - } - public function import(string $setFilePath) : void - { - $self = $this; - $callable = (require $setFilePath); - Assert::isCallable($callable); - /** @var callable(Container $container): void $callable */ - $callable($self); - } - /** - * @param array> $rectorClasses - */ - public function rules(array $rectorClasses) : void - { - Assert::allString($rectorClasses); - $duplicatedRectorClasses = $this->resolveDuplicatedValues($rectorClasses); - if ($duplicatedRectorClasses !== []) { - throw new ShouldNotHappenException('Following rules are registered twice: ' . \implode(', ', $duplicatedRectorClasses)); - } - foreach ($rectorClasses as $rectorClass) { - $this->rule($rectorClass); - } - } - /** - * @param PhpVersion::* $phpVersion - */ - public function phpVersion(int $phpVersion) : void - { - SimpleParameterProvider::setParameter(Option::PHP_VERSION_FEATURES, $phpVersion); - } - /** - * @param string[] $autoloadPaths - */ - public function autoloadPaths(array $autoloadPaths) : void - { - Assert::allString($autoloadPaths); - SimpleParameterProvider::setParameter(Option::AUTOLOAD_PATHS, $autoloadPaths); - } - /** - * @param string[] $bootstrapFiles - */ - public function bootstrapFiles(array $bootstrapFiles) : void - { - Assert::allString($bootstrapFiles); - SimpleParameterProvider::setParameter(Option::BOOTSTRAP_FILES, $bootstrapFiles); - } - public function symfonyContainerXml(string $filePath) : void - { - SimpleParameterProvider::setParameter(Option::SYMFONY_CONTAINER_XML_PATH_PARAMETER, $filePath); - } - public function symfonyContainerPhp(string $filePath) : void - { - SimpleParameterProvider::setParameter(Option::SYMFONY_CONTAINER_PHP_PATH_PARAMETER, $filePath); - } - /** - * @param string[] $extensions - */ - public function fileExtensions(array $extensions) : void - { - Assert::allString($extensions); - SimpleParameterProvider::setParameter(Option::FILE_EXTENSIONS, $extensions); - } - public function cacheDirectory(string $directoryPath) : void - { - // cache directory path is created via mkdir in CacheFactory - // when not exists, so no need to validate $directoryPath is a directory - SimpleParameterProvider::setParameter(Option::CACHE_DIR, $directoryPath); - } - public function containerCacheDirectory(string $directoryPath) : void - { - // container cache directory path must be a directory on the first place - Assert::directory($directoryPath); - SimpleParameterProvider::setParameter(Option::CONTAINER_CACHE_DIRECTORY, $directoryPath); - } - /** - * @param class-string $cacheClass - */ - public function cacheClass(string $cacheClass) : void - { - Assert::isAOf($cacheClass, CacheStorageInterface::class); - SimpleParameterProvider::setParameter(Option::CACHE_CLASS, $cacheClass); - } - /** - * @see https://github.com/nikic/PHP-Parser/issues/723#issuecomment-712401963 - */ - public function indent(string $character, int $count) : void - { - SimpleParameterProvider::setParameter(Option::INDENT_CHAR, $character); - SimpleParameterProvider::setParameter(Option::INDENT_SIZE, $count); - } - /** - * @param string[] $values - * @return string[] - */ - private function resolveDuplicatedValues(array $values) : array - { - $counted = \array_count_values($values); - $duplicates = []; - foreach ($counted as $value => $count) { - if ($count > 1) { - $duplicates[] = $value; - } - } - return \array_unique($duplicates); - } - /** - * @param class-string $rectorClass - */ - private function tagRectorService(string $rectorClass) : void - { - $this->tag($rectorClass, RectorInterface::class); - if (\is_a($rectorClass, PhpRectorInterface::class, \true)) { - $this->tag($rectorClass, PhpRectorInterface::class); - } elseif (\is_a($rectorClass, NonPhpRectorInterface::class, \true)) { - $this->tag($rectorClass, NonPhpRectorInterface::class); - } - } -} diff --git a/vendor/rector/rector/packages/Config/RectorConfig.php b/vendor/rector/rector/packages/Config/RectorConfig.php index a429422f6..148b20b7b 100644 --- a/vendor/rector/rector/packages/Config/RectorConfig.php +++ b/vendor/rector/rector/packages/Config/RectorConfig.php @@ -3,31 +3,28 @@ declare (strict_types=1); namespace Rector\Config; +use RectorPrefix202309\Illuminate\Container\Container; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; -use Rector\Core\Configuration\ValueObjectInliner; use Rector\Core\Contract\Rector\ConfigurableRectorInterface; use Rector\Core\Contract\Rector\NonPhpRectorInterface; -use Rector\Core\Contract\Rector\PhpRectorInterface; use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\Exception\ShouldNotHappenException; +use Rector\Core\FileSystem\FilesystemTweaker; +use Rector\Core\NodeAnalyzer\ScopeAnalyzer; +use Rector\Core\Rector\AbstractScopeAwareRector; use Rector\Core\ValueObject\PhpVersion; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ServiceConfigurator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ServicesConfigurator; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @api - * Same as Symfony container configurator, with patched return type for "set()" method for easier DX. - * It is an alias for internal class that is prefixed during build, so it's basically for keeping stable public API. */ -final class RectorConfig extends ContainerConfigurator +final class RectorConfig extends Container { /** - * @var \Symfony\Component\DependencyInjection\Loader\Configurator\ServicesConfigurator|null + * @var array, mixed[]>> */ - private $servicesConfigurator; + private $ruleConfigurations = []; /** * @param string[] $paths */ @@ -46,6 +43,8 @@ public function sets(array $sets) : void Assert::fileExists($set); $this->import($set); } + // for cache invalidation in case of sets change + SimpleParameterProvider::addParameter(Option::REGISTERED_RECTOR_SETS, $sets); } public function disableParallel() : void { @@ -118,13 +117,23 @@ public function importShortClasses(bool $importShortClasses = \true) : void SimpleParameterProvider::setParameter(Option::IMPORT_SHORT_CLASSES, $importShortClasses); } /** - * Set PHPStan custom config to load extensions and custom configuration to Rector. - * By default, the "phpstan.neon" path is used. + * Add PHPStan custom config to load extensions and custom configuration to Rector. */ public function phpstanConfig(string $filePath) : void { Assert::fileExists($filePath); - SimpleParameterProvider::setParameter(Option::PHPSTAN_FOR_RECTOR_PATH, $filePath); + SimpleParameterProvider::addParameter(Option::PHPSTAN_FOR_RECTOR_PATHS, [$filePath]); + } + /** + * Add PHPStan custom configs to load extensions and custom configuration to Rector. + * + * @param string[] $filePaths + */ + public function phpstanConfigs(array $filePaths) : void + { + Assert::allString($filePaths); + Assert::allFileExists($filePaths); + SimpleParameterProvider::addParameter(Option::PHPSTAN_FOR_RECTOR_PATHS, $filePaths); } /** * @param class-string $rectorClass @@ -135,16 +144,16 @@ public function ruleWithConfiguration(string $rectorClass, array $configuration) Assert::classExists($rectorClass); Assert::isAOf($rectorClass, RectorInterface::class); Assert::isAOf($rectorClass, ConfigurableRectorInterface::class); - // decorate with value object inliner so Symfony understands, see https://getrector.com/blog/2020/09/07/how-to-inline-value-object-in-symfony-php-config - \array_walk_recursive($configuration, static function (&$value) { - if (\is_object($value)) { - $value = ValueObjectInliner::inline($value); - } - return $value; + // store configuration to cache + $this->ruleConfigurations[$rectorClass] = \array_merge($this->ruleConfigurations[$rectorClass] ?? [], $configuration); + $this->singleton($rectorClass); + $this->tagRectorService($rectorClass); + $this->afterResolving($rectorClass, function (ConfigurableRectorInterface $configurableRector) use($rectorClass) : void { + $ruleConfiguration = $this->ruleConfigurations[$rectorClass]; + $configurableRector->configure($ruleConfiguration); }); - $servicesConfigurator = $this->getServices(); - $rectorService = $servicesConfigurator->set($rectorClass)->public()->autowire()->call('configure', [$configuration]); - $this->tagRectorService($rectorService, $rectorClass); + // for cache invalidation in case of sets change + SimpleParameterProvider::addParameter(Option::REGISTERED_RECTOR_RULES, $rectorClass); } /** * @param class-string $rectorClass @@ -153,9 +162,28 @@ public function rule(string $rectorClass) : void { Assert::classExists($rectorClass); Assert::isAOf($rectorClass, RectorInterface::class); - $servicesConfigurator = $this->getServices(); - $rectorService = $servicesConfigurator->set($rectorClass)->public()->autowire(); - $this->tagRectorService($rectorService, $rectorClass); + $this->singleton($rectorClass); + $this->tagRectorService($rectorClass); + if (\is_a($rectorClass, AbstractScopeAwareRector::class, \true)) { + $this->extend($rectorClass, static function (AbstractScopeAwareRector $scopeAwareRector, Container $container) : AbstractScopeAwareRector { + $scopeAnalyzer = $container->make(ScopeAnalyzer::class); + $scopeAwareRector->autowireAbstractScopeAwareRector($scopeAnalyzer); + return $scopeAwareRector; + }); + } + // for cache invalidation in case of change + SimpleParameterProvider::addParameter(Option::REGISTERED_RECTOR_RULES, $rectorClass); + } + public function import(string $filePath) : void + { + $paths = [$filePath]; + if (\strpos($filePath, '*') !== \false) { + $filesystemTweaker = new FilesystemTweaker(); + $paths = $filesystemTweaker->resolveWithFnmatch($paths); + } + foreach ($paths as $path) { + $this->importFile($path); + } } /** * @param array> $rectorClasses @@ -163,10 +191,7 @@ public function rule(string $rectorClass) : void public function rules(array $rectorClasses) : void { Assert::allString($rectorClasses); - $duplicatedRectorClasses = $this->resolveDuplicatedValues($rectorClasses); - if ($duplicatedRectorClasses !== []) { - throw new ShouldNotHappenException('Following rules are registered twice: ' . \implode(', ', $duplicatedRectorClasses)); - } + $this->ensureNotDuplicatedClasses($rectorClasses); foreach ($rectorClasses as $rectorClass) { $this->rule($rectorClass); } @@ -238,6 +263,26 @@ public function indent(string $character, int $count) : void SimpleParameterProvider::setParameter(Option::INDENT_CHAR, $character); SimpleParameterProvider::setParameter(Option::INDENT_SIZE, $count); } + /** + * @api deprecated, just for BC layer warning + */ + public function services() : void + { + \trigger_error('The services() method is deprecated. Use $rectorConfig->singleton(ServiceType::class) instead', \E_USER_ERROR); + } + public function resetRuleConfigurations() : void + { + $this->ruleConfigurations = []; + } + private function importFile(string $filePath) : void + { + Assert::fileExists($filePath); + $self = $this; + $callable = (require $filePath); + Assert::isCallable($callable); + /** @var callable(Container $container): void $callable */ + $callable($self); + } /** * @param mixed $skipRule */ @@ -260,24 +305,26 @@ private function resolveDuplicatedValues(array $values) : array } return \array_unique($duplicates); } - private function getServices() : ServicesConfigurator + /** + * @param class-string $rectorClass + */ + private function tagRectorService(string $rectorClass) : void { - if ($this->servicesConfigurator instanceof ServicesConfigurator) { - return $this->servicesConfigurator; + $this->tag($rectorClass, RectorInterface::class); + if (\is_a($rectorClass, NonPhpRectorInterface::class, \true)) { + \trigger_error(\sprintf('The "%s" interface of "%s" rule is deprecated. Rector will process only PHP code, as designed to with AST. For another file format, use custom tooling.', NonPhpRectorInterface::class, $rectorClass)); + exit; } - $this->servicesConfigurator = $this->services(); - return $this->servicesConfigurator; } /** - * @param class-string $rectorClass + * @param string[] $rectorClasses */ - private function tagRectorService(ServiceConfigurator $rectorServiceConfigurator, string $rectorClass) : void + private function ensureNotDuplicatedClasses(array $rectorClasses) : void { - $rectorServiceConfigurator->tag(RectorInterface::class); - if (\is_a($rectorClass, PhpRectorInterface::class, \true)) { - $rectorServiceConfigurator->tag(PhpRectorInterface::class); - } elseif (\is_a($rectorClass, NonPhpRectorInterface::class, \true)) { - $rectorServiceConfigurator->tag(NonPhpRectorInterface::class); + $duplicatedRectorClasses = $this->resolveDuplicatedValues($rectorClasses); + if ($duplicatedRectorClasses === []) { + return; } + throw new ShouldNotHappenException('Following rules are registered twice: ' . \implode(', ', $duplicatedRectorClasses)); } } diff --git a/vendor/rector/rector/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php b/vendor/rector/rector/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php index b9bd0ade7..0ece9b7d7 100644 --- a/vendor/rector/rector/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php +++ b/vendor/rector/rector/packages/FamilyTree/Reflection/FamilyRelationsAnalyzer.php @@ -45,6 +45,9 @@ public function __construct(ReflectionProvider $reflectionProvider, PrivatesAcce */ public function getChildrenOfClassReflection(ClassReflection $desiredClassReflection) : array { + if ($desiredClassReflection->isFinalByKeyword()) { + return []; + } /** @var ClassReflection[] $classReflections */ $classReflections = $this->privatesAccessor->getPrivateProperty($this->reflectionProvider, 'classes'); $childrenClassReflections = []; diff --git a/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php b/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php index 59ac8f4f9..3f000a622 100644 --- a/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php +++ b/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\FileSystemRector\Parser; -use RectorPrefix202308\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\FileSystem; use PhpParser\Node\Stmt; use Rector\Core\PhpParser\Parser\RectorParser; use Rector\Core\Provider\CurrentFileProvider; diff --git a/vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/ClassConstFetchNameResolver.php b/vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/ClassConstFetchNameResolver.php index ab0c44392..216d71dc1 100644 --- a/vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/ClassConstFetchNameResolver.php +++ b/vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/ClassConstFetchNameResolver.php @@ -6,7 +6,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\ClassConstFetch; -use PhpParser\Node\Expr\Error; +use PhpParser\Node\Identifier; use PHPStan\Analyser\Scope; use Rector\NodeNameResolver\Contract\NodeNameResolverInterface; /** @@ -26,7 +26,7 @@ public function resolve(Node $node, ?Scope $scope) : ?string if ($node->class instanceof Expr) { return null; } - if ($node->name instanceof Error) { + if (!$node->name instanceof Identifier) { return null; } $class = $node->class->toString(); diff --git a/vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/EmptyNameResolver.php b/vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/EmptyNameResolver.php deleted file mode 100644 index 779204ca2..000000000 --- a/vendor/rector/rector/packages/NodeNameResolver/NodeNameResolver/EmptyNameResolver.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ -final class EmptyNameResolver implements NodeNameResolverInterface -{ - public function getNode() : string - { - return Empty_::class; - } - /** - * @param Empty_ $node - */ - public function resolve(Node $node, ?Scope $scope) : ?string - { - return 'empty'; - } -} diff --git a/vendor/rector/rector/packages/NodeNameResolver/Regex/RegexPatternDetector.php b/vendor/rector/rector/packages/NodeNameResolver/Regex/RegexPatternDetector.php index 11650b0a4..108939b14 100644 --- a/vendor/rector/rector/packages/NodeNameResolver/Regex/RegexPatternDetector.php +++ b/vendor/rector/rector/packages/NodeNameResolver/Regex/RegexPatternDetector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\NodeNameResolver\Regex; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; final class RegexPatternDetector { /** diff --git a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/BleedingEdgeIncludePurifier.php b/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/BleedingEdgeIncludePurifier.php deleted file mode 100644 index 0a151f3e1..000000000 --- a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/BleedingEdgeIncludePurifier.php +++ /dev/null @@ -1,50 +0,0 @@ -createTemporaryFilePath($filePath); - $clearedFileContents = Strings::replace($fileContents, self::BLEEDING_EDGE_REGEX); - FileSystem::write($temporaryFilePath, $clearedFileContents); - return $temporaryFilePath; - } - private function createTemporaryFilePath(string $filePath) : string - { - $fileDirectory = \dirname($filePath); - $baseFileName = \pathinfo($filePath, \PATHINFO_BASENAME); - $randomBytes = \random_bytes(10); - $randomString = \bin2hex($randomBytes); - return $fileDirectory . '/temp_' . $randomString . '_' . $baseFileName; - } -} diff --git a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanExtensionsConfigResolver.php b/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanExtensionsConfigResolver.php deleted file mode 100644 index 94d08f8c7..000000000 --- a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanExtensionsConfigResolver.php +++ /dev/null @@ -1,51 +0,0 @@ -cachedExtensionConfigFiles !== []) { - return $this->cachedExtensionConfigFiles; - } - $reflectionClass = new ReflectionClass(GeneratedConfig::class); - $generatedConfigClassFileName = $reflectionClass->getFileName(); - if ($generatedConfigClassFileName === \false) { - throw new ShouldNotHappenException(); - } - $generatedConfigDirectory = \dirname($generatedConfigClassFileName); - $extensionConfigFiles = []; - foreach (GeneratedConfig::EXTENSIONS as $extension) { - $fileNames = $extension['extra']['includes'] ?? []; - foreach ($fileNames as $fileName) { - $configFilePath = $generatedConfigDirectory . '/' . $extension['relative_install_path'] . '/' . $fileName; - $absoluteConfigFilePath = \realpath($configFilePath); - if (!\is_string($absoluteConfigFilePath)) { - continue; - } - $extensionConfigFiles[] = $absoluteConfigFilePath; - } - } - $this->cachedExtensionConfigFiles = $extensionConfigFiles; - return $extensionConfigFiles; - } -} diff --git a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php b/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php index 070b975af..d7f226e19 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php @@ -6,7 +6,6 @@ use PhpParser\Lexer; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; -use PHPStan\Dependency\DependencyResolver; use PHPStan\DependencyInjection\Container; use PHPStan\DependencyInjection\ContainerFactory; use PHPStan\File\FileHelper; @@ -16,7 +15,7 @@ use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; -use RectorPrefix202308\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * Factory so Symfony app can use services from PHPStan container * @@ -24,39 +23,16 @@ */ final class PHPStanServicesFactory { - /** - * @readonly - * @var \Rector\NodeTypeResolver\DependencyInjection\PHPStanExtensionsConfigResolver - */ - private $phpStanExtensionsConfigResolver; /** * @readonly * @var \PHPStan\DependencyInjection\Container */ private $container; - public function __construct(\Rector\NodeTypeResolver\DependencyInjection\PHPStanExtensionsConfigResolver $phpStanExtensionsConfigResolver, \Rector\NodeTypeResolver\DependencyInjection\BleedingEdgeIncludePurifier $bleedingEdgeIncludePurifier) + public function __construct() { - $this->phpStanExtensionsConfigResolver = $phpStanExtensionsConfigResolver; - $additionalConfigFiles = $this->resolveAdditionalConfigFiles(); - $purifiedConfigFiles = []; - foreach ($additionalConfigFiles as $key => $additionalConfigFile) { - $purifiedConfigFile = $bleedingEdgeIncludePurifier->purifyConfigFile($additionalConfigFile); - // nothing was changed - if ($purifiedConfigFile === null) { - continue; - } - $additionalConfigFiles[$key] = $purifiedConfigFile; - $purifiedConfigFiles[] = $purifiedConfigFile; - } $containerFactory = new ContainerFactory(\getcwd()); + $additionalConfigFiles = $this->resolveAdditionalConfigFiles(); $this->container = $containerFactory->create(SimpleParameterProvider::provideStringParameter(Option::CONTAINER_CACHE_DIRECTORY), $additionalConfigFiles, []); - // clear temporary files, after container is created - $filesystem = new Filesystem(); - $filesystem->remove($purifiedConfigFiles); - } - public function provideContainer() : Container - { - return $this->container; } /** * @api @@ -103,13 +79,6 @@ public function getByType(string $type) : object { return $this->container->getByType($type); } - /** - * @api - */ - public function createDependencyResolver() : DependencyResolver - { - return $this->container->getByType(DependencyResolver::class); - } /** * @api */ @@ -137,14 +106,16 @@ public function createDynamicSourceLocatorProvider() : DynamicSourceLocatorProvi private function resolveAdditionalConfigFiles() : array { $additionalConfigFiles = []; - if (SimpleParameterProvider::hasParameter(Option::PHPSTAN_FOR_RECTOR_PATH)) { - $additionalConfigFiles[] = SimpleParameterProvider::provideStringParameter(Option::PHPSTAN_FOR_RECTOR_PATH); + if (SimpleParameterProvider::hasParameter(Option::PHPSTAN_FOR_RECTOR_PATHS)) { + $paths = SimpleParameterProvider::provideArrayParameter(Option::PHPSTAN_FOR_RECTOR_PATHS); + foreach ($paths as $path) { + Assert::string($path); + $additionalConfigFiles[] = $path; + } } $additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/static-reflection.neon'; $additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/better-infer.neon'; $additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/parser.neon'; - $extensionConfigFiles = $this->phpStanExtensionsConfigResolver->resolve(); - $additionalConfigFiles = \array_merge($additionalConfigFiles, $extensionConfigFiles); return \array_filter($additionalConfigFiles, 'file_exists'); } } diff --git a/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php b/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php index bc0f39fd3..67e2ec8ef 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php @@ -56,6 +56,7 @@ final class AttributeKey * * The parent node can be still enabled by using custom PHPStan configuration, * @see https://github.com/rectorphp/rector-src/pull/4458#discussion_r1257478146 + * @see https://github.com/rectorphp/rector-src/pull/4841 */ public const PARENT_NODE = 'parent'; /** @@ -112,6 +113,11 @@ final class AttributeKey * @var string */ public const CREATED_BY_RULE = 'created_by_rule'; + /** + * Helps with skipped below node + * @var string + */ + public const SKIPPED_BY_RECTOR_RULE = 'skipped_rector_rule'; /** * @var string */ diff --git a/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php b/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php index 557163c53..75fd2c44e 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php @@ -311,10 +311,7 @@ private function isMatchingUnionType(Type $resolvedType, ObjectType $requiredObj $type = TypeCombinator::removeNull($resolvedType); // for falsy nullables $type = TypeCombinator::remove($type, new ConstantBooleanType(\false)); - if (!$type instanceof ObjectType) { - return \false; - } - return $type->isInstanceOf($requiredObjectType->getClassName())->yes(); + return $type->isSuperTypeOf($requiredObjectType)->yes(); } private function resolveByNodeTypeResolvers(Node $node) : ?Type { diff --git a/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver/StaticCallMethodCallTypeResolver.php b/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver/StaticCallMethodCallTypeResolver.php index ddc33c24e..a0f68a4b2 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver/StaticCallMethodCallTypeResolver.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver/StaticCallMethodCallTypeResolver.php @@ -69,8 +69,8 @@ public function resolve(Node $node) : Type } else { $callerType = $this->nodeTypeResolver->getType($node->class); } - foreach ($callerType->getObjectClassReflections() as $classReflection) { - $classMethodReturnType = $this->resolveClassMethodReturnType($classReflection, $node, $methodName, $scope); + foreach ($callerType->getObjectClassReflections() as $objectClassReflection) { + $classMethodReturnType = $this->resolveClassMethodReturnType($objectClassReflection, $node, $methodName, $scope); if (!$classMethodReturnType instanceof MixedType) { return $classMethodReturnType; } diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/StmtKeyNodeVisitor.php b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/StmtKeyNodeVisitor.php index a27d9d58a..1d6e6b324 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/StmtKeyNodeVisitor.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/StmtKeyNodeVisitor.php @@ -16,7 +16,7 @@ final class StmtKeyNodeVisitor extends NodeVisitorAbstract implements ScopeResol /** * @param Node[] $nodes */ - public function beforeTraverse(array $nodes) + public function beforeTraverse(array $nodes) : ?array { if ($nodes === []) { return null; diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index 32f398c03..e6ad46b4c 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -43,7 +43,6 @@ use PhpParser\Node\Stmt\TryCatch; use PhpParser\Node\UnionType; use PhpParser\NodeTraverser; -use PHPStan\AnalysedCodeException; use PHPStan\Analyser\MutatingScope; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeContext; @@ -51,33 +50,22 @@ use PHPStan\Reflection\ReflectionProvider; use PHPStan\Type\ObjectType; use PHPStan\Type\TypeCombinator; -use Rector\Caching\Detector\ChangedFilesDetector; -use Rector\Caching\FileSystem\DependencyResolver; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\NodeAnalyzer\ClassAnalyzer; use Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace; +use Rector\Core\PHPStan\NodeVisitor\ExprScopeFromStmtNodeVisitor; use Rector\Core\PHPStan\NodeVisitor\WrappedNodeRestoringNodeVisitor; use Rector\Core\Util\Reflection\PrivatesAccessor; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\PHPStan\Scope\Contract\NodeVisitor\ScopeResolverNodeVisitorInterface; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @inspired by https://github.com/silverstripe/silverstripe-upgrader/blob/532182b23e854d02e0b27e68ebc394f436de0682/src/UpgradeRule/PHP/Visitor/PHPStanScopeVisitor.php * - https://github.com/silverstripe/silverstripe-upgrader/pull/57/commits/e5c7cfa166ad940d9d4ff69537d9f7608e992359#diff-5e0807bb3dc03d6a8d8b6ad049abd774 */ final class PHPStanNodeScopeResolver { - /** - * @readonly - * @var \Rector\Caching\Detector\ChangedFilesDetector - */ - private $changedFilesDetector; - /** - * @readonly - * @var \Rector\Caching\FileSystem\DependencyResolver - */ - private $dependencyResolver; /** * @readonly * @var \PHPStan\Analyser\NodeScopeResolver @@ -124,10 +112,8 @@ final class PHPStanNodeScopeResolver /** * @param ScopeResolverNodeVisitorInterface[] $nodeVisitors */ - public function __construct(ChangedFilesDetector $changedFilesDetector, DependencyResolver $dependencyResolver, NodeScopeResolver $nodeScopeResolver, ReflectionProvider $reflectionProvider, iterable $nodeVisitors, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, PrivatesAccessor $privatesAccessor, NodeNameResolver $nodeNameResolver, ClassAnalyzer $classAnalyzer) + public function __construct(NodeScopeResolver $nodeScopeResolver, ReflectionProvider $reflectionProvider, iterable $nodeVisitors, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, PrivatesAccessor $privatesAccessor, NodeNameResolver $nodeNameResolver, ClassAnalyzer $classAnalyzer) { - $this->changedFilesDetector = $changedFilesDetector; - $this->dependencyResolver = $dependencyResolver; $this->nodeScopeResolver = $nodeScopeResolver; $this->reflectionProvider = $reflectionProvider; $this->scopeFactory = $scopeFactory; @@ -160,80 +146,49 @@ public function processNodes(array $stmts, string $filePath, ?MutatingScope $for } if (($node instanceof Expression || $node instanceof Return_ || $node instanceof EnumCase || $node instanceof Cast) && $node->expr instanceof Expr) { $node->expr->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($node instanceof Assign || $node instanceof AssignOp) { + } elseif ($node instanceof Assign || $node instanceof AssignOp) { $this->processAssign($node, $mutatingScope); - } - if ($node instanceof Ternary) { + } elseif ($node instanceof Ternary) { $this->processTernary($node, $mutatingScope); - } - if ($node instanceof BinaryOp) { + } elseif ($node instanceof BinaryOp) { $this->processBinaryOp($node, $mutatingScope); - } - if ($node instanceof Arg) { + } elseif ($node instanceof Arg) { $node->value->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($node instanceof Foreach_) { + } elseif ($node instanceof Foreach_) { // decorate value as well $node->valueVar->setAttribute(AttributeKey::SCOPE, $mutatingScope); if ($node->valueVar instanceof Array_) { $this->processArray($node->valueVar, $mutatingScope); } - } - if ($node instanceof Array_) { + } elseif ($node instanceof Array_) { $this->processArray($node, $mutatingScope); - } - if ($node instanceof Property) { + } elseif ($node instanceof Property) { $this->processProperty($node, $mutatingScope); - } - if ($node instanceof Switch_) { + } elseif ($node instanceof Switch_) { $this->processSwitch($node, $mutatingScope); - } - if ($node instanceof TryCatch) { + } elseif ($node instanceof TryCatch) { $this->processTryCatch($node, $filePath, $mutatingScope); - } - if ($node instanceof ArrayItem) { + } elseif ($node instanceof ArrayItem) { $this->processArrayItem($node, $mutatingScope); - } - if ($node instanceof NullableType) { + } elseif ($node instanceof NullableType) { $node->type->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($node instanceof UnionType || $node instanceof IntersectionType) { + } elseif ($node instanceof UnionType || $node instanceof IntersectionType) { foreach ($node->types as $type) { $type->setAttribute(AttributeKey::SCOPE, $mutatingScope); } - } - if ($node instanceof StaticPropertyFetch) { + } elseif ($node instanceof StaticPropertyFetch || $node instanceof ClassConstFetch) { $node->class->setAttribute(AttributeKey::SCOPE, $mutatingScope); $node->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($node instanceof PropertyFetch) { + } elseif ($node instanceof PropertyFetch) { $node->var->setAttribute(AttributeKey::SCOPE, $mutatingScope); $node->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($node instanceof CallLike) { - $this->processCallike($node, $mutatingScope); - } - if ($node instanceof ConstFetch) { - $node->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($node instanceof ClassConstFetch) { - $node->class->setAttribute(AttributeKey::SCOPE, $mutatingScope); + } elseif ($node instanceof ConstFetch) { $node->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); + } elseif ($node instanceof CallLike) { + $this->processCallike($node, $mutatingScope); } if ($node instanceof Trait_) { - $traitName = $this->resolveClassName($node); - $traitClassReflection = $this->reflectionProvider->getClass($traitName); - $traitScope = clone $mutatingScope; - /** @var ScopeContext $scopeContext */ - $scopeContext = $this->privatesAccessor->getPrivateProperty($traitScope, self::CONTEXT); - $traitContext = clone $scopeContext; - // before entering the class/trait again, we have to tell scope no class was set, otherwise it crashes - $this->privatesAccessor->setPrivateProperty($traitContext, 'classReflection', $traitClassReflection); - $this->privatesAccessor->setPrivateProperty($traitScope, self::CONTEXT, $traitContext); - $node->setAttribute(AttributeKey::SCOPE, $traitScope); - $this->nodeScopeResolver->processNodes($node->stmts, $traitScope, $nodeCallback); - $this->decorateTraitAttrGroups($node, $traitScope); + $this->processTrait($node, $mutatingScope, $nodeCallback); return; } // the class reflection is resolved AFTER entering to class node @@ -249,7 +204,12 @@ public function processNodes(array $stmts, string $filePath, ?MutatingScope $for $node->setAttribute(AttributeKey::SCOPE, $mutatingScope); } }; - return $this->processNodesWithDependentFiles($filePath, $stmts, $scope, $nodeCallback); + $this->nodeScopeResolver->processNodes($stmts, $scope, $nodeCallback); + $nodeTraverser = new NodeTraverser(); + $nodeTraverser->addVisitor(new WrappedNodeRestoringNodeVisitor()); + $nodeTraverser->addVisitor(new ExprScopeFromStmtNodeVisitor($scope)); + $nodeTraverser->traverse($stmts); + return $stmts; } public function hasUnreachableStatementNode() : bool { @@ -264,21 +224,14 @@ private function processCallike(CallLike $callLike, MutatingScope $mutatingScope if ($callLike instanceof StaticCall) { $callLike->class->setAttribute(AttributeKey::SCOPE, $mutatingScope); $callLike->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($callLike instanceof MethodCall) { + } elseif ($callLike instanceof MethodCall || $callLike instanceof NullsafeMethodCall) { $callLike->var->setAttribute(AttributeKey::SCOPE, $mutatingScope); $callLike->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($callLike instanceof FuncCall) { + } elseif ($callLike instanceof FuncCall) { $callLike->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } - if ($callLike instanceof New_ && !$callLike->class instanceof Class_) { + } elseif ($callLike instanceof New_ && !$callLike->class instanceof Class_) { $callLike->class->setAttribute(AttributeKey::SCOPE, $mutatingScope); } - if ($callLike instanceof NullsafeMethodCall) { - $callLike->var->setAttribute(AttributeKey::SCOPE, $mutatingScope); - $callLike->name->setAttribute(AttributeKey::SCOPE, $mutatingScope); - } } /** * @param \PhpParser\Node\Expr\Assign|\PhpParser\Node\Expr\AssignOp $assign @@ -368,20 +321,6 @@ private function processTernary(Ternary $ternary, MutatingScope $mutatingScope) } $ternary->else->setAttribute(AttributeKey::SCOPE, $mutatingScope); } - /** - * @param Stmt[] $stmts - * @param callable(Node $node, MutatingScope $scope): void $nodeCallback - * @return Stmt[] - */ - private function processNodesWithDependentFiles(string $filePath, array $stmts, MutatingScope $mutatingScope, callable $nodeCallback) : array - { - $this->nodeScopeResolver->processNodes($stmts, $mutatingScope, $nodeCallback); - $this->resolveAndSaveDependentFiles($stmts, $mutatingScope, $filePath); - $nodeTraverser = new NodeTraverser(); - $nodeTraverser->addVisitor(new WrappedNodeRestoringNodeVisitor()); - $nodeTraverser->traverse($stmts); - return $stmts; - } /** * @param \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Interface_|\PhpParser\Node\Stmt\Enum_ $classLike */ @@ -419,19 +358,21 @@ private function resolveClassName($classLike) : string return $classLike->name->toString(); } /** - * @param Stmt[] $stmts + * @param callable(Node $trait, MutatingScope $scope): void $nodeCallback */ - private function resolveAndSaveDependentFiles(array $stmts, MutatingScope $mutatingScope, string $filePath) : void + private function processTrait(Trait_ $trait, MutatingScope $mutatingScope, callable $nodeCallback) : void { - $dependentFiles = []; - foreach ($stmts as $stmt) { - try { - $nodeDependentFiles = $this->dependencyResolver->resolveDependencies($stmt, $mutatingScope); - $dependentFiles = \array_merge($dependentFiles, $nodeDependentFiles); - } catch (AnalysedCodeException $exception) { - // @ignoreException - } - } - $this->changedFilesDetector->addFileDependentFiles($filePath, $dependentFiles); + $traitName = $this->resolveClassName($trait); + $traitClassReflection = $this->reflectionProvider->getClass($traitName); + $traitScope = clone $mutatingScope; + /** @var ScopeContext $scopeContext */ + $scopeContext = $this->privatesAccessor->getPrivateProperty($traitScope, self::CONTEXT); + $traitContext = clone $scopeContext; + // before entering the class/trait again, we have to tell scope no class was set, otherwise it crashes + $this->privatesAccessor->setPrivateProperty($traitContext, 'classReflection', $traitClassReflection); + $this->privatesAccessor->setPrivateProperty($traitScope, self::CONTEXT, $traitContext); + $trait->setAttribute(AttributeKey::SCOPE, $traitScope); + $this->nodeScopeResolver->processNodes($trait->stmts, $traitScope, $nodeCallback); + $this->decorateTraitAttrGroups($trait, $traitScope); } } diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/ClassRenamePhpDocNodeVisitor.php b/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/ClassRenamePhpDocNodeVisitor.php index 96e59d25a..5b6d0e564 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/ClassRenamePhpDocNodeVisitor.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/ClassRenamePhpDocNodeVisitor.php @@ -118,10 +118,10 @@ private function resolveNamespacedName(IdentifierTypeNode $identifierTypeNode, P return $name; } $uses = $this->useImportsResolver->resolve(); - $originalNode = $phpParserNode->getAttribute(AttributeKey::ORIGINAL_NODE) ?? $phpParserNode; - $scope = $originalNode->getAttribute(AttributeKey::SCOPE); + $originalNode = $phpParserNode->getAttribute(AttributeKey::ORIGINAL_NODE); + $scope = $originalNode instanceof PhpParserNode ? $originalNode->getAttribute(AttributeKey::SCOPE) : $phpParserNode->getAttribute(AttributeKey::SCOPE); if (!$scope instanceof Scope) { - if (!$phpParserNode->hasAttribute(AttributeKey::ORIGINAL_NODE)) { + if (!$originalNode instanceof PhpParserNode) { return $this->resolveNamefromUse($uses, $name); } return ''; diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php b/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php index 6ca129f97..95166dc17 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\NodeTypeResolver\PhpDocNodeVisitor; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node as PhpParserNode; use PHPStan\PhpDocParser\Ast\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; diff --git a/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/RectorBetterReflectionSourceLocatorFactory.php b/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/RectorBetterReflectionSourceLocatorFactory.php index 568508d79..855efd94a 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/RectorBetterReflectionSourceLocatorFactory.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/RectorBetterReflectionSourceLocatorFactory.php @@ -32,7 +32,7 @@ public function create() : MemoizingSourceLocator $phpStanSourceLocator = $this->betterReflectionSourceLocatorFactory->create(); // make PHPStan first source locator, so we avoid parsing every single file - huge performance hit! $aggregateSourceLocator = new AggregateSourceLocator([$phpStanSourceLocator, $this->intermediateSourceLocator]); - // important for cache + // important for cache, but should rebuild for tests return new MemoizingSourceLocator($aggregateSourceLocator); } } diff --git a/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php b/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php index 96d3341f0..04eb8bd5b 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/Reflection/BetterReflection/SourceLocatorProvider/DynamicSourceLocatorProvider.php @@ -5,16 +5,15 @@ use PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator; use PHPStan\BetterReflection\SourceLocator\Type\SourceLocator; -use PHPStan\Php\PhpVersion; use PHPStan\Reflection\BetterReflection\SourceLocator\FileNodesFetcher; -use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedDirectorySourceLocator; +use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedDirectorySourceLocatorFactory; use PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedSingleFileSourceLocator; +use Rector\Core\Contract\DependencyInjection\ResetableInterface; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; -use RectorPrefix202308\Webmozart\Assert\Assert; /** * @api phpstan external */ -final class DynamicSourceLocatorProvider +final class DynamicSourceLocatorProvider implements ResetableInterface { /** * @readonly @@ -23,25 +22,25 @@ final class DynamicSourceLocatorProvider private $fileNodesFetcher; /** * @readonly - * @var \PHPStan\Php\PhpVersion + * @var \PHPStan\Reflection\BetterReflection\SourceLocator\OptimizedDirectorySourceLocatorFactory */ - private $phpVersion; + private $optimizedDirectorySourceLocatorFactory; /** * @var string[] */ private $filePaths = []; /** - * @var array + * @var string[] */ - private $filesByDirectory = []; + private $directories = []; /** * @var \PHPStan\BetterReflection\SourceLocator\Type\AggregateSourceLocator|null */ private $aggregateSourceLocator; - public function __construct(FileNodesFetcher $fileNodesFetcher, PhpVersion $phpVersion) + public function __construct(FileNodesFetcher $fileNodesFetcher, OptimizedDirectorySourceLocatorFactory $optimizedDirectorySourceLocatorFactory) { $this->fileNodesFetcher = $fileNodesFetcher; - $this->phpVersion = $phpVersion; + $this->optimizedDirectorySourceLocatorFactory = $optimizedDirectorySourceLocatorFactory; } public function setFilePath(string $filePath) : void { @@ -54,6 +53,13 @@ public function addFiles(array $files) : void { $this->filePaths = \array_merge($this->filePaths, $files); } + /** + * @param string[] $directories + */ + public function addDirectories(array $directories) : void + { + $this->directories = \array_merge($this->directories, $directories); + } public function provide() : SourceLocator { // do not cache for PHPUnit, as in test every fixture is different @@ -65,22 +71,23 @@ public function provide() : SourceLocator foreach ($this->filePaths as $file) { $sourceLocators[] = new OptimizedSingleFileSourceLocator($this->fileNodesFetcher, $file); } - foreach ($this->filesByDirectory as $files) { - $sourceLocators[] = new OptimizedDirectorySourceLocator($this->fileNodesFetcher, $this->phpVersion, $files); + foreach ($this->directories as $directory) { + $sourceLocators[] = $this->optimizedDirectorySourceLocatorFactory->createByDirectory($directory); } $this->aggregateSourceLocator = new AggregateSourceLocator($sourceLocators); return $this->aggregateSourceLocator; } - /** - * @param string[] $files - */ - public function addFilesByDirectory(string $directory, array $files) : void + public function isPathsEmpty() : bool { - Assert::allString($files); - $this->filesByDirectory[$directory] = $files; + return $this->filePaths === [] && $this->directories === []; } - public function isPathsEmpty() : bool + /** + * @api to allow fast single-container tests + */ + public function reset() : void { - return $this->filePaths === [] && $this->filesByDirectory === []; + $this->filePaths = []; + $this->directories = []; + $this->aggregateSourceLocator = null; } } diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/Enum/TypeKind.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/Enum/TypeKind.php index 693e1ba71..c6adc6528 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/Enum/TypeKind.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/Enum/TypeKind.php @@ -17,8 +17,4 @@ final class TypeKind * @var string */ public const PARAM = 'param'; - /** - * @var string - */ - public const ANY = 'any'; } diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php index 14bf5c7a0..db7844f95 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php @@ -11,7 +11,7 @@ use Rector\Core\Exception\NotImplementedYetException; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; final class PHPStanStaticTypeMapper { /** @@ -22,7 +22,7 @@ final class PHPStanStaticTypeMapper /** * @param TypeMapperInterface[] $typeMappers */ - public function __construct(iterable $typeMappers) + public function __construct(array $typeMappers) { $this->typeMappers = $typeMappers; Assert::notEmpty($typeMappers); diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php index 96c46b336..89da0a663 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ArrayTypeMapper.php @@ -26,7 +26,6 @@ use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeCommonTypeNarrower; use Rector\TypeDeclaration\NodeTypeAnalyzer\DetailedTypeAnalyzer; use Rector\TypeDeclaration\TypeAnalyzer\GenericClassStringTypeNormalizer; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; /** * @see \Rector\Tests\PHPStanStaticTypeMapper\TypeMapper\ArrayTypeMapperTest * @@ -70,9 +69,6 @@ public function __construct(UnionTypeCommonTypeNarrower $unionTypeCommonTypeNarr $this->detailedTypeAnalyzer = $detailedTypeAnalyzer; } // To avoid circular dependency - /** - * @required - */ public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper) : void { $this->phpStanStaticTypeMapper = $phpStanStaticTypeMapper; diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/BooleanTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/BooleanTypeMapper.php index 7cc171e1c..8b2275601 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/BooleanTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/BooleanTypeMapper.php @@ -12,6 +12,7 @@ use Rector\Core\Php\PhpVersionProvider; use Rector\Core\ValueObject\PhpVersionFeature; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; +use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; /** * @implements TypeMapperInterface */ @@ -48,6 +49,9 @@ public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::SCALAR_TYPES)) { return null; } + if ($typeKind !== TypeKind::RETURN) { + return new Identifier('bool'); + } if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::NULL_FALSE_TRUE_STANDALONE_TYPE)) { return new Identifier('bool'); } diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ClosureTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ClosureTypeMapper.php index d220df1e2..963bf130f 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ClosureTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ClosureTypeMapper.php @@ -11,6 +11,8 @@ use PHPStan\Type\ClosureType; use PHPStan\Type\Type; use Rector\BetterPhpDocParser\ValueObject\Type\FullyQualifiedIdentifierTypeNode; +use Rector\Core\Php\PhpVersionProvider; +use Rector\Core\ValueObject\PhpVersionFeature; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; @@ -19,6 +21,15 @@ */ final class ClosureTypeMapper implements TypeMapperInterface { + /** + * @readonly + * @var \Rector\Core\Php\PhpVersionProvider + */ + private $phpVersionProvider; + public function __construct(PhpVersionProvider $phpVersionProvider) + { + $this->phpVersionProvider = $phpVersionProvider; + } /** * @return class-string */ @@ -50,7 +61,19 @@ public function mapToPHPStanPhpDocTypeNode(Type $type) : TypeNode */ public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node { - if ($typeKind === TypeKind::PROPERTY) { + // ref https://3v4l.org/iKMK6#v5.3.29 + if ($typeKind === TypeKind::PARAM && $this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::ANONYMOUS_FUNCTION_PARAM_TYPE)) { + return new FullyQualified('Closure'); + } + // ref https://3v4l.org/g8WvW#v7.4.0 + if ($typeKind === TypeKind::PROPERTY && $this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::TYPED_PROPERTIES)) { + return new FullyQualified('Closure'); + } + if ($typeKind !== TypeKind::RETURN) { + return null; + } + // ref https://3v4l.org/nUreN#v7.0.0 + if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::ANONYMOUS_FUNCTION_RETURN_TYPE)) { return null; } return new FullyQualified('Closure'); diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeForParameterMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeForParameterMapper.php index a0af015b3..0475b7d0a 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeForParameterMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeForParameterMapper.php @@ -11,7 +11,6 @@ use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; /** * @implements TypeMapperInterface */ @@ -21,9 +20,6 @@ final class ConditionalTypeForParameterMapper implements TypeMapperInterface * @var \Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper */ private $phpStanStaticTypeMapper; - /** - * @required - */ public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper) : void { $this->phpStanStaticTypeMapper = $phpStanStaticTypeMapper; diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php index 67e294210..a00311c2a 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Reflection\ClassReflection; @@ -15,7 +15,6 @@ use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; /** * @implements TypeMapperInterface */ @@ -26,7 +25,7 @@ final class ConditionalTypeMapper implements TypeMapperInterface */ private $phpStanStaticTypeMapper; /** - * @required + * @api used in autowire, @todo add to lazy container or remove */ public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper) : void { diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/NullTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/NullTypeMapper.php index 919eb54be..fdc7208e4 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/NullTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/NullTypeMapper.php @@ -8,6 +8,8 @@ use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\NullType; use PHPStan\Type\Type; +use Rector\Core\Php\PhpVersionProvider; +use Rector\Core\ValueObject\PhpVersionFeature; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; /** @@ -15,6 +17,15 @@ */ final class NullTypeMapper implements TypeMapperInterface { + /** + * @readonly + * @var \Rector\Core\Php\PhpVersionProvider + */ + private $phpVersionProvider; + public function __construct(PhpVersionProvider $phpVersionProvider) + { + $this->phpVersionProvider = $phpVersionProvider; + } /** * @return class-string */ @@ -35,14 +46,10 @@ public function mapToPHPStanPhpDocTypeNode(Type $type) : TypeNode */ public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node { - if ($typeKind === TypeKind::PROPERTY) { - return null; - } - if ($typeKind === TypeKind::PARAM) { + if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::NULL_FALSE_TRUE_STANDALONE_TYPE)) { return null; } - // return type cannot be only null - if ($typeKind === TypeKind::RETURN) { + if ($typeKind !== TypeKind::RETURN) { return null; } return new Identifier('null'); diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php index 3dea4b770..208887e8a 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php index c840a6c58..e94f87e85 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php @@ -37,9 +37,8 @@ use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeAnalyzer; use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeCommonTypeNarrower; use Rector\PHPStanStaticTypeMapper\ValueObject\UnionTypeAnalysis; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202308\Webmozart\Assert\Assert; -use RectorPrefix202308\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202309\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\InvalidArgumentException; /** * @implements TypeMapperInterface */ @@ -94,9 +93,6 @@ public function __construct(DoctrineTypeAnalyzer $doctrineTypeAnalyzer, PhpVersi $this->nodeNameResolver = $nodeNameResolver; $this->typeFactory = $typeFactory; } - /** - * @required - */ public function autowire(PHPStanStaticTypeMapper $phpStanStaticTypeMapper) : void { $this->phpStanStaticTypeMapper = $phpStanStaticTypeMapper; diff --git a/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php b/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php index 9c1b3be94..426c689c2 100644 --- a/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php +++ b/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Parallel\Application; -use RectorPrefix202308\Clue\React\NDJson\Decoder; -use RectorPrefix202308\Clue\React\NDJson\Encoder; -use RectorPrefix202308\Nette\Utils\Random; -use RectorPrefix202308\React\EventLoop\StreamSelectLoop; -use RectorPrefix202308\React\Socket\ConnectionInterface; -use RectorPrefix202308\React\Socket\TcpServer; +use RectorPrefix202309\Clue\React\NDJson\Decoder; +use RectorPrefix202309\Clue\React\NDJson\Encoder; +use RectorPrefix202309\Nette\Utils\Random; +use RectorPrefix202309\React\EventLoop\StreamSelectLoop; +use RectorPrefix202309\React\Socket\ConnectionInterface; +use RectorPrefix202309\React\Socket\TcpServer; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\Console\Command\ProcessCommand; @@ -16,16 +16,16 @@ use Rector\Core\ValueObject\Reporting\FileDiff; use Rector\Parallel\Command\WorkerCommandLineFactory; use Rector\Parallel\ValueObject\Bridge; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202308\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202308\Symplify\EasyParallel\Enum\Content; -use RectorPrefix202308\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202308\Symplify\EasyParallel\Enum\ReactEvent; -use RectorPrefix202308\Symplify\EasyParallel\ValueObject\ParallelProcess; -use RectorPrefix202308\Symplify\EasyParallel\ValueObject\ProcessPool; -use RectorPrefix202308\Symplify\EasyParallel\ValueObject\Schedule; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202309\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202309\Symplify\EasyParallel\Enum\Content; +use RectorPrefix202309\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202309\Symplify\EasyParallel\Enum\ReactEvent; +use RectorPrefix202309\Symplify\EasyParallel\ValueObject\ParallelProcess; +use RectorPrefix202309\Symplify\EasyParallel\ValueObject\ProcessPool; +use RectorPrefix202309\Symplify\EasyParallel\ValueObject\Schedule; use Throwable; /** * Inspired from @see diff --git a/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php b/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php index 8deb4939b..4b50b9646 100644 --- a/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php +++ b/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php @@ -5,10 +5,10 @@ use Rector\ChangesReporting\Output\JsonOutputFormatter; use Rector\Core\Configuration\Option; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202308\Symplify\EasyParallel\Reflection\CommandFromReflectionFactory; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202309\Symplify\EasyParallel\Reflection\CommandFromReflectionFactory; /** * @see \Rector\Tests\Parallel\Command\WorkerCommandLineFactoryTest * @todo possibly extract to symplify/easy-parallel diff --git a/vendor/rector/rector/packages/Parallel/WorkerRunner.php b/vendor/rector/rector/packages/Parallel/WorkerRunner.php index c9e79dee1..f756e304f 100644 --- a/vendor/rector/rector/packages/Parallel/WorkerRunner.php +++ b/vendor/rector/rector/packages/Parallel/WorkerRunner.php @@ -3,17 +3,16 @@ declare (strict_types=1); namespace Rector\Parallel; -use RectorPrefix202308\Clue\React\NDJson\Decoder; -use RectorPrefix202308\Clue\React\NDJson\Encoder; -use PHPStan\Analyser\NodeScopeResolver; +use RectorPrefix202309\Clue\React\NDJson\Decoder; +use RectorPrefix202309\Clue\React\NDJson\Encoder; use Rector\Core\Application\ApplicationFileProcessor; use Rector\Core\StaticReflection\DynamicSourceLocatorDecorator; use Rector\Core\ValueObject\Configuration; use Rector\Core\ValueObject\Error\SystemError; use Rector\Parallel\ValueObject\Bridge; -use RectorPrefix202308\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202308\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202308\Symplify\EasyParallel\Enum\ReactEvent; +use RectorPrefix202309\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202309\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202309\Symplify\EasyParallel\Enum\ReactEvent; use Throwable; final class WorkerRunner { @@ -27,20 +26,14 @@ final class WorkerRunner * @var \Rector\Core\Application\ApplicationFileProcessor */ private $applicationFileProcessor; - /** - * @readonly - * @var \PHPStan\Analyser\NodeScopeResolver - */ - private $nodeScopeResolver; /** * @var string */ private const RESULT = 'result'; - public function __construct(DynamicSourceLocatorDecorator $dynamicSourceLocatorDecorator, ApplicationFileProcessor $applicationFileProcessor, NodeScopeResolver $nodeScopeResolver) + public function __construct(DynamicSourceLocatorDecorator $dynamicSourceLocatorDecorator, ApplicationFileProcessor $applicationFileProcessor) { $this->dynamicSourceLocatorDecorator = $dynamicSourceLocatorDecorator; $this->applicationFileProcessor = $applicationFileProcessor; - $this->nodeScopeResolver = $nodeScopeResolver; } public function run(Encoder $encoder, Decoder $decoder, Configuration $configuration) : void { @@ -60,8 +53,6 @@ public function run(Encoder $encoder, Decoder $decoder, Configuration $configura } /** @var string[] $filePaths */ $filePaths = $json[Bridge::FILES] ?? []; - // 1. allow PHPStan to work with static reflection on provided files - $this->nodeScopeResolver->setAnalysedFiles($filePaths); $systemErrorsAndFileDiffs = $this->applicationFileProcessor->processFiles($filePaths, $configuration); /** * this invokes all listeners listening $decoder->on(...) @see \Symplify\EasyParallel\Enum\ReactEvent::DATA diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php index a167aab45..c8f66d069 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php @@ -12,8 +12,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpAttribute\AnnotationToAttributeMapper\AnnotationToAttributeMapperTest */ @@ -21,19 +20,16 @@ final class AnnotationToAttributeMapper { /** * @var AnnotationToAttributeMapperInterface[] + * @readonly */ - private $annotationToAttributeMappers = []; + private $annotationToAttributeMappers; /** - * @param RewindableGenerator|AnnotationToAttributeMapperInterface[] $annotationToAttributeMappers + * @param AnnotationToAttributeMapperInterface[] $annotationToAttributeMappers */ - public function __construct(iterable $annotationToAttributeMappers) + public function __construct(array $annotationToAttributeMappers) { - if ($annotationToAttributeMappers instanceof RewindableGenerator) { - $this->annotationToAttributeMappers = \iterator_to_array($annotationToAttributeMappers->getIterator()); - } else { - $this->annotationToAttributeMappers = $annotationToAttributeMappers; - } - Assert::notEmpty($this->annotationToAttributeMappers); + $this->annotationToAttributeMappers = $annotationToAttributeMappers; + Assert::notEmpty($annotationToAttributeMappers); } /** * @return Expr|DocTagNodeState::REMOVE_ARRAY diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php index 3276bf2ec..8a8a50bc2 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php @@ -13,8 +13,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ @@ -33,9 +32,6 @@ public function __construct(ValueResolver $valueResolver) { $this->valueResolver = $valueResolver; } - /** - * @required - */ public function autowire(AnnotationToAttributeMapper $annotationToAttributeMapper) : void { $this->annotationToAttributeMapper = $annotationToAttributeMapper; diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php index cf40ae4a7..7560bd130 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php @@ -14,8 +14,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202308\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202309\Webmozart\Assert\InvalidArgumentException; /** * @implements AnnotationToAttributeMapperInterface */ @@ -27,7 +26,6 @@ final class ArrayItemNodeAnnotationToAttributeMapper implements AnnotationToAttr private $annotationToAttributeMapper; /** * Avoid circular reference - * @required */ public function autowire(AnnotationToAttributeMapper $annotationToAttributeMapper) : void { diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php index c94e62182..90d12dce1 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php @@ -10,8 +10,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ @@ -23,7 +22,6 @@ final class CurlyListNodeAnnotationToAttributeMapper implements AnnotationToAttr private $annotationToAttributeMapper; /** * Avoid circular reference - * @required */ public function autowire(AnnotationToAttributeMapper $annotationToAttributeMapper) : void { diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/DoctrineAnnotationAnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/DoctrineAnnotationAnnotationToAttributeMapper.php index 95f77a691..6ee484af9 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/DoctrineAnnotationAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/DoctrineAnnotationAnnotationToAttributeMapper.php @@ -13,7 +13,6 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\AttributeArrayNameInliner; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; /** * @implements AnnotationToAttributeMapperInterface */ @@ -40,7 +39,6 @@ public function __construct(PhpVersionProvider $phpVersionProvider, AttributeArr } /** * Avoid circular reference - * @required */ public function autowire(AnnotationToAttributeMapper $annotationToAttributeMapper) : void { diff --git a/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php b/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php index 6032b45a2..74819b84b 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php +++ b/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php @@ -11,7 +11,7 @@ use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Scalar\String_; use Rector\Core\Exception\NotImplementedYetException; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; final class AttributeArrayNameInliner { /** diff --git a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php index ecef7a08a..50f72c2da 100644 --- a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php +++ b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\BuilderHelpers; use PhpParser\Node\Arg; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php index 9565a83c2..6a4f6c002 100644 --- a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php +++ b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; diff --git a/vendor/rector/rector/packages/PhpDocParser/NodeVisitor/CallableNodeVisitor.php b/vendor/rector/rector/packages/PhpDocParser/NodeVisitor/CallableNodeVisitor.php index 32e8f68cd..893fa850e 100644 --- a/vendor/rector/rector/packages/PhpDocParser/NodeVisitor/CallableNodeVisitor.php +++ b/vendor/rector/rector/packages/PhpDocParser/NodeVisitor/CallableNodeVisitor.php @@ -16,9 +16,9 @@ final class CallableNodeVisitor extends NodeVisitorAbstract */ private $callable; /** - * @var string|null + * @var int|null */ - private $nodeHashToRemove; + private $nodeIdToRemove; /** * @param callable(Node $node): (int|Node|null) $callable */ @@ -26,6 +26,9 @@ public function __construct(callable $callable) { $this->callable = $callable; } + /** + * @return int|\PhpParser\Node|null + */ public function enterNode(Node $node) { $originalNode = $node; @@ -33,7 +36,7 @@ public function enterNode(Node $node) /** @var int|Node|null $newNode */ $newNode = $callable($node); if ($newNode === NodeTraverser::REMOVE_NODE) { - $this->nodeHashToRemove = \spl_object_hash($originalNode); + $this->nodeIdToRemove = \spl_object_id($originalNode); return $originalNode; } if ($originalNode instanceof Stmt && $newNode instanceof Expr) { @@ -46,8 +49,8 @@ public function enterNode(Node $node) */ public function leaveNode(Node $node) { - if ($this->nodeHashToRemove === \spl_object_hash($node)) { - $this->nodeHashToRemove = null; + if ($this->nodeIdToRemove === \spl_object_id($node)) { + $this->nodeIdToRemove = null; return NodeTraverser::REMOVE_NODE; } return $node; diff --git a/vendor/rector/rector/packages/PostRector/Application/PostFileProcessor.php b/vendor/rector/rector/packages/PostRector/Application/PostFileProcessor.php index 02121604c..975c7a01a 100644 --- a/vendor/rector/rector/packages/PostRector/Application/PostFileProcessor.php +++ b/vendor/rector/rector/packages/PostRector/Application/PostFileProcessor.php @@ -8,12 +8,12 @@ use Rector\Core\Logging\CurrentRectorProvider; use Rector\Core\Provider\CurrentFileProvider; use Rector\Core\ValueObject\Application\File; -use Rector\PostRector\Contract\Rector\PostRectorDependencyInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; use Rector\PostRector\Rector\ClassRenamingPostRector; use Rector\PostRector\Rector\NameImportingPostRector; use Rector\PostRector\Rector\UnusedImportRemovingPostRector; use Rector\PostRector\Rector\UseAddingPostRector; +use Rector\Renaming\Rector\Name\RenameClassRector; use Rector\Skipper\Skipper\Skipper; final class PostFileProcessor { @@ -88,14 +88,7 @@ private function shouldSkipPostRector(PostRectorInterface $postRector) : bool if ($this->skipper->shouldSkipElementAndFilePath($postRector, $filePath)) { return \true; } - if ($postRector instanceof PostRectorDependencyInterface) { - $dependencies = $postRector->getRectorDependencies(); - foreach ($dependencies as $dependency) { - if ($this->skipper->shouldSkipElementAndFilePath($dependency, $filePath)) { - return \true; - } - } - } - return \false; + // skip renaming if rename class rector is skipped + return $postRector instanceof ClassRenamingPostRector && $this->skipper->shouldSkipElementAndFilePath(RenameClassRector::class, $filePath); } } diff --git a/vendor/rector/rector/packages/PostRector/Collector/UseNodesToAddCollector.php b/vendor/rector/rector/packages/PostRector/Collector/UseNodesToAddCollector.php index 185311faf..919bc4007 100644 --- a/vendor/rector/rector/packages/PostRector/Collector/UseNodesToAddCollector.php +++ b/vendor/rector/rector/packages/PostRector/Collector/UseNodesToAddCollector.php @@ -97,18 +97,20 @@ public function isShortImported(File $file, FullyQualifiedObjectType $fullyQuali { $shortName = $fullyQualifiedObjectType->getShortName(); $filePath = $file->getFilePath(); - if ($this->isShortClassImported($filePath, $shortName)) { - return \true; - } $fileConstantUseImportTypes = $this->constantUseImportTypesInFilePath[$filePath] ?? []; foreach ($fileConstantUseImportTypes as $fileConstantUseImportType) { + // don't compare strtolower for use const as insensitive is allowed, see https://3v4l.org/lteVa if ($fileConstantUseImportType->getShortName() === $shortName) { return \true; } } + $shortName = \strtolower($shortName); + if ($this->isShortClassImported($filePath, $shortName)) { + return \true; + } $fileFunctionUseImportTypes = $this->functionUseImportTypesInFilePath[$filePath] ?? []; foreach ($fileFunctionUseImportTypes as $fileFunctionUseImportType) { - if ($fileFunctionUseImportType->getShortName() === $shortName) { + if (\strtolower($fileFunctionUseImportType->getShortName()) === $shortName) { return \true; } } @@ -162,7 +164,7 @@ private function isShortClassImported(string $filePath, string $shortName) : boo { $fileUseImports = $this->useImportTypesInFilePath[$filePath] ?? []; foreach ($fileUseImports as $fileUseImport) { - if ($fileUseImport->getShortName() === $shortName) { + if (\strtolower($fileUseImport->getShortName()) === $shortName) { return \true; } } diff --git a/vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorDependencyInterface.php b/vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorDependencyInterface.php deleted file mode 100644 index 33f0d0ca6..000000000 --- a/vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorDependencyInterface.php +++ /dev/null @@ -1,13 +0,0 @@ -[] - */ - public function getRectorDependencies() : array; -} diff --git a/vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorInterface.php b/vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorInterface.php index 8f58da305..d91a45df5 100644 --- a/vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorInterface.php +++ b/vendor/rector/rector/packages/PostRector/Contract/Rector/PostRectorInterface.php @@ -4,7 +4,6 @@ namespace Rector\PostRector\Contract\Rector; use PhpParser\NodeVisitor; -use Rector\Core\Contract\Rector\RectorInterface; -interface PostRectorInterface extends NodeVisitor, RectorInterface +interface PostRectorInterface extends NodeVisitor { } diff --git a/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php b/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php index 0804d3677..7f8165148 100644 --- a/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php +++ b/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php @@ -14,16 +14,10 @@ use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\Configuration\RenamedClassesDataCollector; -use Rector\Core\Contract\Rector\RectorInterface; -use Rector\Core\NonPhpFile\Rector\RenameClassNonPhpRector; use Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace; use Rector\NodeTypeResolver\Node\AttributeKey; -use Rector\PostRector\Contract\Rector\PostRectorDependencyInterface; use Rector\Renaming\NodeManipulator\ClassRenamer; -use Rector\Renaming\Rector\Name\RenameClassRector; -use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; -use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -final class ClassRenamingPostRector extends \Rector\PostRector\Rector\AbstractPostRector implements PostRectorDependencyInterface +final class ClassRenamingPostRector extends \Rector\PostRector\Rector\AbstractPostRector { /** * @readonly @@ -66,13 +60,6 @@ public function beforeTraverse(array $nodes) : array } return $nodes; } - /** - * @return class-string[] - */ - public function getRectorDependencies() : array - { - return [RenameClassRector::class, RenameClassNonPhpRector::class]; - } public function enterNode(Node $node) : ?Node { // cannot be renamed @@ -96,18 +83,4 @@ public function enterNode(Node $node) : ?Node $this->rootNode->stmts = $this->useImportsRemover->removeImportsFromStmts($this->rootNode->stmts, $removedUses); return $result; } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Rename references for classes that were renamed during Rector run', [new CodeSample(<<<'CODE_SAMPLE' -function (OriginalClass $someClass) -{ -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -function (RenamedClass $someClass) -{ -} -CODE_SAMPLE -)]); - } } diff --git a/vendor/rector/rector/packages/PostRector/Rector/NameImportingPostRector.php b/vendor/rector/rector/packages/PostRector/Rector/NameImportingPostRector.php index e9fee171a..3a262c997 100644 --- a/vendor/rector/rector/packages/PostRector/Rector/NameImportingPostRector.php +++ b/vendor/rector/rector/packages/PostRector/Rector/NameImportingPostRector.php @@ -26,8 +26,6 @@ use Rector\Naming\Naming\UseImportsResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\PhpDoc\NodeAnalyzer\DocBlockNameImporter; -use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; -use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; final class NameImportingPostRector extends \Rector\PostRector\Rector\AbstractPostRector { /** @@ -104,28 +102,6 @@ public function enterNode(Node $node) : ?Node } return null; } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Imports fully qualified names', [new CodeSample(<<<'CODE_SAMPLE' -class SomeClass -{ - public function run(App\AnotherClass $anotherClass) - { - } -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -use App\AnotherClass; - -class SomeClass -{ - public function run(AnotherClass $anotherClass) - { - } -} -CODE_SAMPLE -)]); - } private function processNodeName(Name $name, File $file) : ?Node { if ($name->isSpecialClassName()) { diff --git a/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php b/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php index 35ad7bbf0..1f51d6f09 100644 --- a/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php +++ b/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; @@ -18,8 +18,6 @@ use Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; -use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; -use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; final class UnusedImportRemovingPostRector extends \Rector\PostRector\Rector\AbstractPostRector { /** @@ -69,26 +67,6 @@ public function enterNode(Node $node) : ?Node $node->stmts = \array_values($node->stmts); return $node; } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Removes unused import names', [new CodeSample(<<<'CODE_SAMPLE' -namespace App; - -use App\SomeUnusedClass; - -class SomeClass -{ -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -namespace App; - -class SomeClass -{ -} -CODE_SAMPLE -)]); - } /** * @return string[] * @param \PhpParser\Node\Stmt\Namespace_|\Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace $namespace diff --git a/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php b/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php index 620ce9992..d1793af0b 100644 --- a/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php +++ b/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php @@ -13,8 +13,6 @@ use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; use Rector\PostRector\Collector\UseNodesToAddCollector; use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; -use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; -use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; final class UseAddingPostRector extends \Rector\PostRector\Rector\AbstractPostRector { /** @@ -81,28 +79,6 @@ public function beforeTraverse(array $nodes) : array } return $this->resolveNodesWithImportedUses($nodes, $useImportTypes, $constantUseImportTypes, $functionUseImportTypes, $rootNode); } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Add unique use imports collected during Rector run', [new CodeSample(<<<'CODE_SAMPLE' -class SomeClass -{ - public function run(AnotherClass $anotherClass) - { - } -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -use App\AnotherClass; - -class SomeClass -{ - public function run(AnotherClass $anotherClass) - { - } -} -CODE_SAMPLE -)]); - } /** * @param Stmt[] $nodes * @param FullyQualifiedObjectType[] $useImportTypes diff --git a/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedClassResolver.php b/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedClassResolver.php index 219715eae..8d2bccf46 100644 --- a/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedClassResolver.php +++ b/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedClassResolver.php @@ -3,31 +3,26 @@ declare (strict_types=1); namespace Rector\Skipper\SkipCriteriaResolver; -use PHPStan\Reflection\ReflectionProvider; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; +use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; final class SkippedClassResolver { - /** - * @readonly - * @var \PHPStan\Reflection\ReflectionProvider - */ - private $reflectionProvider; /** * @var array */ private $skippedClasses = []; - public function __construct(ReflectionProvider $reflectionProvider) - { - $this->reflectionProvider = $reflectionProvider; - } /** * @return array */ public function resolve() : array { + if (StaticPHPUnitEnvironment::isPHPUnitRun()) { + // disable cache in tests + $this->skippedClasses = []; + } // skip cache in tests - if ($this->skippedClasses !== [] && !\defined('PHPUNIT_COMPOSER_INSTALL')) { + if ($this->skippedClasses !== []) { return $this->skippedClasses; } $skip = SimpleParameterProvider::provideArrayParameter(Option::SKIP); @@ -40,7 +35,8 @@ public function resolve() : array if (!\is_string($key)) { continue; } - if (!$this->reflectionProvider->hasClass($key)) { + // this only checks for Rector rules, that are always autoloaded + if (!\class_exists($key) && !\interface_exists($key)) { continue; } $this->skippedClasses[$key] = $value; diff --git a/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedPathsResolver.php b/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedPathsResolver.php index 5c9dd6737..dfcef02dc 100644 --- a/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedPathsResolver.php +++ b/vendor/rector/rector/packages/Skipper/SkipCriteriaResolver/SkippedPathsResolver.php @@ -6,6 +6,7 @@ use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\FileSystem\FilePathHelper; +use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; /** * @see \Rector\Tests\Skipper\SkipCriteriaResolver\SkippedPathsResolver\SkippedPathsResolverTest */ @@ -29,8 +30,12 @@ public function __construct(FilePathHelper $filePathHelper) */ public function resolve() : array { + if (StaticPHPUnitEnvironment::isPHPUnitRun()) { + // disable cache in tests + $this->skippedPaths = []; + } // disable cache in tests - if ($this->skippedPaths !== [] && !\defined('PHPUNIT_COMPOSER_INSTALL')) { + if ($this->skippedPaths !== []) { return $this->skippedPaths; } $skip = SimpleParameterProvider::provideArrayParameter(Option::SKIP); diff --git a/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php b/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php index a0991cd15..35ef34a36 100644 --- a/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php +++ b/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php @@ -11,7 +11,7 @@ use Rector\Skipper\SkipVoter\PathSkipVoter; /** * @api - * @see \Rector\Tests\Skipper\Skipper\Skipper\SkipperTest + * @see \Rector\Tests\Skipper\Skipper\SkipperTest */ final class Skipper { diff --git a/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php b/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php index bfa39d47b..314fb4815 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\Mapper; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PHPStan\Type\Accessory\AccessoryNonEmptyStringType; use PHPStan\Type\ArrayType; use PHPStan\Type\BooleanType; diff --git a/vendor/rector/rector/packages/StaticTypeMapper/Naming/NameScopeFactory.php b/vendor/rector/rector/packages/StaticTypeMapper/Naming/NameScopeFactory.php index 21822fcd9..c2a5039e1 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/Naming/NameScopeFactory.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/Naming/NameScopeFactory.php @@ -19,7 +19,6 @@ use Rector\Naming\Naming\UseImportsResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\StaticTypeMapper\StaticTypeMapper; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; /** * @see https://github.com/phpstan/phpstan-src/blob/8376548f76e2c845ae047e3010e873015b796818/src/Analyser/NameScope.php#L32 */ @@ -55,9 +54,6 @@ public function __construct(UseImportsResolver $useImportsResolver, AstResolver $this->reflectionResolver = $reflectionResolver; } // This is needed to avoid circular references - /** - * @required - */ public function autowire(PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper) : void { $this->phpDocInfoFactory = $phpDocInfoFactory; diff --git a/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php b/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php index 013f8e9ea..55051ad89 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php @@ -9,7 +9,7 @@ use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\Type; use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\StaticTypeMapper\PhpDoc\PhpDocTypeMapperTest */ @@ -28,7 +28,7 @@ final class PhpDocTypeMapper /** * @param PhpDocTypeMapperInterface[] $phpDocTypeMappers */ - public function __construct(iterable $phpDocTypeMappers, TypeNodeResolver $typeNodeResolver) + public function __construct(array $phpDocTypeMappers, TypeNodeResolver $typeNodeResolver) { $this->phpDocTypeMappers = $phpDocTypeMappers; $this->typeNodeResolver = $typeNodeResolver; diff --git a/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php b/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php index 4bc9a586f..c19a3b911 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\PhpDocParser; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\NameScope; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; diff --git a/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php b/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php index 7fcafa4e1..391b5383c 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Use_; use PhpParser\Node\Stmt\UseUse; diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php index c21841780..3f23fd7c9 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php @@ -4,10 +4,11 @@ namespace Rector\Testing\Fixture; use Iterator; -use RectorPrefix202308\Symfony\Component\Finder\Finder; +use RectorPrefix202309\Symfony\Component\Finder\Finder; final class FixtureFileFinder { /** + * @api used in tests * @return Iterator> */ public static function yieldDirectory(string $directory, string $suffix = '*.php.inc') : Iterator diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php index df6fc3452..3a1c3ec77 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php @@ -3,23 +3,22 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202308\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\FileSystem; final class FixtureFileUpdater { /** * @api */ - public static function updateFixtureContent(string $originalFilePath, string $changedContent, string $fixtureFilePath) : void + public static function updateFixtureContent(string $originalContent, string $changedContent, string $fixtureFilePath) : void { if (!\getenv('UPDATE_TESTS') && !\getenv('UT')) { return; } - $newOriginalContent = self::resolveNewFixtureContent($originalFilePath, $changedContent); + $newOriginalContent = self::resolveNewFixtureContent($originalContent, $changedContent); FileSystem::write($fixtureFilePath, $newOriginalContent); } - private static function resolveNewFixtureContent(string $originalFilePath, string $changedContent) : string + private static function resolveNewFixtureContent(string $originalContent, string $changedContent) : string { - $originalContent = FileSystem::read($originalFilePath); if ($originalContent === $changedContent) { return $originalContent; } diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php index a900cac97..5d225c67a 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Strings; /** * @api */ diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php index 12f0932cb..33b284e4a 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202308\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\FileSystem; /** * @api used in tests */ diff --git a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractLazyTestCase.php b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractLazyTestCase.php index 2fe750854..2b15000f7 100644 --- a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractLazyTestCase.php +++ b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractLazyTestCase.php @@ -3,32 +3,24 @@ declare (strict_types=1); namespace Rector\Testing\PHPUnit; -use RectorPrefix202308\Illuminate\Container\Container; use PHPUnit\Framework\TestCase; -use Rector\Core\Contract\Rector\NonPhpRectorInterface; -use Rector\Core\Contract\Rector\PhpRectorInterface; -use Rector\Core\Contract\Rector\RectorInterface; +use Rector\Config\RectorConfig; use Rector\Core\DependencyInjection\LazyContainerFactory; -use Rector\Core\Rector\AbstractRector; -use Rector\Core\Util\Reflection\PrivatesAccessor; -use RectorPrefix202308\Webmozart\Assert\Assert; abstract class AbstractLazyTestCase extends TestCase { /** - * @var \Illuminate\Container\Container|null + * @var \Rector\Config\RectorConfig|null */ - private static $container; + protected static $rectorConfig; /** * @api * @param string[] $configFiles */ protected function bootFromConfigFiles(array $configFiles) : void { - $container = self::getContainer(); + $rectorConfig = self::getContainer(); foreach ($configFiles as $configFile) { - $configClosure = (require $configFile); - Assert::isCallable($configClosure); - $configClosure($container); + $rectorConfig->import($configFile); } } /** @@ -40,48 +32,12 @@ protected function make(string $class) : object { return self::getContainer()->make($class); } - protected static function getContainer() : Container + protected static function getContainer() : RectorConfig { - if (!self::$container instanceof Container) { + if (!self::$rectorConfig instanceof RectorConfig) { $lazyContainerFactory = new LazyContainerFactory(); - self::$container = $lazyContainerFactory->create(); + self::$rectorConfig = $lazyContainerFactory->create(); } - return self::$container; - } - /** - * @api soon be used - */ - protected function forgetRectorsRules() : void - { - $container = self::getContainer(); - // 1. forget instance first! then remove tags - $rectors = $container->tagged(RectorInterface::class); - foreach ($rectors as $rector) { - $container->offsetUnset(\get_class($rector)); - } - // 2. remove all tagged rules - $privatesAccessor = new PrivatesAccessor(); - $privatesAccessor->propertyClosure($container, 'tags', static function (array $tags) : array { - unset($tags[RectorInterface::class]); - unset($tags[PhpRectorInterface::class]); - unset($tags[NonPhpRectorInterface::class]); - return $tags; - }); - $rectors = $container->tagged(RectorInterface::class); - foreach ($rectors as $rector) { - $container->offsetUnset(\get_class($rector)); - } - // 3. remove after binding too, to avoid setting configuration over and over again - $privatesAccessor->propertyClosure($container, 'afterResolvingCallbacks', static function (array $afterResolvingCallbacks) : array { - foreach (\array_keys($afterResolvingCallbacks) as $key) { - if ($key === AbstractRector::class) { - continue; - } - if (\is_a($key, RectorInterface::class, \true)) { - unset($afterResolvingCallbacks[$key]); - } - } - return $afterResolvingCallbacks; - }); + return self::$rectorConfig; } } diff --git a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php index 86f8e574a..8e09ed22b 100644 --- a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php +++ b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Testing\PHPUnit; +use RectorPrefix202309\Illuminate\Container\RewindableGenerator; use Iterator; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Strings; -use PHPStan\Analyser\NodeScopeResolver; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Strings; use PHPUnit\Framework\ExpectationFailedException; use Rector\Core\Application\ApplicationFileProcessor; use Rector\Core\Autoloading\AdditionalAutoloader; @@ -14,13 +14,19 @@ use Rector\Core\Configuration\ConfigurationFactory; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; +use Rector\Core\Contract\DependencyInjection\ResetableInterface; +use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\Exception\ShouldNotHappenException; +use Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser; +use Rector\Core\Provider\CurrentFileProvider; +use Rector\Core\Rector\AbstractRector; +use Rector\Core\Util\Reflection\PrivatesAccessor; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; use Rector\Testing\Contract\RectorTestInterface; use Rector\Testing\Fixture\FixtureFileFinder; use Rector\Testing\Fixture\FixtureFileUpdater; use Rector\Testing\Fixture\FixtureSplitter; -abstract class AbstractRectorTestCase extends \Rector\Testing\PHPUnit\AbstractTestCase implements RectorTestInterface +abstract class AbstractRectorTestCase extends \Rector\Testing\PHPUnit\AbstractLazyTestCase implements RectorTestInterface { /** * @var \Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider @@ -38,26 +44,65 @@ abstract class AbstractRectorTestCase extends \Rector\Testing\PHPUnit\AbstractTe * @var array */ private static $cacheByRuleAndConfig = []; + /** + * @var \Rector\Core\Provider\CurrentFileProvider + */ + private $currentFileProvider; + /** + * Restore default parameters + */ + public static function tearDownAfterClass() : void + { + SimpleParameterProvider::setParameter(Option::AUTO_IMPORT_NAMES, \false); + SimpleParameterProvider::setParameter(Option::AUTO_IMPORT_DOC_BLOCK_NAMES, \false); + SimpleParameterProvider::setParameter(Option::REMOVE_UNUSED_IMPORTS, \false); + SimpleParameterProvider::setParameter(Option::IMPORT_SHORT_CLASSES, \true); + SimpleParameterProvider::setParameter(Option::INDENT_CHAR, ' '); + SimpleParameterProvider::setParameter(Option::INDENT_SIZE, 4); + } protected function setUp() : void { + $this->includePreloadFilesAndScoperAutoload(); @\ini_set('memory_limit', '-1'); $configFile = $this->provideConfigFilePath(); + // cleanup all registered rectors, so you can use only the new ones + $rectorConfig = self::getContainer(); // boot once for config + test case to avoid booting again and again for every test fixture $cacheKey = \sha1($configFile . static::class); if (!isset(self::$cacheByRuleAndConfig[$cacheKey])) { - $this->includePreloadFilesAndScoperAutoload(); + // reset + /** @var RewindableGenerator $resetables */ + $resetables = $rectorConfig->tagged(ResetableInterface::class); + foreach ($resetables as $resetable) { + /** @var ResetableInterface $resetable */ + $resetable->reset(); + } + $this->forgetRectorsRules(); + $rectorConfig->resetRuleConfigurations(); + // this has to be always empty, so we can add new rules with their configuration + $this->assertEmpty($rectorConfig->tagged(RectorInterface::class)); $this->bootFromConfigFiles([$configFile]); - /** @var AdditionalAutoloader $additionalAutoloader */ - $additionalAutoloader = $this->getService(AdditionalAutoloader::class); - $additionalAutoloader->autoloadPaths(); - /** @var BootstrapFilesIncluder $bootstrapFilesIncluder */ - $bootstrapFilesIncluder = $this->getService(BootstrapFilesIncluder::class); - $bootstrapFilesIncluder->includeBootstrapFiles(); - $bootstrapFilesIncluder->includePHPStanExtensionsBoostrapFiles(); + $rectorsGenerator = $rectorConfig->tagged(RectorInterface::class); + if ($rectorsGenerator instanceof RewindableGenerator) { + $phpRectors = \iterator_to_array($rectorsGenerator->getIterator()); + } else { + // no rules at all, e.g. in case of only post rector run + $phpRectors = []; + } + $rectorNodeTraverser = $rectorConfig->make(RectorNodeTraverser::class); + $rectorNodeTraverser->refreshPhpRectors($phpRectors); + // store cache self::$cacheByRuleAndConfig[$cacheKey] = \true; } - $this->applicationFileProcessor = $this->getService(ApplicationFileProcessor::class); - $this->dynamicSourceLocatorProvider = $this->getService(DynamicSourceLocatorProvider::class); + $this->applicationFileProcessor = $this->make(ApplicationFileProcessor::class); + $this->dynamicSourceLocatorProvider = $this->make(DynamicSourceLocatorProvider::class); + /** @var AdditionalAutoloader $additionalAutoloader */ + $additionalAutoloader = $this->make(AdditionalAutoloader::class); + $additionalAutoloader->autoloadPaths(); + /** @var BootstrapFilesIncluder $bootstrapFilesIncluder */ + $bootstrapFilesIncluder = $this->make(BootstrapFilesIncluder::class); + $bootstrapFilesIncluder->includeBootstrapFiles(); + $this->currentFileProvider = $this->make(CurrentFileProvider::class); } protected function tearDown() : void { @@ -65,8 +110,6 @@ protected function tearDown() : void if (\is_string($this->inputFilePath)) { FileSystem::delete($this->inputFilePath); } - // free memory to reduce memory peak consumption on windows - unset($this->applicationFileProcessor, $this->dynamicSourceLocatorProvider); } /** * @return Iterator<> @@ -101,6 +144,33 @@ protected function doTestFile(string $fixtureFilePath) : void FileSystem::write($inputFilePath, $inputFileContents); $this->doTestFileMatchesExpectedContent($inputFilePath, $expectedFileContents, $fixtureFilePath); } + protected function forgetRectorsRules() : void + { + $rectorConfig = self::getContainer(); + // 1. forget instance first, then remove tags + $rectors = $rectorConfig->tagged(RectorInterface::class); + foreach ($rectors as $rector) { + $rectorConfig->offsetUnset(\get_class($rector)); + } + // 2. remove all tagged rules + $privatesAccessor = new PrivatesAccessor(); + $privatesAccessor->propertyClosure($rectorConfig, 'tags', static function (array $tags) : array { + unset($tags[RectorInterface::class]); + return $tags; + }); + // 3. remove after binding too, to avoid setting configuration over and over again + $privatesAccessor->propertyClosure($rectorConfig, 'afterResolvingCallbacks', static function (array $afterResolvingCallbacks) : array { + foreach (\array_keys($afterResolvingCallbacks) as $key) { + if ($key === AbstractRector::class) { + continue; + } + if (\is_a($key, RectorInterface::class, \true)) { + unset($afterResolvingCallbacks[$key]); + } + } + return $afterResolvingCallbacks; + }); + } private function includePreloadFilesAndScoperAutoload() : void { if (\file_exists(__DIR__ . '/../../../preload.php')) { @@ -119,12 +189,13 @@ private function doTestFileMatchesExpectedContent(string $originalFilePath, stri { SimpleParameterProvider::setParameter(Option::SOURCE, [$originalFilePath]); $changedContent = $this->processFilePath($originalFilePath); + $originalFileContent = $this->currentFileProvider->getFile()->getOriginalFileContent(); $fixtureFilename = \basename($fixtureFilePath); $failureMessage = \sprintf('Failed on fixture file "%s"', $fixtureFilename); try { $this->assertSame($expectedFileContents, $changedContent, $failureMessage); } catch (ExpectationFailedException $exception) { - FixtureFileUpdater::updateFixtureContent($originalFilePath, $changedContent, $fixtureFilePath); + FixtureFileUpdater::updateFixtureContent($originalFileContent, $changedContent, $fixtureFilePath); // if not exact match, check the regex version (useful for generated hashes/uuids in the code) $this->assertStringMatchesFormat($expectedFileContents, $changedContent, $failureMessage); } @@ -132,15 +203,11 @@ private function doTestFileMatchesExpectedContent(string $originalFilePath, stri private function processFilePath(string $filePath) : string { $this->dynamicSourceLocatorProvider->setFilePath($filePath); - // needed for PHPStan, because the analyzed file is just created in /temp - need for trait and similar deps - /** @var NodeScopeResolver $nodeScopeResolver */ - $nodeScopeResolver = $this->getService(NodeScopeResolver::class); - $nodeScopeResolver->setAnalysedFiles([$filePath]); /** @var ConfigurationFactory $configurationFactory */ - $configurationFactory = $this->getService(ConfigurationFactory::class); + $configurationFactory = $this->make(ConfigurationFactory::class); $configuration = $configurationFactory->createForTests([$filePath]); $this->applicationFileProcessor->processFiles([$filePath], $configuration); - return FileSystem::read($filePath); + return $this->currentFileProvider->getFile()->getFileContent(); } private function createInputFilePath(string $fixtureFilePath) : string { diff --git a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractTestCase.php b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractTestCase.php index 3c2409507..25d4609fe 100644 --- a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractTestCase.php +++ b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractTestCase.php @@ -3,44 +3,28 @@ declare (strict_types=1); namespace Rector\Testing\PHPUnit; -use PHPUnit\Framework\TestCase; -use RectorPrefix202308\Psr\Container\ContainerInterface; -use Rector\Core\Exception\ShouldNotHappenException; -use Rector\Core\Kernel\RectorKernel; -use Rector\Core\Util\FileHasher; -abstract class AbstractTestCase extends TestCase +abstract class AbstractTestCase extends \Rector\Testing\PHPUnit\AbstractLazyTestCase { /** - * @var array + * @deprecated only for BC */ - private static $kernelsByHash = []; - /** - * @var \Psr\Container\ContainerInterface|null - */ - private static $currentContainer; protected function boot() : void { - $this->bootFromConfigFiles([]); } /** * @param string[] $configFiles */ protected function bootFromConfigFiles(array $configFiles) : void { - $fileHasher = new FileHasher(); - $configsHash = $fileHasher->hashFiles($configFiles); - if (isset(self::$kernelsByHash[$configsHash])) { - $rectorKernel = self::$kernelsByHash[$configsHash]; - self::$currentContainer = $rectorKernel->getContainer(); - } else { - $rectorKernel = new RectorKernel(); - $containerBuilder = $rectorKernel->createFromConfigs($configFiles); - self::$kernelsByHash[$configsHash] = $rectorKernel; - self::$currentContainer = $containerBuilder; + $rectorConfig = self::getContainer(); + foreach ($configFiles as $configFile) { + $callable = (require $configFile); + $callable($rectorConfig); } } /** * Syntax-sugar to remove static + * @deprecated Only for BC * * @template T of object * @param class-string $type @@ -48,14 +32,6 @@ protected function bootFromConfigFiles(array $configFiles) : void */ protected function getService(string $type) : object { - if (!self::$currentContainer instanceof ContainerInterface) { - throw new ShouldNotHappenException('First, create container with "boot()" or "bootWithConfigFileInfos([...])"'); - } - $object = self::$currentContainer->get($type); - if ($object === null) { - $message = \sprintf('Service "%s" was not found', $type); - throw new ShouldNotHappenException($message); - } - return $object; + return $this->make($type); } } diff --git a/vendor/rector/rector/packages/Testing/PHPUnit/StaticPHPUnitEnvironment.php b/vendor/rector/rector/packages/Testing/PHPUnit/StaticPHPUnitEnvironment.php index da1427dad..e89bc68d3 100644 --- a/vendor/rector/rector/packages/Testing/PHPUnit/StaticPHPUnitEnvironment.php +++ b/vendor/rector/rector/packages/Testing/PHPUnit/StaticPHPUnitEnvironment.php @@ -10,6 +10,6 @@ final class StaticPHPUnitEnvironment */ public static function isPHPUnitRun() : bool { - return \defined('PHPUNIT_COMPOSER_INSTALL') || \defined('__PHPUNIT_PHAR__'); + return \defined('PHPUNIT_COMPOSER_INSTALL'); } } diff --git a/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php b/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php index 95fd983d2..6aeab57f2 100644 --- a/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php +++ b/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\TestingParser; -use RectorPrefix202308\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\FileSystem; use PhpParser\Node; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; @@ -11,6 +11,7 @@ use Rector\Core\Provider\CurrentFileProvider; use Rector\Core\ValueObject\Application\File; use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator; +use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; /** * @api */ @@ -31,14 +32,22 @@ final class TestingParser * @var \Rector\Core\Provider\CurrentFileProvider */ private $currentFileProvider; - public function __construct(RectorParser $rectorParser, NodeScopeAndMetadataDecorator $nodeScopeAndMetadataDecorator, CurrentFileProvider $currentFileProvider) + /** + * @readonly + * @var \Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider + */ + private $dynamicSourceLocatorProvider; + public function __construct(RectorParser $rectorParser, NodeScopeAndMetadataDecorator $nodeScopeAndMetadataDecorator, CurrentFileProvider $currentFileProvider, DynamicSourceLocatorProvider $dynamicSourceLocatorProvider) { $this->rectorParser = $rectorParser; $this->nodeScopeAndMetadataDecorator = $nodeScopeAndMetadataDecorator; $this->currentFileProvider = $currentFileProvider; + $this->dynamicSourceLocatorProvider = $dynamicSourceLocatorProvider; } public function parseFilePathToFile(string $filePath) : File { + // needed for PHPStan reflection, as it caches the last processed file + $this->dynamicSourceLocatorProvider->setFilePath($filePath); $file = new File($filePath, FileSystem::read($filePath)); $stmts = $this->rectorParser->parseFile($filePath); $stmts = $this->nodeScopeAndMetadataDecorator->decorateNodesFromFile($file, $stmts); @@ -51,6 +60,8 @@ public function parseFilePathToFile(string $filePath) : File */ public function parseFileToDecoratedNodes(string $filePath) : array { + // needed for PHPStan reflection, as it caches the last processed file + $this->dynamicSourceLocatorProvider->setFilePath($filePath); SimpleParameterProvider::setParameter(Option::SOURCE, [$filePath]); $stmts = $this->rectorParser->parseFile($filePath); $file = new File($filePath, FileSystem::read($filePath)); diff --git a/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php b/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php index cd0415005..51529ddb9 100644 --- a/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php +++ b/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php @@ -136,7 +136,7 @@ private function isReturnTypeChangeAllowed(ClassMethod $classMethod, Scope $scop $parentClassMethodReflection = $this->parentClassMethodTypeOverrideGuard->getParentClassMethod($classMethod); // nothing to check if (!$parentClassMethodReflection instanceof MethodReflection) { - return \true; + return !$this->parentClassMethodTypeOverrideGuard->hasParentClassMethod($classMethod); } $parametersAcceptor = ParametersAcceptorSelectorVariantsWrapper::select($parentClassMethodReflection, $classMethod, $scope); if ($parametersAcceptor instanceof FunctionVariantWithPhpDocs && !$parametersAcceptor->getNativeReturnType() instanceof MixedType) { diff --git a/vendor/rector/rector/packages/VendorLocker/ParentClassMethodTypeOverrideGuard.php b/vendor/rector/rector/packages/VendorLocker/ParentClassMethodTypeOverrideGuard.php index b7b49a4cd..b982aa492 100644 --- a/vendor/rector/rector/packages/VendorLocker/ParentClassMethodTypeOverrideGuard.php +++ b/vendor/rector/rector/packages/VendorLocker/ParentClassMethodTypeOverrideGuard.php @@ -48,7 +48,10 @@ public function __construct(NodeNameResolver $nodeNameResolver, ReflectionResolv $this->staticTypeMapper = $staticTypeMapper; $this->classReflectionAnalyzer = $classReflectionAnalyzer; } - public function hasParentClassMethod(ClassMethod $classMethod) : bool + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PHPStan\Reflection\MethodReflection $classMethod + */ + public function hasParentClassMethod($classMethod) : bool { try { $parentClassMethod = $this->resolveParentClassMethod($classMethod); @@ -59,7 +62,10 @@ public function hasParentClassMethod(ClassMethod $classMethod) : bool return \true; } } - public function getParentClassMethod(ClassMethod $classMethod) : ?MethodReflection + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PHPStan\Reflection\MethodReflection $classMethod + */ + public function getParentClassMethod($classMethod) : ?MethodReflection { try { return $this->resolveParentClassMethod($classMethod); @@ -78,15 +84,23 @@ public function shouldSkipReturnTypeChange(ClassMethod $classMethod, Type $paren } return $this->typeComparator->areTypesEqual($currentReturnType, $parentType); } - private function resolveParentClassMethod(ClassMethod $classMethod) : ?MethodReflection + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PHPStan\Reflection\MethodReflection $classMethod + */ + private function resolveParentClassMethod($classMethod) : ?MethodReflection { - $classReflection = $this->reflectionResolver->resolveClassReflection($classMethod); - if (!$classReflection instanceof ClassReflection) { - // we can't resolve the class, so we don't know. - throw new UnresolvableClassException(); + if ($classMethod instanceof ClassMethod) { + $classReflection = $this->reflectionResolver->resolveClassReflection($classMethod); + if (!$classReflection instanceof ClassReflection) { + // we can't resolve the class, so we don't know. + throw new UnresolvableClassException(); + } + /** @var string $methodName */ + $methodName = $this->nodeNameResolver->getName($classMethod); + } else { + $classReflection = $classMethod->getDeclaringClass(); + $methodName = $classMethod->getName(); } - /** @var string $methodName */ - $methodName = $this->nodeNameResolver->getName($classMethod); $currentClassReflection = $classReflection; while ($this->hasClassParent($currentClassReflection)) { $parentClassReflection = $currentClassReflection->getParentClass(); diff --git a/vendor/rector/rector/packages/VersionBonding/PhpVersionedFilter.php b/vendor/rector/rector/packages/VersionBonding/PhpVersionedFilter.php index fdf128cfb..302c1e365 100644 --- a/vendor/rector/rector/packages/VersionBonding/PhpVersionedFilter.php +++ b/vendor/rector/rector/packages/VersionBonding/PhpVersionedFilter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\VersionBonding; -use Rector\Core\Contract\Rector\PhpRectorInterface; +use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\Php\PhpVersionProvider; use Rector\VersionBonding\Contract\MinPhpVersionInterface; final class PhpVersionedFilter @@ -18,8 +18,8 @@ public function __construct(PhpVersionProvider $phpVersionProvider) $this->phpVersionProvider = $phpVersionProvider; } /** - * @param array $rectors - * @return array + * @param array $rectors + * @return array */ public function filter(iterable $rectors) : array { diff --git a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php index b05dfee5f..cc4c02527 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php @@ -29,7 +29,7 @@ use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Arguments\Rector\ClassMethod\ArgumentAdderRector\ArgumentAdderRectorTest */ diff --git a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php index baf9c5446..caeee702f 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php @@ -15,7 +15,7 @@ use Rector\Core\ValueObject\MethodName; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @api used in rector-symfony * @see \Rector\Tests\Arguments\Rector\ClassMethod\ReplaceArgumentDefaultValueRector\ReplaceArgumentDefaultValueRectorTest diff --git a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php b/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php index 559b7324f..d5d974b26 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://php.watch/versions/8.1/version_compare-operator-restrictions * @changelog https://github.com/rectorphp/rector/issues/6271 diff --git a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/SwapFuncCallArgumentsRector.php b/vendor/rector/rector/rules/Arguments/Rector/FuncCall/SwapFuncCallArgumentsRector.php deleted file mode 100644 index e24333e9a..000000000 --- a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/SwapFuncCallArgumentsRector.php +++ /dev/null @@ -1,110 +0,0 @@ -> - */ - public function getNodeTypes() : array - { - return [FuncCall::class]; - } - /** - * @param FuncCall $node - */ - public function refactor(Node $node) : ?FuncCall - { - $isJustSwapped = (bool) $node->getAttribute(self::JUST_SWAPPED, \false); - if ($isJustSwapped) { - return null; - } - foreach ($this->functionArgumentSwaps as $functionArgumentSwap) { - if (!$this->isName($node, $functionArgumentSwap->getFunction())) { - continue; - } - $newArguments = $this->resolveNewArguments($functionArgumentSwap, $node); - if ($newArguments === []) { - return null; - } - foreach ($newArguments as $newPosition => $argument) { - $node->args[$newPosition] = $argument; - } - $node->setAttribute(self::JUST_SWAPPED, \true); - return $node; - } - return null; - } - /** - * @param mixed[] $configuration - */ - public function configure(array $configuration) : void - { - Assert::allIsAOf($configuration, SwapFuncCallArguments::class); - $this->functionArgumentSwaps = $configuration; - } - /** - * @return array - */ - private function resolveNewArguments(SwapFuncCallArguments $swapFuncCallArguments, FuncCall $funcCall) : array - { - $newArguments = []; - foreach ($swapFuncCallArguments->getOrder() as $oldPosition => $newPosition) { - if (!isset($funcCall->args[$oldPosition])) { - continue; - } - if (!isset($funcCall->args[$newPosition])) { - continue; - } - if (!$funcCall->args[$oldPosition] instanceof Arg) { - continue; - } - $newArguments[$newPosition] = $funcCall->args[$oldPosition]; - } - return $newArguments; - } -} diff --git a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php b/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php index 6fb08fc01..94093e799 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Arguments\Rector\MethodCall\RemoveMethodCallParamRector\RemoveMethodCallParamRectorTest */ diff --git a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/SwapMethodCallArgumentsRector.php b/vendor/rector/rector/rules/Arguments/Rector/MethodCall/SwapMethodCallArgumentsRector.php deleted file mode 100644 index 062f2f6ea..000000000 --- a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/SwapMethodCallArgumentsRector.php +++ /dev/null @@ -1,125 +0,0 @@ -call('one', 'two', 'three'); - } -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -final class SomeClass -{ - public function run(Caller $caller) - { - return $caller->call('three', 'two', 'one'); - } -} -CODE_SAMPLE -, [new SwapMethodCallArguments('Caller', 'call', [2, 1, 0])])]); - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [MethodCall::class, StaticCall::class]; - } - /** - * @param MethodCall|StaticCall $node - * @return \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|null - */ - public function refactor(Node $node) - { - $isJustSwapped = (bool) $node->getAttribute(self::JUST_SWAPPED, \false); - if ($isJustSwapped) { - return null; - } - if ($node->isFirstClassCallable()) { - return null; - } - $args = $node->getArgs(); - foreach ($this->methodArgumentSwaps as $methodArgumentSwap) { - if (!$this->isName($node->name, $methodArgumentSwap->getMethod())) { - continue; - } - if (!$this->isObjectTypeMatch($node, $methodArgumentSwap->getObjectType())) { - continue; - } - $newArguments = $this->resolveNewArguments($methodArgumentSwap, $args); - if ($newArguments === []) { - return null; - } - foreach ($newArguments as $newPosition => $argument) { - $node->args[$newPosition] = $argument; - } - $node->setAttribute(self::JUST_SWAPPED, \true); - return $node; - } - return null; - } - public function configure(array $configuration) : void - { - Assert::allIsAOf($configuration, SwapMethodCallArguments::class); - $this->methodArgumentSwaps = $configuration; - } - /** - * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $node - */ - private function isObjectTypeMatch($node, ObjectType $objectType) : bool - { - if ($node instanceof MethodCall) { - return $this->isObjectType($node->var, $objectType); - } - return $this->isObjectType($node->class, $objectType); - } - /** - * @param Arg[] $args - * @return array - */ - private function resolveNewArguments(SwapMethodCallArguments $swapMethodCallArguments, array $args) : array - { - $newArguments = []; - foreach ($swapMethodCallArguments->getOrder() as $oldPosition => $newPosition) { - if (!isset($args[$oldPosition])) { - continue; - } - if (!isset($args[$newPosition])) { - continue; - } - $newArguments[$newPosition] = $args[$oldPosition]; - } - return $newArguments; - } -} diff --git a/vendor/rector/rector/rules/Arguments/ValueObject/SwapFuncCallArguments.php b/vendor/rector/rector/rules/Arguments/ValueObject/SwapFuncCallArguments.php deleted file mode 100644 index 2a1da02e7..000000000 --- a/vendor/rector/rector/rules/Arguments/ValueObject/SwapFuncCallArguments.php +++ /dev/null @@ -1,37 +0,0 @@ - - * @readonly - */ - private $order; - /** - * @param array $order - */ - public function __construct(string $function, array $order) - { - $this->function = $function; - $this->order = $order; - } - public function getFunction() : string - { - return $this->function; - } - /** - * @return array - */ - public function getOrder() : array - { - return $this->order; - } -} diff --git a/vendor/rector/rector/rules/Arguments/ValueObject/SwapMethodCallArguments.php b/vendor/rector/rector/rules/Arguments/ValueObject/SwapMethodCallArguments.php deleted file mode 100644 index 927efadce..000000000 --- a/vendor/rector/rector/rules/Arguments/ValueObject/SwapMethodCallArguments.php +++ /dev/null @@ -1,50 +0,0 @@ - - * @readonly - */ - private $order; - /** - * @param array $order - */ - public function __construct(string $class, string $method, array $order) - { - $this->class = $class; - $this->method = $method; - $this->order = $order; - RectorAssert::className($class); - } - public function getObjectType() : ObjectType - { - return new ObjectType($this->class); - } - public function getMethod() : string - { - return $this->method; - } - /** - * @return array - */ - public function getOrder() : array - { - return $this->order; - } -} diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php index 0bc4d4453..6658ea477 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\Concat; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\String_; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php index c75421c48..d9fa48326 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\FuncCall; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Scalar\String_; use Rector\Core\Rector\AbstractRector; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php index 5b71f5777..e64530a01 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/FunctionLike/SimplifyUselessVariableRector.php @@ -11,21 +11,19 @@ use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Return_; -use PHPStan\Analyser\Scope; -use PHPStan\Reflection\FunctionReflection; use PHPStan\Type\MixedType; use Rector\Core\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\Core\NodeAnalyzer\CallAnalyzer; use Rector\Core\NodeAnalyzer\VariableAnalyzer; use Rector\Core\PhpParser\Node\AssignAndBinaryMap; -use Rector\Core\Rector\AbstractScopeAwareRector; +use Rector\Core\Rector\AbstractRector; use Rector\NodeTypeResolver\Node\AttributeKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** * @see \Rector\Tests\CodeQuality\Rector\FunctionLike\SimplifyUselessVariableRector\SimplifyUselessVariableRectorTest */ -final class SimplifyUselessVariableRector extends AbstractScopeAwareRector +final class SimplifyUselessVariableRector extends AbstractRector { /** * @readonly @@ -73,7 +71,7 @@ public function getNodeTypes() : array /** * @param StmtsAwareInterface $node */ - public function refactorWithScope(Node $node, Scope $scope) : ?Node + public function refactor(Node $node) : ?Node { $stmts = $node->stmts; if ($stmts === null) { @@ -88,7 +86,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node continue; } $previousStmt = $stmts[$key - 1]; - if ($this->shouldSkipStmt($stmt, $previousStmt, $scope)) { + if ($this->shouldSkipStmt($stmt, $previousStmt)) { return null; } if ($this->hasSomeComment($previousStmt)) { @@ -120,15 +118,11 @@ private function processSimplifyUselessVariable(StmtsAwareInterface $stmtsAware, unset($stmtsAware->stmts[$key - 1]); return $stmtsAware; } - private function shouldSkipStmt(Return_ $return, Stmt $previousStmt, Scope $scope) : bool + private function shouldSkipStmt(Return_ $return, Stmt $previousStmt) : bool { if (!$return->expr instanceof Variable) { return \true; } - $functionReflection = $scope->getFunction(); - if ($functionReflection instanceof FunctionReflection && $functionReflection->returnsByReference()->yes()) { - return \true; - } if ($return->getAttribute(AttributeKey::IS_BYREF_RETURN) === \true) { return \true; } diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Identical/SimplifyBoolIdenticalTrueRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Identical/SimplifyBoolIdenticalTrueRector.php index c96f6ae25..2fe5c9644 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Identical/SimplifyBoolIdenticalTrueRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Identical/SimplifyBoolIdenticalTrueRector.php @@ -8,7 +8,6 @@ use PhpParser\Node\Expr\BinaryOp\Identical; use PhpParser\Node\Expr\BinaryOp\NotIdentical; use PhpParser\Node\Expr\BooleanNot; -use PhpParser\Node\Expr\Variable; use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -25,6 +24,7 @@ class SomeClass public function run(bool $value, string $items) { $match = in_array($value, $items, TRUE) === TRUE; + $match = in_array($value, $items, TRUE) !== FALSE; } } @@ -35,6 +35,7 @@ class SomeClass public function run(bool $value, string $items) { $match = in_array($value, $items, TRUE); + $match = in_array($value, $items, TRUE); } } @@ -53,16 +54,13 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - if (!$this->valueResolver->isTrueOrFalse($node->left) && $this->getType($node->left)->isBoolean()->yes()) { + if ($this->isBooleanButNotTrueAndFalse($node->left)) { return $this->processBoolTypeToNotBool($node, $node->left, $node->right); } - if ($this->valueResolver->isTrueOrFalse($node->right)) { - return null; - } - if (!$this->getType($node->right)->isBoolean()->yes()) { - return null; + if ($this->isBooleanButNotTrueAndFalse($node->right)) { + return $this->processBoolTypeToNotBool($node, $node->right, $node->left); } - return $this->processBoolTypeToNotBool($node, $node->right, $node->left); + return null; } private function processBoolTypeToNotBool(Node $node, Expr $leftExpr, Expr $rightExpr) : ?Expr { @@ -79,18 +77,14 @@ private function refactorIdentical(Expr $leftExpr, Expr $rightExpr) : ?Expr if ($this->valueResolver->isTrue($rightExpr)) { return $leftExpr; } - if ($this->valueResolver->isFalse($rightExpr)) { - // prevent !! - if ($leftExpr instanceof BooleanNot) { - return $leftExpr->expr; - } - // keep as it is, readable enough - if ($leftExpr instanceof Variable && $this->getType($leftExpr)->isBoolean()->yes()) { - return null; - } - return new BooleanNot($leftExpr); + // prevent double negation !! + if (!$this->valueResolver->isFalse($rightExpr)) { + return null; } - return null; + if (!$leftExpr instanceof BooleanNot) { + return null; + } + return $leftExpr->expr; } private function refactorNotIdentical(Expr $leftExpr, Expr $rightExpr) : ?Expr { @@ -102,4 +96,11 @@ private function refactorNotIdentical(Expr $leftExpr, Expr $rightExpr) : ?Expr } return null; } + private function isBooleanButNotTrueAndFalse(Expr $expr) : bool + { + if ($this->valueResolver->isTrueOrFalse($expr)) { + return \false; + } + return $this->getType($expr)->isBoolean()->yes(); + } } diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php index 7260949bb..34115b6c3 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/If_/SimplifyIfElseToTernaryRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\If_; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Assign; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php index 6939de131..9af4c4e72 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\Include_; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Expr\Include_; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/NumberCompareToMaxFuncCallRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/NumberCompareToMaxFuncCallRector.php new file mode 100644 index 000000000..799d6bc6f --- /dev/null +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/NumberCompareToMaxFuncCallRector.php @@ -0,0 +1,91 @@ + 100 ? $value : 100; + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + public function run($value) + { + return max($value, 100); + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Ternary::class]; + } + /** + * @param Ternary $node + */ + public function refactor(Node $node) : ?Node + { + if (!$node->cond instanceof BinaryOp) { + return null; + } + $binaryOp = $node->cond; + if (!$this->areIntegersCompared($binaryOp)) { + return null; + } + if ($binaryOp instanceof Smaller || $binaryOp instanceof SmallerOrEqual) { + if (!$this->nodeComparator->areNodesEqual($binaryOp->left, $node->else)) { + return null; + } + if (!$this->nodeComparator->areNodesEqual($binaryOp->right, $node->if)) { + return null; + } + return $this->nodeFactory->createFuncCall('max', [$node->if, $node->else]); + } + if ($binaryOp instanceof Greater || $binaryOp instanceof GreaterOrEqual) { + if (!$this->nodeComparator->areNodesEqual($binaryOp->left, $node->if)) { + return null; + } + if (!$this->nodeComparator->areNodesEqual($binaryOp->right, $node->else)) { + return null; + } + return $this->nodeFactory->createFuncCall('max', [$node->if, $node->else]); + } + return null; + } + private function areIntegersCompared(BinaryOp $binaryOp) : bool + { + $leftType = $this->getType($binaryOp->left); + if (!$leftType->isInteger()->yes()) { + return \false; + } + $rightType = $this->getType($binaryOp->right); + return $rightType->isInteger()->yes(); + } +} diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/UnnecessaryTernaryExpressionRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/UnnecessaryTernaryExpressionRector.php index 64918798b..94444da9c 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/UnnecessaryTernaryExpressionRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Ternary/UnnecessaryTernaryExpressionRector.php @@ -43,20 +43,18 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - /** @var Ternary $ternaryExpression */ - $ternaryExpression = $node; - if (!$ternaryExpression->if instanceof Expr) { + if (!$node->if instanceof Expr) { return null; } - $ifExpression = $ternaryExpression->if; + $ifExpression = $node->if; if (!$this->valueResolver->isTrueOrFalse($ifExpression)) { return null; } - $elseExpression = $ternaryExpression->else; + $elseExpression = $node->else; if (!$this->valueResolver->isTrueOrFalse($elseExpression)) { return null; } - $condition = $ternaryExpression->cond; + $condition = $node->cond; if (!$condition instanceof BinaryOp) { return $this->processNonBinaryCondition($ifExpression, $elseExpression, $condition); } diff --git a/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php b/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php index 306fc5fe5..6efe64df2 100644 --- a/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php +++ b/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Application; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Name; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Declare_; diff --git a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php index 99e7c80ff..d2e67af8a 100644 --- a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php +++ b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\ClassNameImport; -use RectorPrefix202308\Nette\Utils\Reflection; +use RectorPrefix202309\Nette\Utils\Reflection; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; diff --git a/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php b/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php index 545860e6f..58c33d4f1 100644 --- a/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php +++ b/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Naming; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Stmt\ClassLike; diff --git a/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php b/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php index a0b579b8c..1d92dbe7a 100644 --- a/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php +++ b/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\NodeAnalyzer; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\GroupUse; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php index 9b3ef8d0e..4dbaccf27 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\Catch_; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\Closure; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php index db7cf8536..11968886f 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\Encapsed; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr; @@ -40,10 +40,14 @@ final class EncapsedStringsToSprintfRector extends AbstractRector public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Convert enscaped {$string} to more readable sprintf or concat, if no mask is used', [new CodeSample(<<<'CODE_SAMPLE' -echo "Unsupported format {$format}"; +echo "Unsupported format {$format} - use another"; + +echo "Try {$allowed}"; CODE_SAMPLE , <<<'CODE_SAMPLE' -echo sprintf('Unsupported format %s', $format); +echo sprintf('Unsupported format %s - use another', $format); + +echo 'Try ' . $allowed; CODE_SAMPLE )]); } @@ -120,6 +124,10 @@ private function createSprintfFuncCallOrConcat(string $mask, array $argumentVari } return $this->nodeFactory->createConcat($argumentVariables); } + $singleValueConcat = $this->createSingleValueEdgeConcat($argumentVariables, $mask); + if ($singleValueConcat instanceof Concat) { + return $singleValueConcat; + } // checks for windows or linux line ending. \n is contained in both. if (\strpos($mask, "\n") !== \false) { return null; @@ -130,4 +138,26 @@ private function createSprintfFuncCallOrConcat(string $mask, array $argumentVari } return new FuncCall(new Name('sprintf'), $arguments); } + /** + * @param Expr[] $argumentVariables + */ + private function createSingleValueEdgeConcat(array $argumentVariables, string $mask) : ?Concat + { + if (\count($argumentVariables) !== 1) { + return null; + } + if (\substr_count($mask, '%s') !== 1 && \substr_count($mask, '%d') !== 1) { + return null; + } + $cleanMask = Strings::replace($mask, '#\\%\\%#', '%'); + if (\substr_compare($mask, '%s', -\strlen('%s')) === 0 || \substr_compare($mask, '%d', -\strlen('%d')) === 0) { + $bareString = new String_(\substr($cleanMask, 0, -2)); + return new Concat($bareString, $argumentVariables[0]); + } + if (\strncmp($mask, '%s', \strlen('%s')) === 0 || \strncmp($mask, '%d', \strlen('%d')) === 0) { + $bareString = new String_(\substr($cleanMask, 2)); + return new Concat($argumentVariables[0], $bareString); + } + return null; + } } diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php index 318f01f6c..6daf52593 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\String_; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php index 7ccfe2cc5..47635bde3 100644 --- a/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/NodeAnalyzer/IsClassMethodUsedAnalyzer.php @@ -3,13 +3,19 @@ declare (strict_types=1); namespace Rector\DeadCode\NodeAnalyzer; +use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; +use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; +use PhpParser\Node\Name; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Function_; +use PhpParser\Node\Stmt\Trait_; +use PhpParser\NodeTraverser; use PHPStan\Analyser\Scope; use PHPStan\Parser\ArrayMapArgVisitor; use PHPStan\Reflection\ClassReflection; @@ -21,6 +27,7 @@ use Rector\NodeCollector\ValueObject\ArrayCallable; use Rector\NodeCollector\ValueObject\ArrayCallableDynamicMethod; use Rector\NodeNameResolver\NodeNameResolver; +use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; final class IsClassMethodUsedAnalyzer { /** @@ -58,7 +65,12 @@ final class IsClassMethodUsedAnalyzer * @var \Rector\Core\Reflection\ReflectionResolver */ private $reflectionResolver; - public function __construct(NodeNameResolver $nodeNameResolver, AstResolver $astResolver, BetterNodeFinder $betterNodeFinder, ValueResolver $valueResolver, ArrayCallableMethodMatcher $arrayCallableMethodMatcher, \Rector\DeadCode\NodeAnalyzer\CallCollectionAnalyzer $callCollectionAnalyzer, ReflectionResolver $reflectionResolver) + /** + * @readonly + * @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser + */ + private $simpleCallableNodeTraverser; + public function __construct(NodeNameResolver $nodeNameResolver, AstResolver $astResolver, BetterNodeFinder $betterNodeFinder, ValueResolver $valueResolver, ArrayCallableMethodMatcher $arrayCallableMethodMatcher, \Rector\DeadCode\NodeAnalyzer\CallCollectionAnalyzer $callCollectionAnalyzer, ReflectionResolver $reflectionResolver, SimpleCallableNodeTraverser $simpleCallableNodeTraverser) { $this->nodeNameResolver = $nodeNameResolver; $this->astResolver = $astResolver; @@ -67,6 +79,7 @@ public function __construct(NodeNameResolver $nodeNameResolver, AstResolver $ast $this->arrayCallableMethodMatcher = $arrayCallableMethodMatcher; $this->callCollectionAnalyzer = $callCollectionAnalyzer; $this->reflectionResolver = $reflectionResolver; + $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; } public function isClassMethodUsed(Class_ $class, ClassMethod $classMethod, Scope $scope) : bool { @@ -155,13 +168,52 @@ private function doesMethodExistInTrait(ClassMethod $classMethod, string $classM return \false; } $traits = $this->astResolver->parseClassReflectionTraits($classReflection); + $className = $classReflection->getName(); foreach ($traits as $trait) { - $method = $trait->getMethod($classMethodName); - if (!$method instanceof ClassMethod) { - continue; + if ($this->isUsedByTrait($trait, $classMethodName, $className)) { + return \true; + } + } + return \false; + } + private function isUsedByTrait(Trait_ $trait, string $classMethodName, string $className) : bool + { + foreach ($trait->getMethods() as $classMethod) { + if ($classMethod->name->toString() === $classMethodName) { + return \true; + } + /** + * Trait can't detect class type, so it rely on "this" or "self" or "static" or "ClassName::methodName()" usage... + */ + $callMethod = null; + $this->simpleCallableNodeTraverser->traverseNodesWithCallable((array) $classMethod->stmts, function (Node $subNode) use($className, $classMethodName, &$callMethod) : ?int { + if ($subNode instanceof Class_ || $subNode instanceof Function_) { + return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; + } + if ($subNode instanceof MethodCall && $this->nodeNameResolver->isName($subNode->var, 'this') && $this->nodeNameResolver->isName($subNode->name, $classMethodName)) { + $callMethod = $subNode; + return NodeTraverser::STOP_TRAVERSAL; + } + if ($this->isStaticCallMatch($subNode, $className, $classMethodName)) { + $callMethod = $subNode; + return NodeTraverser::STOP_TRAVERSAL; + } + return null; + }); + if ($callMethod instanceof CallLike) { + return \true; } - return \true; } return \false; } + private function isStaticCallMatch(Node $subNode, string $className, string $classMethodName) : bool + { + if (!$subNode instanceof StaticCall) { + return \false; + } + if (!$subNode->class instanceof Name) { + return \false; + } + return ($subNode->class->isSpecialClassName() || $subNode->class->toString() === $className) && $this->nodeNameResolver->isName($subNode->name, $classMethodName); + } } diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php index d73984a5b..184425e6c 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadParamTagValueNodeAnalyzer.php @@ -65,6 +65,9 @@ public function isDead(ParamTagValueNode $paramTagValueNode, FunctionLike $funct if ($param->type === null) { return \false; } + if ($paramTagValueNode->description !== '') { + return \false; + } if ($param->type instanceof Name && $this->nodeNameResolver->isName($param->type, 'object')) { return $paramTagValueNode->type instanceof IdentifierTypeNode && (string) $paramTagValueNode->type === 'object'; } @@ -75,14 +78,11 @@ public function isDead(ParamTagValueNode $paramTagValueNode, FunctionLike $funct return \false; } if (!$paramTagValueNode->type instanceof BracketsAwareUnionTypeNode) { - return $paramTagValueNode->description === ''; + return \true; } if ($this->mixedArrayTypeNodeAnalyzer->hasMixedArrayType($paramTagValueNode->type)) { return \false; } - if (!$this->genericTypeNodeAnalyzer->hasGenericType($paramTagValueNode->type)) { - return $paramTagValueNode->description === ''; - } - return \false; + return !$this->genericTypeNodeAnalyzer->hasGenericType($paramTagValueNode->type); } } diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php index 58c445b78..f64dc97d1 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\DeadCode\PhpDoc; -use PhpParser\Node; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Analyser\Scope; use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode; @@ -57,18 +56,21 @@ public function isDead(ReturnTagValueNode $returnTagValueNode, ClassMethod $clas if ($returnType === null) { return \false; } + if ($returnTagValueNode->description !== '') { + return \false; + } $scope = $classMethod->getAttribute(AttributeKey::SCOPE); if ($scope instanceof Scope && $scope->isInTrait() && $returnTagValueNode->type instanceof ThisTypeNode) { return \false; } if (!$this->typeComparator->arePhpParserAndPhpStanPhpDocTypesEqual($returnType, $returnTagValueNode->type, $classMethod)) { - return \false; + return $returnTagValueNode->type instanceof IdentifierTypeNode && (string) $returnTagValueNode->type === 'void'; } if ($this->phpDocTypeChanger->isAllowed($returnTagValueNode->type)) { return \false; } if (!$returnTagValueNode->type instanceof BracketsAwareUnionTypeNode) { - return $this->isIdentiferRemovalAllowed($returnTagValueNode, $returnType); + return $this->standaloneTypeRemovalGuard->isLegal($returnTagValueNode->type, $returnType); } if ($this->genericTypeNodeAnalyzer->hasGenericType($returnTagValueNode->type)) { return \false; @@ -76,17 +78,7 @@ public function isDead(ReturnTagValueNode $returnTagValueNode, ClassMethod $clas if ($this->mixedArrayTypeNodeAnalyzer->hasMixedArrayType($returnTagValueNode->type)) { return \false; } - if ($this->hasTruePseudoType($returnTagValueNode->type)) { - return \false; - } - return $returnTagValueNode->description === ''; - } - private function isIdentiferRemovalAllowed(ReturnTagValueNode $returnTagValueNode, Node $node) : bool - { - if ($returnTagValueNode->description === '') { - return $this->standaloneTypeRemovalGuard->isLegal($returnTagValueNode->type, $node); - } - return \false; + return !$this->hasTruePseudoType($returnTagValueNode->type); } private function hasTruePseudoType(BracketsAwareUnionTypeNode $bracketsAwareUnionTypeNode) : bool { diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php index 3e972d28d..f1c8917a3 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php @@ -31,15 +31,15 @@ public function isDead(VarTagValueNode $varTagValueNode, Property $property) : b if ($property->type === null) { return \false; } + if ($varTagValueNode->description !== '') { + return \false; + } // is strict type superior to doc type? keep strict type only $propertyType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($property->type); $docType = $this->staticTypeMapper->mapPHPStanPhpDocTypeNodeToPHPStanType($varTagValueNode->type, $property); if ($propertyType instanceof UnionType && !$docType instanceof UnionType) { return !$docType instanceof IntersectionType; } - if (!$this->typeComparator->arePhpParserAndPhpStanPhpDocTypesEqual($property->type, $varTagValueNode->type, $property)) { - return \false; - } - return $varTagValueNode->description === ''; + return $this->typeComparator->arePhpParserAndPhpStanPhpDocTypesEqual($property->type, $varTagValueNode->type, $property); } } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php index 2bbe6d2fb..ac9a5722c 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php @@ -14,7 +14,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\DeadCode\Rector\ClassLike\RemoveAnnotationRector\RemoveAnnotationRectorTest */ diff --git a/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php b/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php index e59be8ca1..ded90b8e9 100644 --- a/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php +++ b/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\DeadCode\SideEffect; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\ArrayDimFetch; diff --git a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php index b8bc8268e..c177c9465 100644 --- a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php +++ b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Naming\ExpectedNameResolver; -use RectorPrefix202308\Doctrine\Inflector\Inflector; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Doctrine\Inflector\Inflector; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\Core\Util\StringUtils; /** * @see \Rector\Core\Tests\Naming\ExpectedNameResolver\InflectorSingularResolverTest diff --git a/vendor/rector/rector/rules/Naming/Naming/ConflictingNameResolver.php b/vendor/rector/rector/rules/Naming/Naming/ConflictingNameResolver.php index 3623c0e1f..62daa1243 100644 --- a/vendor/rector/rector/rules/Naming/Naming/ConflictingNameResolver.php +++ b/vendor/rector/rector/rules/Naming/Naming/ConflictingNameResolver.php @@ -40,7 +40,7 @@ final class ConflictingNameResolver */ private $functionLikeManipulator; /** - * @var array + * @var array */ private $conflictingVariableNamesByClassMethod = []; public function __construct(ArrayFilter $arrayFilter, BetterNodeFinder $betterNodeFinder, \Rector\Naming\Naming\ExpectedNameResolver $expectedNameResolver, MatchParamTypeExpectedNameResolver $matchParamTypeExpectedNameResolver, FunctionLikeManipulator $functionLikeManipulator) @@ -82,16 +82,16 @@ public function hasNameIsInFunctionLike(string $variableName, $functionLike) : b private function resolveConflictingVariableNamesForNew($functionLike) : array { // cache it! - $classMethodHash = \spl_object_hash($functionLike); - if (isset($this->conflictingVariableNamesByClassMethod[$classMethodHash])) { - return $this->conflictingVariableNamesByClassMethod[$classMethodHash]; + $classMethodId = \spl_object_id($functionLike); + if (isset($this->conflictingVariableNamesByClassMethod[$classMethodId])) { + return $this->conflictingVariableNamesByClassMethod[$classMethodId]; } $paramNames = $this->functionLikeManipulator->resolveParamNames($functionLike); $newAssignNames = $this->resolveForNewAssigns($functionLike); $nonNewAssignNames = $this->resolveForNonNewAssigns($functionLike); $protectedNames = \array_merge($paramNames, $newAssignNames, $nonNewAssignNames); $protectedNames = $this->arrayFilter->filterWithAtLeastTwoOccurences($protectedNames); - $this->conflictingVariableNamesByClassMethod[$classMethodHash] = $protectedNames; + $this->conflictingVariableNamesByClassMethod[$classMethodId] = $protectedNames; return $protectedNames; } /** diff --git a/vendor/rector/rector/rules/Naming/Naming/OverridenExistingNamesResolver.php b/vendor/rector/rector/rules/Naming/Naming/OverridenExistingNamesResolver.php index 31ba632bb..336964e04 100644 --- a/vendor/rector/rector/rules/Naming/Naming/OverridenExistingNamesResolver.php +++ b/vendor/rector/rector/rules/Naming/Naming/OverridenExistingNamesResolver.php @@ -30,7 +30,7 @@ final class OverridenExistingNamesResolver */ private $nodeNameResolver; /** - * @var array> + * @var array> */ private $overridenExistingVariableNamesByClassMethod = []; public function __construct(ArrayFilter $arrayFilter, BetterNodeFinder $betterNodeFinder, NodeNameResolver $nodeNameResolver) @@ -73,9 +73,9 @@ public function hasNameInFunctionLikeForParam(string $expectedName, $classMethod */ private function resolveOveriddenNamesForNew($functionLike) : array { - $classMethodHash = \spl_object_hash($functionLike); - if (isset($this->overridenExistingVariableNamesByClassMethod[$classMethodHash])) { - return $this->overridenExistingVariableNamesByClassMethod[$classMethodHash]; + $classMethodId = \spl_object_id($functionLike); + if (isset($this->overridenExistingVariableNamesByClassMethod[$classMethodId])) { + return $this->overridenExistingVariableNamesByClassMethod[$classMethodId]; } $currentlyUsedNames = []; /** @var Assign[] $assigns */ @@ -91,7 +91,7 @@ private function resolveOveriddenNamesForNew($functionLike) : array } $currentlyUsedNames = \array_values($currentlyUsedNames); $currentlyUsedNames = $this->arrayFilter->filterWithAtLeastTwoOccurences($currentlyUsedNames); - $this->overridenExistingVariableNamesByClassMethod[$classMethodHash] = $currentlyUsedNames; + $this->overridenExistingVariableNamesByClassMethod[$classMethodId] = $currentlyUsedNames; return $currentlyUsedNames; } } diff --git a/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php b/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php index f08055e11..409f27488 100644 --- a/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php +++ b/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Naming\Naming; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PHPStan\Type\Generic\GenericObjectType; use PHPStan\Type\ObjectType; use PHPStan\Type\StaticType; @@ -71,9 +71,14 @@ public function getExpectedNameFromMethodName(string $methodName) : ?ExpectedNam } public function getExpectedNameFromType(Type $type) : ?ExpectedName { - // keep doctrine collections untouched - if ($type instanceof ObjectType && $type->isInstanceOf('Doctrine\\Common\\Collections\\Collection')->yes()) { - return null; + // keep collections untouched + if ($type instanceof ObjectType) { + if ($type->isInstanceOf('Doctrine\\Common\\Collections\\Collection')->yes()) { + return null; + } + if ($type->isInstanceOf('Illuminate\\Support\\Collection')->yes()) { + return null; + } } $className = $this->resolveClassNameFromType($type); if (!\is_string($className)) { diff --git a/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php b/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php index 8d0404d06..d9a8ba7ee 100644 --- a/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php +++ b/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Naming\Rector\Assign; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\Closure; diff --git a/vendor/rector/rector/rules/Naming/RectorNamingInflector.php b/vendor/rector/rector/rules/Naming/RectorNamingInflector.php index de2578831..fc17bcb8b 100644 --- a/vendor/rector/rector/rules/Naming/RectorNamingInflector.php +++ b/vendor/rector/rector/rules/Naming/RectorNamingInflector.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Naming; -use RectorPrefix202308\Doctrine\Inflector\Inflector; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Doctrine\Inflector\Inflector; +use RectorPrefix202309\Nette\Utils\Strings; final class RectorNamingInflector { /** diff --git a/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php b/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php index a2042ee8f..07eba938e 100644 --- a/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php +++ b/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php @@ -18,7 +18,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/class_name_scalars https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md#form * diff --git a/vendor/rector/rector/rules/Php55/RegexMatcher.php b/vendor/rector/rector/rules/Php55/RegexMatcher.php index 967d221c3..62035ee6b 100644 --- a/vendor/rector/rector/rules/Php55/RegexMatcher.php +++ b/vendor/rector/rector/rules/Php55/RegexMatcher.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php55; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\String_; diff --git a/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php b/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php index 6f1475a99..6fec76f27 100644 --- a/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php +++ b/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php70; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\Php70\Exception\InvalidEregException; /** * @changelog https://gist.github.com/lifthrasiir/704754/7e486f43e62fd1c9d3669330c251f8ca4a59a3f8 diff --git a/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php b/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php index 3825a3b02..c9acf3fea 100644 --- a/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php +++ b/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php72\NodeFactory; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php b/vendor/rector/rector/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php index 2c2a35d9a..7274348f2 100644 --- a/vendor/rector/rector/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php +++ b/vendor/rector/rector/rules/Php73/Rector/ConstFetch/SensitiveConstantNameRector.php @@ -82,7 +82,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node if ($constantName === $uppercasedConstantName) { return null; } - if (\strpos($uppercasedConstantName, '\\') !== \false) { + if (\strpos($uppercasedConstantName, '\\') !== \false || \strpos($uppercasedConstantName, '(') !== \false || \strpos($uppercasedConstantName, "'") !== \false) { return null; } $node->name = new FullyQualified($uppercasedConstantName); diff --git a/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php b/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php index b60991897..ef80d7030 100644 --- a/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php +++ b/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php73\Rector\FuncCall; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Scalar\String_; use Rector\Core\Rector\AbstractRector; diff --git a/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php b/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php index 10ab3bd01..51e8223db 100644 --- a/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php +++ b/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php74\Rector\LNumber; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Scalar\DNumber; use PhpParser\Node\Scalar\LNumber; @@ -15,7 +15,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/numeric_literal_separator * @changelog https://github.com/nikic/PHP-Parser/pull/615 diff --git a/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php b/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php index c84515408..2c59f20b6 100644 --- a/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php @@ -7,11 +7,15 @@ use PhpParser\Node; use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ConstFetch; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Param; +use PhpParser\Node\Scalar\DNumber; +use PhpParser\Node\Scalar\LNumber; +use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Reflection\MethodReflection; use Rector\Core\PhpParser\AstResolver; @@ -106,11 +110,11 @@ public function refactor(Node $node) : ?Node if (!$parentMethodReflection instanceof MethodReflection) { return null; } - $parentClassMethod = $this->astResolver->resolveClassMethodFromMethodReflection($parentMethodReflection); - if (!$parentClassMethod instanceof ClassMethod) { + if ($parentMethodReflection->isPrivate()) { return null; } - if ($parentClassMethod->isPrivate()) { + $parentClassMethod = $this->astResolver->resolveClassMethodFromMethodReflection($parentMethodReflection); + if (!$parentClassMethod instanceof ClassMethod) { return null; } $currentClassMethodParams = $node->getParams(); @@ -179,8 +183,7 @@ private function processReplaceClassMethodParams(ClassMethod $node, ClassMethod } $paramDefault = $parentClassMethodParam->default; if ($paramDefault instanceof Expr) { - $printParamDefault = $this->betterStandardPrinter->print($paramDefault); - $paramDefault = new ConstFetch(new Name($printParamDefault)); + $paramDefault = $this->resolveParamDefault($paramDefault); } $paramName = $this->nodeNameResolver->getName($parentClassMethodParam); $paramType = $this->resolveParamType($parentClassMethodParam); @@ -192,6 +195,24 @@ private function processReplaceClassMethodParams(ClassMethod $node, ClassMethod } return $node; } + private function resolveParamDefault(Expr $expr) : Expr + { + // re-create to avoid TokenStream error + if ($expr instanceof String_) { + return new String_($expr->value, [AttributeKey::KIND => $expr->getAttribute(AttributeKey::KIND)]); + } + if ($expr instanceof LNumber) { + return new LNumber($expr->value); + } + if ($expr instanceof DNumber) { + return new DNumber($expr->value); + } + if ($expr instanceof Array_ && $expr->items === []) { + return new Array_($expr->items, [AttributeKey::KIND => $expr->getAttribute(AttributeKey::KIND)]); + } + $printParamDefault = $this->betterStandardPrinter->print($expr); + return new ConstFetch(new Name($printParamDefault)); + } /** * @return null|\PhpParser\Node\Identifier|\PhpParser\Node\Name|\PhpParser\Node\ComplexType */ diff --git a/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php index 1587a7d0b..014787be9 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php @@ -31,10 +31,11 @@ use Rector\Php80\ValueObject\DoctrineTagAndAnnotationToAttribute; use Rector\PhpAttribute\NodeFactory\PhpAttributeGroupFactory; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser; +use Rector\RectorGenerator\Exception\ConfigurationException; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/attributes_v2 * @changelog https://wiki.php.net/rfc/new_in_initializers @@ -127,6 +128,9 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { + if ($this->annotationsToAttributes === []) { + throw new ConfigurationException(\sprintf('The "%s" rule requires configuration.', self::class)); + } $phpDocInfo = $this->phpDocInfoFactory->createFromNode($node); if (!$phpDocInfo instanceof PhpDocInfo) { return null; diff --git a/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php index 5d27cb6df..cc427b4a2 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php @@ -27,7 +27,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Php80\Rector\Property\NestedAnnotationToAttributeRector\NestedAnnotationToAttributeRectorTest * diff --git a/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php b/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php index 2cf14b767..3cd14bf70 100644 --- a/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php +++ b/vendor/rector/rector/rules/Php81/NodeFactory/EnumFactory.php @@ -72,6 +72,7 @@ public function createFromClass(Class_ $class) : Enum_ $enum->stmts[] = $this->createEnumCaseFromConst($constant); } } + $enum->stmts = \array_merge($enum->stmts, $class->getMethods()); return $enum; } public function createFromSpatieClass(Class_ $class) : Enum_ diff --git a/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php b/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php index 8ea6509ef..0b2a40999 100644 --- a/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php @@ -22,9 +22,10 @@ use PHPStan\Type\Type; use Rector\Core\NodeAnalyzer\ArgsAnalyzer; use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer; -use Rector\Core\Rector\AbstractScopeAwareRector; +use Rector\Core\Rector\AbstractRector; use Rector\Core\Reflection\ReflectionResolver; use Rector\Core\ValueObject\PhpVersionFeature; +use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\PHPStan\ParametersAcceptorSelectorVariantsWrapper; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -32,7 +33,7 @@ /** * @see \Rector\Tests\Php81\Rector\FuncCall\NullToStrictStringFuncCallArgRector\NullToStrictStringFuncCallArgRectorTest */ -final class NullToStrictStringFuncCallArgRector extends AbstractScopeAwareRector implements MinPhpVersionInterface +final class NullToStrictStringFuncCallArgRector extends AbstractRector implements MinPhpVersionInterface { /** * @readonly @@ -91,11 +92,15 @@ public function getNodeTypes() : array /** * @param FuncCall $node */ - public function refactorWithScope(Node $node, Scope $scope) : ?Node + public function refactor(Node $node) : ?Node { if ($this->shouldSkip($node)) { return null; } + $scope = $node->getAttribute(AttributeKey::SCOPE); + if (!$scope instanceof Scope) { + return null; + } $args = $node->getArgs(); $positions = $this->argsAnalyzer->hasNamedArg($args) ? $this->resolveNamedPositions($node, $args) : $this->resolveOriginalPositions($node, $scope); if ($positions === []) { diff --git a/vendor/rector/rector/rules/Php81/Rector/FunctionLike/IntersectionTypesRector.php b/vendor/rector/rector/rules/Php81/Rector/FunctionLike/IntersectionTypesRector.php deleted file mode 100644 index 2ead2bb19..000000000 --- a/vendor/rector/rector/rules/Php81/Rector/FunctionLike/IntersectionTypesRector.php +++ /dev/null @@ -1,119 +0,0 @@ -> - */ - public function getNodeTypes() : array - { - return [ArrowFunction::class, Closure::class, ClassMethod::class, Function_::class]; - } - /** - * @param ArrowFunction|Closure|ClassMethod|Function_ $node - */ - public function refactor(Node $node) : ?Node - { - $this->hasChanged = \false; - $phpDocInfo = $this->phpDocInfoFactory->createFromNode($node); - if (!$phpDocInfo instanceof PhpDocInfo) { - return null; - } - $this->refactorParamTypes($node, $phpDocInfo); - // $this->refactorReturnType($node, $phpDocInfo); - if ($this->hasChanged) { - return $node; - } - return null; - } - public function provideMinPhpVersion() : int - { - return PhpVersionFeature::INTERSECTION_TYPES; - } - /** - * @param \PhpParser\Node\Expr\ArrowFunction|\PhpParser\Node\Expr\Closure|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike - */ - private function refactorParamTypes($functionLike, PhpDocInfo $phpDocInfo) : void - { - foreach ($functionLike->params as $param) { - if ($param->type !== null) { - continue; - } - /** @var string $paramName */ - $paramName = $this->getName($param->var); - $paramType = $phpDocInfo->getParamType($paramName); - if (!$paramType instanceof IntersectionType) { - continue; - } - if (!$this->isIntersectionableType($paramType)) { - continue; - } - $phpParserIntersectionType = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($paramType, TypeKind::PARAM); - if (!$phpParserIntersectionType instanceof Node\IntersectionType) { - continue; - } - $param->type = $phpParserIntersectionType; - $this->hasChanged = \true; - } - } - /** - * Only class-type are supported https://wiki.php.net/rfc/pure-intersection-types#supported_types - */ - private function isIntersectionableType(IntersectionType $intersectionType) : bool - { - foreach ($intersectionType->getTypes() as $intersectionedType) { - if ($intersectionedType instanceof TypeWithClassName) { - continue; - } - return \false; - } - return \true; - } -} diff --git a/vendor/rector/rector/rules/Php81/Rector/MethodCall/MyCLabsMethodCallToEnumConstRector.php b/vendor/rector/rector/rules/Php81/Rector/MethodCall/MyCLabsMethodCallToEnumConstRector.php index 9e2d17018..91801477f 100644 --- a/vendor/rector/rector/rules/Php81/Rector/MethodCall/MyCLabsMethodCallToEnumConstRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/MethodCall/MyCLabsMethodCallToEnumConstRector.php @@ -12,6 +12,7 @@ use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Expr\Variable; +use PHPStan\Reflection\ReflectionProvider; use PHPStan\Type\ObjectType; use Rector\Core\Rector\AbstractRector; use Rector\Core\ValueObject\PhpVersionFeature; @@ -26,10 +27,19 @@ */ final class MyCLabsMethodCallToEnumConstRector extends AbstractRector implements MinPhpVersionInterface { + /** + * @readonly + * @var \PHPStan\Reflection\ReflectionProvider + */ + private $reflectionProvider; /** * @var string[] */ private const ENUM_METHODS = ['from', 'values', 'keys', 'isValid', 'search', 'toArray', 'assertValidValue']; + public function __construct(ReflectionProvider $reflectionProvider) + { + $this->reflectionProvider = $reflectionProvider; + } public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Refactor MyCLabs enum fetch to Enum const', [new CodeSample(<<<'CODE_SAMPLE' @@ -72,12 +82,20 @@ public function refactor(Node $node) : ?Node if (!\is_string($className)) { return null; } + if (!$this->isEnumConstant($className, $enumCaseName)) { + return null; + } return $this->nodeFactory->createClassConstFetch($className, $enumCaseName); } public function provideMinPhpVersion() : int { return PhpVersionFeature::ENUM; } + private function isEnumConstant(string $className, string $constant) : bool + { + $classReflection = $this->reflectionProvider->getClass($className); + return $classReflection->hasConstant($constant); + } private function refactorGetKeyMethodCall(MethodCall $methodCall) : ?ClassConstFetch { if (!$methodCall->var instanceof StaticCall) { @@ -119,20 +137,66 @@ private function refactorGetValueMethodCall(MethodCall $methodCall) : ?PropertyF } private function refactorEqualsMethodCall(MethodCall $methodCall) : ?Identical { - $expr = $this->getValidEnumExpr($methodCall->var); + $expr = $this->getNonEnumReturnTypeExpr($methodCall->var); if (!$expr instanceof Expr) { - return null; + $expr = $this->getValidEnumExpr($methodCall->var); + if (!$expr instanceof Expr) { + return null; + } } $arg = $methodCall->getArgs()[0] ?? null; if (!$arg instanceof Arg) { return null; } - $right = $this->getValidEnumExpr($arg->value); + $right = $this->getNonEnumReturnTypeExpr($arg->value); if (!$right instanceof Expr) { - return null; + $right = $this->getValidEnumExpr($arg->value); + if (!$right instanceof Expr) { + return null; + } } return new Identical($expr, $right); } + /** + * @param \PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\MethodCall $node + */ + private function isCallerClassEnum($node) : bool + { + if ($node instanceof StaticCall) { + return $this->isObjectType($node->class, new ObjectType('MyCLabs\\Enum\\Enum')); + } + return $this->isObjectType($node->var, new ObjectType('MyCLabs\\Enum\\Enum')); + } + /** + * @return null|\PhpParser\Node\Expr\ClassConstFetch|\PhpParser\Node\Expr + */ + private function getNonEnumReturnTypeExpr(Node $node) + { + if (!$node instanceof StaticCall && !$node instanceof MethodCall) { + return null; + } + if ($this->isCallerClassEnum($node)) { + $methodName = $this->getName($node->name); + if ($methodName === null) { + return null; + } + if ($node instanceof StaticCall) { + $className = $this->getName($node->class); + } + if ($node instanceof MethodCall) { + $className = $this->getName($node->var); + } + if ($className === null) { + return null; + } + $classReflection = $this->reflectionProvider->getClass($className); + // method self::getValidEnumExpr process enum static methods from constants + if ($classReflection->hasConstant($methodName)) { + return null; + } + } + return $node; + } /** * @return null|\PhpParser\Node\Expr\ClassConstFetch|\PhpParser\Node\Expr */ diff --git a/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php b/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php index c48d69ab6..e438b5811 100644 --- a/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php @@ -12,7 +12,7 @@ use Rector\Core\Rector\AbstractRector; use Rector\Core\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; -use RectorPrefix202308\Spatie\Enum\Enum; +use RectorPrefix202309\Spatie\Enum\Enum; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php b/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php index a22335c34..2749d44c7 100644 --- a/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php +++ b/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php @@ -15,7 +15,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Php82\Rector\Param\AddSensitiveParameterAttributeRector\AddSensitiveParameterAttributeRectorTest */ diff --git a/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php b/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php index a34e1fd26..e43146654 100644 --- a/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php +++ b/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php @@ -9,7 +9,7 @@ use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Property; use Rector\Core\ValueObject\Visibility; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Privatization\NodeManipulator\VisibilityManipulatorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php b/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php index 63c3fee9b..25c268706 100644 --- a/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php @@ -14,7 +14,7 @@ use Rector\Removing\ValueObject\ArgumentRemover; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\ClassMethod\ArgumentRemoverRector\ArgumentRemoverRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php index ecb3f79c3..64551d753 100644 --- a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php @@ -9,7 +9,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\Class_\RemoveInterfacesRector\RemoveInterfacesRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php index 29593c382..a411c3518 100644 --- a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\Class_\RemoveTraitUseRector\RemoveTraitUseRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php index 249e1fd6d..d4e0477f9 100644 --- a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php @@ -11,7 +11,7 @@ use Rector\Removing\ValueObject\RemoveFuncCallArg; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\FuncCall\RemoveFuncCallArgRector\RemoveFuncCallArgRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php index 2c8e027ac..1ccf17084 100644 --- a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\FuncCall\RemoveFuncCallRector\RemoveFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php b/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php index ab27f0232..851a84b46 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php @@ -14,7 +14,7 @@ use Rector\Renaming\ValueObject\RenameClassConstFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ClassConstFetch\RenameClassConstFetchRector\RenameClassConstFetchRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php b/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php index 50d5f9b4c..1ed8badd3 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php @@ -15,7 +15,7 @@ use Rector\Renaming\ValueObject\RenameAnnotationByType; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ClassMethod\RenameAnnotationRector\RenameAnnotationRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php b/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php index 8d44e8c0e..661e64a5b 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php @@ -11,7 +11,7 @@ use Rector\Core\Validation\RectorAssert; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ConstFetch\RenameConstantRector\RenameConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php b/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php index d26e629e8..1178238c3 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php @@ -12,7 +12,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\FuncCall\RenameFunctionRector\RenameFunctionRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php b/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php index e123a7257..e9a94c7f9 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php @@ -23,7 +23,7 @@ use Rector\Renaming\ValueObject\MethodCallRenameWithArrayKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\MethodCall\RenameMethodRector\RenameMethodRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php b/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php index b42e92587..9887ce1e5 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php @@ -17,7 +17,7 @@ use Rector\Renaming\NodeManipulator\ClassRenamer; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\Name\RenameClassRector\RenameClassRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php b/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php index a27c088b9..d4ce20de4 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php @@ -15,7 +15,7 @@ use Rector\Renaming\ValueObject\RenameProperty; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\PropertyFetch\RenamePropertyRector\RenamePropertyRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php b/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php index 2d397982d..385e11022 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php @@ -12,7 +12,7 @@ use Rector\Renaming\ValueObject\RenameStaticMethod; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\StaticCall\RenameStaticMethodRector\RenameStaticMethodRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php b/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php index c5af8adf9..e216c1d58 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php @@ -9,7 +9,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://github.com/symfony/symfony/pull/35858 * diff --git a/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php index 35f9c0102..9f66b2385 100644 --- a/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php @@ -5,7 +5,7 @@ use Rector\Core\Contract\Rector\ConfigurableRectorInterface; use Rector\Core\Rector\AbstractScopeAwareRector; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Strict\Rector\BooleanNot\BooleanInBooleanNotRuleFixerRector\BooleanInBooleanNotRuleFixerRectorTest * diff --git a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php index 5d5782419..b1054a67e 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\PropertyAssignToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\Assign\PropertyAssignToMethodCallRector\PropertyAssignToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php index 2ba0d3b9b..35320100d 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php @@ -13,7 +13,7 @@ use Rector\Transform\ValueObject\PropertyFetchToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\Assign\PropertyFetchToMethodCallRector\PropertyFetchToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php index 21cb93413..316850d37 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php @@ -11,7 +11,7 @@ use Rector\Transform\ValueObject\AttributeKeyToClassConstFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://github.com/doctrine/dbal/blob/3.1.x/src/Types/Types.php * diff --git a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php index 5c08b543c..3edbeff1a 100644 --- a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php @@ -17,7 +17,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\ClassMethod\ReturnTypeWillChangeRector\ReturnTypeWillChangeRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php index b01f99eb0..b987c23aa 100644 --- a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php @@ -14,7 +14,7 @@ use Rector\Transform\ValueObject\WrapReturn; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\ClassMethod\WrapReturnRector\WrapReturnRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php index 9411c978a..7b9d6eaa4 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php @@ -18,7 +18,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/deprecate_dynamic_properties * diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php index dc5c02d7f..eb4e30979 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php @@ -12,7 +12,7 @@ use Rector\Core\Rector\AbstractScopeAwareRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @api used in rector-doctrine * @see \Rector\Tests\Transform\Rector\Class_\AddInterfaceByTraitRector\AddInterfaceByTraitRectorTest diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php index 871703453..b4dccf81d 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * Covers cases like * - https://github.com/FriendsOfPHP/PHP-CS-Fixer/commit/a1cdb4d2dd8f45d731244eed406e1d537218cc66 diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php index 557a81a48..da81f7a8f 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php @@ -14,7 +14,7 @@ use Rector\Transform\ValueObject\ParentClassToTraits; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * Can handle cases like: * - https://doc.nette.org/en/2.4/migration-2-4#toc-nette-smartobject diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php index 0ddb2ef0f..3f30b1764 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToConstFetchRector\FunctionCallToConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php index 242857390..730d6156a 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\FuncCallToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToMethodCallRector\FuncCallToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php index 2a3bc3f10..933d25700 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToNewRector\FuncCallToNewRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php index eface6f51..e76e6e0c8 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\FuncCallToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToStaticCallRector\FuncCallToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php index def3bd96f..5001ee5eb 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php @@ -13,7 +13,7 @@ use Rector\Transform\ValueObject\MethodCallToFuncCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToFuncCallRector\MethodCallToFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php index 4fc6df3da..3b75e3cdf 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\MethodCallToPropertyFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToPropertyFetchRector\MethodCallToPropertyFetchRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php index 03c550305..e7b44e062 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\MethodCallToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToStaticCallRector\MethodCallToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php index 76f58b5ea..a62b3d008 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\ReplaceParentCallByPropertyCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\ReplaceParentCallByPropertyCallRector\ReplaceParentCallByPropertyCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php index b6a04c5cd..02a68dd80 100644 --- a/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\NewToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\New_\NewToStaticCallRector\NewToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php index 3dd740407..cffe17db5 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\StaticCallToFuncCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\StaticCall\StaticCallToFuncCallRector\StaticCallToFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php index 75539b0da..c86e1f796 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php @@ -17,7 +17,7 @@ use Rector\Transform\ValueObject\StaticCallToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\StaticCall\StaticCallToMethodCallRector\StaticCallToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php index ca2b6b5a3..6516e9702 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\StaticCallToNew; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://github.com/symfony/symfony/pull/35308 * diff --git a/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php b/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php index eb932857b..3472b6671 100644 --- a/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\StringToClassConstant; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\String_\StringToClassConstantRector\StringToClassConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php b/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php index 8d96c592e..83c5d01a1 100644 --- a/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php +++ b/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php @@ -4,7 +4,7 @@ namespace Rector\Transform\ValueObject; use Rector\Core\Validation\RectorAssert; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; final class ParentClassToTraits { /** diff --git a/vendor/rector/rector/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php b/vendor/rector/rector/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php new file mode 100644 index 000000000..00f3f9aa6 --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php @@ -0,0 +1,68 @@ +nodeNameResolver = $nodeNameResolver; + $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; + $this->betterNodeFinder = $betterNodeFinder; + } + public function isLegal(Param $param, ClassMethod $classMethod) : bool + { + $paramName = $this->nodeNameResolver->getName($param->var); + if ($paramName === null) { + return \false; + } + $isLegal = \true; + $this->simpleCallableNodeTraverser->traverseNodesWithCallable((array) $classMethod->stmts, function (Node $subNode) use(&$isLegal, $paramName) : ?int { + if ($subNode instanceof Assign && $subNode->var instanceof Variable && $this->nodeNameResolver->isName($subNode->var, $paramName)) { + $isLegal = \false; + return NodeTraverser::STOP_TRAVERSAL; + } + if ($subNode instanceof If_ && (bool) $this->betterNodeFinder->findFirst($subNode->cond, function (Node $node) use($paramName) : bool { + return $node instanceof Variable && $this->nodeNameResolver->isName($node, $paramName); + })) { + $isLegal = \false; + return NodeTraverser::STOP_TRAVERSAL; + } + if ($subNode instanceof Ternary && (bool) $this->betterNodeFinder->findFirst($subNode, function (Node $node) use($paramName) : bool { + return $node instanceof Variable && $this->nodeNameResolver->isName($node, $paramName); + })) { + $isLegal = \false; + return NodeTraverser::STOP_TRAVERSAL; + } + return null; + }); + return $isLegal; + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php index f2a9db874..f661741a2 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php @@ -8,7 +8,7 @@ use PhpParser\Node\Stmt\Property; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202309\Symfony\Contracts\Service\Attribute\Required; final class AutowiredClassMethodOrPropertyAnalyzer { /** diff --git a/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php b/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php index 62a4a89f4..0ca0a4481 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php +++ b/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\TypeDeclaration\PHPStan; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\GroupUse; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php index 00ea15240..a80ed3903 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\TypeDeclaration\Rector\ClassMethod; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayItem; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php index 38cd4d8f2..576038b4a 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php @@ -20,7 +20,7 @@ use Rector\TypeDeclaration\ValueObject\AddParamTypeDeclaration; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\AddParamTypeDeclarationRector\AddParamTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeFromPropertyTypeRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeFromPropertyTypeRector.php index 431272446..006bc46da 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeFromPropertyTypeRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeFromPropertyTypeRector.php @@ -5,7 +5,6 @@ use PhpParser\Node; use PhpParser\Node\Expr\Assign; -use PhpParser\Node\Expr\Variable; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Function_; @@ -17,6 +16,7 @@ use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; +use Rector\TypeDeclaration\Guard\ParamTypeAddGuard; use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -46,16 +46,22 @@ final class AddParamTypeFromPropertyTypeRector extends AbstractRector implements * @var \Rector\VendorLocker\ParentClassMethodTypeOverrideGuard */ private $parentClassMethodTypeOverrideGuard; + /** + * @readonly + * @var \Rector\TypeDeclaration\Guard\ParamTypeAddGuard + */ + private $paramTypeAddGuard; /** * @var string */ private const ERROR_MESSAGE = 'Adds param type declaration based on property type the value is assigned to PHPUnit provider return type declaration'; - public function __construct(PropertyFetchAnalyzer $propertyFetchAnalyzer, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, TypeFactory $typeFactory, ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard) + public function __construct(PropertyFetchAnalyzer $propertyFetchAnalyzer, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, TypeFactory $typeFactory, ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, ParamTypeAddGuard $paramTypeAddGuard) { $this->propertyFetchAnalyzer = $propertyFetchAnalyzer; $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; $this->typeFactory = $typeFactory; $this->parentClassMethodTypeOverrideGuard = $parentClassMethodTypeOverrideGuard; + $this->paramTypeAddGuard = $paramTypeAddGuard; } public function getRuleDefinition() : RuleDefinition { @@ -101,20 +107,13 @@ public function refactor(Node $node) : ?ClassMethod if ($param->type instanceof Node) { continue; } - $paramName = $this->getName($param); - // has param override? skip it - $hasParamOverride = (bool) $this->betterNodeFinder->findFirst($node, function (Node $node) use($paramName) : bool { - if (!$node instanceof Assign) { - return \false; - } - if (!$node->var instanceof Variable) { - return \false; - } - return $this->isName($node->var, $paramName); - }); - if ($hasParamOverride) { + if ($param->variadic) { continue; } + if (!$this->paramTypeAddGuard->isLegal($param, $node)) { + continue; + } + $paramName = $this->getName($param); $propertyStaticTypes = $this->resolvePropertyStaticTypesByParamName($node, $paramName); $possibleParamType = $this->typeFactory->createMixedPassedOrUnionType($propertyStaticTypes); $paramType = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($possibleParamType, TypeKind::PARAM); @@ -156,7 +155,7 @@ private function resolvePropertyStaticTypesByParamName(ClassMethod $classMethod, $exprType = $this->nodeTypeResolver->getNativeType($node->expr); $nodeExprType = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($exprType, TypeKind::PARAM); $varType = $this->nodeTypeResolver->getNativeType($node->var); - $nodeVarType = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($varType, TypeKind::ANY); + $nodeVarType = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($varType, TypeKind::PROPERTY); if ($nodeExprType instanceof Node && !$this->nodeComparator->areNodesEqual($nodeExprType, $nodeVarType)) { return null; } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationBasedOnParentClassMethodRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationBasedOnParentClassMethodRector.php index 97937d108..f89af05a7 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationBasedOnParentClassMethodRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationBasedOnParentClassMethodRector.php @@ -7,11 +7,12 @@ use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Reflection\MethodReflection; +use PHPStan\Reflection\ParametersAcceptorSelector; +use PHPStan\Reflection\ParametersAcceptorWithPhpDocs; use PHPStan\Type\MixedType; use PHPStan\Type\ObjectType; use PHPStan\Type\Type; use Rector\Core\Php\PhpVersionProvider; -use Rector\Core\PhpParser\AstResolver; use Rector\Core\Rector\AbstractRector; use Rector\Core\ValueObject\MethodName; use Rector\Core\ValueObject\PhpVersionFeature; @@ -31,20 +32,14 @@ final class AddReturnTypeDeclarationBasedOnParentClassMethodRector extends Abstr * @var \Rector\VendorLocker\ParentClassMethodTypeOverrideGuard */ private $parentClassMethodTypeOverrideGuard; - /** - * @readonly - * @var \Rector\Core\PhpParser\AstResolver - */ - private $astResolver; /** * @readonly * @var \Rector\Core\Php\PhpVersionProvider */ private $phpVersionProvider; - public function __construct(ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, AstResolver $astResolver, PhpVersionProvider $phpVersionProvider) + public function __construct(ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, PhpVersionProvider $phpVersionProvider) { $this->parentClassMethodTypeOverrideGuard = $parentClassMethodTypeOverrideGuard; - $this->astResolver = $astResolver; $this->phpVersionProvider = $phpVersionProvider; } public function provideMinPhpVersion() : int @@ -118,21 +113,28 @@ public function refactor(Node $node) : ?Node private function getReturnTypeRecursive(ClassMethod $classMethod) : ?Type { $returnType = $classMethod->getReturnType(); - if ($returnType === null) { - $parentMethodReflection = $this->parentClassMethodTypeOverrideGuard->getParentClassMethod($classMethod); - if (!$parentMethodReflection instanceof MethodReflection) { + if ($returnType !== null) { + return $this->staticTypeMapper->mapPhpParserNodePHPStanType($returnType); + } + $parentMethodReflection = $this->parentClassMethodTypeOverrideGuard->getParentClassMethod($classMethod); + while ($parentMethodReflection instanceof MethodReflection) { + if ($parentMethodReflection->isPrivate()) { return null; } - $parentClassMethod = $this->astResolver->resolveClassMethodFromMethodReflection($parentMethodReflection); - if (!$parentClassMethod instanceof ClassMethod) { + $parameterAcceptor = ParametersAcceptorSelector::selectSingle($parentMethodReflection->getVariants()); + if (!$parameterAcceptor instanceof ParametersAcceptorWithPhpDocs) { return null; } - if ($parentClassMethod->isPrivate()) { - return null; + $parentReturnType = $parameterAcceptor->getNativeReturnType(); + if (!$parentReturnType instanceof MixedType) { + return $parentReturnType; + } + if ($parentReturnType->isExplicitMixed()) { + return $parentReturnType; } - return $this->getReturnTypeRecursive($parentClassMethod); + $parentMethodReflection = $this->parentClassMethodTypeOverrideGuard->getParentClassMethod($parentMethodReflection); } - return $this->staticTypeMapper->mapPhpParserNodePHPStanType($returnType); + return null; } private function processClassMethodReturnType(Class_ $class, ClassMethod $classMethod, Type $parentType) : ?ClassMethod { diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php index 596bbbade..6104b1b49 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php @@ -19,7 +19,7 @@ use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationRector\AddReturnTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php index 39b0d754b..0508367ae 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php @@ -37,11 +37,6 @@ final class AddVoidReturnTypeWhereNoReturnRector extends AbstractRector implemen * @var \Rector\Core\Reflection\ReflectionResolver */ private $reflectionResolver; - /** - * @api - * @var string using phpdoc instead of a native void type can ease the migration path for consumers of code being processed. - */ - public const USE_PHPDOC = 'use_phpdoc'; public function __construct(SilentVoidResolver $silentVoidResolver, ClassMethodReturnVendorLockResolver $classMethodReturnVendorLockResolver, ReflectionResolver $reflectionResolver) { $this->silentVoidResolver = $silentVoidResolver; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php index bfee0a143..1450401a0 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php @@ -8,20 +8,17 @@ use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\StaticCall; -use PhpParser\Node\Expr\Ternary; -use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\NullableType; use PhpParser\Node\Param; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; -use PhpParser\Node\Stmt\If_; use PhpParser\Node\UnionType; -use PhpParser\NodeTraverser; use PHPStan\Analyser\Scope; use Rector\Core\Rector\AbstractScopeAwareRector; use Rector\NodeTypeResolver\Node\AttributeKey; +use Rector\TypeDeclaration\Guard\ParamTypeAddGuard; use Rector\TypeDeclaration\NodeAnalyzer\CallerParamMatcher; use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -41,10 +38,16 @@ final class ParamTypeByMethodCallTypeRector extends AbstractScopeAwareRector * @var \Rector\VendorLocker\ParentClassMethodTypeOverrideGuard */ private $parentClassMethodTypeOverrideGuard; - public function __construct(CallerParamMatcher $callerParamMatcher, ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard) + /** + * @readonly + * @var \Rector\TypeDeclaration\Guard\ParamTypeAddGuard + */ + private $paramTypeAddGuard; + public function __construct(CallerParamMatcher $callerParamMatcher, ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, ParamTypeAddGuard $paramTypeAddGuard) { $this->callerParamMatcher = $callerParamMatcher; $this->parentClassMethodTypeOverrideGuard = $parentClassMethodTypeOverrideGuard; + $this->paramTypeAddGuard = $paramTypeAddGuard; } public function getRuleDefinition() : RuleDefinition { @@ -151,36 +154,9 @@ private function mirrorParamType(Param $decoratedParam, $paramType) : void }); $decoratedParam->type = $newParamType; } - /** - * Should skip param because one of them is conditional types? - */ - private function isParamConditioned(Param $param, ClassMethod $classMethod) : bool - { - $paramName = $this->nodeNameResolver->getName($param->var); - if ($paramName === null) { - return \false; - } - $isParamConditioned = \false; - $this->traverseNodesWithCallable((array) $classMethod->stmts, function (Node $subNode) use(&$isParamConditioned, $paramName) : ?int { - if ($subNode instanceof If_ && (bool) $this->betterNodeFinder->findFirst($subNode->cond, function (Node $node) use($paramName) : bool { - return $node instanceof Variable && $this->isName($node, $paramName); - })) { - $isParamConditioned = \true; - return NodeTraverser::STOP_TRAVERSAL; - } - if ($subNode instanceof Ternary && (bool) $this->betterNodeFinder->findFirst($subNode, function (Node $node) use($paramName) : bool { - return $node instanceof Variable && $this->isName($node, $paramName); - })) { - $isParamConditioned = \true; - return NodeTraverser::STOP_TRAVERSAL; - } - return null; - }); - return $isParamConditioned; - } private function shouldSkipParam(Param $param, ClassMethod $classMethod) : bool { - if ($this->isParamConditioned($param, $classMethod)) { + if (!$this->paramTypeAddGuard->isLegal($param, $classMethod)) { return \true; } if ($param->variadic) { diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictFluentReturnRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictFluentReturnRector.php new file mode 100644 index 000000000..9c8c2069d --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictFluentReturnRector.php @@ -0,0 +1,131 @@ +classMethodReturnTypeOverrideGuard = $classMethodReturnTypeOverrideGuard; + $this->reflectionResolver = $reflectionResolver; + $this->returnTypeInferer = $returnTypeInferer; + $this->phpVersionProvider = $phpVersionProvider; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add return type from strict return $this', [new CodeSample(<<<'CODE_SAMPLE' +final class SomeClass +{ + public function run() + { + return $this; + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + public function run(): self + { + return $this; + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [ClassMethod::class]; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::HAS_RETURN_TYPE; + } + /** + * @param ClassMethod $node + */ + public function refactorWithScope(Node $node, Scope $scope) : ?Node + { + if ($node->returnType instanceof Node) { + return null; + } + if ($this->classMethodReturnTypeOverrideGuard->shouldSkipClassMethod($node, $scope)) { + return null; + } + $classReflection = $this->reflectionResolver->resolveClassReflection($node); + if (!$classReflection instanceof ClassReflection) { + return null; + } + $returnType = $this->returnTypeInferer->inferFunctionLike($node); + if ($returnType instanceof StaticType && $returnType->getStaticObjectType()->getClassName() === $classReflection->getName()) { + return $this->processAddReturnSelfOrStatic($node, $classReflection); + } + if ($returnType instanceof ObjectType && $returnType->getClassName() === $classReflection->getName()) { + $node->returnType = new Name('self'); + return $node; + } + if (!$returnType instanceof ThisType) { + return null; + } + return $this->processAddReturnSelfOrStatic($node, $classReflection); + } + private function processAddReturnSelfOrStatic(ClassMethod $classMethod, ClassReflection $classReflection) : ClassMethod + { + $classMethod->returnType = $this->shouldSelf($classReflection) ? new Name('self') : new Name('static'); + return $classMethod; + } + private function shouldSelf(ClassReflection $classReflection) : bool + { + if ($classReflection->isAnonymous()) { + return \true; + } + if ($classReflection->isFinalByKeyword()) { + return \true; + } + return !$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::STATIC_RETURN_TYPE); + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php index 12627768a..71de3427d 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php @@ -175,7 +175,11 @@ private function isVariableOverriddenWithNonArray($functionLike, Variable $varia if (!$this->nodeNameResolver->areNamesEqual($assign->var, $variable)) { continue; } - if (!$assign->expr instanceof Array_) { + if ($assign->expr instanceof Array_) { + continue; + } + $nativeType = $this->nodeTypeResolver->getNativeType($assign->expr); + if (!$nativeType->isArray()->yes()) { return \true; } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php index f0131d546..9274b11f8 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php @@ -24,7 +24,7 @@ use Rector\Core\Rector\AbstractScopeAwareRector; use Rector\Core\ValueObject\PhpVersionFeature; use Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer; -use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; +use Rector\VendorLocker\NodeVendorLocker\ClassMethodReturnTypeOverrideGuard; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -35,17 +35,17 @@ final class ReturnTypeFromStrictParamRector extends AbstractScopeAwareRector imp { /** * @readonly - * @var \Rector\VendorLocker\ParentClassMethodTypeOverrideGuard + * @var \Rector\VendorLocker\NodeVendorLocker\ClassMethodReturnTypeOverrideGuard */ - private $parentClassMethodTypeOverrideGuard; + private $classMethodReturnTypeOverrideGuard; /** * @readonly * @var \Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer */ private $returnTypeInferer; - public function __construct(ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, ReturnTypeInferer $returnTypeInferer) + public function __construct(ClassMethodReturnTypeOverrideGuard $classMethodReturnTypeOverrideGuard, ReturnTypeInferer $returnTypeInferer) { - $this->parentClassMethodTypeOverrideGuard = $parentClassMethodTypeOverrideGuard; + $this->classMethodReturnTypeOverrideGuard = $classMethodReturnTypeOverrideGuard; $this->returnTypeInferer = $returnTypeInferer; } public function getRuleDefinition() : RuleDefinition @@ -89,7 +89,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node if ($node->stmts === null) { return null; } - if ($this->shouldSkipNode($node)) { + if ($this->shouldSkipNode($node, $scope)) { return null; } $return = $this->findCurrentScopeReturn($node->stmts); @@ -171,18 +171,13 @@ private function shouldSkipParam(Param $param, array $stmts) : bool /** * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure $node */ - private function shouldSkipNode($node) : bool + private function shouldSkipNode($node, Scope $scope) : bool { if ($node->returnType !== null) { return \true; } - if ($node instanceof ClassMethod) { - if ($this->parentClassMethodTypeOverrideGuard->hasParentClassMethod($node)) { - return \true; - } - if ($node->isMagic()) { - return \true; - } + if ($node instanceof ClassMethod && $this->classMethodReturnTypeOverrideGuard->shouldSkipClassMethod($node, $scope)) { + return \true; } $returnType = $this->returnTypeInferer->inferFunctionLike($node); if ($returnType instanceof MixedType) { diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php index ad0c4f343..a28a4181a 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php @@ -9,12 +9,14 @@ use PhpParser\Node\Expr\BinaryOp\Coalesce; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\FuncCall; +use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\Variable; use PhpParser\Node\FunctionLike; use PhpParser\Node\Identifier; use PhpParser\Node\Param; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Function_; use PhpParser\NodeTraverser; use Rector\Core\Rector\AbstractRector; @@ -133,12 +135,18 @@ private function shouldStop(Node $node, string $paramName) : bool $firstArg = $node->getArgs()[0]; $nodeToCheck = $firstArg->value; } + if ($node instanceof Expression) { + $nodeToCheck = $node->expr; + } if ($node instanceof Coalesce) { $nodeToCheck = $node->left; } if ($node instanceof AssignOpCoalesce) { $nodeToCheck = $node->var; } + if ($nodeToCheck instanceof MethodCall) { + return $nodeToCheck->var instanceof Variable && $this->isName($nodeToCheck->var, $paramName); + } if ($nodeToCheck instanceof ArrayDimFetch) { return $nodeToCheck->var instanceof Variable && $this->isName($nodeToCheck->var, $paramName); } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php index 8b1091bf7..f9e2a30b4 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\AssignOp\Concat; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\Variable; @@ -75,6 +76,7 @@ public function refactor(Node $node) : ?Node return null; } $hasChanged = \false; + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); foreach ($node->getParams() as $param) { if ($param->type instanceof Node) { continue; @@ -83,6 +85,10 @@ public function refactor(Node $node) : ?Node if (!$variableConcattedFromParam instanceof Variable) { continue; } + $paramDocType = $phpDocInfo->getParamType($this->getName($param)); + if (!$paramDocType instanceof MixedType && !$paramDocType->isString()->yes()) { + continue; + } $nativeType = $this->nodeTypeResolver->getNativeType($variableConcattedFromParam); if ($nativeType instanceof MixedType && $nativeType->getSubtractedType() instanceof Type && TypeCombinator::containsNull($nativeType->getSubtractedType())) { $param->type = new NullableType(new Identifier('string')); @@ -114,15 +120,17 @@ private function resolveVariableConcattedFromParam(Param $param, $functionLike) if ($node instanceof FunctionLike || $node instanceof Class_) { return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; } + if ($node instanceof Assign && $node->var instanceof Variable && $this->isName($node->var, $paramName)) { + $variableConcatted = null; + return NodeTraverser::STOP_TRAVERSAL; + } $expr = $this->resolveAssignConcatVariable($node, $paramName); if ($expr instanceof Variable) { - $variableConcatted = $node; - return NodeTraverser::STOP_TRAVERSAL; + $variableConcatted = $expr; } $variableBinaryConcat = $this->resolveBinaryConcatVariable($node, $paramName); if ($variableBinaryConcat instanceof Variable) { $variableConcatted = $variableBinaryConcat; - return NodeTraverser::STOP_TRAVERSAL; } return null; }); diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php index a25feca4f..54c5aae28 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php @@ -15,7 +15,7 @@ use Rector\TypeDeclaration\ValueObject\AddPropertyTypeDeclaration; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\Property\AddPropertyTypeDeclarationRector\AddPropertyTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php index bc7d1b69d..ac00bf618 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php @@ -5,9 +5,11 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\Property; use PHPStan\Type\MixedType; +use PHPStan\Type\StringType; use PHPStan\Type\Type; use PHPStan\Type\TypeCombinator; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; @@ -17,6 +19,7 @@ use Rector\DeadCode\PhpDoc\TagRemover\VarTagRemover; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\Privatization\Guard\ParentPropertyLookupGuard; +use Rector\TypeDeclaration\AlreadyAssignDetector\ConstructorAssignDetector; use Rector\TypeDeclaration\TypeInferer\PropertyTypeInferer\GetterTypeDeclarationPropertyTypeInferer; use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -46,12 +49,18 @@ final class TypedPropertyFromStrictGetterMethodReturnTypeRector extends Abstract * @var \Rector\Core\Reflection\ReflectionResolver */ private $reflectionResolver; - public function __construct(GetterTypeDeclarationPropertyTypeInferer $getterTypeDeclarationPropertyTypeInferer, VarTagRemover $varTagRemover, ParentPropertyLookupGuard $parentPropertyLookupGuard, ReflectionResolver $reflectionResolver) + /** + * @readonly + * @var \Rector\TypeDeclaration\AlreadyAssignDetector\ConstructorAssignDetector + */ + private $constructorAssignDetector; + public function __construct(GetterTypeDeclarationPropertyTypeInferer $getterTypeDeclarationPropertyTypeInferer, VarTagRemover $varTagRemover, ParentPropertyLookupGuard $parentPropertyLookupGuard, ReflectionResolver $reflectionResolver, ConstructorAssignDetector $constructorAssignDetector) { $this->getterTypeDeclarationPropertyTypeInferer = $getterTypeDeclarationPropertyTypeInferer; $this->varTagRemover = $varTagRemover; $this->parentPropertyLookupGuard = $parentPropertyLookupGuard; $this->reflectionResolver = $reflectionResolver; + $this->constructorAssignDetector = $constructorAssignDetector; } public function getRuleDefinition() : RuleDefinition { @@ -103,8 +112,9 @@ public function refactor(Node $node) : ?\PhpParser\Node\Stmt\Class_ if ($getterReturnType instanceof MixedType) { continue; } + $isAssignedInConstructor = $this->constructorAssignDetector->isPropertyAssigned($node, $this->getName($property)); // if property is public, it should be nullable - if ($property->isPublic() && !TypeCombinator::containsNull($getterReturnType)) { + if ($property->isPublic() && !TypeCombinator::containsNull($getterReturnType) && !$isAssignedInConstructor) { $getterReturnType = TypeCombinator::addNull($getterReturnType); } $propertyTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($getterReturnType, TypeKind::PROPERTY); @@ -116,7 +126,7 @@ public function refactor(Node $node) : ?\PhpParser\Node\Stmt\Class_ continue; } $property->type = $propertyTypeNode; - $this->decorateDefaultNull($getterReturnType, $property); + $this->decorateDefaultExpr($getterReturnType, $property, $isAssignedInConstructor); $this->refactorPhpDoc($property); $hasChanged = \true; } @@ -129,16 +139,24 @@ public function provideMinPhpVersion() : int { return PhpVersionFeature::TYPED_PROPERTIES; } - private function decorateDefaultNull(Type $propertyType, Property $property) : void + private function decorateDefaultExpr(Type $propertyType, Property $property, bool $isAssignedInConstructor) : void { - if (!TypeCombinator::containsNull($propertyType)) { + if ($isAssignedInConstructor) { return; } $propertyProperty = $property->props[0]; + // already has a default value if ($propertyProperty->default instanceof Expr) { return; } - $propertyProperty->default = $this->nodeFactory->createNull(); + if (TypeCombinator::containsNull($propertyType)) { + $propertyProperty->default = $this->nodeFactory->createNull(); + return; + } + // set default for string + if ($propertyType instanceof StringType) { + $propertyProperty->default = new String_(''); + } } private function isConflictingDefaultExprType(Property $property, Type $getterReturnType) : bool { diff --git a/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/AssignToPropertyTypeInferer.php b/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/AssignToPropertyTypeInferer.php index 05654fcd3..30e16e1e5 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/AssignToPropertyTypeInferer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/TypeInferer/AssignToPropertyTypeInferer.php @@ -208,7 +208,8 @@ private function getAssignedExprTypes(ClassLike $classLike, string $propertyName return null; } if ($this->exprAnalyzer->isNonTypedFromParam($node->expr)) { - return null; + $assignedExprTypes = []; + return NodeTraverser::STOP_TRAVERSAL; } $assignedExprTypes[] = $this->resolveExprStaticTypeIncludingDimFetch($node); return null; diff --git a/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php b/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php index c3dbd12e4..279622106 100644 --- a/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php +++ b/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php @@ -12,7 +12,7 @@ use Rector\Visibility\ValueObject\ChangeConstantVisibility; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Visibility\Rector\ClassConst\ChangeConstantVisibilityRector\ChangeConstantVisibilityRectorTest */ diff --git a/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php b/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php index 5727b9547..3eee73d6e 100644 --- a/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php +++ b/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php @@ -14,7 +14,7 @@ use Rector\Visibility\ValueObject\ChangeMethodVisibility; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Visibility\Rector\ClassMethod\ChangeMethodVisibilityRector\ChangeMethodVisibilityRectorTest */ diff --git a/vendor/rector/rector/src/Application/ApplicationFileProcessor.php b/vendor/rector/rector/src/Application/ApplicationFileProcessor.php index 39983937d..175755052 100644 --- a/vendor/rector/rector/src/Application/ApplicationFileProcessor.php +++ b/vendor/rector/rector/src/Application/ApplicationFileProcessor.php @@ -3,12 +3,11 @@ declare (strict_types=1); namespace Rector\Core\Application; -use RectorPrefix202308\Nette\Utils\FileSystem as UtilsFileSystem; -use PHPStan\Analyser\NodeScopeResolver; +use RectorPrefix202309\Nette\Utils\FileSystem as UtilsFileSystem; use Rector\Caching\Detector\ChangedFilesDetector; +use Rector\Core\Application\FileProcessor\PhpFileProcessor; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; -use Rector\Core\Contract\Processor\FileProcessorInterface; use Rector\Core\Provider\CurrentFileProvider; use Rector\Core\Util\ArrayParametersMerger; use Rector\Core\ValueObject\Application\File; @@ -19,13 +18,12 @@ use Rector\Parallel\Application\ParallelFileProcessor; use Rector\Parallel\ValueObject\Bridge; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202308\Symplify\EasyParallel\CpuCoreCountProvider; -use RectorPrefix202308\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202308\Symplify\EasyParallel\ScheduleFactory; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symplify\EasyParallel\CpuCoreCountProvider; +use RectorPrefix202309\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202309\Symplify\EasyParallel\ScheduleFactory; use Throwable; -use RectorPrefix202308\Webmozart\Assert\Assert; final class ApplicationFileProcessor { /** @@ -38,11 +36,6 @@ final class ApplicationFileProcessor * @var \Rector\Core\ValueObjectFactory\Application\FileFactory */ private $fileFactory; - /** - * @readonly - * @var \PHPStan\Analyser\NodeScopeResolver - */ - private $nodeScopeResolver; /** * @readonly * @var \Rector\Core\Util\ArrayParametersMerger @@ -74,10 +67,10 @@ final class ApplicationFileProcessor */ private $currentFileProvider; /** - * @var FileProcessorInterface[] * @readonly + * @var \Rector\Core\Application\FileProcessor\PhpFileProcessor */ - private $fileProcessors; + private $phpFileProcessor; /** * @var string */ @@ -86,26 +79,17 @@ final class ApplicationFileProcessor * @var SystemError[] */ private $systemErrors = []; - /** - * @param FileProcessorInterface[] $fileProcessors - */ - public function __construct(SymfonyStyle $symfonyStyle, FileFactory $fileFactory, NodeScopeResolver $nodeScopeResolver, ArrayParametersMerger $arrayParametersMerger, ParallelFileProcessor $parallelFileProcessor, ScheduleFactory $scheduleFactory, CpuCoreCountProvider $cpuCoreCountProvider, ChangedFilesDetector $changedFilesDetector, CurrentFileProvider $currentFileProvider, iterable $fileProcessors) + public function __construct(SymfonyStyle $symfonyStyle, FileFactory $fileFactory, ArrayParametersMerger $arrayParametersMerger, ParallelFileProcessor $parallelFileProcessor, ScheduleFactory $scheduleFactory, CpuCoreCountProvider $cpuCoreCountProvider, ChangedFilesDetector $changedFilesDetector, CurrentFileProvider $currentFileProvider, PhpFileProcessor $phpFileProcessor) { $this->symfonyStyle = $symfonyStyle; $this->fileFactory = $fileFactory; - $this->nodeScopeResolver = $nodeScopeResolver; $this->arrayParametersMerger = $arrayParametersMerger; $this->parallelFileProcessor = $parallelFileProcessor; $this->scheduleFactory = $scheduleFactory; $this->cpuCoreCountProvider = $cpuCoreCountProvider; $this->changedFilesDetector = $changedFilesDetector; $this->currentFileProvider = $currentFileProvider; - $this->fileProcessors = $fileProcessors; - $fileProcessorClasses = []; - foreach ($fileProcessors as $fileProcessor) { - $fileProcessorClasses[] = \get_class($fileProcessor); - } - Assert::uniqueValues($fileProcessorClasses); + $this->phpFileProcessor = $phpFileProcessor; } /** * @return array{system_errors: SystemError[], file_diffs: FileDiff[]} @@ -121,8 +105,6 @@ public function run(Configuration $configuration, InputInterface $input) : array if ($configuration->isParallel()) { $systemErrorsAndFileDiffs = $this->runParallel($filePaths, $configuration, $input); } else { - // 1. allow PHPStan to work with static reflection on provided files - $this->nodeScopeResolver->setAnalysedFiles($filePaths); $systemErrorsAndFileDiffs = $this->processFiles($filePaths, $configuration, \false); } $systemErrorsAndFileDiffs[Bridge::SYSTEM_ERRORS] = \array_merge($systemErrorsAndFileDiffs[Bridge::SYSTEM_ERRORS], $this->systemErrors); @@ -169,27 +151,18 @@ public function processFiles(array $filePaths, Configuration $configuration, boo private function processFile(File $file, array $systemErrorsAndFileDiffs, Configuration $configuration) : array { $this->currentFileProvider->setFile($file); - foreach ($this->fileProcessors as $fileProcessor) { - if (!$fileProcessor->supports($file, $configuration)) { - continue; - } - $result = $fileProcessor->process($file, $configuration); - $systemErrorsAndFileDiffs = $this->arrayParametersMerger->merge($systemErrorsAndFileDiffs, $result); - } + $phpSystemErrorsAndFileDiffs = $this->phpFileProcessor->process($file, $configuration); + $systemErrorsAndFileDiffs = $this->arrayParametersMerger->merge($systemErrorsAndFileDiffs, $phpSystemErrorsAndFileDiffs); if ($systemErrorsAndFileDiffs[Bridge::SYSTEM_ERRORS] !== []) { $this->changedFilesDetector->invalidateFile($file->getFilePath()); } elseif (!$configuration->isDryRun() || $systemErrorsAndFileDiffs[Bridge::FILE_DIFFS] === []) { - $this->changedFilesDetector->cacheFileWithDependencies($file->getFilePath()); + $this->changedFilesDetector->cacheFile($file->getFilePath()); } return $systemErrorsAndFileDiffs; } - /** - * @param string|\Rector\Core\ValueObject\Application\File $filePath - */ - private function resolveSystemError(Throwable $throwable, $filePath) : SystemError + private function resolveSystemError(Throwable $throwable, string $filePath) : SystemError { $errorMessage = \sprintf('System error: "%s"', $throwable->getMessage()) . \PHP_EOL; - $filePath = $filePath instanceof File ? $filePath->getFilePath() : $filePath; if ($this->symfonyStyle->isDebug()) { return new SystemError($errorMessage . \PHP_EOL . 'Stack trace:' . \PHP_EOL . $throwable->getTraceAsString(), $filePath, $throwable->getLine()); } diff --git a/vendor/rector/rector/src/Application/ChangedNodeScopeRefresher.php b/vendor/rector/rector/src/Application/ChangedNodeScopeRefresher.php index 3f0936d60..b93a7da72 100644 --- a/vendor/rector/rector/src/Application/ChangedNodeScopeRefresher.php +++ b/vendor/rector/rector/src/Application/ChangedNodeScopeRefresher.php @@ -55,7 +55,7 @@ public function __construct(PHPStanNodeScopeResolver $phpStanNodeScopeResolver, $this->scopeAnalyzer = $scopeAnalyzer; $this->currentFileProvider = $currentFileProvider; } - public function refresh(Node $node, ?MutatingScope $mutatingScope, ?string $filePath = null, ?Stmt $currentStmt = null) : void + public function refresh(Node $node, ?MutatingScope $mutatingScope, ?string $filePath = null) : void { // nothing to refresh if (!$this->scopeAnalyzer->isRefreshable($node)) { @@ -66,7 +66,7 @@ public function refresh(Node $node, ?MutatingScope $mutatingScope, ?string $file $file = $this->currentFileProvider->getFile(); $filePath = $file->getFilePath(); } - $mutatingScope = $mutatingScope instanceof MutatingScope ? $mutatingScope : $this->scopeAnalyzer->resolveScope($node, $filePath, $currentStmt); + $mutatingScope = $mutatingScope instanceof MutatingScope ? $mutatingScope : $this->scopeAnalyzer->resolveScope($node, $filePath); if (!$mutatingScope instanceof MutatingScope) { $errorMessage = \sprintf('Node "%s" with is missing scope required for scope refresh', \get_class($node)); throw new ShouldNotHappenException($errorMessage); diff --git a/vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php b/vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php index a5d2b7eec..1d594b43f 100644 --- a/vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php +++ b/vendor/rector/rector/src/Application/FileProcessor/PhpFileProcessor.php @@ -3,13 +3,12 @@ declare (strict_types=1); namespace Rector\Core\Application\FileProcessor; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PHPStan\AnalysedCodeException; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\ChangesReporting\ValueObjectFactory\ErrorFactory; use Rector\ChangesReporting\ValueObjectFactory\FileDiffFactory; use Rector\Core\Application\FileProcessor; -use Rector\Core\Contract\Processor\FileProcessorInterface; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\FileSystem\FilePathHelper; use Rector\Core\PhpParser\Printer\FormatPerservingPrinter; @@ -20,9 +19,9 @@ use Rector\Parallel\ValueObject\Bridge; use Rector\PostRector\Application\PostFileProcessor; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; use Throwable; -final class PhpFileProcessor implements FileProcessorInterface +final class PhpFileProcessor { /** * @readonly @@ -128,18 +127,6 @@ public function process(File $file, Configuration $configuration) : array $systemErrorsAndFileDiffs[Bridge::FILE_DIFFS] = [$fileDiff]; return $systemErrorsAndFileDiffs; } - public function supports(File $file, Configuration $configuration) : bool - { - $filePathExtension = \pathinfo($file->getFilePath(), \PATHINFO_EXTENSION); - return \in_array($filePathExtension, $configuration->getFileExtensions(), \true); - } - /** - * @return string[] - */ - public function getSupportedFileExtensions() : array - { - return ['php']; - } /** * @return SystemError[] */ diff --git a/vendor/rector/rector/src/Application/VersionResolver.php b/vendor/rector/rector/src/Application/VersionResolver.php index 66823bb7d..ec8c5bc90 100644 --- a/vendor/rector/rector/src/Application/VersionResolver.php +++ b/vendor/rector/rector/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '0.17.12'; + public const PACKAGE_VERSION = '0.18.2'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-08-10 16:17:10'; + public const RELEASE_DATE = '2023-09-05 21:55:11'; /** * @var int */ diff --git a/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php b/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php index 8e8e0b949..470ea6bcc 100644 --- a/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php +++ b/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php @@ -6,8 +6,8 @@ use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\StaticReflection\DynamicSourceLocatorDecorator; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * Should it pass autoload files/directories to PHPStan analyzer? */ diff --git a/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php b/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php index 92c4f539e..95ca558c1 100644 --- a/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php +++ b/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php @@ -3,43 +3,18 @@ declare (strict_types=1); namespace Rector\Core\Autoloading; -use RectorPrefix202308\Nette\Neon\Neon; -use PHPStan\DependencyInjection\Container; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\Exception\ShouldNotHappenException; -use Rector\NodeTypeResolver\DependencyInjection\PHPStanExtensionsConfigResolver; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; use SplFileInfo; -use Throwable; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Core\Tests\Autoloading\BootstrapFilesIncluderTest */ final class BootstrapFilesIncluder { - /** - * @readonly - * @var \Rector\NodeTypeResolver\DependencyInjection\PHPStanExtensionsConfigResolver - */ - private $phpStanExtensionsConfigResolver; - /** - * @var array - */ - private $configCache = []; - public function __construct(PHPStanExtensionsConfigResolver $phpStanExtensionsConfigResolver) - { - $this->phpStanExtensionsConfigResolver = $phpStanExtensionsConfigResolver; - } - public function includePHPStanExtensionsBoostrapFiles(?Container $container = null) : void - { - $extensionConfigFiles = $this->phpStanExtensionsConfigResolver->resolve(); - $absoluteBootstrapFilePaths = $this->resolveAbsoluteBootstrapFilePaths($extensionConfigFiles); - foreach ($absoluteBootstrapFilePaths as $absoluteBootstrapFilePath) { - $this->tryRequireFile($absoluteBootstrapFilePath, $container); - } - } /** * Inspired by * @see https://github.com/phpstan/phpstan-src/commit/aad1bf888ab7b5808898ee5fe2228bb8bb4e4cf1 @@ -53,51 +28,10 @@ public function includeBootstrapFiles() : void if (!\is_file($bootstrapFile)) { throw new ShouldNotHappenException(\sprintf('Bootstrap file "%s" does not exist.', $bootstrapFile)); } - $this->tryRequireFile($bootstrapFile); + require $bootstrapFile; } $this->requireRectorStubs(); } - /** - * @param string[] $extensionConfigFiles - * @return string[] - */ - private function resolveAbsoluteBootstrapFilePaths(array $extensionConfigFiles) : array - { - $absoluteBootstrapFilePaths = []; - foreach ($extensionConfigFiles as $extensionConfigFile) { - if (!\array_key_exists($extensionConfigFile, $this->configCache)) { - $extensionConfigContents = Neon::decodeFile($extensionConfigFile); - $this->configCache[$extensionConfigFile] = $extensionConfigContents; - } else { - $extensionConfigContents = $this->configCache[$extensionConfigFile]; - } - $configDirectory = \dirname($extensionConfigFile); - $bootstrapFiles = $extensionConfigContents['parameters']['bootstrapFiles'] ?? []; - foreach ($bootstrapFiles as $bootstrapFile) { - $absoluteBootstrapFilePath = \realpath($configDirectory . '/' . $bootstrapFile); - if (!\is_string($absoluteBootstrapFilePath)) { - continue; - } - $absoluteBootstrapFilePaths[] = $absoluteBootstrapFilePath; - } - } - return $absoluteBootstrapFilePaths; - } - /** - * PHPStan container mimics: - * https://github.com/phpstan/phpstan-src/blob/34881e682e36e30917dcfa8dc69c70e857143436/src/Command/CommandHelper.php#L513-L515 - */ - private function tryRequireFile(string $bootstrapFile, ?Container $container = null) : void - { - try { - (static function (string $bootstrapFile) use($container) : void { - require_once $bootstrapFile; - })($bootstrapFile); - } catch (Throwable $throwable) { - $errorMessage = \sprintf('"%s" thrown in "%s" on line %d while loading bootstrap file %s: %s', \get_class($throwable), $throwable->getFile(), $throwable->getLine(), $bootstrapFile, $throwable->getMessage()); - throw new ShouldNotHappenException($errorMessage, $throwable->getCode(), $throwable); - } - } private function requireRectorStubs() : void { $stubsRectorDirectory = \realpath(__DIR__ . '/../../stubs-rector'); diff --git a/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php b/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php index 7dc6549df..0d3e10dbf 100644 --- a/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php +++ b/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php @@ -4,8 +4,8 @@ namespace Rector\Core\Bootstrap; use Rector\Core\ValueObject\Bootstrap\BootstrapConfigs; -use RectorPrefix202308\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202309\Webmozart\Assert\Assert; final class RectorConfigsResolver { public function provide() : BootstrapConfigs diff --git a/vendor/rector/rector/src/Config/Loader/ConfigureCallMergingLoaderFactory.php b/vendor/rector/rector/src/Config/Loader/ConfigureCallMergingLoaderFactory.php deleted file mode 100644 index a0efe5230..000000000 --- a/vendor/rector/rector/src/Config/Loader/ConfigureCallMergingLoaderFactory.php +++ /dev/null @@ -1,31 +0,0 @@ -configureCallValuesCollector = $configureCallValuesCollector; - } - public function create(ContainerBuilder $containerBuilder, string $currentWorkingDirectory) : LoaderInterface - { - $fileLocator = new FileLocator([$currentWorkingDirectory]); - $loaderResolver = new LoaderResolver([new GlobFileLoader($fileLocator), new ConfigurableCallValuesCollectingPhpFileLoader($containerBuilder, $fileLocator, $this->configureCallValuesCollector)]); - return new DelegatingLoader($loaderResolver); - } -} diff --git a/vendor/rector/rector/src/Configuration/ConfigInitializer.php b/vendor/rector/rector/src/Configuration/ConfigInitializer.php index 74cf64a13..9bb7fe665 100644 --- a/vendor/rector/rector/src/Configuration/ConfigInitializer.php +++ b/vendor/rector/rector/src/Configuration/ConfigInitializer.php @@ -3,16 +3,20 @@ declare (strict_types=1); namespace Rector\Core\Configuration; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\FileSystem\InitFilePathsResolver; use Rector\Core\Php\PhpVersionProvider; use Rector\PostRector\Contract\Rector\PostRectorInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class ConfigInitializer { + /** + * @var RectorInterface[] + * @readonly + */ + private $rectors; /** * @readonly * @var \Rector\Core\FileSystem\InitFilePathsResolver @@ -29,18 +33,14 @@ final class ConfigInitializer */ private $phpVersionProvider; /** - * @var RectorInterface[] - */ - private $rectors = []; - /** - * @param RewindableGenerator|RectorInterface[] $rectors + * @param RectorInterface[] $rectors */ - public function __construct(iterable $rectors, InitFilePathsResolver $initFilePathsResolver, SymfonyStyle $symfonyStyle, PhpVersionProvider $phpVersionProvider) + public function __construct(array $rectors, InitFilePathsResolver $initFilePathsResolver, SymfonyStyle $symfonyStyle, PhpVersionProvider $phpVersionProvider) { + $this->rectors = $rectors; $this->initFilePathsResolver = $initFilePathsResolver; $this->symfonyStyle = $symfonyStyle; $this->phpVersionProvider = $phpVersionProvider; - $this->rectors = $rectors instanceof RewindableGenerator ? \iterator_to_array($rectors->getIterator()) : $rectors; } public function createConfig(string $projectDirectory) : void { diff --git a/vendor/rector/rector/src/Configuration/ConfigurationFactory.php b/vendor/rector/rector/src/Configuration/ConfigurationFactory.php index 333fdaa34..d943028f0 100644 --- a/vendor/rector/rector/src/Configuration/ConfigurationFactory.php +++ b/vendor/rector/rector/src/Configuration/ConfigurationFactory.php @@ -6,8 +6,8 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\ValueObject\Configuration; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class ConfigurationFactory { /** diff --git a/vendor/rector/rector/src/Configuration/Option.php b/vendor/rector/rector/src/Configuration/Option.php index fee858ffa..ac8c55e03 100644 --- a/vendor/rector/rector/src/Configuration/Option.php +++ b/vendor/rector/rector/src/Configuration/Option.php @@ -124,7 +124,7 @@ final class Option * @internal Use @see \Rector\Config\RectorConfig::phpstanConfig() instead * @var string */ - public const PHPSTAN_FOR_RECTOR_PATH = 'phpstan_for_rector_path'; + public const PHPSTAN_FOR_RECTOR_PATHS = 'phpstan_for_rector_paths'; /** * @var string */ @@ -180,4 +180,14 @@ final class Option * @var string */ public const CONTAINER_CACHE_DIRECTORY = 'container-cache-directory'; + /** + * @internal For cache invalidation in case of change + * @var string + */ + public const REGISTERED_RECTOR_RULES = 'registered_rector_rules'; + /** + * @internal For cache invalidation in case of change + * @var string + */ + public const REGISTERED_RECTOR_SETS = 'registered_rector_sets'; } diff --git a/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php b/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php index 4611c9066..12d0c14bf 100644 --- a/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php +++ b/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php @@ -4,8 +4,8 @@ namespace Rector\Core\Configuration\Parameter; use Rector\Core\Configuration\Option; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use RectorPrefix202308\Webmozart\Assert\Assert; +use Rector\Core\Exception\ShouldNotHappenException; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @api */ @@ -44,7 +44,7 @@ public static function provideArrayParameter(string $name) : array { $parameter = self::$parameters[$name] ?? []; Assert::isArray($parameter); - $arrayIsList = function (array $array) : bool { + $arrayIsListFunction = function (array $array) : bool { if (\function_exists('array_is_list')) { return \array_is_list($array); } @@ -60,7 +60,7 @@ public static function provideArrayParameter(string $name) : array } return \true; }; - if ($arrayIsList($parameter)) { + if ($arrayIsListFunction($parameter)) { // remove duplicates $uniqueParameters = \array_unique($parameter); return \array_values($uniqueParameters); @@ -115,6 +115,6 @@ private static function ensureParameterIsSet(string $name) : void if (\array_key_exists($name, self::$parameters)) { return; } - throw new ParameterNotFoundException($name); + throw new ShouldNotHappenException(\sprintf('Parameter "%s" was not found', $name)); } } diff --git a/vendor/rector/rector/src/Configuration/RenamedClassesDataCollector.php b/vendor/rector/rector/src/Configuration/RenamedClassesDataCollector.php index 597f2a53e..683be379e 100644 --- a/vendor/rector/rector/src/Configuration/RenamedClassesDataCollector.php +++ b/vendor/rector/rector/src/Configuration/RenamedClassesDataCollector.php @@ -4,12 +4,20 @@ namespace Rector\Core\Configuration; use PHPStan\Type\ObjectType; -final class RenamedClassesDataCollector +use Rector\Core\Contract\DependencyInjection\ResetableInterface; +final class RenamedClassesDataCollector implements ResetableInterface { /** * @var array */ private $oldToNewClasses = []; + /** + * @api for fast tests with single container + */ + public function reset() : void + { + $this->oldToNewClasses = []; + } public function hasOldClass(string $oldClass) : bool { return isset($this->oldToNewClasses[$oldClass]); diff --git a/vendor/rector/rector/src/Configuration/ValueObjectInliner.php b/vendor/rector/rector/src/Configuration/ValueObjectInliner.php deleted file mode 100644 index 6e4f4c829..000000000 --- a/vendor/rector/rector/src/Configuration/ValueObjectInliner.php +++ /dev/null @@ -1,83 +0,0 @@ - $reflectionClass - * @return mixed[] - */ - private static function resolveArgumentValues(ReflectionClass $reflectionClass, object $object) : array - { - $argumentValues = []; - $constructorReflectionMethod = $reflectionClass->getConstructor(); - if (!$constructorReflectionMethod instanceof ReflectionMethod) { - // value object without constructor - return []; - } - foreach ($constructorReflectionMethod->getParameters() as $reflectionParameter) { - $parameterName = $reflectionParameter->getName(); - $propertyReflection = $reflectionClass->getProperty($parameterName); - $propertyReflection->setAccessible(\true); - $resolvedValue = $propertyReflection->getValue($object); - $resolvedValue = self::inlineNestedArrayObjects($resolvedValue); - $argumentValues[] = \is_object($resolvedValue) ? self::inlineSingle($resolvedValue) : $resolvedValue; - } - return $argumentValues; - } - /** - * @param object[] $objects - * @return InlineServiceConfigurator[] - */ - private static function inlineMany(array $objects) : array - { - $inlineServices = []; - foreach ($objects as $object) { - $inlineServices[] = self::inlineSingle($object); - } - return $inlineServices; - } - private static function inlineSingle(object $object) : InlineServiceConfigurator - { - $reflectionClass = new ReflectionClass($object); - $className = $reflectionClass->getName(); - $argumentValues = self::resolveArgumentValues($reflectionClass, $object); - $inlineServiceConfigurator = new InlineServiceConfigurator(new Definition($className)); - if ($argumentValues !== []) { - $inlineServiceConfigurator->args($argumentValues); - } - return $inlineServiceConfigurator; - } - /** - * @param mixed|mixed[] $resolvedValue - * @return mixed|mixed[] - */ - private static function inlineNestedArrayObjects($resolvedValue) - { - if (\is_array($resolvedValue)) { - foreach ($resolvedValue as $key => $value) { - if (\is_object($value)) { - $resolvedValue[$key] = self::inline($value); - } - } - } - return $resolvedValue; - } -} diff --git a/vendor/rector/rector/src/Console/Command/ListRulesCommand.php b/vendor/rector/rector/src/Console/Command/ListRulesCommand.php index 506bc4e5c..e22d39183 100644 --- a/vendor/rector/rector/src/Console/Command/ListRulesCommand.php +++ b/vendor/rector/rector/src/Console/Command/ListRulesCommand.php @@ -3,18 +3,17 @@ declare (strict_types=1); namespace Rector\Core\Console\Command; -use RectorPrefix202308\Nette\Utils\Json; +use RectorPrefix202309\Nette\Utils\Json; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Configuration\Option; use Rector\Core\Contract\Rector\RectorInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class ListRulesCommand extends Command { /** @@ -29,20 +28,18 @@ final class ListRulesCommand extends Command private $skippedClassResolver; /** * @var RectorInterface[] + * @readonly */ - private $rectors = []; + private $rectors; /** - * @param RewindableGenerator|RectorInterface[] $rectors + * @param RectorInterface[] $rectors */ - public function __construct(SymfonyStyle $symfonyStyle, SkippedClassResolver $skippedClassResolver, iterable $rectors) + public function __construct(SymfonyStyle $symfonyStyle, SkippedClassResolver $skippedClassResolver, array $rectors) { $this->symfonyStyle = $symfonyStyle; $this->skippedClassResolver = $skippedClassResolver; - parent::__construct(); - if ($rectors instanceof RewindableGenerator) { - $rectors = \iterator_to_array($rectors->getIterator()); - } $this->rectors = $rectors; + parent::__construct(); } protected function configure() : void { @@ -66,6 +63,8 @@ protected function execute(InputInterface $input, OutputInterface $output) : int $this->symfonyStyle->title('Skipped Rector rules'); $this->symfonyStyle->listing($skippedClasses); } + $this->symfonyStyle->newLine(); + $this->symfonyStyle->note(\sprintf('Loaded %d rules', \count($rectorClasses))); return Command::SUCCESS; } /** @@ -80,7 +79,7 @@ private function resolveRectorClasses() : array return \get_class($rector); }, $customRectors); \sort($rectorClasses); - return $rectorClasses; + return \array_unique($rectorClasses); } /** * @return string[] diff --git a/vendor/rector/rector/src/Console/Command/ProcessCommand.php b/vendor/rector/rector/src/Console/Command/ProcessCommand.php index fb5732b1f..b55c58998 100644 --- a/vendor/rector/rector/src/Console/Command/ProcessCommand.php +++ b/vendor/rector/rector/src/Console/Command/ProcessCommand.php @@ -19,11 +19,11 @@ use Rector\Core\ValueObject\Configuration; use Rector\Core\ValueObject\ProcessResult; use Rector\Core\ValueObjectFactory\ProcessResultFactory; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class ProcessCommand extends Command { /** diff --git a/vendor/rector/rector/src/Console/Command/SetupCICommand.php b/vendor/rector/rector/src/Console/Command/SetupCICommand.php index e5e52f3d1..b82f6a2ba 100644 --- a/vendor/rector/rector/src/Console/Command/SetupCICommand.php +++ b/vendor/rector/rector/src/Console/Command/SetupCICommand.php @@ -3,14 +3,14 @@ declare (strict_types=1); namespace Rector\Core\Console\Command; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Strings; -use RectorPrefix202308\OndraM\CiDetector\CiDetector; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Strings; +use RectorPrefix202309\OndraM\CiDetector\CiDetector; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Process\Process; use function sprintf; final class SetupCICommand extends Command { diff --git a/vendor/rector/rector/src/Console/Command/WorkerCommand.php b/vendor/rector/rector/src/Console/Command/WorkerCommand.php index e25698830..5550be72e 100644 --- a/vendor/rector/rector/src/Console/Command/WorkerCommand.php +++ b/vendor/rector/rector/src/Console/Command/WorkerCommand.php @@ -3,20 +3,20 @@ declare (strict_types=1); namespace Rector\Core\Console\Command; -use RectorPrefix202308\Clue\React\NDJson\Decoder; -use RectorPrefix202308\Clue\React\NDJson\Encoder; -use RectorPrefix202308\React\EventLoop\StreamSelectLoop; -use RectorPrefix202308\React\Socket\ConnectionInterface; -use RectorPrefix202308\React\Socket\TcpConnector; +use RectorPrefix202309\Clue\React\NDJson\Decoder; +use RectorPrefix202309\Clue\React\NDJson\Encoder; +use RectorPrefix202309\React\EventLoop\StreamSelectLoop; +use RectorPrefix202309\React\Socket\ConnectionInterface; +use RectorPrefix202309\React\Socket\TcpConnector; use Rector\Core\Configuration\ConfigurationFactory; use Rector\Core\Console\ProcessConfigureDecorator; use Rector\Core\Util\MemoryLimiter; use Rector\Parallel\WorkerRunner; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202308\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202309\Symplify\EasyParallel\Enum\ReactCommand; /** * Inspired at: https://github.com/phpstan/phpstan-src/commit/9124c66dcc55a222e21b1717ba5f60771f7dda92 * https://github.com/phpstan/phpstan-src/blob/c471c7b050e0929daf432288770de673b394a983/src/Command/WorkerCommand.php diff --git a/vendor/rector/rector/src/Console/ConsoleApplication.php b/vendor/rector/rector/src/Console/ConsoleApplication.php index 3e5cf998c..678960463 100644 --- a/vendor/rector/rector/src/Console/ConsoleApplication.php +++ b/vendor/rector/rector/src/Console/ConsoleApplication.php @@ -3,19 +3,18 @@ declare (strict_types=1); namespace Rector\Core\Console; -use RectorPrefix202308\Composer\XdebugHandler\XdebugHandler; +use RectorPrefix202309\Composer\XdebugHandler\XdebugHandler; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Application\VersionResolver; use Rector\Core\Configuration\Option; use Rector\Core\Util\Reflection\PrivatesAccessor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Webmozart\Assert\Assert; final class ConsoleApplication extends Application { /** @@ -23,14 +22,11 @@ final class ConsoleApplication extends Application */ private const NAME = 'Rector'; /** - * @param RewindableGenerator|Command[] $commands + * @param Command[] $commands */ - public function __construct(iterable $commands) + public function __construct(array $commands) { parent::__construct(self::NAME, VersionResolver::PACKAGE_VERSION); - if ($commands instanceof RewindableGenerator) { - $commands = \iterator_to_array($commands->getIterator()); - } Assert::notEmpty($commands); Assert::allIsInstanceOf($commands, Command::class); $this->addCommands($commands); diff --git a/vendor/rector/rector/src/Console/ExitCode.php b/vendor/rector/rector/src/Console/ExitCode.php index 5bf0965b2..d31b8e566 100644 --- a/vendor/rector/rector/src/Console/ExitCode.php +++ b/vendor/rector/rector/src/Console/ExitCode.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\Console; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; /** * @api */ diff --git a/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php b/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php index 60374a032..2452e65dc 100644 --- a/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php +++ b/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\Console\Formatter; -use RectorPrefix202308\Nette\Utils\Strings; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Nette\Utils\Strings; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; /** * Inspired by @see https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/src/Differ/DiffConsoleFormatter.php to be * used as standalone class, without need to require whole package by Dariusz Rumiński diff --git a/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php b/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php index dce6628fa..161a92419 100644 --- a/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php +++ b/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php @@ -4,7 +4,7 @@ namespace Rector\Core\Console\Formatter; use Rector\Core\Util\Reflection\PrivatesAccessor; -use RectorPrefix202308\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use RectorPrefix202309\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; /** * @api * Creates @see UnifiedDiffOutputBuilder with "$contextLines = 1000;" diff --git a/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php b/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php index 129106191..e65876f87 100644 --- a/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php +++ b/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\Console\Formatter; -use RectorPrefix202308\SebastianBergmann\Diff\Differ; -use RectorPrefix202308\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use RectorPrefix202309\SebastianBergmann\Diff\Differ; +use RectorPrefix202309\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; final class ConsoleDiffer { /** diff --git a/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php b/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php index 0f16f4982..51cf2ccf2 100644 --- a/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php +++ b/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php @@ -5,9 +5,9 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Configuration\Option; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; final class ProcessConfigureDecorator { public static function decorate(Command $command) : void diff --git a/vendor/rector/rector/src/Console/Style/RectorStyle.php b/vendor/rector/rector/src/Console/Style/RectorStyle.php index 9b55e7311..b99c515af 100644 --- a/vendor/rector/rector/src/Console/Style/RectorStyle.php +++ b/vendor/rector/rector/src/Console/Style/RectorStyle.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Core\Console\Style; -use RectorPrefix202308\OndraM\CiDetector\CiDetector; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\OndraM\CiDetector\CiDetector; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class RectorStyle extends SymfonyStyle { /** diff --git a/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php b/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php index 1c4be4700..4398e8975 100644 --- a/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php +++ b/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php @@ -4,11 +4,11 @@ namespace Rector\Core\Console\Style; use Rector\Core\Util\Reflection\PrivatesAccessor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class SymfonyStyleFactory { /** diff --git a/vendor/rector/rector/src/Contract/DependencyInjection/ResetableInterface.php b/vendor/rector/rector/src/Contract/DependencyInjection/ResetableInterface.php new file mode 100644 index 000000000..9aa6355ef --- /dev/null +++ b/vendor/rector/rector/src/Contract/DependencyInjection/ResetableInterface.php @@ -0,0 +1,9 @@ +> - */ - public function getNodeTypes() : array; - /** - * Process Node of matched type - * @return Node|Node[]|null|NodeTraverser::* - */ - public function refactor(Node $node); -} diff --git a/vendor/rector/rector/src/Contract/Rector/RectorInterface.php b/vendor/rector/rector/src/Contract/Rector/RectorInterface.php index 55e12e76f..02f11459d 100644 --- a/vendor/rector/rector/src/Contract/Rector/RectorInterface.php +++ b/vendor/rector/rector/src/Contract/Rector/RectorInterface.php @@ -3,7 +3,22 @@ declare (strict_types=1); namespace Rector\Core\Contract\Rector; +use PhpParser\Node; +use PhpParser\NodeTraverser; +use PhpParser\NodeVisitor; use Symplify\RuleDocGenerator\Contract\DocumentedRuleInterface; -interface RectorInterface extends DocumentedRuleInterface +interface RectorInterface extends NodeVisitor, DocumentedRuleInterface { + /** + * List of nodes this class checks, classes that implements \PhpParser\Node + * See beautiful map of all nodes https://github.com/rectorphp/php-parser-nodes-docs#node-overview + * + * @return array> + */ + public function getNodeTypes() : array; + /** + * Process Node of matched type + * @return Node|Node[]|null|NodeTraverser::* + */ + public function refactor(Node $node); } diff --git a/vendor/rector/rector/src/Contract/Rector/ScopeAwarePhpRectorInterface.php b/vendor/rector/rector/src/Contract/Rector/ScopeAwareRectorInterface.php similarity index 78% rename from vendor/rector/rector/src/Contract/Rector/ScopeAwarePhpRectorInterface.php rename to vendor/rector/rector/src/Contract/Rector/ScopeAwareRectorInterface.php index 6ec6aa148..6766fab89 100644 --- a/vendor/rector/rector/src/Contract/Rector/ScopeAwarePhpRectorInterface.php +++ b/vendor/rector/rector/src/Contract/Rector/ScopeAwareRectorInterface.php @@ -6,7 +6,7 @@ use PhpParser\Node; use PhpParser\NodeTraverser; use PHPStan\Analyser\Scope; -interface ScopeAwarePhpRectorInterface extends \Rector\Core\Contract\Rector\PhpRectorInterface +interface ScopeAwareRectorInterface extends \Rector\Core\Contract\Rector\RectorInterface { /** * Process Node of matched type with its PHPStan scope diff --git a/vendor/rector/rector/src/DependencyInjection/Collector/ConfigureCallValuesCollector.php b/vendor/rector/rector/src/DependencyInjection/Collector/ConfigureCallValuesCollector.php deleted file mode 100644 index 3f35c3eb1..000000000 --- a/vendor/rector/rector/src/DependencyInjection/Collector/ConfigureCallValuesCollector.php +++ /dev/null @@ -1,58 +0,0 @@ - - */ - private $configureCallValuesByRectorClass = []; - /** - * @readonly - * @var \Rector\Core\Util\ArrayParametersMerger - */ - private $arrayParametersMerger; - public function __construct() - { - $this->arrayParametersMerger = new ArrayParametersMerger(); - } - /** - * @return mixed[] - */ - public function getConfigureCallValues(string $rectorClass) : array - { - return $this->configureCallValuesByRectorClass[$rectorClass] ?? []; - } - /** - * @param class-string $className - */ - public function collectFromServiceAndClassName(string $className, Definition $definition) : void - { - foreach ($definition->getMethodCalls() as $methodCall) { - if ($methodCall[0] !== 'configure') { - continue; - } - $this->addConfigureCallValues($className, $methodCall[1]); - } - } - /** - * @param class-string $rectorClass - * @param mixed[] $configureValues - */ - private function addConfigureCallValues(string $rectorClass, array $configureValues) : void - { - foreach ($configureValues as $configureValue) { - if (!isset($this->configureCallValuesByRectorClass[$rectorClass])) { - $this->configureCallValuesByRectorClass[$rectorClass] = $configureValue; - } else { - $mergedParameters = $this->arrayParametersMerger->merge($this->configureCallValuesByRectorClass[$rectorClass], $configureValue); - $this->configureCallValuesByRectorClass[$rectorClass] = $mergedParameters; - } - } - } -} diff --git a/vendor/rector/rector/src/DependencyInjection/CompilerPass/MergeImportedRectorConfigureCallValuesCompilerPass.php b/vendor/rector/rector/src/DependencyInjection/CompilerPass/MergeImportedRectorConfigureCallValuesCompilerPass.php deleted file mode 100644 index e2254b582..000000000 --- a/vendor/rector/rector/src/DependencyInjection/CompilerPass/MergeImportedRectorConfigureCallValuesCompilerPass.php +++ /dev/null @@ -1,40 +0,0 @@ -configureCallValuesCollector = $configureCallValuesCollector; - } - public function process(ContainerBuilder $containerBuilder) : void - { - foreach ($containerBuilder->getDefinitions() as $id => $definition) { - $this->completeCollectedArguments($id, $definition); - } - } - private function completeCollectedArguments(string $serviceClass, Definition $definition) : void - { - $configureCallValues = $this->configureCallValuesCollector->getConfigureCallValues($serviceClass); - if ($configureCallValues === []) { - return; - } - $definition->removeMethodCall(self::CONFIGURE_METHOD_NAME); - $definition->addMethodCall(self::CONFIGURE_METHOD_NAME, [$configureCallValues]); - } -} diff --git a/vendor/rector/rector/src/DependencyInjection/CompilerPass/RemoveSkippedRectorsCompilerPass.php b/vendor/rector/rector/src/DependencyInjection/CompilerPass/RemoveSkippedRectorsCompilerPass.php deleted file mode 100644 index 719a4410f..000000000 --- a/vendor/rector/rector/src/DependencyInjection/CompilerPass/RemoveSkippedRectorsCompilerPass.php +++ /dev/null @@ -1,50 +0,0 @@ -resolveSkippedRectorClasses(); - foreach ($containerBuilder->getDefinitions() as $id => $definition) { - if ($definition->getClass() === null) { - continue; - } - if (!\in_array($definition->getClass(), $skippedRectorClasses, \true)) { - continue; - } - $containerBuilder->removeDefinition($id); - } - } - /** - * @return string[] - */ - private function resolveSkippedRectorClasses() : array - { - $skipParameters = SimpleParameterProvider::provideArrayParameter(Option::SKIP); - return \array_filter($skipParameters, function ($element) : bool { - return $this->isRectorClass($element); - }); - } - /** - * @param mixed $element - */ - private function isRectorClass($element) : bool - { - if (!\is_string($element)) { - return \false; - } - return \is_a($element, RectorInterface::class, \true); - } -} diff --git a/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php b/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php new file mode 100644 index 000000000..bdf57e4dc --- /dev/null +++ b/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php @@ -0,0 +1,30 @@ +offsetUnset($typeToForget); + // 2. remove all tagged rules + $privatesAccessor = new PrivatesAccessor(); + $privatesAccessor->propertyClosure($container, 'tags', static function (array $tags) use($typeToForget) : array { + foreach ($tags as $tagName => $taggedClasses) { + foreach ($taggedClasses as $key => $taggedClass) { + if (\is_a($taggedClass, $typeToForget, \true)) { + unset($tags[$tagName][$key]); + } + } + } + return $tags; + }); + } +} diff --git a/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php b/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php index e5e3a9e27..69bd9c3a9 100644 --- a/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php +++ b/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php @@ -3,16 +3,18 @@ declare (strict_types=1); namespace Rector\Core\DependencyInjection; -use RectorPrefix202308\Doctrine\Inflector\Inflector; -use RectorPrefix202308\Doctrine\Inflector\Rules\English\InflectorFactory; -use RectorPrefix202308\Illuminate\Container\Container; +use RectorPrefix202309\Doctrine\Inflector\Inflector; +use RectorPrefix202309\Doctrine\Inflector\Rules\English\InflectorFactory; +use RectorPrefix202309\Illuminate\Container\Container; use PhpParser\Lexer; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; -use PHPStan\Dependency\DependencyResolver; use PHPStan\File\FileHelper; use PHPStan\Parser\Parser; use PHPStan\PhpDoc\TypeNodeResolver; +use PHPStan\PhpDocParser\Parser\ConstExprParser; +use PHPStan\PhpDocParser\Parser\TypeParser; +use PHPStan\Reflection\BetterReflection\SourceLocator\CachingVisitor; use PHPStan\Reflection\ReflectionProvider; use Rector\BetterPhpDocParser\Contract\BasePhpDocNodeVisitorInterface; use Rector\BetterPhpDocParser\Contract\PhpDocParser\PhpDocNodeDecoratorInterface; @@ -24,6 +26,7 @@ use Rector\BetterPhpDocParser\PhpDocNodeVisitor\TemplatePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocNodeVisitor\UnionTypeNodePhpDocNodeVisitor; use Rector\BetterPhpDocParser\PhpDocParser\BetterPhpDocParser; +use Rector\BetterPhpDocParser\PhpDocParser\BetterTypeParser; use Rector\BetterPhpDocParser\PhpDocParser\ConstExprClassNameDecorator; use Rector\BetterPhpDocParser\PhpDocParser\DoctrineAnnotationDecorator; use Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser; @@ -40,12 +43,12 @@ use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\FullyQualifiedNameClassNameImportSkipVoter; use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter\UsesClassNameImportSkipVoter; use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; -use Rector\Config\LazyRectorConfig; -use Rector\Core\Application\ApplicationFileProcessor; +use Rector\Config\RectorConfig; use Rector\Core\Application\ChangedNodeScopeRefresher; use Rector\Core\Application\FileProcessor\PhpFileProcessor; use Rector\Core\Configuration\ConfigInitializer; use Rector\Core\Configuration\CurrentNodeProvider; +use Rector\Core\Configuration\RenamedClassesDataCollector; use Rector\Core\Console\Command\ListRulesCommand; use Rector\Core\Console\Command\ProcessCommand; use Rector\Core\Console\Command\SetupCICommand; @@ -54,14 +57,12 @@ use Rector\Core\Console\Output\OutputFormatterCollector; use Rector\Core\Console\Style\RectorStyle; use Rector\Core\Console\Style\SymfonyStyleFactory; -use Rector\Core\Contract\Processor\FileProcessorInterface; -use Rector\Core\Contract\Rector\NonPhpRectorInterface; -use Rector\Core\Contract\Rector\PhpRectorInterface; +use Rector\Core\Contract\DependencyInjection\ResetableInterface; use Rector\Core\Contract\Rector\RectorInterface; +use Rector\Core\DependencyInjection\Laravel\ContainerMemento; use Rector\Core\Logging\CurrentRectorProvider; use Rector\Core\Logging\RectorOutput; use Rector\Core\NodeDecorator\CreatedByRuleDecorator; -use Rector\Core\NonPhpFile\NonPhpFileProcessor; use Rector\Core\PhpParser\Comparing\NodeComparator; use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Core\PhpParser\Node\NodeFactory; @@ -70,13 +71,11 @@ use Rector\Core\Provider\CurrentFileProvider; use Rector\Core\Rector\AbstractRector; use Rector\Core\Util\Reflection\PrivatesAccessor; -use Rector\Core\ValueObjectFactory\Application\FileFactory; use Rector\NodeNameResolver\Contract\NodeNameResolverInterface; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeNameResolver\NodeNameResolver\ClassConstFetchNameResolver; use Rector\NodeNameResolver\NodeNameResolver\ClassConstNameResolver; use Rector\NodeNameResolver\NodeNameResolver\ClassNameResolver; -use Rector\NodeNameResolver\NodeNameResolver\EmptyNameResolver; use Rector\NodeNameResolver\NodeNameResolver\FuncCallNameResolver; use Rector\NodeNameResolver\NodeNameResolver\FunctionNameResolver; use Rector\NodeNameResolver\NodeNameResolver\NameNameResolver; @@ -159,6 +158,10 @@ use Rector\PHPStanStaticTypeMapper\TypeMapper\ThisTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\TypeWithClassNameTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeMapper\VoidTypeMapper; +use Rector\PostRector\Application\PostFileProcessor; +use Rector\RectorGenerator\Command\GenerateCommand; +use Rector\RectorGenerator\Command\InitRecipeCommand; +use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; use Rector\Skipper\Skipper\Skipper; use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; use Rector\StaticTypeMapper\Contract\PhpParser\PhpParserNodeMapperInterface; @@ -180,16 +183,16 @@ use Rector\StaticTypeMapper\StaticTypeMapper; use Rector\Utils\Command\MissingInSetCommand; use Rector\Utils\Command\OutsideAnySetCommand; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Webmozart\Assert\Assert; final class LazyContainerFactory { /** * @var array> */ - private const NODE_NAME_RESOLVER_CLASSES = [ClassConstFetchNameResolver::class, ClassConstNameResolver::class, ClassNameResolver::class, EmptyNameResolver::class, FuncCallNameResolver::class, FunctionNameResolver::class, NameNameResolver::class, ParamNameResolver::class, PropertyNameResolver::class, UseNameResolver::class, VariableNameResolver::class]; + private const NODE_NAME_RESOLVER_CLASSES = [ClassConstFetchNameResolver::class, ClassConstNameResolver::class, ClassNameResolver::class, FuncCallNameResolver::class, FunctionNameResolver::class, NameNameResolver::class, ParamNameResolver::class, PropertyNameResolver::class, UseNameResolver::class, VariableNameResolver::class]; /** * @var array> */ @@ -221,7 +224,7 @@ final class LazyContainerFactory /** * @var array */ - private const PUBLIC_PHPSTAN_SERVICE_TYPES = [DependencyResolver::class, ScopeFactory::class, TypeNodeResolver::class, FileHelper::class, NodeScopeResolver::class, ReflectionProvider::class]; + private const PUBLIC_PHPSTAN_SERVICE_TYPES = [ScopeFactory::class, TypeNodeResolver::class, FileHelper::class, NodeScopeResolver::class, ReflectionProvider::class, CachingVisitor::class]; /** * @var array> */ @@ -235,32 +238,30 @@ final class LazyContainerFactory */ private const PHP_PARSER_NODE_MAPPER_CLASSES = [ExprNodeMapper::class, FullyQualifiedNodeMapper::class, IdentifierNodeMapper::class, IntersectionTypeNodeMapper::class, NameNodeMapper::class, NullableTypeNodeMapper::class, StringNodeMapper::class, UnionTypeNodeMapper::class]; /** - * @api used as next container factory + * @api used as next rectorConfig factory */ - public function create() : LazyRectorConfig + public function create() : RectorConfig { - $lazyRectorConfig = new LazyRectorConfig(); + $rectorConfig = new RectorConfig(); // setup base parameters - from RectorConfig // make use of https://github.com/symplify/easy-parallel - // $lazyRectorConfig->import(EasyParallelConfig::FILE_PATH); - $lazyRectorConfig->paths([]); - $lazyRectorConfig->skip([]); - $lazyRectorConfig->autoloadPaths([]); - $lazyRectorConfig->bootstrapFiles([]); - $lazyRectorConfig->parallel(120, 16, 20); + // $rectorConfig->import(EasyParallelConfig::FILE_PATH); + $rectorConfig->paths([]); + $rectorConfig->skip([]); + $rectorConfig->autoloadPaths([]); + $rectorConfig->bootstrapFiles([]); + $rectorConfig->parallel(120, 16, 20); // to avoid autoimporting out of the box - $lazyRectorConfig->importNames(\false, \false); - $lazyRectorConfig->removeUnusedImports(\false); - $lazyRectorConfig->importShortClasses(); - $lazyRectorConfig->indent(' ', 4); - $lazyRectorConfig->fileExtensions(['php']); - $lazyRectorConfig->cacheDirectory(\sys_get_temp_dir() . '/rector_cached_files'); - $lazyRectorConfig->containerCacheDirectory(\sys_get_temp_dir()); + $rectorConfig->importNames(\false, \false); + $rectorConfig->removeUnusedImports(\false); + $rectorConfig->importShortClasses(); + $rectorConfig->indent(' ', 4); + $rectorConfig->fileExtensions(['php']); + $rectorConfig->cacheDirectory(\sys_get_temp_dir() . '/rector_cached_files'); + $rectorConfig->containerCacheDirectory(\sys_get_temp_dir()); // make use of https://github.com/symplify/easy-parallel - // $lazyRectorConfig->import(EasyParallelConfig::FILE_PATH); - $lazyRectorConfig->singleton(Application::class, static function () : Application { + $rectorConfig->singleton(Application::class, static function () : Application { $application = new Application(); - // @todo inject commands $privatesAccessor = new PrivatesAccessor(); $privatesAccessor->propertyClosure($application, 'commands', static function (array $commands) : array { unset($commands['completion']); @@ -269,111 +270,140 @@ public function create() : LazyRectorConfig }); return $application; }); - $lazyRectorConfig->singleton(Inflector::class, static function () : Inflector { + $rectorConfig->singleton(ConsoleApplication::class, ConsoleApplication::class); + $rectorConfig->when(ConsoleApplication::class)->needs('$commands')->giveTagged(Command::class); + $rectorConfig->singleton(Inflector::class, static function () : Inflector { $inflectorFactory = new InflectorFactory(); return $inflectorFactory->build(); }); - $lazyRectorConfig->singleton(ConsoleApplication::class, ConsoleApplication::class); - $lazyRectorConfig->when(ConsoleApplication::class)->needs('$commands')->giveTagged(Command::class); - $lazyRectorConfig->tag(PhpFileProcessor::class, FileProcessorInterface::class); - $lazyRectorConfig->tag(NonPhpFileProcessor::class, FileProcessorInterface::class); - $lazyRectorConfig->tag(ProcessCommand::class, Command::class); - $lazyRectorConfig->tag(WorkerCommand::class, Command::class); - $lazyRectorConfig->tag(SetupCICommand::class, Command::class); - $lazyRectorConfig->tag(ListRulesCommand::class, Command::class); - $lazyRectorConfig->when(ListRulesCommand::class)->needs('$rectors')->giveTagged(RectorInterface::class); + $rectorConfig->tag(ProcessCommand::class, Command::class); + $rectorConfig->tag(WorkerCommand::class, Command::class); + $rectorConfig->tag(SetupCICommand::class, Command::class); + $rectorConfig->tag(ListRulesCommand::class, Command::class); + $rectorConfig->when(ListRulesCommand::class)->needs('$rectors')->giveTagged(RectorInterface::class); // dev - $lazyRectorConfig->tag(MissingInSetCommand::class, Command::class); - $lazyRectorConfig->tag(OutsideAnySetCommand::class, Command::class); - $lazyRectorConfig->when(NonPhpFileProcessor::class)->needs('$nonPhpRectors')->giveTagged(NonPhpRectorInterface::class); - $lazyRectorConfig->when(ApplicationFileProcessor::class)->needs('$fileProcessors')->giveTagged(FileProcessorInterface::class); - $lazyRectorConfig->when(FileFactory::class)->needs('$fileProcessors')->giveTagged(FileProcessorInterface::class); - $lazyRectorConfig->when(RectorNodeTraverser::class)->needs('$phpRectors')->giveTagged(PhpRectorInterface::class); - $lazyRectorConfig->when(ConfigInitializer::class)->needs('$rectors')->giveTagged(RectorInterface::class); - $lazyRectorConfig->when(ClassNameImportSkipper::class)->needs('$classNameImportSkipVoters')->giveTagged(ClassNameImportSkipVoterInterface::class); - $lazyRectorConfig->singleton(DynamicSourceLocatorProvider::class, static function (Container $container) : DynamicSourceLocatorProvider { + if (\class_exists(MissingInSetCommand::class)) { + $rectorConfig->tag(MissingInSetCommand::class, Command::class); + $rectorConfig->tag(OutsideAnySetCommand::class, Command::class); + } + $rectorConfig->alias(TypeParser::class, BetterTypeParser::class); + $rectorConfig->singleton(PhpFileProcessor::class); + $rectorConfig->singleton(PostFileProcessor::class); + if (\class_exists(InitRecipeCommand::class)) { + $rectorConfig->tag(InitRecipeCommand::class, Command::class); + $rectorConfig->tag(GenerateCommand::class, Command::class); + } + // phpdoc-parser + $rectorConfig->when(TypeParser::class)->needs('$usedAttributes')->give(['lines' => \true, 'indexes' => \true]); + $rectorConfig->when(ConstExprParser::class)->needs('$usedAttributes')->give(['lines' => \true, 'indexes' => \true]); + $rectorConfig->alias(TypeParser::class, BetterTypeParser::class); + $rectorConfig->when(RectorNodeTraverser::class)->needs('$rectors')->giveTagged(RectorInterface::class); + $rectorConfig->when(ConfigInitializer::class)->needs('$rectors')->giveTagged(RectorInterface::class); + $rectorConfig->when(ClassNameImportSkipper::class)->needs('$classNameImportSkipVoters')->giveTagged(ClassNameImportSkipVoterInterface::class); + $rectorConfig->singleton(DynamicSourceLocatorProvider::class, static function (Container $container) : DynamicSourceLocatorProvider { $phpStanServicesFactory = $container->make(PHPStanServicesFactory::class); return $phpStanServicesFactory->createDynamicSourceLocatorProvider(); }); + // resetables + $rectorConfig->tag(DynamicSourceLocatorProvider::class, ResetableInterface::class); + $rectorConfig->tag(RenamedClassesDataCollector::class, ResetableInterface::class); // caching - $lazyRectorConfig->singleton(Cache::class, static function (Container $container) : Cache { + $rectorConfig->singleton(Cache::class, static function (Container $container) : Cache { /** @var CacheFactory $cacheFactory */ $cacheFactory = $container->make(CacheFactory::class); return $cacheFactory->create(); }); // tagged services - $lazyRectorConfig->when(BetterPhpDocParser::class)->needs('$phpDocNodeDecorators')->giveTagged(PhpDocNodeDecoratorInterface::class); - $lazyRectorConfig->afterResolving(ConditionalTypeForParameterMapper::class, static function (ConditionalTypeForParameterMapper $conditionalTypeForParameterMapper, Container $container) : void { + $rectorConfig->when(BetterPhpDocParser::class)->needs('$phpDocNodeDecorators')->giveTagged(PhpDocNodeDecoratorInterface::class); + $rectorConfig->afterResolving(ConditionalTypeForParameterMapper::class, static function (ConditionalTypeForParameterMapper $conditionalTypeForParameterMapper, Container $container) : void { $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); $conditionalTypeForParameterMapper->autowire($phpStanStaticTypeMapper); }); - $lazyRectorConfig->when(PHPStanStaticTypeMapper::class)->needs('$typeMappers')->giveTagged(TypeMapperInterface::class); - $lazyRectorConfig->when(PhpDocTypeMapper::class)->needs('$phpDocTypeMappers')->giveTagged(PhpDocTypeMapperInterface::class); - $lazyRectorConfig->when(PhpParserNodeMapper::class)->needs('$phpParserNodeMappers')->giveTagged(PhpParserNodeMapperInterface::class); - $lazyRectorConfig->when(NodeTypeResolver::class)->needs('$nodeTypeResolvers')->giveTagged(NodeTypeResolverInterface::class); + $rectorConfig->when(PHPStanStaticTypeMapper::class)->needs('$typeMappers')->giveTagged(TypeMapperInterface::class); + $rectorConfig->when(PhpDocTypeMapper::class)->needs('$phpDocTypeMappers')->giveTagged(PhpDocTypeMapperInterface::class); + $rectorConfig->when(PhpParserNodeMapper::class)->needs('$phpParserNodeMappers')->giveTagged(PhpParserNodeMapperInterface::class); + $rectorConfig->when(NodeTypeResolver::class)->needs('$nodeTypeResolvers')->giveTagged(NodeTypeResolverInterface::class); // node name resolvers - $lazyRectorConfig->when(NodeNameResolver::class)->needs('$nodeNameResolvers')->giveTagged(NodeNameResolverInterface::class); - $lazyRectorConfig->afterResolving(AbstractRector::class, static function (AbstractRector $rector, Container $container) : void { + $rectorConfig->when(NodeNameResolver::class)->needs('$nodeNameResolvers')->giveTagged(NodeNameResolverInterface::class); + $rectorConfig->afterResolving(AbstractRector::class, static function (AbstractRector $rector, Container $container) : void { $rector->autowire($container->make(NodeNameResolver::class), $container->make(NodeTypeResolver::class), $container->make(SimpleCallableNodeTraverser::class), $container->make(NodeFactory::class), $container->make(PhpDocInfoFactory::class), $container->make(StaticTypeMapper::class), $container->make(CurrentRectorProvider::class), $container->make(CurrentNodeProvider::class), $container->make(Skipper::class), $container->make(ValueResolver::class), $container->make(BetterNodeFinder::class), $container->make(NodeComparator::class), $container->make(CurrentFileProvider::class), $container->make(CreatedByRuleDecorator::class), $container->make(ChangedNodeScopeRefresher::class), $container->make(RectorOutput::class)); }); - $this->registerTagged($lazyRectorConfig, self::PHP_PARSER_NODE_MAPPER_CLASSES, PhpParserNodeMapperInterface::class); - $this->registerTagged($lazyRectorConfig, self::PHP_DOC_NODE_DECORATOR_CLASSES, PhpDocNodeDecoratorInterface::class); - $this->registerTagged($lazyRectorConfig, self::BASE_PHP_DOC_NODE_VISITORS, BasePhpDocNodeVisitorInterface::class); - $this->registerTagged($lazyRectorConfig, self::TYPE_MAPPER_CLASSES, TypeMapperInterface::class); - $this->registerTagged($lazyRectorConfig, self::PHPDOC_TYPE_MAPPER_CLASSES, PhpDocTypeMapperInterface::class); - $this->registerTagged($lazyRectorConfig, self::NODE_NAME_RESOLVER_CLASSES, NodeNameResolverInterface::class); - $this->registerTagged($lazyRectorConfig, self::NODE_TYPE_RESOLVER_CLASSES, NodeTypeResolverInterface::class); - $this->registerTagged($lazyRectorConfig, self::OUTPUT_FORMATTER_CLASSES, OutputFormatterInterface::class); - $this->registerTagged($lazyRectorConfig, self::CLASS_NAME_IMPORT_SKIPPER_CLASSES, ClassNameImportSkipVoterInterface::class); - $lazyRectorConfig->alias(SymfonyStyle::class, RectorStyle::class); - $lazyRectorConfig->singleton(SymfonyStyle::class, static function (Container $container) : SymfonyStyle { + $this->registerTagged($rectorConfig, self::PHP_PARSER_NODE_MAPPER_CLASSES, PhpParserNodeMapperInterface::class); + $this->registerTagged($rectorConfig, self::PHP_DOC_NODE_DECORATOR_CLASSES, PhpDocNodeDecoratorInterface::class); + $this->registerTagged($rectorConfig, self::BASE_PHP_DOC_NODE_VISITORS, BasePhpDocNodeVisitorInterface::class); + $this->registerTagged($rectorConfig, self::TYPE_MAPPER_CLASSES, TypeMapperInterface::class); + $this->registerTagged($rectorConfig, self::PHPDOC_TYPE_MAPPER_CLASSES, PhpDocTypeMapperInterface::class); + $this->registerTagged($rectorConfig, self::NODE_NAME_RESOLVER_CLASSES, NodeNameResolverInterface::class); + $this->registerTagged($rectorConfig, self::NODE_TYPE_RESOLVER_CLASSES, NodeTypeResolverInterface::class); + $this->registerTagged($rectorConfig, self::OUTPUT_FORMATTER_CLASSES, OutputFormatterInterface::class); + $this->registerTagged($rectorConfig, self::BASE_PHP_DOC_NODE_VISITORS, BasePhpDocNodeVisitorInterface::class); + $this->registerTagged($rectorConfig, self::CLASS_NAME_IMPORT_SKIPPER_CLASSES, ClassNameImportSkipVoterInterface::class); + $rectorConfig->alias(SymfonyStyle::class, RectorStyle::class); + $rectorConfig->singleton(SymfonyStyle::class, static function (Container $container) : SymfonyStyle { $symfonyStyleFactory = $container->make(SymfonyStyleFactory::class); return $symfonyStyleFactory->create(); }); - $this->registerTagged($lazyRectorConfig, self::ANNOTATION_TO_ATTRIBUTE_MAPPER_CLASSES, AnnotationToAttributeMapperInterface::class); - $lazyRectorConfig->when(AnnotationToAttributeMapper::class)->needs('$annotationToAttributeMappers')->giveTagged(AnnotationToAttributeMapperInterface::class); - $lazyRectorConfig->when(OutputFormatterCollector::class)->needs('$outputFormatters')->giveTagged(OutputFormatterInterface::class); + $this->registerTagged($rectorConfig, self::ANNOTATION_TO_ATTRIBUTE_MAPPER_CLASSES, AnnotationToAttributeMapperInterface::class); + $rectorConfig->when(AnnotationToAttributeMapper::class)->needs('$annotationToAttributeMappers')->giveTagged(AnnotationToAttributeMapperInterface::class); + $rectorConfig->when(OutputFormatterCollector::class)->needs('$outputFormatters')->giveTagged(OutputFormatterInterface::class); // #[Required]-like setter - $lazyRectorConfig->afterResolving(ArrayAnnotationToAttributeMapper::class, static function (ArrayAnnotationToAttributeMapper $arrayAnnotationToAttributeMapper, Container $container) : void { + $rectorConfig->afterResolving(ArrayAnnotationToAttributeMapper::class, static function (ArrayAnnotationToAttributeMapper $arrayAnnotationToAttributeMapper, Container $container) : void { $annotationToAttributesMapper = $container->make(AnnotationToAttributeMapper::class); $arrayAnnotationToAttributeMapper->autowire($annotationToAttributesMapper); }); - $lazyRectorConfig->afterResolving(ArrayItemNodeAnnotationToAttributeMapper::class, static function (ArrayItemNodeAnnotationToAttributeMapper $arrayItemNodeAnnotationToAttributeMapper, Container $container) : void { + $rectorConfig->afterResolving(ArrayItemNodeAnnotationToAttributeMapper::class, static function (ArrayItemNodeAnnotationToAttributeMapper $arrayItemNodeAnnotationToAttributeMapper, Container $container) : void { $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); $arrayItemNodeAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); }); - $lazyRectorConfig->afterResolving(NameScopeFactory::class, static function (NameScopeFactory $nameScopeFactory, Container $container) : void { + $rectorConfig->afterResolving(NameScopeFactory::class, static function (NameScopeFactory $nameScopeFactory, Container $container) : void { $nameScopeFactory->autowire($container->make(PhpDocInfoFactory::class), $container->make(StaticTypeMapper::class)); }); - $lazyRectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container) : void { + $rectorConfig->afterResolving(ArrayTypeMapper::class, static function (ArrayTypeMapper $arrayTypeMapper, Container $container) : void { $arrayTypeMapper->autowire($container->make(PHPStanStaticTypeMapper::class)); }); - $lazyRectorConfig->afterResolving(PlainValueParser::class, static function (PlainValueParser $plainValueParser, Container $container) : void { + $rectorConfig->afterResolving(PlainValueParser::class, static function (PlainValueParser $plainValueParser, Container $container) : void { $plainValueParser->autowire($container->make(StaticDoctrineAnnotationParser::class), $container->make(ArrayParser::class)); }); - $lazyRectorConfig->afterResolving(\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, static function (\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper $unionTypeMapper, Container $container) : void { + $rectorConfig->afterResolving(\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, static function (\Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper $unionTypeMapper, Container $container) : void { $phpStanStaticTypeMapper = $container->make(PHPStanStaticTypeMapper::class); $unionTypeMapper->autowire($phpStanStaticTypeMapper); }); - $lazyRectorConfig->singleton(Parser::class, static function (Container $container) { + $rectorConfig->singleton(Parser::class, static function (Container $container) { $phpstanServiceFactory = $container->make(PHPStanServicesFactory::class); return $phpstanServiceFactory->createPHPStanParser(); }); - $lazyRectorConfig->afterResolving(CurlyListNodeAnnotationToAttributeMapper::class, static function (CurlyListNodeAnnotationToAttributeMapper $curlyListNodeAnnotationToAttributeMapper, Container $container) : void { + $rectorConfig->afterResolving(CurlyListNodeAnnotationToAttributeMapper::class, static function (CurlyListNodeAnnotationToAttributeMapper $curlyListNodeAnnotationToAttributeMapper, Container $container) : void { $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); $curlyListNodeAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); }); - $lazyRectorConfig->afterResolving(DoctrineAnnotationAnnotationToAttributeMapper::class, static function (DoctrineAnnotationAnnotationToAttributeMapper $doctrineAnnotationAnnotationToAttributeMapper, Container $container) : void { + $rectorConfig->afterResolving(DoctrineAnnotationAnnotationToAttributeMapper::class, static function (DoctrineAnnotationAnnotationToAttributeMapper $doctrineAnnotationAnnotationToAttributeMapper, Container $container) : void { $annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class); $doctrineAnnotationAnnotationToAttributeMapper->autowire($annotationToAttributeMapper); }); - $lazyRectorConfig->when(PHPStanNodeScopeResolver::class)->needs('$nodeVisitors')->giveTagged(ScopeResolverNodeVisitorInterface::class); - $this->registerTagged($lazyRectorConfig, self::SCOPE_RESOLVER_NODE_VISITOR_CLASSES, ScopeResolverNodeVisitorInterface::class); + $rectorConfig->when(PHPStanNodeScopeResolver::class)->needs('$nodeVisitors')->giveTagged(ScopeResolverNodeVisitorInterface::class); + $this->registerTagged($rectorConfig, self::SCOPE_RESOLVER_NODE_VISITOR_CLASSES, ScopeResolverNodeVisitorInterface::class); // phpstan factory - $this->createPHPStanServices($lazyRectorConfig); + $this->createPHPStanServices($rectorConfig); // @todo add base node visitors - $lazyRectorConfig->when(PhpDocNodeMapper::class)->needs('$phpDocNodeVisitors')->giveTagged(BasePhpDocNodeVisitorInterface::class); - return $lazyRectorConfig; + $rectorConfig->when(PhpDocNodeMapper::class)->needs('$phpDocNodeVisitors')->giveTagged(BasePhpDocNodeVisitorInterface::class); + /** @param mixed $parameters */ + $hasForgotten = \false; + $rectorConfig->beforeResolving(static function (string $abstract, array $parameters, Container $container) use(&$hasForgotten) : void { + // run only once + if ($hasForgotten && !\defined('PHPUNIT_COMPOSER_INSTALL')) { + return; + } + $skippedClassResolver = new SkippedClassResolver(); + $skippedElements = $skippedClassResolver->resolve(); + foreach ($skippedElements as $skippedClass => $path) { + // completely forget the Rector rule only when no path specified + if ($path === null) { + ContainerMemento::forgetService($container, $skippedClass); + } + } + $hasForgotten = \true; + }); + return $rectorConfig; } /** * @param array $classes @@ -387,18 +417,18 @@ private function registerTagged(Container $container, array $classes, string $ta $container->tag($class, $tagInterface); } } - private function createPHPStanServices(LazyRectorConfig $lazyRectorConfig) : void + private function createPHPStanServices(RectorConfig $rectorConfig) : void { - $lazyRectorConfig->singleton(Parser::class, static function (Container $container) { + $rectorConfig->singleton(Parser::class, static function (Container $container) { $phpstanServiceFactory = $container->make(PHPStanServicesFactory::class); return $phpstanServiceFactory->createPHPStanParser(); }); - $lazyRectorConfig->singleton(Lexer::class, static function (Container $container) { + $rectorConfig->singleton(Lexer::class, static function (Container $container) { $phpstanServiceFactory = $container->make(PHPStanServicesFactory::class); return $phpstanServiceFactory->createEmulativeLexer(); }); foreach (self::PUBLIC_PHPSTAN_SERVICE_TYPES as $publicPhpstanServiceType) { - $lazyRectorConfig->singleton($publicPhpstanServiceType, static function (Container $container) use($publicPhpstanServiceType) { + $rectorConfig->singleton($publicPhpstanServiceType, static function (Container $container) use($publicPhpstanServiceType) { $phpstanServiceFactory = $container->make(PHPStanServicesFactory::class); return $phpstanServiceFactory->getByType($publicPhpstanServiceType); }); diff --git a/vendor/rector/rector/src/DependencyInjection/Loader/ConfigurableCallValuesCollectingPhpFileLoader.php b/vendor/rector/rector/src/DependencyInjection/Loader/ConfigurableCallValuesCollectingPhpFileLoader.php deleted file mode 100644 index 18b51f436..000000000 --- a/vendor/rector/rector/src/DependencyInjection/Loader/ConfigurableCallValuesCollectingPhpFileLoader.php +++ /dev/null @@ -1,60 +0,0 @@ -configureCallValuesCollector = $configureCallValuesCollector; - parent::__construct($containerBuilder, $fileLocator); - } - /** - * @param mixed $resource - * @return mixed - */ - public function load($resource, ?string $type = null) - { - // this call collects root values - $this->collectConfigureCallsFromJustImportedConfigurableRectorDefinitions(); - parent::load($resource, $type); - $this->collectConfigureCallsFromJustImportedConfigurableRectorDefinitions(); - return null; - } - /** - * @param bool|string $ignoreErrors - * @param mixed $resource - * @return mixed - */ - public function import($resource, ?string $type = null, $ignoreErrors = \false, ?string $sourceResource = null, $exclude = null) - { - // this call collects root values - $this->collectConfigureCallsFromJustImportedConfigurableRectorDefinitions(); - parent::import($resource, $type, $ignoreErrors, $sourceResource, $exclude); - $this->collectConfigureCallsFromJustImportedConfigurableRectorDefinitions(); - return null; - } - private function collectConfigureCallsFromJustImportedConfigurableRectorDefinitions() : void - { - foreach ($this->container->getDefinitions() as $class => $definition) { - if (!\is_a($class, ConfigurableRectorInterface::class, \true)) { - continue; - } - $this->configureCallValuesCollector->collectFromServiceAndClassName($class, $definition); - } - } -} diff --git a/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php b/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php index 1a57cc696..3ee41ba81 100644 --- a/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php +++ b/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php @@ -3,39 +3,36 @@ declare (strict_types=1); namespace Rector\Core\DependencyInjection; -use RectorPrefix202308\Psr\Container\ContainerInterface; +use RectorPrefix202309\Illuminate\Container\Container; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\Core\Autoloading\BootstrapFilesIncluder; -use Rector\Core\Kernel\RectorKernel; use Rector\Core\ValueObject\Bootstrap\BootstrapConfigs; -use Rector\NodeTypeResolver\DependencyInjection\PHPStanServicesFactory; final class RectorContainerFactory { - public function createFromBootstrapConfigs(BootstrapConfigs $bootstrapConfigs) : ContainerInterface + public function createFromBootstrapConfigs(BootstrapConfigs $bootstrapConfigs) : Container { $container = $this->createFromConfigs($bootstrapConfigs->getConfigFiles()); $mainConfigFile = $bootstrapConfigs->getMainConfigFile(); if ($mainConfigFile !== null) { /** @var ChangedFilesDetector $changedFilesDetector */ - $changedFilesDetector = $container->get(ChangedFilesDetector::class); + $changedFilesDetector = $container->make(ChangedFilesDetector::class); $changedFilesDetector->setFirstResolvedConfigFileInfo($mainConfigFile); } /** @var BootstrapFilesIncluder $bootstrapFilesIncluder */ $bootstrapFilesIncluder = $container->get(BootstrapFilesIncluder::class); $bootstrapFilesIncluder->includeBootstrapFiles(); - $phpStanServicesFactory = $container->get(PHPStanServicesFactory::class); - /** @var PHPStanServicesFactory $phpStanServicesFactory */ - $phpStanContainer = $phpStanServicesFactory->provideContainer(); - $bootstrapFilesIncluder->includePHPStanExtensionsBoostrapFiles($phpStanContainer); return $container; } /** * @param string[] $configFiles - * @api */ - private function createFromConfigs(array $configFiles) : ContainerInterface + private function createFromConfigs(array $configFiles) : Container { - $rectorKernel = new RectorKernel(); - return $rectorKernel->createFromConfigs($configFiles); + $lazyContainerFactory = new \Rector\Core\DependencyInjection\LazyContainerFactory(); + $container = $lazyContainerFactory->create(); + foreach ($configFiles as $configFile) { + $container->import($configFile); + } + return $container; } } diff --git a/vendor/rector/rector/src/Differ/DefaultDiffer.php b/vendor/rector/rector/src/Differ/DefaultDiffer.php index da311b734..f43d774d3 100644 --- a/vendor/rector/rector/src/Differ/DefaultDiffer.php +++ b/vendor/rector/rector/src/Differ/DefaultDiffer.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\Differ; -use RectorPrefix202308\SebastianBergmann\Diff\Differ; -use RectorPrefix202308\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; +use RectorPrefix202309\SebastianBergmann\Diff\Differ; +use RectorPrefix202309\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; final class DefaultDiffer { /** diff --git a/vendor/rector/rector/src/FileSystem/FilePathHelper.php b/vendor/rector/rector/src/FileSystem/FilePathHelper.php index 51c8bc21d..44d09fb58 100644 --- a/vendor/rector/rector/src/FileSystem/FilePathHelper.php +++ b/vendor/rector/rector/src/FileSystem/FilePathHelper.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Core\FileSystem; -use RectorPrefix202308\Nette\Utils\Strings; -use RectorPrefix202308\Symfony\Component\Filesystem\Filesystem; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Nette\Utils\Strings; +use RectorPrefix202309\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Core\Tests\FileSystem\FilePathHelperTest */ diff --git a/vendor/rector/rector/src/FileSystem/FilesFinder.php b/vendor/rector/rector/src/FileSystem/FilesFinder.php index 222714753..db05b270e 100644 --- a/vendor/rector/rector/src/FileSystem/FilesFinder.php +++ b/vendor/rector/rector/src/FileSystem/FilesFinder.php @@ -6,8 +6,8 @@ use Rector\Caching\UnchangedFilesFilter; use Rector\Core\Util\StringUtils; use Rector\Skipper\SkipCriteriaResolver\SkippedPathsResolver; -use RectorPrefix202308\Symfony\Component\Finder\Finder; -use RectorPrefix202308\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202309\Symfony\Component\Finder\Finder; +use RectorPrefix202309\Symfony\Component\Finder\SplFileInfo; /** * @see \Rector\Core\Tests\FileSystem\FilesFinder\FilesFinderTest */ @@ -50,7 +50,7 @@ public function findInDirectoriesAndFiles(array $source, array $suffixes = [], b $filesAndDirectories = $this->filesystemTweaker->resolveWithFnmatch($source); $filePaths = $this->fileAndDirectoryFilter->filterFiles($filesAndDirectories); $directories = $this->fileAndDirectoryFilter->filterDirectories($filesAndDirectories); - $currentAndDependentFilePaths = $this->unchangedFilesFilter->filterAndJoinWithDependentFileInfos($filePaths); + $currentAndDependentFilePaths = $this->unchangedFilesFilter->filterFileInfos($filePaths); return \array_merge($currentAndDependentFilePaths, $this->findInDirectories($directories, $suffixes, $sortByName)); } /** @@ -82,7 +82,7 @@ private function findInDirectories(array $directories, array $suffixes, bool $so $filePaths[] = $path; } } - return $this->unchangedFilesFilter->filterAndJoinWithDependentFileInfos($filePaths); + return $this->unchangedFilesFilter->filterFileInfos($filePaths); } /** * @param string[] $suffixes diff --git a/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php b/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php index bf445763d..621581d9b 100644 --- a/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php +++ b/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\FileSystem; -use RectorPrefix202308\Symfony\Component\Finder\Finder; -use RectorPrefix202308\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202309\Symfony\Component\Finder\Finder; +use RectorPrefix202309\Symfony\Component\Finder\SplFileInfo; /** * @see \Rector\Core\Tests\FileSystem\InitFilePathsResolver\InitFilePathsResolverTest */ diff --git a/vendor/rector/rector/src/FileSystem/PhpFilesFinder.php b/vendor/rector/rector/src/FileSystem/PhpFilesFinder.php deleted file mode 100644 index 91d4138fc..000000000 --- a/vendor/rector/rector/src/FileSystem/PhpFilesFinder.php +++ /dev/null @@ -1,42 +0,0 @@ -filesFinder = $filesFinder; - $this->unchangedFilesFilter = $unchangedFilesFilter; - } - /** - * @param string[] $paths - * @return string[] - */ - public function findInPaths(array $paths) : array - { - $filePaths = $this->filesFinder->findInDirectoriesAndFiles($paths, ['php'], \false); - // filter out non-PHP files - foreach ($filePaths as $key => $filePath) { - /** - * check .blade.php early so next .php check in next if can be skipped - */ - if (\substr_compare($filePath, '.blade.php', -\strlen('.blade.php')) === 0) { - unset($filePaths[$key]); - } - } - return $this->unchangedFilesFilter->filterAndJoinWithDependentFileInfos($filePaths); - } -} diff --git a/vendor/rector/rector/src/Kernel/ContainerBuilderBuilder.php b/vendor/rector/rector/src/Kernel/ContainerBuilderBuilder.php deleted file mode 100644 index 4846d5a44..000000000 --- a/vendor/rector/rector/src/Kernel/ContainerBuilderBuilder.php +++ /dev/null @@ -1,29 +0,0 @@ -create($configFiles, [ - new RemoveSkippedRectorsCompilerPass(), - // adds all merged configure() parameters to rector services - new MergeImportedRectorConfigureCallValuesCompilerPass($configureCallValuesCollector), - ]); - $containerBuilder->compile(); - return $containerBuilder; - } -} diff --git a/vendor/rector/rector/src/Kernel/ContainerBuilderFactory.php b/vendor/rector/rector/src/Kernel/ContainerBuilderFactory.php deleted file mode 100644 index 1fc64470e..000000000 --- a/vendor/rector/rector/src/Kernel/ContainerBuilderFactory.php +++ /dev/null @@ -1,70 +0,0 @@ - - */ - private const TYPES_TO_TAG_AUTOCONFIGURE = [BasePhpDocNodeVisitorInterface::class, PhpDocNodeDecoratorInterface::class, NodeTypeResolverInterface::class, ScopeResolverNodeVisitorInterface::class, TypeMapperInterface::class, PhpParserNodeMapperInterface::class, PhpDocTypeMapperInterface::class, ClassNameImportSkipVoterInterface::class, RectorInterface::class, Command::class, RectorInterface::class, OutputFormatterInterface::class, NonPhpRectorInterface::class, PhpRectorInterface::class, NodeNameResolverInterface::class, FileProcessorInterface::class, AnnotationToAttributeMapperInterface::class]; - public function __construct(ConfigureCallMergingLoaderFactory $configureCallMergingLoaderFactory) - { - $this->configureCallMergingLoaderFactory = $configureCallMergingLoaderFactory; - } - /** - * @param string[] $configFiles - * @param CompilerPassInterface[] $compilerPasses - */ - public function create(array $configFiles, array $compilerPasses) : ContainerBuilder - { - Assert::allIsAOf($compilerPasses, CompilerPassInterface::class); - Assert::allString($configFiles); - $containerBuilder = new ContainerBuilder(); - // tagged services here - foreach (self::TYPES_TO_TAG_AUTOCONFIGURE as $typeToTagAutoconfigure) { - $containerBuilder->registerForAutoconfiguration($typeToTagAutoconfigure)->addTag($typeToTagAutoconfigure); - } - $this->registerConfigFiles($containerBuilder, $configFiles); - foreach ($compilerPasses as $compilerPass) { - $containerBuilder->addCompilerPass($compilerPass); - } - return $containerBuilder; - } - /** - * @param string[] $configFiles - */ - private function registerConfigFiles(ContainerBuilder $containerBuilder, array $configFiles) : void - { - $delegatingLoader = $this->configureCallMergingLoaderFactory->create($containerBuilder, \getcwd()); - foreach ($configFiles as $configFile) { - $delegatingLoader->load($configFile); - } - } -} diff --git a/vendor/rector/rector/src/Kernel/RectorKernel.php b/vendor/rector/rector/src/Kernel/RectorKernel.php deleted file mode 100644 index 7854bb8bc..000000000 --- a/vendor/rector/rector/src/Kernel/RectorKernel.php +++ /dev/null @@ -1,57 +0,0 @@ -createFromConfigs([]); - } - /** - * @param string[] $configFiles - */ - public function createFromConfigs(array $configFiles) : ContainerBuilder - { - $container = $this->buildContainer($configFiles); - return $this->container = $container; - } - /** - * @api used in tests - */ - public function getContainer() : ContainerInterface - { - if (!$this->container instanceof ContainerInterface) { - throw new ShouldNotHappenException(); - } - return $this->container; - } - /** - * @return string[] - */ - private function createDefaultConfigFiles() : array - { - return [__DIR__ . '/../../config/config.php']; - } - /** - * @param string[] $configFiles - */ - private function buildContainer(array $configFiles) : ContainerBuilder - { - $defaultConfigFiles = $this->createDefaultConfigFiles(); - $configFiles = \array_merge($defaultConfigFiles, $configFiles); - $containerBuilderBuilder = new \Rector\Core\Kernel\ContainerBuilderBuilder(); - return $this->container = $containerBuilderBuilder->build($configFiles); - } -} diff --git a/vendor/rector/rector/src/Logging/CurrentRectorProvider.php b/vendor/rector/rector/src/Logging/CurrentRectorProvider.php index 3dfeab0aa..651bf53de 100644 --- a/vendor/rector/rector/src/Logging/CurrentRectorProvider.php +++ b/vendor/rector/rector/src/Logging/CurrentRectorProvider.php @@ -4,17 +4,24 @@ namespace Rector\Core\Logging; use Rector\Core\Contract\Rector\RectorInterface; +use Rector\PostRector\Contract\Rector\PostRectorInterface; final class CurrentRectorProvider { /** - * @var \Rector\Core\Contract\Rector\RectorInterface|null + * @var \Rector\Core\Contract\Rector\RectorInterface|\Rector\PostRector\Contract\Rector\PostRectorInterface|null */ - private $currentRector; - public function changeCurrentRector(RectorInterface $rector) : void + private $currentRector = null; + /** + * @param \Rector\Core\Contract\Rector\RectorInterface|\Rector\PostRector\Contract\Rector\PostRectorInterface $rector + */ + public function changeCurrentRector($rector) : void { $this->currentRector = $rector; } - public function getCurrentRector() : ?RectorInterface + /** + * @return \Rector\Core\Contract\Rector\RectorInterface|\Rector\PostRector\Contract\Rector\PostRectorInterface|null + */ + public function getCurrentRector() { return $this->currentRector; } diff --git a/vendor/rector/rector/src/Logging/RectorOutput.php b/vendor/rector/rector/src/Logging/RectorOutput.php index 9053ccd8a..0257ec033 100644 --- a/vendor/rector/rector/src/Logging/RectorOutput.php +++ b/vendor/rector/rector/src/Logging/RectorOutput.php @@ -6,7 +6,7 @@ use PHPStan\Internal\BytesHelper; use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\FileSystem\FilePathHelper; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; final class RectorOutput { /** diff --git a/vendor/rector/rector/src/NodeAnalyzer/PropertyAnalyzer.php b/vendor/rector/rector/src/NodeAnalyzer/PropertyAnalyzer.php index 4d0b5e113..93415a7fc 100644 --- a/vendor/rector/rector/src/NodeAnalyzer/PropertyAnalyzer.php +++ b/vendor/rector/rector/src/NodeAnalyzer/PropertyAnalyzer.php @@ -3,7 +3,6 @@ declare (strict_types=1); namespace Rector\Core\NodeAnalyzer; -use PhpParser\Node; use PhpParser\Node\Stmt\Property; use PHPStan\Type\CallableType; use PHPStan\Type\NullType; @@ -29,7 +28,7 @@ public function hasForbiddenType(Property $property) : bool if ($propertyType instanceof NullType) { return \true; } - if ($this->isForbiddenType($property, $propertyType)) { + if ($this->isForbiddenType($propertyType)) { return \true; } if (!$propertyType instanceof UnionType) { @@ -37,23 +36,23 @@ public function hasForbiddenType(Property $property) : bool } $types = $propertyType->getTypes(); foreach ($types as $type) { - if ($this->isForbiddenType($property, $type)) { + if ($this->isForbiddenType($type)) { return \true; } } return \false; } - private function isForbiddenType(Property $property, Type $type) : bool + private function isForbiddenType(Type $type) : bool { if ($type instanceof NonExistingObjectType) { return \true; } - return $this->isCallableType($property, $type); + return $this->isCallableType($type); } - private function isCallableType(Property $property, Type $type) : bool + private function isCallableType(Type $type) : bool { if ($type instanceof TypeWithClassName && $type->getClassName() === 'Closure') { - return !$property->type instanceof Node; + return \false; } return $type instanceof CallableType; } diff --git a/vendor/rector/rector/src/NodeAnalyzer/ScopeAnalyzer.php b/vendor/rector/rector/src/NodeAnalyzer/ScopeAnalyzer.php index 1c34a9ada..185f309d5 100644 --- a/vendor/rector/rector/src/NodeAnalyzer/ScopeAnalyzer.php +++ b/vendor/rector/rector/src/NodeAnalyzer/ScopeAnalyzer.php @@ -5,7 +5,6 @@ use PhpParser\Node; use PhpParser\Node\Arg; -use PhpParser\Node\Expr; use PhpParser\Node\Expr\Variable; use PhpParser\Node\Identifier; use PhpParser\Node\Name; @@ -24,31 +23,26 @@ final class ScopeAnalyzer /** * @var array> */ - private const REFRESHABLE_NODES = [Name::class, Identifier::class, Param::class, Arg::class, Variable::class]; + private const NON_REFRESHABLE_NODES = [Name::class, Identifier::class, Param::class, Arg::class, Variable::class]; public function __construct(ScopeFactory $scopeFactory) { $this->scopeFactory = $scopeFactory; } public function isRefreshable(Node $node) : bool { - foreach (self::REFRESHABLE_NODES as $noScopeNode) { + foreach (self::NON_REFRESHABLE_NODES as $noScopeNode) { if ($node instanceof $noScopeNode) { return \false; } } return \true; } - public function resolveScope(Node $node, string $filePath, ?Stmt $currentStmt = null) : ?Scope + public function resolveScope(Node $node, string $filePath) : ?Scope { // on File level if ($node instanceof Stmt && $node->getAttribute(AttributeKey::STATEMENT_DEPTH) === 0) { return $this->scopeFactory->createFromFile($filePath); } - // too deep Expr, eg: $$param = $$bar = self::decodeValue($result->getItem()->getTextContent()); - if ($node instanceof Expr && $node->getAttribute(AttributeKey::EXPRESSION_DEPTH) >= 2) { - $scope = $currentStmt instanceof Stmt ? $currentStmt->getAttribute(AttributeKey::SCOPE) : $this->scopeFactory->createFromFile($filePath); - return $scope instanceof Scope ? $scope : $this->scopeFactory->createFromFile($filePath); - } /** * Node and parent Node doesn't has Scope, and Node Start token pos is < 0, * it means the node and parent node just re-printed, the Scope need to be resolved from file diff --git a/vendor/rector/rector/src/NodeManipulator/ClassMethodAssignManipulator.php b/vendor/rector/rector/src/NodeManipulator/ClassMethodAssignManipulator.php index 8cd488732..59f189dd7 100644 --- a/vendor/rector/rector/src/NodeManipulator/ClassMethodAssignManipulator.php +++ b/vendor/rector/rector/src/NodeManipulator/ClassMethodAssignManipulator.php @@ -22,7 +22,7 @@ final class ClassMethodAssignManipulator */ private $nodeNameResolver; /** - * @var array + * @var array */ private $alreadyAddedClassMethodNames = []; public function __construct(NodeFactory $nodeFactory, NodeNameResolver $nodeNameResolver) @@ -37,8 +37,8 @@ public function addParameterAndAssignToMethod(ClassMethod $classMethod, string $ } $classMethod->params[] = $this->nodeFactory->createParamFromNameAndType($name, $type); $classMethod->stmts[] = new Expression($assign); - $classMethodHash = \spl_object_hash($classMethod); - $this->alreadyAddedClassMethodNames[$classMethodHash][] = $name; + $classMethodId = \spl_object_id($classMethod); + $this->alreadyAddedClassMethodNames[$classMethodId][] = $name; } private function hasMethodParameter(ClassMethod $classMethod, string $name) : bool { @@ -47,10 +47,10 @@ private function hasMethodParameter(ClassMethod $classMethod, string $name) : bo return \true; } } - $classMethodHash = \spl_object_hash($classMethod); - if (!isset($this->alreadyAddedClassMethodNames[$classMethodHash])) { + $classMethodId = \spl_object_id($classMethod); + if (!isset($this->alreadyAddedClassMethodNames[$classMethodId])) { return \false; } - return \in_array($name, $this->alreadyAddedClassMethodNames[$classMethodHash], \true); + return \in_array($name, $this->alreadyAddedClassMethodNames[$classMethodId], \true); } } diff --git a/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php b/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php index 60196eb2a..7026f7505 100644 --- a/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php +++ b/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\NodeManipulator; -use RectorPrefix202308\Doctrine\ORM\Mapping\Table; +use RectorPrefix202309\Doctrine\ORM\Mapping\Table; use PhpParser\Node; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; diff --git a/vendor/rector/rector/src/NonPhpFile/NonPhpFileProcessor.php b/vendor/rector/rector/src/NonPhpFile/NonPhpFileProcessor.php deleted file mode 100644 index 0cd815217..000000000 --- a/vendor/rector/rector/src/NonPhpFile/NonPhpFileProcessor.php +++ /dev/null @@ -1,107 +0,0 @@ -nonPhpRectors = $nonPhpRectors; - $this->fileDiffFactory = $fileDiffFactory; - $this->changedFilesDetector = $changedFilesDetector; - $this->filesystem = $filesystem; - } - /** - * @return array{system_errors: SystemError[], file_diffs: FileDiff[]} - */ - public function process(File $file, Configuration $configuration) : array - { - $systemErrorsAndFileDiffs = [Bridge::SYSTEM_ERRORS => [], Bridge::FILE_DIFFS => []]; - if ($this->nonPhpRectors === []) { - return $systemErrorsAndFileDiffs; - } - $oldFileContent = $file->getFileContent(); - $newFileContent = $file->getFileContent(); - foreach ($this->nonPhpRectors as $nonPhpRector) { - $newFileContent = $nonPhpRector->refactorFileContent($file->getFileContent()); - if ($oldFileContent === $newFileContent) { - continue; - } - $file->changeFileContent($newFileContent); - } - if ($oldFileContent !== $newFileContent) { - $fileDiff = $this->fileDiffFactory->createFileDiff($file, $oldFileContent, $newFileContent); - $systemErrorsAndFileDiffs[Bridge::FILE_DIFFS][] = $fileDiff; - $this->printFile($file, $configuration); - } else { - $this->changedFilesDetector->addCachableFile($file->getFilePath()); - } - return $systemErrorsAndFileDiffs; - } - public function supports(File $file, Configuration $configuration) : bool - { - // early assign to variable for increase performance - // @see https://3v4l.org/FM3vY#focus=8.0.7 vs https://3v4l.org/JZW7b#focus=8.0.7 - $filePath = $file->getFilePath(); - // bug in path extension - foreach ($this->getSupportedFileExtensions() as $fileExtension) { - if (\substr_compare($filePath, '.' . $fileExtension, -\strlen('.' . $fileExtension)) === 0) { - return \true; - } - } - return \false; - } - /** - * @return string[] - */ - public function getSupportedFileExtensions() : array - { - return self::SUFFIXES; - } - private function printFile(File $file, Configuration $configuration) : void - { - if ($configuration->isDryRun()) { - return; - } - $filePath = $file->getFilePath(); - $this->filesystem->dumpFile($filePath, $file->getFileContent()); - } -} diff --git a/vendor/rector/rector/src/NonPhpFile/Rector/RenameClassNonPhpRector.php b/vendor/rector/rector/src/NonPhpFile/Rector/RenameClassNonPhpRector.php deleted file mode 100644 index d6f97e272..000000000 --- a/vendor/rector/rector/src/NonPhpFile/Rector/RenameClassNonPhpRector.php +++ /dev/null @@ -1,118 +0,0 @@ -|\\.|\'))|(?\\s+\\\\))'; - /** - * @see https://regex101.com/r/HKUFJD/5 - * @see https://stackoverflow.com/a/3926546/1348344 - * @var string - */ - private const STANDALONE_CLASS_SUFFIX_REGEX = '(?=::)#'; - /** - * @var array - */ - private $renameClasses = []; - public function __construct(RenamedClassesDataCollector $renamedClassesDataCollector) - { - $this->renamedClassesDataCollector = $renamedClassesDataCollector; - } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Change class names and just renamed classes in non-PHP files, NEON, YAML, TWIG, LATTE, blade etc. mostly with regular expressions', [new ConfiguredCodeSample(<<<'CODE_SAMPLE' -services: - - SomeOldClass -CODE_SAMPLE -, <<<'CODE_SAMPLE' -services: - - SomeNewClass -CODE_SAMPLE -, ['SomeOldClass' => 'SomeNewClass'])]); - } - public function refactorFileContent(string $fileContent) : string - { - $classRenames = $this->getRenameClasses(); - return $this->renameClasses($fileContent, $classRenames); - } - /** - * @param mixed[] $configuration - */ - public function configure(array $configuration) : void - { - $renameClasses = $configuration; - Assert::allString(\array_keys($renameClasses)); - Assert::allString($renameClasses); - $this->renameClasses = $renameClasses; - } - /** - * @param array $classRenames - */ - private function renameClasses(string $newContent, array $classRenames) : string - { - $classRenames = $this->addDoubleSlashed($classRenames); - foreach ($classRenames as $oldClass => $newClass) { - // the old class is without slashes, it can make mess as similar to a word in the text, so we have to be more strict about it - $oldClassRegex = $this->createOldClassRegex($oldClass); - $newContent = Strings::replace($newContent, $oldClassRegex, static function (array $match) use($newClass) : string { - return ($match['extra_space'] ?? '') . $newClass; - }); - } - return $newContent; - } - /** - * Process with double quotes too, e.g. in twig - * - * @param array $classRenames - * @return array - */ - private function addDoubleSlashed(array $classRenames) : array - { - foreach ($classRenames as $oldClass => $newClass) { - // to prevent no slash override - if (\strpos($oldClass, '\\') === \false) { - continue; - } - $doubleSlashOldClass = \str_replace('\\', '\\\\', $oldClass); - $doubleSlashNewClass = \str_replace('\\', '\\\\', $newClass); - $classRenames[$doubleSlashOldClass] = $doubleSlashNewClass; - } - return $classRenames; - } - /** - * @return array - */ - private function getRenameClasses() : array - { - /** @var array $renameClasses */ - $renameClasses = \array_merge($this->renameClasses, $this->renamedClassesDataCollector->getOldToNewClasses()); - return $renameClasses; - } - private function createOldClassRegex(string $oldClass) : string - { - if (\strpos($oldClass, '\\') === \false) { - return self::STANDALONE_CLASS_PREFIX_REGEX . \preg_quote($oldClass, '#') . self::STANDALONE_CLASS_SUFFIX_REGEX; - } - return '#' . \preg_quote($oldClass, '#') . '#'; - } -} diff --git a/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php b/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php new file mode 100644 index 000000000..e04cae374 --- /dev/null +++ b/vendor/rector/rector/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php @@ -0,0 +1,59 @@ +mutatingScope = $mutatingScope; + } + public function enterNode(Node $node) : ?Node + { + if ($node instanceof FileWithoutNamespace || $node instanceof Namespace_ || $node instanceof ClassLike || $node instanceof ClassMethod || $node instanceof Function_) { + return null; + } + if ($node instanceof Stmt) { + $this->currentStmt = $node; + return null; + } + if ($node instanceof VirtualNode) { + return null; + } + if (!$node instanceof Expr || $node->getAttribute(AttributeKey::EXPRESSION_DEPTH) < 2) { + return null; + } + $scope = $node->getAttribute(AttributeKey::SCOPE); + if ($scope instanceof Scope) { + return null; + } + // too deep Expr, eg: $$param = $$bar = self::decodeValue($result->getItem()->getTextContent()); + $scope = $this->currentStmt instanceof Stmt ? $this->currentStmt->getAttribute(AttributeKey::SCOPE) : $this->mutatingScope; + $scope = $scope instanceof Scope ? $scope : $this->mutatingScope; + $node->setAttribute(AttributeKey::SCOPE, $scope); + return null; + } +} diff --git a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php b/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php deleted file mode 100644 index 8ded80af2..000000000 --- a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -final class ClosureTypeToCallReflectionResolver implements TypeToCallReflectionResolverInterface -{ - public function supports(Type $type) : bool - { - return $type instanceof ClosureType; - } - /** - * @param ClosureType $type - */ - public function resolve(Type $type, Scope $scope) : NativeFunctionReflection - { - /** @var ParametersAcceptorWithPhpDocs[] $parametersAcceptors */ - $parametersAcceptors = $type->getCallableParametersAcceptors($scope); - return new NativeFunctionReflection('{closure}', $parametersAcceptors, null, TrinaryLogic::createMaybe(), \false); - } -} diff --git a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php b/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php deleted file mode 100644 index 64751c88c..000000000 --- a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php +++ /dev/null @@ -1,105 +0,0 @@ - - */ -final class ConstantArrayTypeToCallReflectionResolver implements TypeToCallReflectionResolverInterface -{ - /** - * @readonly - * @var \PHPStan\Reflection\ReflectionProvider - */ - private $reflectionProvider; - public function __construct(ReflectionProvider $reflectionProvider) - { - $this->reflectionProvider = $reflectionProvider; - } - public function supports(Type $type) : bool - { - return $type instanceof ConstantArrayType; - } - /** - * @param ConstantArrayType $type - */ - public function resolve(Type $type, Scope $scope) : ?MethodReflection - { - $constantArrayTypeAndMethod = $this->findTypeAndMethodName($type); - if (!$constantArrayTypeAndMethod instanceof ConstantArrayTypeAndMethod) { - return null; - } - if ($constantArrayTypeAndMethod->isUnknown()) { - return null; - } - if (!$constantArrayTypeAndMethod->getCertainty()->yes()) { - return null; - } - $constantArrayType = $constantArrayTypeAndMethod->getType(); - $extendedMethodReflection = $constantArrayType->getMethod($constantArrayTypeAndMethod->getMethod(), $scope); - if (!$scope->canCallMethod($extendedMethodReflection)) { - return null; - } - return $extendedMethodReflection; - } - /** - * @see https://github.com/phpstan/phpstan-src/blob/b1fd47bda2a7a7d25091197b125c0adf82af6757/src/Type/Constant/ConstantArrayType.php#L209 - */ - private function findTypeAndMethodName(ConstantArrayType $constantArrayType) : ?ConstantArrayTypeAndMethod - { - if (!$this->areKeyTypesValid($constantArrayType)) { - return null; - } - if (\count($constantArrayType->getValueTypes()) !== 2) { - return null; - } - $classOrObjectType = $constantArrayType->getValueTypes()[0]; - $methodType = $constantArrayType->getValueTypes()[1]; - if (!$methodType instanceof ConstantStringType) { - return ConstantArrayTypeAndMethod::createUnknown(); - } - $objectWithoutClassType = new ObjectWithoutClassType(); - if ($classOrObjectType instanceof ConstantStringType) { - $value = $classOrObjectType->getValue(); - if (!$this->reflectionProvider->hasClass($value)) { - return ConstantArrayTypeAndMethod::createUnknown(); - } - $classReflection = $this->reflectionProvider->getClass($value); - $type = new ObjectType($classReflection->getName()); - } elseif ($objectWithoutClassType->isSuperTypeOf($classOrObjectType)->yes()) { - $type = $classOrObjectType; - } else { - return ConstantArrayTypeAndMethod::createUnknown(); - } - $trinaryLogic = $type->hasMethod($methodType->getValue()); - if (!$trinaryLogic->no()) { - return ConstantArrayTypeAndMethod::createConcrete($type, $methodType->getValue(), $trinaryLogic); - } - return null; - } - private function areKeyTypesValid(ConstantArrayType $constantArrayType) : bool - { - $keyTypes = $constantArrayType->getKeyTypes(); - if (\count($keyTypes) !== 2) { - return \false; - } - if ($keyTypes[0]->isSuperTypeOf(new ConstantIntegerType(0))->no()) { - return \false; - } - return !$keyTypes[1]->isSuperTypeOf(new ConstantIntegerType(1))->no(); - } -} diff --git a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php b/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php deleted file mode 100644 index 3b07cff22..000000000 --- a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php +++ /dev/null @@ -1,79 +0,0 @@ - - */ -final class ConstantStringTypeToCallReflectionResolver implements TypeToCallReflectionResolverInterface -{ - /** - * @readonly - * @var \PHPStan\Reflection\ReflectionProvider - */ - private $reflectionProvider; - /** - * Took from https://github.com/phpstan/phpstan-src/blob/8376548f76e2c845ae047e3010e873015b796818/src/Type/Constant/ConstantStringType.php#L158 - * - * @see https://regex101.com/r/IE6lcM/4 - * - * @var string - */ - private const STATIC_METHOD_REGEX = '#^(?<' . self::CLASS_KEY . '>[a-zA-Z_\\x7f-\\xff\\\\][a-zA-Z0-9_\\x7f-\\xff\\\\]*)::(?<' . self::METHOD_KEY . '>[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)\\z#'; - /** - * @var string - */ - private const CLASS_KEY = 'class'; - /** - * @var string - */ - private const METHOD_KEY = 'method'; - public function __construct(ReflectionProvider $reflectionProvider) - { - $this->reflectionProvider = $reflectionProvider; - } - public function supports(Type $type) : bool - { - return $type instanceof ConstantStringType; - } - /** - * @param ConstantStringType $type - * @return \PHPStan\Reflection\FunctionReflection|\PHPStan\Reflection\MethodReflection|null - */ - public function resolve(Type $type, Scope $scope) - { - $value = $type->getValue(); - // 'my_function' - $name = new Name($value); - if ($this->reflectionProvider->hasFunction($name, null)) { - return $this->reflectionProvider->getFunction($name, null); - } - // 'MyClass::myStaticFunction' - $matches = Strings::match($value, self::STATIC_METHOD_REGEX); - if ($matches === null) { - return null; - } - $class = $matches[self::CLASS_KEY]; - if (!$this->reflectionProvider->hasClass($class)) { - return null; - } - $classReflection = $this->reflectionProvider->getClass($class); - $method = $matches[self::METHOD_KEY]; - if (!$classReflection->hasMethod($method)) { - return null; - } - return $classReflection->getMethod($method, $scope); - } -} diff --git a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ObjectTypeToCallReflectionResolver.php b/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ObjectTypeToCallReflectionResolver.php deleted file mode 100644 index daa29e4ca..000000000 --- a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/ObjectTypeToCallReflectionResolver.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -final class ObjectTypeToCallReflectionResolver implements TypeToCallReflectionResolverInterface -{ - /** - * @readonly - * @var \PHPStan\Reflection\ReflectionProvider - */ - private $reflectionProvider; - public function __construct(ReflectionProvider $reflectionProvider) - { - $this->reflectionProvider = $reflectionProvider; - } - public function supports(Type $type) : bool - { - return $type instanceof ObjectType; - } - /** - * @param ObjectType $type - */ - public function resolve(Type $type, Scope $scope) : ?MethodReflection - { - $className = $type->getClassName(); - if (!$this->reflectionProvider->hasClass($className)) { - return null; - } - $classReflection = $this->reflectionProvider->getClass($className); - if (!$classReflection->hasNativeMethod(MethodName::INVOKE)) { - return null; - } - return $classReflection->getNativeMethod(MethodName::INVOKE); - } -} diff --git a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverRegistry.php b/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverRegistry.php deleted file mode 100644 index 2fe182eeb..000000000 --- a/vendor/rector/rector/src/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverRegistry.php +++ /dev/null @@ -1,34 +0,0 @@ -typeToCallReflectionResolvers = [$closureTypeToCallReflectionResolver, $constantArrayTypeToCallReflectionResolver, $constantStringTypeToCallReflectionResolver, $objectTypeToCallReflectionResolver]; - } - /** - * @return \PHPStan\Reflection\FunctionReflection|\PHPStan\Reflection\MethodReflection|null - */ - public function resolve(Type $type, Scope $scope) - { - foreach ($this->typeToCallReflectionResolvers as $typeToCallReflectionResolver) { - if (!$typeToCallReflectionResolver->supports($type)) { - continue; - } - return $typeToCallReflectionResolver->resolve($type, $scope); - } - return null; - } -} diff --git a/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php b/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php index c88849a0a..43edfa8bd 100644 --- a/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php +++ b/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Core\Php\PhpVersionResolver; -use RectorPrefix202308\Composer\Semver\VersionParser; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Json; +use RectorPrefix202309\Composer\Semver\VersionParser; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Json; use Rector\Core\Util\PhpVersionFactory; /** * @see \Rector\Core\Tests\Php\PhpVersionResolver\ProjectComposerJsonPhpVersionResolver\ProjectComposerJsonPhpVersionResolverTest diff --git a/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php b/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php index a65319e8a..0376f4080 100644 --- a/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php +++ b/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php @@ -16,7 +16,7 @@ use Rector\Core\NodeAnalyzer\ClassAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Core\Tests\PhpParser\Node\BetterNodeFinder\BetterNodeFinderTest */ diff --git a/vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php b/vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php index 09ef9fa93..38de86042 100644 --- a/vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php +++ b/vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php @@ -5,11 +5,14 @@ use PhpParser\Node; use PhpParser\NodeTraverser; -use Rector\Core\Contract\Rector\PhpRectorInterface; +use Rector\Core\Contract\Rector\RectorInterface; use Rector\VersionBonding\PhpVersionedFilter; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; final class RectorNodeTraverser extends NodeTraverser { + /** + * @var RectorInterface[] + */ + private $rectors; /** * @readonly * @var \Rector\VersionBonding\PhpVersionedFilter @@ -20,22 +23,17 @@ final class RectorNodeTraverser extends NodeTraverser */ private $areNodeVisitorsPrepared = \false; /** - * @var PhpRectorInterface[] - */ - private $phpRectors = []; - /** - * @param RewindableGenerator|PhpRectorInterface[] $phpRectors + * @param RectorInterface[] $rectors */ - public function __construct(iterable $phpRectors, PhpVersionedFilter $phpVersionedFilter) + public function __construct(array $rectors, PhpVersionedFilter $phpVersionedFilter) { + $this->rectors = $rectors; $this->phpVersionedFilter = $phpVersionedFilter; - $this->phpRectors = \is_array($phpRectors) ? $phpRectors : \iterator_to_array($phpRectors); parent::__construct(); } /** - * @template TNode as Node - * @param TNode[] $nodes - * @return TNode[] + * @param Node[] $nodes + * @return Node[] */ public function traverse(array $nodes) : array { @@ -43,12 +41,12 @@ public function traverse(array $nodes) : array return parent::traverse($nodes); } /** + * @param RectorInterface[] $rectors * @api used in tests to update the active rules - * @param PhpRectorInterface[] $phpRectors */ - public function refreshPhpRectors(array $phpRectors) : void + public function refreshPhpRectors(array $rectors) : void { - $this->phpRectors = $phpRectors; + $this->rectors = $rectors; $this->visitors = []; $this->areNodeVisitorsPrepared = \false; } @@ -64,7 +62,7 @@ private function prepareNodeVisitors() : void return; } // filer out by version - $activePhpRectors = $this->phpVersionedFilter->filter($this->phpRectors); + $activePhpRectors = $this->phpVersionedFilter->filter($this->rectors); $this->visitors = $this->visitors === [] ? $activePhpRectors : \array_merge($this->visitors, $activePhpRectors); $this->areNodeVisitorsPrepared = \true; } diff --git a/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php b/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php index e4c625a85..e73597cb9 100644 --- a/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php +++ b/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\PhpParser\Parser; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\Encapsed; diff --git a/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php b/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php index 647c0e0ba..9bf3ce67b 100644 --- a/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php +++ b/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\PhpParser\Parser; -use RectorPrefix202308\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\FileSystem; use PhpParser\Node\Stmt; use PhpParser\NodeTraverser; use PhpParser\Parser; diff --git a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php index d27d30c96..b0674a024 100644 --- a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\PhpParser\Printer; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Node; use PhpParser\Node\Expr; @@ -71,25 +71,16 @@ final class BetterStandardPrinter extends Standard * @var string */ private const REPLACE_COLON_WITH_SPACE_REGEX = '#(^.*function .*\\(.*\\)) : #'; - /** - * Use space by default - * @var string - */ - private $tabOrSpaceIndentCharacter = ' '; - /** - * @param mixed[] $options - */ - public function __construct(DocBlockUpdater $docBlockUpdater, array $options = []) + public function __construct(DocBlockUpdater $docBlockUpdater) { $this->docBlockUpdater = $docBlockUpdater; - parent::__construct($options); + parent::__construct(['shortArraySyntax' => \true]); // print return type double colon right after the bracket "function(): string" $this->initializeInsertionMap(); $this->insertionMap['Stmt_ClassMethod->returnType'] = [')', \false, ': ', null]; $this->insertionMap['Stmt_Function->returnType'] = [')', \false, ': ', null]; $this->insertionMap['Expr_Closure->returnType'] = [')', \false, ': ', null]; $this->insertionMap['Expr_ArrowFunction->returnType'] = [')', \false, ': ', null]; - $this->tabOrSpaceIndentCharacter = SimpleParameterProvider::provideStringParameter(Option::INDENT_CHAR, ' '); } /** * @param Node[] $stmts @@ -156,7 +147,7 @@ protected function pExpr_ArrowFunction(ArrowFunction $arrowFunction) : string return parent::pExpr_ArrowFunction($arrowFunction); } $indentSize = SimpleParameterProvider::provideIntParameter(Option::INDENT_SIZE); - $indent = \str_repeat($this->tabOrSpaceIndentCharacter, $this->indentLevel) . \str_repeat($this->tabOrSpaceIndentCharacter, $indentSize); + $indent = \str_repeat($this->getIndentCharacter(), $this->indentLevel) . \str_repeat($this->getIndentCharacter(), $indentSize); $text = "\n" . $indent; foreach ($comments as $key => $comment) { $commentText = $key > 0 ? $indent . $comment->getText() : $comment->getText(); @@ -171,7 +162,7 @@ protected function setIndentLevel(int $level) : void { $level = \max($level, 0); $this->indentLevel = $level; - $this->nl = "\n" . \str_repeat($this->tabOrSpaceIndentCharacter, $level); + $this->nl = "\n" . \str_repeat($this->getIndentCharacter(), $level); } /** * This allows to use both spaces and tabs vs. original space-only @@ -180,14 +171,14 @@ protected function indent() : void { $indentSize = SimpleParameterProvider::provideIntParameter(Option::INDENT_SIZE); $this->indentLevel += $indentSize; - $this->nl .= \str_repeat($this->tabOrSpaceIndentCharacter, $indentSize); + $this->nl .= \str_repeat($this->getIndentCharacter(), $indentSize); } /** * This allows to use both spaces and tabs vs. original space-only */ protected function outdent() : void { - if ($this->tabOrSpaceIndentCharacter === ' ') { + if ($this->getIndentCharacter() === ' ') { // - 4 spaces \assert($this->indentLevel >= 4); $this->indentLevel -= 4; @@ -196,7 +187,7 @@ protected function outdent() : void \assert($this->indentLevel >= 1); --$this->indentLevel; } - $this->nl = "\n" . \str_repeat($this->tabOrSpaceIndentCharacter, $this->indentLevel); + $this->nl = "\n" . \str_repeat($this->getIndentCharacter(), $this->indentLevel); } /** * @param mixed[] $nodes @@ -408,6 +399,13 @@ protected function pParam(Param $param) : string { return $this->pAttrGroups($param->attrGroups) . $this->pModifiers($param->flags) . ($param->type instanceof Node ? $this->p($param->type) . ' ' : '') . ($param->byRef ? '&' : '') . ($param->variadic ? '...' : '') . $this->p($param->var) . ($param->default instanceof Expr ? ' = ' . $this->p($param->default) : ''); } + /** + * Must be a method to be able to react to changed parameter in tests + */ + private function getIndentCharacter() : string + { + return SimpleParameterProvider::provideStringParameter(Option::INDENT_CHAR, ' '); + } /** * @param \PhpParser\Node\Scalar\LNumber|\PhpParser\Node\Scalar\DNumber $lNumber */ diff --git a/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php index 534a46f28..70436c3d3 100644 --- a/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php +++ b/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php @@ -5,7 +5,7 @@ use PhpParser\Node; use Rector\Core\ValueObject\Application\File; -use RectorPrefix202308\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202309\Symfony\Component\Filesystem\Filesystem; /** * @see \Rector\Core\Tests\PhpParser\Printer\FormatPerservingPrinterTest */ diff --git a/vendor/rector/rector/src/ProcessAnalyzer/RectifiedAnalyzer.php b/vendor/rector/rector/src/ProcessAnalyzer/RectifiedAnalyzer.php index 0382061e4..35072b27d 100644 --- a/vendor/rector/rector/src/ProcessAnalyzer/RectifiedAnalyzer.php +++ b/vendor/rector/rector/src/ProcessAnalyzer/RectifiedAnalyzer.php @@ -4,15 +4,14 @@ namespace Rector\Core\ProcessAnalyzer; use PhpParser\Node; -use PhpParser\Node\Stmt; use Rector\Core\Contract\Rector\RectorInterface; use Rector\NodeTypeResolver\Node\AttributeKey; -use Rector\PhpDocParser\ValueObject\AttributeKey as ValueObjectAttributeKey; /** * This service verify if the Node: * * - already applied same Rector rule before current Rector rule on last previous Rector rule. * - just re-printed but token start still >= 0 + * - has above node skipped traverse children on current rule */ final class RectifiedAnalyzer { @@ -25,7 +24,10 @@ public function hasRectified(string $rectorClass, Node $node) : bool if ($this->hasConsecutiveCreatedByRule($rectorClass, $node, $originalNode)) { return \true; } - return $this->isJustReprintedOverlappedTokenStart($node, $originalNode); + if ($this->isJustReprintedOverlappedTokenStart($node, $originalNode)) { + return \true; + } + return $node->getAttribute(AttributeKey::SKIPPED_BY_RECTOR_RULE) === $rectorClass; } /** * @param class-string $rectorClass @@ -45,20 +47,13 @@ private function isJustReprintedOverlappedTokenStart(Node $node, ?Node $original if ($originalNode instanceof Node) { return \false; } - if ($node->hasAttribute(AttributeKey::ORIGINAL_NODE)) { - return \false; - } /** * Start token pos must be < 0 to continue, as the node and parent node just re-printed - * except the Node is not Stmt and doesn't have 'phpstan_cache_printer' attribute yet * * - Node's original node is null * - Parent Node's original node is null */ $startTokenPos = $node->getStartTokenPos(); - if ($startTokenPos >= 0) { - return \true; - } - return !$node instanceof Stmt && !$node->hasAttribute(ValueObjectAttributeKey::PHPSTAN_CACHE_PRINTER); + return $startTokenPos >= 0; } } diff --git a/vendor/rector/rector/src/Rector/AbstractRector.php b/vendor/rector/rector/src/Rector/AbstractRector.php index e5ef75d25..ed28d4cac 100644 --- a/vendor/rector/rector/src/Rector/AbstractRector.php +++ b/vendor/rector/rector/src/Rector/AbstractRector.php @@ -4,7 +4,6 @@ namespace Rector\Core\Rector; use PhpParser\Node; -use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\InlineHTML; use PhpParser\Node\Stmt\Nop; use PhpParser\NodeTraverser; @@ -16,7 +15,7 @@ use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\Core\Application\ChangedNodeScopeRefresher; use Rector\Core\Configuration\CurrentNodeProvider; -use Rector\Core\Contract\Rector\PhpRectorInterface; +use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\Logging\CurrentRectorProvider; use Rector\Core\Logging\RectorOutput; @@ -33,8 +32,7 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\Skipper\Skipper\Skipper; use Rector\StaticTypeMapper\StaticTypeMapper; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -abstract class AbstractRector extends NodeVisitorAbstract implements PhpRectorInterface +abstract class AbstractRector extends NodeVisitorAbstract implements RectorInterface { /** * @var string @@ -86,10 +84,6 @@ abstract class AbstractRector extends NodeVisitorAbstract implements PhpRectorIn * @var \Rector\Core\ValueObject\Application\File */ protected $file; - /** - * @var \PhpParser\Node\Stmt|null - */ - protected $currentStmt; /** * @var \Rector\Core\Application\ChangedNodeScopeRefresher */ @@ -115,7 +109,7 @@ abstract class AbstractRector extends NodeVisitorAbstract implements PhpRectorIn */ private $currentFileProvider; /** - * @var array + * @var array */ private $nodesToReturn = []; /** @@ -127,12 +121,9 @@ abstract class AbstractRector extends NodeVisitorAbstract implements PhpRectorIn */ private $rectorOutput; /** - * @var string|null - */ - private $toBeRemovedNodeHash; - /** - * @required + * @var int|null */ + private $toBeRemovedNodeId; public function autowire(NodeNameResolver $nodeNameResolver, NodeTypeResolver $nodeTypeResolver, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, NodeFactory $nodeFactory, PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper, CurrentRectorProvider $currentRectorProvider, CurrentNodeProvider $currentNodeProvider, Skipper $skipper, ValueResolver $valueResolver, BetterNodeFinder $betterNodeFinder, NodeComparator $nodeComparator, CurrentFileProvider $currentFileProvider, CreatedByRuleDecorator $createdByRuleDecorator, ChangedNodeScopeRefresher $changedNodeScopeRefresher, RectorOutput $rectorOutput) : void { $this->nodeNameResolver = $nodeNameResolver; @@ -165,6 +156,9 @@ public function beforeTraverse(array $nodes) : ?array $this->file = $file; return parent::beforeTraverse($nodes); } + /** + * @return int|\PhpParser\Node|null + */ public final function enterNode(Node $node) { if (!$this->isMatchingNodeType($node)) { @@ -193,7 +187,7 @@ public final function enterNode(Node $node) } // @see NodeTraverser::* codes, e.g. removal of node of stopping the traversing if ($refactoredNode === NodeTraverser::REMOVE_NODE) { - $this->toBeRemovedNodeHash = \spl_object_hash($originalNode); + $this->toBeRemovedNodeId = \spl_object_id($originalNode); // notify this rule changing code $rectorWithLineChange = new RectorWithLineChange(static::class, $originalNode->getLine()); $this->file->addRectorClassWithLine($rectorWithLineChange); @@ -201,10 +195,14 @@ public final function enterNode(Node $node) } if (\is_int($refactoredNode)) { $this->createdByRuleDecorator->decorate($node, $originalNode, static::class); - // notify this rule changing code - $rectorWithLineChange = new RectorWithLineChange(static::class, $originalNode->getLine()); - $this->file->addRectorClassWithLine($rectorWithLineChange); - return $refactoredNode; + if (!\in_array($refactoredNode, [NodeTraverser::DONT_TRAVERSE_CHILDREN, NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN], \true)) { + // notify this rule changing code + $rectorWithLineChange = new RectorWithLineChange(static::class, $originalNode->getLine()); + $this->file->addRectorClassWithLine($rectorWithLineChange); + return $refactoredNode; + } + $this->decorateCurrentAndChildren($node); + return null; } // nothing to change → continue if ($refactoredNode === null) { @@ -219,15 +217,19 @@ public final function enterNode(Node $node) /** * Replacing nodes in leaveNode() method avoids infinite recursion * see"infinite recursion" in https://github.com/nikic/PHP-Parser/blob/master/doc/component/Walking_the_AST.markdown + * @return mixed[]|int|\PhpParser\Node|null */ public function leaveNode(Node $node) { - if ($this->toBeRemovedNodeHash !== null && $this->toBeRemovedNodeHash === \spl_object_hash($node)) { - $this->toBeRemovedNodeHash = null; + if ($node->hasAttribute(AttributeKey::ORIGINAL_NODE)) { + return null; + } + $objectId = \spl_object_id($node); + if ($this->toBeRemovedNodeId === $objectId) { + $this->toBeRemovedNodeId = null; return NodeTraverser::REMOVE_NODE; } - $objectHash = \spl_object_hash($node); - return $this->nodesToReturn[$objectHash] ?? $node; + return $this->nodesToReturn[$objectId] ?? $node; } protected function isName(Node $node, string $name) : bool { @@ -276,6 +278,25 @@ protected function mirrorComments(Node $newNode, Node $oldNode) : void $newNode->setAttribute(AttributeKey::COMMENTS, $oldNode->getAttribute(AttributeKey::COMMENTS)); } } + private function decorateCurrentAndChildren(Node $node) : void + { + // filter only types that + // 1. registered in getNodesTypes() method + // 2. different with current node type, as already decorated above + // + $otherTypes = \array_filter($this->getNodeTypes(), static function (string $nodeType) use($node) : bool { + return $nodeType !== \get_class($node); + }); + if ($otherTypes === []) { + return; + } + $this->traverseNodesWithCallable($node, static function (Node $subNode) use($otherTypes) { + if (\in_array(\get_class($subNode), $otherTypes, \true)) { + $subNode->setAttribute(AttributeKey::SKIPPED_BY_RECTOR_RULE, static::class); + } + return null; + }); + } /** * @param \PhpParser\Node|mixed[]|int $refactoredNode */ @@ -287,18 +308,17 @@ private function postRefactorProcess(Node $originalNode, Node $node, $refactored $this->file->addRectorClassWithLine($rectorWithLineChange); /** @var MutatingScope|null $currentScope */ $currentScope = $node->getAttribute(AttributeKey::SCOPE); - // search "infinite recursion" in https://github.com/nikic/PHP-Parser/blob/master/doc/component/Walking_the_AST.markdown - $originalNodeHash = \spl_object_hash($originalNode); if (\is_array($refactoredNode)) { $firstNode = \current($refactoredNode); $this->mirrorComments($firstNode, $originalNode); $this->refreshScopeNodes($refactoredNode, $filePath, $currentScope); + // search "infinite recursion" in https://github.com/nikic/PHP-Parser/blob/master/doc/component/Walking_the_AST.markdown + $originalNodeId = \spl_object_id($originalNode); // will be replaced in leaveNode() the original node must be passed - $this->nodesToReturn[$originalNodeHash] = $refactoredNode; + $this->nodesToReturn[$originalNodeId] = $refactoredNode; return $originalNode; } $this->refreshScopeNodes($refactoredNode, $filePath, $currentScope); - $this->nodesToReturn[$originalNodeHash] = $refactoredNode; return $refactoredNode; } /** @@ -308,20 +328,16 @@ private function refreshScopeNodes($node, string $filePath, ?MutatingScope $muta { $nodes = $node instanceof Node ? [$node] : $node; foreach ($nodes as $node) { - $this->changedNodeScopeRefresher->refresh($node, $mutatingScope, $filePath, $this->currentStmt); + $this->changedNodeScopeRefresher->refresh($node, $mutatingScope, $filePath); } } private function isMatchingNodeType(Node $node) : bool { $nodeClass = \get_class($node); foreach ($this->getNodeTypes() as $nodeType) { - if (!\is_a($nodeClass, $nodeType, \true)) { - if ($node instanceof Stmt) { - $this->currentStmt = $node; - } - continue; + if (\is_a($nodeClass, $nodeType, \true)) { + return \true; } - return \true; } return \false; } diff --git a/vendor/rector/rector/src/Rector/AbstractScopeAwareRector.php b/vendor/rector/rector/src/Rector/AbstractScopeAwareRector.php index e02a6ab2f..e722420be 100644 --- a/vendor/rector/rector/src/Rector/AbstractScopeAwareRector.php +++ b/vendor/rector/rector/src/Rector/AbstractScopeAwareRector.php @@ -7,20 +7,16 @@ use PhpParser\NodeTraverser; use PHPStan\Analyser\MutatingScope; use PHPStan\Analyser\Scope; -use Rector\Core\Contract\Rector\ScopeAwarePhpRectorInterface; +use Rector\Core\Contract\Rector\ScopeAwareRectorInterface; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\NodeAnalyzer\ScopeAnalyzer; use Rector\NodeTypeResolver\Node\AttributeKey; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -abstract class AbstractScopeAwareRector extends \Rector\Core\Rector\AbstractRector implements ScopeAwarePhpRectorInterface +abstract class AbstractScopeAwareRector extends \Rector\Core\Rector\AbstractRector implements ScopeAwareRectorInterface { /** * @var \Rector\Core\NodeAnalyzer\ScopeAnalyzer */ private $scopeAnalyzer; - /** - * @required - */ public function autowireAbstractScopeAwareRector(ScopeAnalyzer $scopeAnalyzer) : void { $this->scopeAnalyzer = $scopeAnalyzer; @@ -34,7 +30,7 @@ public function refactor(Node $node) /** @var MutatingScope|null $currentScope */ $currentScope = $node->getAttribute(AttributeKey::SCOPE); if (!$currentScope instanceof MutatingScope) { - $currentScope = $this->scopeAnalyzer->resolveScope($node, $this->file->getFilePath(), $this->currentStmt); + $currentScope = $this->scopeAnalyzer->resolveScope($node, $this->file->getFilePath()); } if (!$currentScope instanceof Scope) { $errorMessage = \sprintf('Scope not available on "%s" node, but is required by a refactorWithScope() method of "%s" rule. Fix scope refresh on changed nodes first', \get_class($node), static::class); diff --git a/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php b/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php index 852da9d77..72dc89036 100644 --- a/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php +++ b/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Core\Reflection; -use ReflectionEnum; +use PHPStan\BetterReflection\Reflection\ReflectionClass; use PHPStan\Reflection\ClassReflection; use Rector\Core\Util\Reflection\PrivatesAccessor; -use PHPStan\BetterReflection\Reflection\ReflectionClass; +use ReflectionEnum; final class ClassReflectionAnalyzer { /** diff --git a/vendor/rector/rector/src/Reflection/ReflectionResolver.php b/vendor/rector/rector/src/Reflection/ReflectionResolver.php index 2ee8b59b7..33c4c6bcc 100644 --- a/vendor/rector/rector/src/Reflection/ReflectionResolver.php +++ b/vendor/rector/rector/src/Reflection/ReflectionResolver.php @@ -25,7 +25,6 @@ use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\NodeAnalyzer\ClassAnalyzer; use Rector\Core\PhpParser\AstResolver; -use Rector\Core\PHPStan\Reflection\TypeToCallReflectionResolver\TypeToCallReflectionResolverRegistry; use Rector\Core\ValueObject\MethodName; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -48,11 +47,6 @@ final class ReflectionResolver * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; - /** - * @readonly - * @var \Rector\Core\PHPStan\Reflection\TypeToCallReflectionResolver\TypeToCallReflectionResolverRegistry - */ - private $typeToCallReflectionResolverRegistry; /** * @readonly * @var \Rector\Core\NodeAnalyzer\ClassAnalyzer @@ -68,12 +62,11 @@ final class ReflectionResolver * @var \Rector\Core\PhpParser\AstResolver */ private $astResolver; - public function __construct(ReflectionProvider $reflectionProvider, NodeTypeResolver $nodeTypeResolver, NodeNameResolver $nodeNameResolver, TypeToCallReflectionResolverRegistry $typeToCallReflectionResolverRegistry, ClassAnalyzer $classAnalyzer, \Rector\Core\Reflection\MethodReflectionResolver $methodReflectionResolver, AstResolver $astResolver) + public function __construct(ReflectionProvider $reflectionProvider, NodeTypeResolver $nodeTypeResolver, NodeNameResolver $nodeNameResolver, ClassAnalyzer $classAnalyzer, \Rector\Core\Reflection\MethodReflectionResolver $methodReflectionResolver, AstResolver $astResolver) { $this->reflectionProvider = $reflectionProvider; $this->nodeTypeResolver = $nodeTypeResolver; $this->nodeNameResolver = $nodeNameResolver; - $this->typeToCallReflectionResolverRegistry = $typeToCallReflectionResolverRegistry; $this->classAnalyzer = $classAnalyzer; $this->methodReflectionResolver = $methodReflectionResolver; $this->astResolver = $astResolver; @@ -235,17 +228,12 @@ public function resolvePropertyReflectionFromPropertyFetch($propertyFetch) : ?Ph private function resolveFunctionReflectionFromFuncCall(FuncCall $funcCall) { $scope = $funcCall->getAttribute(AttributeKey::SCOPE); - if ($funcCall->name instanceof Name) { - if ($this->reflectionProvider->hasFunction($funcCall->name, $scope)) { - return $this->reflectionProvider->getFunction($funcCall->name, $scope); - } + if (!$funcCall->name instanceof Name) { return null; } - if (!$scope instanceof Scope) { - return null; + if ($this->reflectionProvider->hasFunction($funcCall->name, $scope)) { + return $this->reflectionProvider->getFunction($funcCall->name, $scope); } - // fallback to callable - $funcCallNameType = $scope->getType($funcCall->name); - return $this->typeToCallReflectionResolverRegistry->resolve($funcCallNameType, $scope); + return null; } } diff --git a/vendor/rector/rector/src/StaticReflection/DynamicSourceLocatorDecorator.php b/vendor/rector/rector/src/StaticReflection/DynamicSourceLocatorDecorator.php index d3ead1d85..8e85fe40e 100644 --- a/vendor/rector/rector/src/StaticReflection/DynamicSourceLocatorDecorator.php +++ b/vendor/rector/rector/src/StaticReflection/DynamicSourceLocatorDecorator.php @@ -4,7 +4,7 @@ namespace Rector\Core\StaticReflection; use Rector\Core\FileSystem\FileAndDirectoryFilter; -use Rector\Core\FileSystem\PhpFilesFinder; +use Rector\Core\FileSystem\FilesystemTweaker; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; /** * @see https://phpstan.org/blog/zero-config-analysis-with-static-reflection @@ -19,19 +19,19 @@ final class DynamicSourceLocatorDecorator private $dynamicSourceLocatorProvider; /** * @readonly - * @var \Rector\Core\FileSystem\PhpFilesFinder + * @var \Rector\Core\FileSystem\FileAndDirectoryFilter */ - private $phpFilesFinder; + private $fileAndDirectoryFilter; /** * @readonly - * @var \Rector\Core\FileSystem\FileAndDirectoryFilter + * @var \Rector\Core\FileSystem\FilesystemTweaker */ - private $fileAndDirectoryFilter; - public function __construct(DynamicSourceLocatorProvider $dynamicSourceLocatorProvider, PhpFilesFinder $phpFilesFinder, FileAndDirectoryFilter $fileAndDirectoryFilter) + private $filesystemTweaker; + public function __construct(DynamicSourceLocatorProvider $dynamicSourceLocatorProvider, FileAndDirectoryFilter $fileAndDirectoryFilter, FilesystemTweaker $filesystemTweaker) { $this->dynamicSourceLocatorProvider = $dynamicSourceLocatorProvider; - $this->phpFilesFinder = $phpFilesFinder; $this->fileAndDirectoryFilter = $fileAndDirectoryFilter; + $this->filesystemTweaker = $filesystemTweaker; } /** * @param string[] $paths @@ -41,13 +41,11 @@ public function addPaths(array $paths) : void if ($paths === []) { return; } + $paths = $this->filesystemTweaker->resolveWithFnmatch($paths); $files = $this->fileAndDirectoryFilter->filterFiles($paths); $this->dynamicSourceLocatorProvider->addFiles($files); $directories = $this->fileAndDirectoryFilter->filterDirectories($paths); - foreach ($directories as $directory) { - $filesInDirectory = $this->phpFilesFinder->findInPaths([$directory]); - $this->dynamicSourceLocatorProvider->addFilesByDirectory($directory, $filesInDirectory); - } + $this->dynamicSourceLocatorProvider->addDirectories($directories); } public function isPathsEmpty() : bool { diff --git a/vendor/rector/rector/src/Util/MemoryLimiter.php b/vendor/rector/rector/src/Util/MemoryLimiter.php index d8c261b5a..0ea6d8739 100644 --- a/vendor/rector/rector/src/Util/MemoryLimiter.php +++ b/vendor/rector/rector/src/Util/MemoryLimiter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\Util; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\Core\ValueObject\Configuration; use Rector\RectorGenerator\Exception\ConfigurationException; /** diff --git a/vendor/rector/rector/src/Util/StringUtils.php b/vendor/rector/rector/src/Util/StringUtils.php index cf9326f2b..2d117890e 100644 --- a/vendor/rector/rector/src/Util/StringUtils.php +++ b/vendor/rector/rector/src/Util/StringUtils.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\Util; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; final class StringUtils { public static function isMatch(string $value, string $regex) : bool diff --git a/vendor/rector/rector/src/Validation/RectorAssert.php b/vendor/rector/rector/src/Validation/RectorAssert.php index 4ae0c0cc7..d5adbdba2 100644 --- a/vendor/rector/rector/src/Validation/RectorAssert.php +++ b/vendor/rector/rector/src/Validation/RectorAssert.php @@ -4,7 +4,7 @@ namespace Rector\Core\Validation; use Rector\Core\Util\StringUtils; -use RectorPrefix202308\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202309\Webmozart\Assert\InvalidArgumentException; /** * @see \Rector\Core\Tests\Validation\RectorAssertTest */ @@ -16,10 +16,6 @@ final class RectorAssert * @var string */ private const CLASS_NAME_REGEX = '#^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(\\\\[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)*$#'; - /** - * @var string - */ - private const NAMESPACE_REGEX = '#^' . self::NAKED_NAMESPACE_REGEX . '$#'; /** * @see https://stackoverflow.com/a/60470526/1348344 * @see https://regex101.com/r/37aUWA/1 @@ -49,10 +45,6 @@ final class RectorAssert * @var string */ private const FUNCTION_NAME_REGEX = '#^(' . self::NAKED_NAMESPACE_REGEX . '\\\\)?([a-zA-Z_\\x80-\\xff][a-zA-Z0-9_\\x80-\\xff]*)$#'; - public static function namespaceName(string $name) : void - { - self::elementName($name, self::NAMESPACE_REGEX, 'namespace'); - } public static function constantName(string $name) : void { self::elementName($name, self::METHOD_OR_CONSTANT_NAME_REGEX, 'constant'); diff --git a/vendor/rector/rector/src/ValueObject/Application/File.php b/vendor/rector/rector/src/ValueObject/Application/File.php index 37b6fe43f..7886c4087 100644 --- a/vendor/rector/rector/src/ValueObject/Application/File.php +++ b/vendor/rector/rector/src/ValueObject/Application/File.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Core\ValueObject\Application; +use PhpParser\Node; use PhpParser\Node\Stmt; use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\Core\Exception\ShouldNotHappenException; @@ -35,11 +36,11 @@ final class File */ private $fileDiff; /** - * @var Stmt[] + * @var Node[] */ private $oldStmts = []; /** - * @var Stmt[] + * @var Node[] */ private $newStmts = []; /** @@ -128,7 +129,7 @@ public function getOldTokens() : array return $this->oldTokens; } /** - * @param Stmt[] $newStmts + * @param Node[] $newStmts */ public function changeNewStmts(array $newStmts) : void { diff --git a/vendor/rector/rector/src/ValueObject/Configuration.php b/vendor/rector/rector/src/ValueObject/Configuration.php index 1b0b9fe8c..9610cfb9c 100644 --- a/vendor/rector/rector/src/ValueObject/Configuration.php +++ b/vendor/rector/rector/src/ValueObject/Configuration.php @@ -4,7 +4,7 @@ namespace Rector\Core\ValueObject; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; final class Configuration { /** diff --git a/vendor/rector/rector/src/ValueObject/Error/SystemError.php b/vendor/rector/rector/src/ValueObject/Error/SystemError.php index 113e5045f..f53515583 100644 --- a/vendor/rector/rector/src/ValueObject/Error/SystemError.php +++ b/vendor/rector/rector/src/ValueObject/Error/SystemError.php @@ -4,7 +4,7 @@ namespace Rector\Core\ValueObject\Error; use Rector\Parallel\ValueObject\Name; -use RectorPrefix202308\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202309\Symplify\EasyParallel\Contract\SerializableInterface; final class SystemError implements SerializableInterface { /** diff --git a/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php b/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php index 74d05210d..acd570a41 100644 --- a/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php +++ b/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php @@ -32,6 +32,10 @@ final class PhpVersionFeature * @var int */ public const ELVIS_OPERATOR = \Rector\Core\ValueObject\PhpVersion::PHP_53; + /** + * @var int + */ + public const ANONYMOUS_FUNCTION_PARAM_TYPE = \Rector\Core\ValueObject\PhpVersion::PHP_53; /** * @var int */ @@ -72,6 +76,10 @@ final class PhpVersionFeature * @var int */ public const SCALAR_TYPES = \Rector\Core\ValueObject\PhpVersion::PHP_70; + /** + * @var int + */ + public const HAS_RETURN_TYPE = \Rector\Core\ValueObject\PhpVersion::PHP_70; /** * @var int */ @@ -147,6 +155,10 @@ final class PhpVersionFeature * @var int */ public const WRAP_VARIABLE_VARIABLE = \Rector\Core\ValueObject\PhpVersion::PHP_70; + /** + * @var int + */ + public const ANONYMOUS_FUNCTION_RETURN_TYPE = \Rector\Core\ValueObject\PhpVersion::PHP_70; /** * @var int */ diff --git a/vendor/rector/rector/src/ValueObject/ProcessResult.php b/vendor/rector/rector/src/ValueObject/ProcessResult.php index da7d62b77..b7e27f7e2 100644 --- a/vendor/rector/rector/src/ValueObject/ProcessResult.php +++ b/vendor/rector/rector/src/ValueObject/ProcessResult.php @@ -5,7 +5,7 @@ use Rector\Core\ValueObject\Error\SystemError; use Rector\Core\ValueObject\Reporting\FileDiff; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Core\ValueObjectFactory\ProcessResultFactory */ diff --git a/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php b/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php index 3ad68e1ac..090d33c84 100644 --- a/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php +++ b/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Core\ValueObject\Reporting; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\Core\Contract\Rector\RectorInterface; use Rector\Parallel\ValueObject\Name; -use RectorPrefix202308\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202309\Webmozart\Assert\Assert; final class FileDiff implements SerializableInterface { /** diff --git a/vendor/rector/rector/src/ValueObjectFactory/Application/FileFactory.php b/vendor/rector/rector/src/ValueObjectFactory/Application/FileFactory.php index 7db191abb..513415f0c 100644 --- a/vendor/rector/rector/src/ValueObjectFactory/Application/FileFactory.php +++ b/vendor/rector/rector/src/ValueObjectFactory/Application/FileFactory.php @@ -4,7 +4,6 @@ namespace Rector\Core\ValueObjectFactory\Application; use Rector\Caching\Detector\ChangedFilesDetector; -use Rector\Core\Contract\Processor\FileProcessorInterface; use Rector\Core\FileSystem\FilesFinder; use Rector\Core\ValueObject\Configuration; /** @@ -22,19 +21,10 @@ final class FileFactory * @var \Rector\Caching\Detector\ChangedFilesDetector */ private $changedFilesDetector; - /** - * @var FileProcessorInterface[] - * @readonly - */ - private $fileProcessors; - /** - * @param FileProcessorInterface[] $fileProcessors - */ - public function __construct(FilesFinder $filesFinder, ChangedFilesDetector $changedFilesDetector, iterable $fileProcessors) + public function __construct(FilesFinder $filesFinder, ChangedFilesDetector $changedFilesDetector) { $this->filesFinder = $filesFinder; $this->changedFilesDetector = $changedFilesDetector; - $this->fileProcessors = $fileProcessors; } /** * @param string[] $paths @@ -45,26 +35,12 @@ public function findFilesInPaths(array $paths, Configuration $configuration) : a if ($configuration->shouldClearCache()) { $this->changedFilesDetector->clear(); } - $supportedFileExtensions = $this->resolveSupportedFileExtensions($configuration); + $supportedFileExtensions = $configuration->getFileExtensions(); $filePaths = $this->filesFinder->findInDirectoriesAndFiles($paths, $supportedFileExtensions); - $fileExtensions = $configuration->getFileExtensions(); - $fileWithExtensionsFilter = static function (string $filePath) use($fileExtensions) : bool { + $fileWithExtensionsFilter = static function (string $filePath) use($supportedFileExtensions) : bool { $filePathExtension = \pathinfo($filePath, \PATHINFO_EXTENSION); - return \in_array($filePathExtension, $fileExtensions, \true); + return \in_array($filePathExtension, $supportedFileExtensions, \true); }; return \array_filter($filePaths, $fileWithExtensionsFilter); } - /** - * @return string[] - */ - private function resolveSupportedFileExtensions(Configuration $configuration) : array - { - $supportedFileExtensions = []; - foreach ($this->fileProcessors as $fileProcessor) { - $supportedFileExtensions = \array_merge($supportedFileExtensions, $fileProcessor->getSupportedFileExtensions()); - } - // basic PHP extensions - $supportedFileExtensions = \array_merge($supportedFileExtensions, $configuration->getFileExtensions()); - return \array_unique($supportedFileExtensions); - } } diff --git a/vendor/rector/rector/src/constants.php b/vendor/rector/rector/src/constants.php index d34cdb922..f9cad4d0e 100644 --- a/vendor/rector/rector/src/constants.php +++ b/vendor/rector/rector/src/constants.php @@ -1,7 +1,7 @@ prettyPrint([$node]); - Dumper::dump($printedContent); + \var_dump($printedContent); } } } diff --git a/vendor/rector/rector/templates/rector-github-action-check.yaml b/vendor/rector/rector/templates/rector-github-action-check.yaml index c5bee4ddc..553f1d938 100644 --- a/vendor/rector/rector/templates/rector-github-action-check.yaml +++ b/vendor/rector/rector/templates/rector-github-action-check.yaml @@ -11,7 +11,7 @@ jobs: steps: - if: github.event.pull_request.head.repo.full_name == github.repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # Must be used to trigger workflow after push token: ${{ secrets.ACCESS_TOKEN }} diff --git a/vendor/rector/rector/vendor/autoload.php b/vendor/rector/rector/vendor/autoload.php index bbb36c1bb..d4737d25c 100644 --- a/vendor/rector/rector/vendor/autoload.php +++ b/vendor/rector/rector/vendor/autoload.php @@ -22,4 +22,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit5e920a093e34449f6b8d6b06417344ef::getLoader(); +return ComposerAutoloaderInit02014386848e211b9ef5012c0cc91b7c::getLoader(); diff --git a/vendor/rector/rector/vendor/bin/neon-lint b/vendor/rector/rector/vendor/bin/neon-lint deleted file mode 100644 index 0cc5588c6..000000000 --- a/vendor/rector/rector/vendor/bin/neon-lint +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env php -realpath = \realpath($opened_path) ?: $opened_path; - $opened_path = $this->realpath; - $this->handle = \fopen($this->realpath, $mode); - $this->position = 0; - return (bool) $this->handle; - } - public function stream_read($count) - { - $data = \fread($this->handle, $count); - if ($this->position === 0) { - $data = \preg_replace('{^#!.*\\r?\\n}', '', $data); - } - $this->position += \strlen($data); - return $data; - } - public function stream_cast($castAs) - { - return $this->handle; - } - public function stream_close() - { - \fclose($this->handle); - } - public function stream_lock($operation) - { - return $operation ? \flock($this->handle, $operation) : \true; - } - public function stream_seek($offset, $whence) - { - if (0 === \fseek($this->handle, $offset, $whence)) { - $this->position = \ftell($this->handle); - return \true; - } - return \false; - } - public function stream_tell() - { - return $this->position; - } - public function stream_eof() - { - return \feof($this->handle); - } - public function stream_stat() - { - return array(); - } - public function stream_set_option($option, $arg1, $arg2) - { - return \true; - } - public function url_stat($path, $flags) - { - $path = \substr($path, 17); - if (\file_exists($path)) { - return \stat($path); - } - return \false; - } - } - } - if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202308\\Composer\\BinProxyWrapper')) { - return include "phpvfscomposer://" . __DIR__ . '/..' . '/nette/neon/bin/neon-lint'; - } -} -return include __DIR__ . '/..' . '/nette/neon/bin/neon-lint'; diff --git a/vendor/rector/rector/vendor/bin/php-parse b/vendor/rector/rector/vendor/bin/php-parse index e77a164f7..07fe01a4a 100644 --- a/vendor/rector/rector/vendor/bin/php-parse +++ b/vendor/rector/rector/vendor/bin/php-parse @@ -8,12 +8,12 @@ * * @generated */ -namespace RectorPrefix202308\Composer; +namespace RectorPrefix202309\Composer; $GLOBALS['_composer_bin_dir'] = __DIR__; $GLOBALS['_composer_autoload_path'] = __DIR__ . '/..' . '/autoload.php'; if (\PHP_VERSION_ID < 80000) { - if (!\class_exists('RectorPrefix202308\\Composer\\BinProxyWrapper')) { + if (!\class_exists('RectorPrefix202309\\Composer\\BinProxyWrapper')) { /** * @internal */ @@ -87,7 +87,7 @@ if (\PHP_VERSION_ID < 80000) { } } } - if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202308\\Composer\\BinProxyWrapper')) { + if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202309\\Composer\\BinProxyWrapper')) { return include "phpvfscomposer://" . __DIR__ . '/..' . '/nikic/php-parser/bin/php-parse'; } } diff --git a/vendor/rector/rector/vendor/bin/phpstan b/vendor/rector/rector/vendor/bin/phpstan index 301211fd0..18ad6a32c 100644 --- a/vendor/rector/rector/vendor/bin/phpstan +++ b/vendor/rector/rector/vendor/bin/phpstan @@ -8,12 +8,12 @@ * * @generated */ -namespace RectorPrefix202308\Composer; +namespace RectorPrefix202309\Composer; $GLOBALS['_composer_bin_dir'] = __DIR__; $GLOBALS['_composer_autoload_path'] = __DIR__ . '/..' . '/autoload.php'; if (\PHP_VERSION_ID < 80000) { - if (!\class_exists('RectorPrefix202308\\Composer\\BinProxyWrapper')) { + if (!\class_exists('RectorPrefix202309\\Composer\\BinProxyWrapper')) { /** * @internal */ @@ -87,7 +87,7 @@ if (\PHP_VERSION_ID < 80000) { } } } - if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202308\\Composer\\BinProxyWrapper')) { + if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202309\\Composer\\BinProxyWrapper')) { return include "phpvfscomposer://" . __DIR__ . '/..' . '/phpstan/phpstan/phpstan'; } } diff --git a/vendor/rector/rector/vendor/clue/ndjson-react/composer.json b/vendor/rector/rector/vendor/clue/ndjson-react/composer.json index c25552931..e1b36f4ef 100644 --- a/vendor/rector/rector/vendor/clue/ndjson-react/composer.json +++ b/vendor/rector/rector/vendor/clue/ndjson-react/composer.json @@ -27,12 +27,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202309\\Clue\\React\\NDJson\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\Clue\\Tests\\React\\NDJson\\": "tests\/" + "RectorPrefix202309\\Clue\\Tests\\React\\NDJson\\": "tests\/" } } } \ No newline at end of file diff --git a/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php b/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php index 88f14e468..fc47cbfa9 100644 --- a/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php +++ b/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php @@ -1,11 +1,11 @@ $vendorDir . '/composer/InstalledVersions.php', - 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 'PHPStan\\PhpDocParser\\Ast\\AbstractNodeVisitor' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/AbstractNodeVisitor.php', 'PHPStan\\PhpDocParser\\Ast\\Attribute' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/Attribute.php', 'PHPStan\\PhpDocParser\\Ast\\ConstExpr\\ConstExprArrayItemNode' => $vendorDir . '/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprArrayItemNode.php', @@ -339,918 +338,594 @@ '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', - 'RectorPrefix202308\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202308\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202308\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', - 'RectorPrefix202308\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', - 'RectorPrefix202308\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202308\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', - 'RectorPrefix202308\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', - 'RectorPrefix202308\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', - 'RectorPrefix202308\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', - 'RectorPrefix202308\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', - 'RectorPrefix202308\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202308\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202308\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202308\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202308\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', - 'RectorPrefix202308\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202308\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202308\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202308\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', - 'RectorPrefix202308\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202308\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202308\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202308\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202308\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', - 'RectorPrefix202308\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\Neon\\Decoder' => $vendorDir . '/nette/neon/src/Neon/Decoder.php', - 'RectorPrefix202308\\Nette\\Neon\\Encoder' => $vendorDir . '/nette/neon/src/Neon/Encoder.php', - 'RectorPrefix202308\\Nette\\Neon\\Entity' => $vendorDir . '/nette/neon/src/Neon/Entity.php', - 'RectorPrefix202308\\Nette\\Neon\\Exception' => $vendorDir . '/nette/neon/src/Neon/Exception.php', - 'RectorPrefix202308\\Nette\\Neon\\Lexer' => $vendorDir . '/nette/neon/src/Neon/Lexer.php', - 'RectorPrefix202308\\Nette\\Neon\\Neon' => $vendorDir . '/nette/neon/src/Neon/Neon.php', - 'RectorPrefix202308\\Nette\\Neon\\Node' => $vendorDir . '/nette/neon/src/Neon/Node.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\ArrayItemNode' => $vendorDir . '/nette/neon/src/Neon/Node/ArrayItemNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\ArrayNode' => $vendorDir . '/nette/neon/src/Neon/Node/ArrayNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\BlockArrayNode' => $vendorDir . '/nette/neon/src/Neon/Node/BlockArrayNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\EntityChainNode' => $vendorDir . '/nette/neon/src/Neon/Node/EntityChainNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\EntityNode' => $vendorDir . '/nette/neon/src/Neon/Node/EntityNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\InlineArrayNode' => $vendorDir . '/nette/neon/src/Neon/Node/InlineArrayNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\LiteralNode' => $vendorDir . '/nette/neon/src/Neon/Node/LiteralNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\StringNode' => $vendorDir . '/nette/neon/src/Neon/Node/StringNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Parser' => $vendorDir . '/nette/neon/src/Neon/Parser.php', - 'RectorPrefix202308\\Nette\\Neon\\Token' => $vendorDir . '/nette/neon/src/Neon/Token.php', - 'RectorPrefix202308\\Nette\\Neon\\TokenStream' => $vendorDir . '/nette/neon/src/Neon/TokenStream.php', - 'RectorPrefix202308\\Nette\\Neon\\Traverser' => $vendorDir . '/nette/neon/src/Neon/Traverser.php', - 'RectorPrefix202308\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202308\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202308\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202308\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202308\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202308\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202308\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202308\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202308\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202308\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202308\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202308\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202308\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202308\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202308\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202308\\Nette\\Utils\\ObjectMixin' => $vendorDir . '/nette/utils/src/Utils/ObjectMixin.php', - 'RectorPrefix202308\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202308\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202308\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202308\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202308\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202308\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202308\\Psr\\Cache\\CacheException' => $vendorDir . '/psr/cache/src/CacheException.php', - 'RectorPrefix202308\\Psr\\Cache\\CacheItemInterface' => $vendorDir . '/psr/cache/src/CacheItemInterface.php', - 'RectorPrefix202308\\Psr\\Cache\\CacheItemPoolInterface' => $vendorDir . '/psr/cache/src/CacheItemPoolInterface.php', - 'RectorPrefix202308\\Psr\\Cache\\InvalidArgumentException' => $vendorDir . '/psr/cache/src/InvalidArgumentException.php', - 'RectorPrefix202308\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202308\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202308\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202308\\Psr\\EventDispatcher\\EventDispatcherInterface' => $vendorDir . '/psr/event-dispatcher/src/EventDispatcherInterface.php', - 'RectorPrefix202308\\Psr\\EventDispatcher\\ListenerProviderInterface' => $vendorDir . '/psr/event-dispatcher/src/ListenerProviderInterface.php', - 'RectorPrefix202308\\Psr\\EventDispatcher\\StoppableEventInterface' => $vendorDir . '/psr/event-dispatcher/src/StoppableEventInterface.php', - 'RectorPrefix202308\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202308\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202308\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202308\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', - 'RectorPrefix202308\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202308\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202308\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', - 'RectorPrefix202308\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202308\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202308\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', - 'RectorPrefix202308\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', - 'RectorPrefix202308\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', - 'RectorPrefix202308\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202308\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', - 'RectorPrefix202308\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', - 'RectorPrefix202308\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202308\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202308\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202308\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202308\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', - 'RectorPrefix202308\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202308\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202308\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202308\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202308\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202308\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', - 'RectorPrefix202308\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', - 'RectorPrefix202308\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202308\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202308\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202308\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202308\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202308\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202308\\React\\Promise\\CancellablePromiseInterface' => $vendorDir . '/react/promise/src/CancellablePromiseInterface.php', - 'RectorPrefix202308\\React\\Promise\\CancellationQueue' => $vendorDir . '/react/promise/src/CancellationQueue.php', - 'RectorPrefix202308\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', - 'RectorPrefix202308\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202308\\React\\Promise\\ExtendedPromiseInterface' => $vendorDir . '/react/promise/src/ExtendedPromiseInterface.php', - 'RectorPrefix202308\\React\\Promise\\FulfilledPromise' => $vendorDir . '/react/promise/src/FulfilledPromise.php', - 'RectorPrefix202308\\React\\Promise\\LazyPromise' => $vendorDir . '/react/promise/src/LazyPromise.php', - 'RectorPrefix202308\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', - 'RectorPrefix202308\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202308\\React\\Promise\\PromisorInterface' => $vendorDir . '/react/promise/src/PromisorInterface.php', - 'RectorPrefix202308\\React\\Promise\\RejectedPromise' => $vendorDir . '/react/promise/src/RejectedPromise.php', - 'RectorPrefix202308\\React\\Promise\\UnhandledRejectionException' => $vendorDir . '/react/promise/src/UnhandledRejectionException.php', - 'RectorPrefix202308\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', - 'RectorPrefix202308\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202308\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', - 'RectorPrefix202308\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202308\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202308\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', - 'RectorPrefix202308\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202308\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202308\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202308\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202308\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202308\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', - 'RectorPrefix202308\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', - 'RectorPrefix202308\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202308\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', - 'RectorPrefix202308\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202308\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202308\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', - 'RectorPrefix202308\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202308\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202308\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', - 'RectorPrefix202308\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202308\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202308\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202308\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202308\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202308\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202308\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', - 'RectorPrefix202308\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202308\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ClassBuilder' => $vendorDir . '/symfony/config/Builder/ClassBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ConfigBuilderGenerator' => $vendorDir . '/symfony/config/Builder/ConfigBuilderGenerator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ConfigBuilderGeneratorInterface' => $vendorDir . '/symfony/config/Builder/ConfigBuilderGeneratorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ConfigBuilderInterface' => $vendorDir . '/symfony/config/Builder/ConfigBuilderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\Method' => $vendorDir . '/symfony/config/Builder/Method.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\Property' => $vendorDir . '/symfony/config/Builder/Property.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCache' => $vendorDir . '/symfony/config/ConfigCache.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCacheFactory' => $vendorDir . '/symfony/config/ConfigCacheFactory.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCacheFactoryInterface' => $vendorDir . '/symfony/config/ConfigCacheFactoryInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCacheInterface' => $vendorDir . '/symfony/config/ConfigCacheInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ArrayNode' => $vendorDir . '/symfony/config/Definition/ArrayNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\BaseNode' => $vendorDir . '/symfony/config/Definition/BaseNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\BooleanNode' => $vendorDir . '/symfony/config/Definition/BooleanNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ArrayNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/ArrayNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\BooleanNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/BooleanNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\BuilderAwareInterface' => $vendorDir . '/symfony/config/Definition/Builder/BuilderAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\EnumNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/EnumNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ExprBuilder' => $vendorDir . '/symfony/config/Definition/Builder/ExprBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\FloatNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/FloatNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\IntegerNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/IntegerNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\MergeBuilder' => $vendorDir . '/symfony/config/Definition/Builder/MergeBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NodeBuilder' => $vendorDir . '/symfony/config/Definition/Builder/NodeBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/NodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NodeParentInterface' => $vendorDir . '/symfony/config/Definition/Builder/NodeParentInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NormalizationBuilder' => $vendorDir . '/symfony/config/Definition/Builder/NormalizationBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NumericNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/NumericNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ParentNodeDefinitionInterface' => $vendorDir . '/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ScalarNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/ScalarNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\TreeBuilder' => $vendorDir . '/symfony/config/Definition/Builder/TreeBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ValidationBuilder' => $vendorDir . '/symfony/config/Definition/Builder/ValidationBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\VariableNodeDefinition' => $vendorDir . '/symfony/config/Definition/Builder/VariableNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ConfigurableInterface' => $vendorDir . '/symfony/config/Definition/ConfigurableInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Configuration' => $vendorDir . '/symfony/config/Definition/Configuration.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ConfigurationInterface' => $vendorDir . '/symfony/config/Definition/ConfigurationInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Configurator\\DefinitionConfigurator' => $vendorDir . '/symfony/config/Definition/Configurator/DefinitionConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Dumper\\XmlReferenceDumper' => $vendorDir . '/symfony/config/Definition/Dumper/XmlReferenceDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Dumper\\YamlReferenceDumper' => $vendorDir . '/symfony/config/Definition/Dumper/YamlReferenceDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\EnumNode' => $vendorDir . '/symfony/config/Definition/EnumNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\DuplicateKeyException' => $vendorDir . '/symfony/config/Definition/Exception/DuplicateKeyException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\Exception' => $vendorDir . '/symfony/config/Definition/Exception/Exception.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\ForbiddenOverwriteException' => $vendorDir . '/symfony/config/Definition/Exception/ForbiddenOverwriteException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\InvalidConfigurationException' => $vendorDir . '/symfony/config/Definition/Exception/InvalidConfigurationException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\InvalidDefinitionException' => $vendorDir . '/symfony/config/Definition/Exception/InvalidDefinitionException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\InvalidTypeException' => $vendorDir . '/symfony/config/Definition/Exception/InvalidTypeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\UnsetKeyException' => $vendorDir . '/symfony/config/Definition/Exception/UnsetKeyException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\FloatNode' => $vendorDir . '/symfony/config/Definition/FloatNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\IntegerNode' => $vendorDir . '/symfony/config/Definition/IntegerNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Loader\\DefinitionFileLoader' => $vendorDir . '/symfony/config/Definition/Loader/DefinitionFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\NodeInterface' => $vendorDir . '/symfony/config/Definition/NodeInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\NumericNode' => $vendorDir . '/symfony/config/Definition/NumericNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Processor' => $vendorDir . '/symfony/config/Definition/Processor.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\PrototypeNodeInterface' => $vendorDir . '/symfony/config/Definition/PrototypeNodeInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\PrototypedArrayNode' => $vendorDir . '/symfony/config/Definition/PrototypedArrayNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ScalarNode' => $vendorDir . '/symfony/config/Definition/ScalarNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\VariableNode' => $vendorDir . '/symfony/config/Definition/VariableNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Exception\\FileLoaderImportCircularReferenceException' => $vendorDir . '/symfony/config/Exception/FileLoaderImportCircularReferenceException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Exception\\FileLocatorFileNotFoundException' => $vendorDir . '/symfony/config/Exception/FileLocatorFileNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Exception\\LoaderLoadException' => $vendorDir . '/symfony/config/Exception/LoaderLoadException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\FileLocator' => $vendorDir . '/symfony/config/FileLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\FileLocatorInterface' => $vendorDir . '/symfony/config/FileLocatorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\DelegatingLoader' => $vendorDir . '/symfony/config/Loader/DelegatingLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\DirectoryAwareLoaderInterface' => $vendorDir . '/symfony/config/Loader/DirectoryAwareLoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\FileLoader' => $vendorDir . '/symfony/config/Loader/FileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\GlobFileLoader' => $vendorDir . '/symfony/config/Loader/GlobFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\Loader' => $vendorDir . '/symfony/config/Loader/Loader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\LoaderInterface' => $vendorDir . '/symfony/config/Loader/LoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\LoaderResolver' => $vendorDir . '/symfony/config/Loader/LoaderResolver.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\LoaderResolverInterface' => $vendorDir . '/symfony/config/Loader/LoaderResolverInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\ParamConfigurator' => $vendorDir . '/symfony/config/Loader/ParamConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ResourceCheckerConfigCache' => $vendorDir . '/symfony/config/ResourceCheckerConfigCache.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ResourceCheckerConfigCacheFactory' => $vendorDir . '/symfony/config/ResourceCheckerConfigCacheFactory.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ResourceCheckerInterface' => $vendorDir . '/symfony/config/ResourceCheckerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ClassExistenceResource' => $vendorDir . '/symfony/config/Resource/ClassExistenceResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ComposerResource' => $vendorDir . '/symfony/config/Resource/ComposerResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\DirectoryResource' => $vendorDir . '/symfony/config/Resource/DirectoryResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\FileExistenceResource' => $vendorDir . '/symfony/config/Resource/FileExistenceResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\FileResource' => $vendorDir . '/symfony/config/Resource/FileResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\GlobResource' => $vendorDir . '/symfony/config/Resource/GlobResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ReflectionClassResource' => $vendorDir . '/symfony/config/Resource/ReflectionClassResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ResourceInterface' => $vendorDir . '/symfony/config/Resource/ResourceInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\SelfCheckingResourceChecker' => $vendorDir . '/symfony/config/Resource/SelfCheckingResourceChecker.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\SelfCheckingResourceInterface' => $vendorDir . '/symfony/config/Resource/SelfCheckingResourceInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Util\\Exception\\InvalidXmlException' => $vendorDir . '/symfony/config/Util/Exception/InvalidXmlException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Util\\Exception\\XmlParsingException' => $vendorDir . '/symfony/config/Util/Exception/XmlParsingException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Util\\XmlUtils' => $vendorDir . '/symfony/config/Util/XmlUtils.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Alias' => $vendorDir . '/symfony/dependency-injection/Alias.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\AbstractArgument' => $vendorDir . '/symfony/dependency-injection/Argument/AbstractArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ArgumentInterface' => $vendorDir . '/symfony/dependency-injection/Argument/ArgumentInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\BoundArgument' => $vendorDir . '/symfony/dependency-injection/Argument/BoundArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\IteratorArgument' => $vendorDir . '/symfony/dependency-injection/Argument/IteratorArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ReferenceSetArgumentTrait' => $vendorDir . '/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\RewindableGenerator' => $vendorDir . '/symfony/dependency-injection/Argument/RewindableGenerator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ServiceClosureArgument' => $vendorDir . '/symfony/dependency-injection/Argument/ServiceClosureArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocator' => $vendorDir . '/symfony/dependency-injection/Argument/ServiceLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocatorArgument' => $vendorDir . '/symfony/dependency-injection/Argument/ServiceLocatorArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\TaggedIteratorArgument' => $vendorDir . '/symfony/dependency-injection/Argument/TaggedIteratorArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\AsDecorator' => $vendorDir . '/symfony/dependency-injection/Attribute/AsDecorator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\AsTaggedItem' => $vendorDir . '/symfony/dependency-injection/Attribute/AsTaggedItem.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\Autoconfigure' => $vendorDir . '/symfony/dependency-injection/Attribute/Autoconfigure.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\AutoconfigureTag' => $vendorDir . '/symfony/dependency-injection/Attribute/AutoconfigureTag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\Autowire' => $vendorDir . '/symfony/dependency-injection/Attribute/Autowire.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\MapDecorated' => $vendorDir . '/symfony/dependency-injection/Attribute/MapDecorated.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\TaggedIterator' => $vendorDir . '/symfony/dependency-injection/Attribute/TaggedIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\TaggedLocator' => $vendorDir . '/symfony/dependency-injection/Attribute/TaggedLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\Target' => $vendorDir . '/symfony/dependency-injection/Attribute/Target.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\When' => $vendorDir . '/symfony/dependency-injection/Attribute/When.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ChildDefinition' => $vendorDir . '/symfony/dependency-injection/ChildDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AbstractRecursivePass' => $vendorDir . '/symfony/dependency-injection/Compiler/AbstractRecursivePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AliasDeprecatedPublicServicesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AnalyzeServiceReferencesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AttributeAutoconfigurationPass' => $vendorDir . '/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutoAliasServicePass' => $vendorDir . '/symfony/dependency-injection/Compiler/AutoAliasServicePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowireAsDecoratorPass' => $vendorDir . '/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowirePass' => $vendorDir . '/symfony/dependency-injection/Compiler/AutowirePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowireRequiredMethodsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowireRequiredPropertiesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckArgumentsValidityPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckCircularReferencesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckDefinitionValidityPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckReferenceValidityPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckTypeDeclarationsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\Compiler' => $vendorDir . '/symfony/dependency-injection/Compiler/Compiler.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface' => $vendorDir . '/symfony/dependency-injection/Compiler/CompilerPassInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\DecoratorServicePass' => $vendorDir . '/symfony/dependency-injection/Compiler/DecoratorServicePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\DefinitionErrorExceptionPass' => $vendorDir . '/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ExtensionCompilerPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\InlineServiceDefinitionsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\MergeExtensionConfigurationPass' => $vendorDir . '/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\PassConfig' => $vendorDir . '/symfony/dependency-injection/Compiler/PassConfig.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\PriorityTaggedServiceTrait' => $vendorDir . '/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterAutoconfigureAttributesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterEnvVarProcessorsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterReverseContainerPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterServiceSubscribersPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RemoveAbstractDefinitionsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RemovePrivateAliasesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RemoveUnusedDefinitionsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ReplaceAliasByActualDefinitionPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveBindingsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveBindingsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveChildDefinitionsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveClassPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveClassPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveDecoratorStackPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveEnvPlaceholdersPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveFactoryClassPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveHotPathPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveHotPathPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveInstanceofConditionalsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveInvalidReferencesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveNamedArgumentsPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveNoPreloadPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveParameterPlaceHoldersPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveReferencesToAliasesPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveServiceSubscribersPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveTaggedIteratorArgumentPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceLocatorTagPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraph' => $vendorDir . '/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphEdge' => $vendorDir . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphNode' => $vendorDir . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ValidateEnvPlaceholdersPass' => $vendorDir . '/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResource' => $vendorDir . '/symfony/dependency-injection/Config/ContainerParametersResource.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResourceChecker' => $vendorDir . '/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Container' => $vendorDir . '/symfony/dependency-injection/Container.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerAwareInterface' => $vendorDir . '/symfony/dependency-injection/ContainerAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerAwareTrait' => $vendorDir . '/symfony/dependency-injection/ContainerAwareTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerBuilder' => $vendorDir . '/symfony/dependency-injection/ContainerBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerInterface' => $vendorDir . '/symfony/dependency-injection/ContainerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Definition' => $vendorDir . '/symfony/dependency-injection/Definition.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\Dumper' => $vendorDir . '/symfony/dependency-injection/Dumper/Dumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\DumperInterface' => $vendorDir . '/symfony/dependency-injection/Dumper/DumperInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\GraphvizDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/GraphvizDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\PhpDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/PhpDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\Preloader' => $vendorDir . '/symfony/dependency-injection/Dumper/Preloader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\XmlDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/XmlDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\YamlDumper' => $vendorDir . '/symfony/dependency-injection/Dumper/YamlDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\EnvVarLoaderInterface' => $vendorDir . '/symfony/dependency-injection/EnvVarLoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\EnvVarProcessor' => $vendorDir . '/symfony/dependency-injection/EnvVarProcessor.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\EnvVarProcessorInterface' => $vendorDir . '/symfony/dependency-injection/EnvVarProcessorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\AutowiringFailedException' => $vendorDir . '/symfony/dependency-injection/Exception/AutowiringFailedException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\BadMethodCallException' => $vendorDir . '/symfony/dependency-injection/Exception/BadMethodCallException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\EnvNotFoundException' => $vendorDir . '/symfony/dependency-injection/Exception/EnvNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\EnvParameterException' => $vendorDir . '/symfony/dependency-injection/Exception/EnvParameterException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/dependency-injection/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/dependency-injection/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\InvalidParameterTypeException' => $vendorDir . '/symfony/dependency-injection/Exception/InvalidParameterTypeException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\LogicException' => $vendorDir . '/symfony/dependency-injection/Exception/LogicException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\OutOfBoundsException' => $vendorDir . '/symfony/dependency-injection/Exception/OutOfBoundsException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ParameterCircularReferenceException' => $vendorDir . '/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ParameterNotFoundException' => $vendorDir . '/symfony/dependency-injection/Exception/ParameterNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\RuntimeException' => $vendorDir . '/symfony/dependency-injection/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceCircularReferenceException' => $vendorDir . '/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceNotFoundException' => $vendorDir . '/symfony/dependency-injection/Exception/ServiceNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\AbstractExtension' => $vendorDir . '/symfony/dependency-injection/Extension/AbstractExtension.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ConfigurableExtensionInterface' => $vendorDir . '/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ConfigurationExtensionInterface' => $vendorDir . '/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\Extension' => $vendorDir . '/symfony/dependency-injection/Extension/Extension.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface' => $vendorDir . '/symfony/dependency-injection/Extension/ExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ExtensionTrait' => $vendorDir . '/symfony/dependency-injection/Extension/ExtensionTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\PrependExtensionInterface' => $vendorDir . '/symfony/dependency-injection/Extension/PrependExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\Instantiator\\InstantiatorInterface' => $vendorDir . '/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\Instantiator\\RealServiceInstantiator' => $vendorDir . '/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\PhpDumper\\DumperInterface' => $vendorDir . '/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\PhpDumper\\NullDumper' => $vendorDir . '/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\ProxyHelper' => $vendorDir . '/symfony/dependency-injection/LazyProxy/ProxyHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\ClosureLoader' => $vendorDir . '/symfony/dependency-injection/Loader/ClosureLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\AbstractConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\AbstractServiceConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\AliasConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ClosureReferenceConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ContainerConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\DefaultsConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\EnvConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\InlineServiceConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\InstanceofConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ParametersConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\PrototypeConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ReferenceConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ServiceConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ServicesConfigurator' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\AbstractTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ArgumentTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\AutoconfigureTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\AutowireTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\BindTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\CallTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ClassTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ConfiguratorTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\DecorateTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\DeprecateTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\FactoryTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\FileTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\LazyTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ParentTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\PropertyTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\PublicTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ShareTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\SyntheticTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\TagTrait' => $vendorDir . '/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\DirectoryLoader' => $vendorDir . '/symfony/dependency-injection/Loader/DirectoryLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\FileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/FileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\GlobFileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/GlobFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\IniFileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/IniFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\PhpFileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/PhpFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\XmlFileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/XmlFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\YamlFileLoader' => $vendorDir . '/symfony/dependency-injection/Loader/YamlFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Parameter' => $vendorDir . '/symfony/dependency-injection/Parameter.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ContainerBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\EnvPlaceholderParameterBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\FrozenParameterBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ParameterBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => $vendorDir . '/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Reference' => $vendorDir . '/symfony/dependency-injection/Reference.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ReverseContainer' => $vendorDir . '/symfony/dependency-injection/ReverseContainer.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ServiceLocator' => $vendorDir . '/symfony/dependency-injection/ServiceLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\TaggedContainerInterface' => $vendorDir . '/symfony/dependency-injection/TaggedContainerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\TypedReference' => $vendorDir . '/symfony/dependency-injection/TypedReference.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Variable' => $vendorDir . '/symfony/dependency-injection/Variable.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\AbstractString' => $vendorDir . '/symfony/string/AbstractString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\AbstractUnicodeString' => $vendorDir . '/symfony/string/AbstractUnicodeString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\ByteString' => $vendorDir . '/symfony/string/ByteString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\CodePointString' => $vendorDir . '/symfony/string/CodePointString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/string/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/string/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Exception\\RuntimeException' => $vendorDir . '/symfony/string/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Inflector\\EnglishInflector' => $vendorDir . '/symfony/string/Inflector/EnglishInflector.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Inflector\\FrenchInflector' => $vendorDir . '/symfony/string/Inflector/FrenchInflector.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Inflector\\InflectorInterface' => $vendorDir . '/symfony/string/Inflector/InflectorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\LazyString' => $vendorDir . '/symfony/string/LazyString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Slugger\\AsciiSlugger' => $vendorDir . '/symfony/string/Slugger/AsciiSlugger.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Slugger\\SluggerInterface' => $vendorDir . '/symfony/string/Slugger/SluggerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\UnicodeString' => $vendorDir . '/symfony/string/UnicodeString.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\CacheInterface' => $vendorDir . '/symfony/contracts/Cache/CacheInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\CacheTrait' => $vendorDir . '/symfony/contracts/Cache/CacheTrait.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\CallbackInterface' => $vendorDir . '/symfony/contracts/Cache/CallbackInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => $vendorDir . '/symfony/contracts/Cache/TagAwareCacheInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\EventDispatcher\\Event' => $vendorDir . '/symfony/contracts/EventDispatcher/Event.php', - 'RectorPrefix202308\\Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface' => $vendorDir . '/symfony/contracts/EventDispatcher/EventDispatcherInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\ChunkInterface' => $vendorDir . '/symfony/contracts/HttpClient/ChunkInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\ClientExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/ClientExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\DecodingExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/DecodingExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\HttpExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/HttpExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\RedirectionExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/RedirectionExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\ServerExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/ServerExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\TimeoutExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/TimeoutExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\TransportExceptionInterface' => $vendorDir . '/symfony/contracts/HttpClient/Exception/TransportExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\HttpClientInterface' => $vendorDir . '/symfony/contracts/HttpClient/HttpClientInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\ResponseInterface' => $vendorDir . '/symfony/contracts/HttpClient/ResponseInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\ResponseStreamInterface' => $vendorDir . '/symfony/contracts/HttpClient/ResponseStreamInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Test\\HttpClientTestCase' => $vendorDir . '/symfony/contracts/HttpClient/Test/HttpClientTestCase.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Test\\TestHttpServer' => $vendorDir . '/symfony/contracts/HttpClient/Test/TestHttpServer.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/contracts/Service/Attribute/Required.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/contracts/Service/Attribute/SubscribedService.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/contracts/Service/ResetInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/contracts/Service/ServiceLocatorTrait.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/contracts/Service/ServiceProviderInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/contracts/Service/ServiceSubscriberInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/contracts/Service/ServiceSubscriberTrait.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => $vendorDir . '/symfony/contracts/Service/Test/ServiceLocatorTest.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTestCase' => $vendorDir . '/symfony/contracts/Service/Test/ServiceLocatorTestCase.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\LocaleAwareInterface' => $vendorDir . '/symfony/contracts/Translation/LocaleAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\Test\\TranslatorTest' => $vendorDir . '/symfony/contracts/Translation/Test/TranslatorTest.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\TranslatableInterface' => $vendorDir . '/symfony/contracts/Translation/TranslatableInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\TranslatorInterface' => $vendorDir . '/symfony/contracts/Translation/TranslatorInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\TranslatorTrait' => $vendorDir . '/symfony/contracts/Translation/TranslatorTrait.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => $vendorDir . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', - 'RectorPrefix202308\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202308\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202308\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202309\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202309\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202309\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', + 'RectorPrefix202309\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', + 'RectorPrefix202309\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202309\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', + 'RectorPrefix202309\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', + 'RectorPrefix202309\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', + 'RectorPrefix202309\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', + 'RectorPrefix202309\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202309\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202309\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202309\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202309\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202309\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', + 'RectorPrefix202309\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202309\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202309\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202309\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202309\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202309\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202309\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202309\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202309\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', + 'RectorPrefix202309\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202309\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202309\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202309\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202309\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202309\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202309\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202309\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202309\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202309\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202309\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202309\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202309\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202309\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202309\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202309\\Nette\\Utils\\ObjectMixin' => $vendorDir . '/nette/utils/src/Utils/ObjectMixin.php', + 'RectorPrefix202309\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202309\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202309\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202309\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202309\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202309\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202309\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202309\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202309\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202309\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202309\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202309\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202309\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', + 'RectorPrefix202309\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202309\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202309\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202309\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202309\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202309\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', + 'RectorPrefix202309\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', + 'RectorPrefix202309\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', + 'RectorPrefix202309\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202309\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', + 'RectorPrefix202309\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', + 'RectorPrefix202309\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202309\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202309\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202309\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202309\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', + 'RectorPrefix202309\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202309\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202309\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202309\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202309\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202309\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', + 'RectorPrefix202309\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', + 'RectorPrefix202309\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202309\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202309\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202309\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202309\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202309\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202309\\React\\Promise\\CancellablePromiseInterface' => $vendorDir . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202309\\React\\Promise\\CancellationQueue' => $vendorDir . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202309\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', + 'RectorPrefix202309\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202309\\React\\Promise\\ExtendedPromiseInterface' => $vendorDir . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202309\\React\\Promise\\FulfilledPromise' => $vendorDir . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202309\\React\\Promise\\LazyPromise' => $vendorDir . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202309\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', + 'RectorPrefix202309\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202309\\React\\Promise\\PromisorInterface' => $vendorDir . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202309\\React\\Promise\\RejectedPromise' => $vendorDir . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202309\\React\\Promise\\UnhandledRejectionException' => $vendorDir . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202309\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', + 'RectorPrefix202309\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202309\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', + 'RectorPrefix202309\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202309\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202309\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', + 'RectorPrefix202309\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202309\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202309\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202309\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202309\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202309\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', + 'RectorPrefix202309\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', + 'RectorPrefix202309\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202309\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', + 'RectorPrefix202309\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202309\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202309\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', + 'RectorPrefix202309\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202309\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202309\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', + 'RectorPrefix202309\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202309\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202309\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202309\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202309\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202309\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202309\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', + 'RectorPrefix202309\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202309\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => $vendorDir . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202309\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202309\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202309\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', 'Rector\\Arguments\\ArgumentDefaultValueReplacer' => $baseDir . '/rules/Arguments/ArgumentDefaultValueReplacer.php', 'Rector\\Arguments\\Contract\\ReplaceArgumentDefaultValueInterface' => $baseDir . '/rules/Arguments/Contract/ReplaceArgumentDefaultValueInterface.php', 'Rector\\Arguments\\NodeAnalyzer\\ArgumentAddingScope' => $baseDir . '/rules/Arguments/NodeAnalyzer/ArgumentAddingScope.php', @@ -1258,15 +933,11 @@ 'Rector\\Arguments\\Rector\\ClassMethod\\ArgumentAdderRector' => $baseDir . '/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php', 'Rector\\Arguments\\Rector\\ClassMethod\\ReplaceArgumentDefaultValueRector' => $baseDir . '/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php', 'Rector\\Arguments\\Rector\\FuncCall\\FunctionArgumentDefaultValueReplacerRector' => $baseDir . '/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php', - 'Rector\\Arguments\\Rector\\FuncCall\\SwapFuncCallArgumentsRector' => $baseDir . '/rules/Arguments/Rector/FuncCall/SwapFuncCallArgumentsRector.php', 'Rector\\Arguments\\Rector\\MethodCall\\RemoveMethodCallParamRector' => $baseDir . '/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php', - 'Rector\\Arguments\\Rector\\MethodCall\\SwapMethodCallArgumentsRector' => $baseDir . '/rules/Arguments/Rector/MethodCall/SwapMethodCallArgumentsRector.php', 'Rector\\Arguments\\ValueObject\\ArgumentAdder' => $baseDir . '/rules/Arguments/ValueObject/ArgumentAdder.php', 'Rector\\Arguments\\ValueObject\\RemoveMethodCallParam' => $baseDir . '/rules/Arguments/ValueObject/RemoveMethodCallParam.php', 'Rector\\Arguments\\ValueObject\\ReplaceArgumentDefaultValue' => $baseDir . '/rules/Arguments/ValueObject/ReplaceArgumentDefaultValue.php', 'Rector\\Arguments\\ValueObject\\ReplaceFuncCallArgumentDefaultValue' => $baseDir . '/rules/Arguments/ValueObject/ReplaceFuncCallArgumentDefaultValue.php', - 'Rector\\Arguments\\ValueObject\\SwapFuncCallArguments' => $baseDir . '/rules/Arguments/ValueObject/SwapFuncCallArguments.php', - 'Rector\\Arguments\\ValueObject\\SwapMethodCallArguments' => $baseDir . '/rules/Arguments/ValueObject/SwapMethodCallArguments.php', 'Rector\\BetterPhpDocParser\\Annotation\\AnnotationNaming' => $baseDir . '/packages/BetterPhpDocParser/Annotation/AnnotationNaming.php', 'Rector\\BetterPhpDocParser\\Attributes\\AttributeMirrorer' => $baseDir . '/packages/BetterPhpDocParser/Attributes/AttributeMirrorer.php', 'Rector\\BetterPhpDocParser\\Comment\\CommentsMerger' => $baseDir . '/packages/BetterPhpDocParser/Comment/CommentsMerger.php', @@ -1325,7 +996,6 @@ 'Rector\\Caching\\Contract\\ValueObject\\Storage\\CacheStorageInterface' => $baseDir . '/packages/Caching/Contract/ValueObject/Storage/CacheStorageInterface.php', 'Rector\\Caching\\Detector\\ChangedFilesDetector' => $baseDir . '/packages/Caching/Detector/ChangedFilesDetector.php', 'Rector\\Caching\\Enum\\CacheKey' => $baseDir . '/packages/Caching/Enum/CacheKey.php', - 'Rector\\Caching\\FileSystem\\DependencyResolver' => $baseDir . '/packages/Caching/FileSystem/DependencyResolver.php', 'Rector\\Caching\\UnchangedFilesFilter' => $baseDir . '/packages/Caching/UnchangedFilesFilter.php', 'Rector\\Caching\\ValueObject\\CacheFilePaths' => $baseDir . '/packages/Caching/ValueObject/CacheFilePaths.php', 'Rector\\Caching\\ValueObject\\CacheItem' => $baseDir . '/packages/Caching/ValueObject/CacheItem.php', @@ -1414,6 +1084,7 @@ 'Rector\\CodeQuality\\Rector\\Switch_\\SingularSwitchToIfRector' => $baseDir . '/rules/CodeQuality/Rector/Switch_/SingularSwitchToIfRector.php', 'Rector\\CodeQuality\\Rector\\Switch_\\SwitchTrueToIfRector' => $baseDir . '/rules/CodeQuality/Rector/Switch_/SwitchTrueToIfRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\ArrayKeyExistsTernaryThenValueToCoalescingRector' => $baseDir . '/rules/CodeQuality/Rector/Ternary/ArrayKeyExistsTernaryThenValueToCoalescingRector.php', + 'Rector\\CodeQuality\\Rector\\Ternary\\NumberCompareToMaxFuncCallRector' => $baseDir . '/rules/CodeQuality/Rector/Ternary/NumberCompareToMaxFuncCallRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\SimplifyTautologyTernaryRector' => $baseDir . '/rules/CodeQuality/Rector/Ternary/SimplifyTautologyTernaryRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\SwitchNegatedTernaryRector' => $baseDir . '/rules/CodeQuality/Rector/Ternary/SwitchNegatedTernaryRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\TernaryEmptyArrayArrayDimFetchToCoalesceRector' => $baseDir . '/rules/CodeQuality/Rector/Ternary/TernaryEmptyArrayArrayDimFetchToCoalesceRector.php', @@ -1476,7 +1147,6 @@ 'Rector\\Comments\\NodeDocBlock\\DocBlockUpdater' => $baseDir . '/packages/Comments/NodeDocBlock/DocBlockUpdater.php', 'Rector\\Comments\\NodeTraverser\\CommentRemovingNodeTraverser' => $baseDir . '/packages/Comments/NodeTraverser/CommentRemovingNodeTraverser.php', 'Rector\\Comments\\NodeVisitor\\CommentRemovingNodeVisitor' => $baseDir . '/packages/Comments/NodeVisitor/CommentRemovingNodeVisitor.php', - 'Rector\\Config\\LazyRectorConfig' => $baseDir . '/packages/Config/LazyRectorConfig.php', 'Rector\\Config\\RectorConfig' => $baseDir . '/packages/Config/RectorConfig.php', 'Rector\\Core\\Application\\ApplicationFileProcessor' => $baseDir . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Core\\Application\\ChangedNodeScopeRefresher' => $baseDir . '/src/Application/ChangedNodeScopeRefresher.php', @@ -1487,14 +1157,12 @@ 'Rector\\Core\\Autoloading\\BootstrapFilesIncluder' => $baseDir . '/src/Autoloading/BootstrapFilesIncluder.php', 'Rector\\Core\\Bootstrap\\ExtensionConfigResolver' => $baseDir . '/src/Bootstrap/ExtensionConfigResolver.php', 'Rector\\Core\\Bootstrap\\RectorConfigsResolver' => $baseDir . '/src/Bootstrap/RectorConfigsResolver.php', - 'Rector\\Core\\Config\\Loader\\ConfigureCallMergingLoaderFactory' => $baseDir . '/src/Config/Loader/ConfigureCallMergingLoaderFactory.php', 'Rector\\Core\\Configuration\\ConfigInitializer' => $baseDir . '/src/Configuration/ConfigInitializer.php', 'Rector\\Core\\Configuration\\ConfigurationFactory' => $baseDir . '/src/Configuration/ConfigurationFactory.php', 'Rector\\Core\\Configuration\\CurrentNodeProvider' => $baseDir . '/src/Configuration/CurrentNodeProvider.php', 'Rector\\Core\\Configuration\\Option' => $baseDir . '/src/Configuration/Option.php', 'Rector\\Core\\Configuration\\Parameter\\SimpleParameterProvider' => $baseDir . '/src/Configuration/Parameter/SimpleParameterProvider.php', 'Rector\\Core\\Configuration\\RenamedClassesDataCollector' => $baseDir . '/src/Configuration/RenamedClassesDataCollector.php', - 'Rector\\Core\\Configuration\\ValueObjectInliner' => $baseDir . '/src/Configuration/ValueObjectInliner.php', 'Rector\\Core\\Console\\Command\\ListRulesCommand' => $baseDir . '/src/Console/Command/ListRulesCommand.php', 'Rector\\Core\\Console\\Command\\ProcessCommand' => $baseDir . '/src/Console/Command/ProcessCommand.php', 'Rector\\Core\\Console\\Command\\SetupCICommand' => $baseDir . '/src/Console/Command/SetupCICommand.php', @@ -1508,19 +1176,14 @@ 'Rector\\Core\\Console\\ProcessConfigureDecorator' => $baseDir . '/src/Console/ProcessConfigureDecorator.php', 'Rector\\Core\\Console\\Style\\RectorStyle' => $baseDir . '/src/Console/Style/RectorStyle.php', 'Rector\\Core\\Console\\Style\\SymfonyStyleFactory' => $baseDir . '/src/Console/Style/SymfonyStyleFactory.php', - 'Rector\\Core\\Contract\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\TypeToCallReflectionResolverInterface' => $baseDir . '/src/Contract/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverInterface.php', + 'Rector\\Core\\Contract\\DependencyInjection\\ResetableInterface' => $baseDir . '/src/Contract/DependencyInjection/ResetableInterface.php', 'Rector\\Core\\Contract\\PhpParser\\Node\\StmtsAwareInterface' => $baseDir . '/src/Contract/PhpParser/Node/StmtsAwareInterface.php', - 'Rector\\Core\\Contract\\Processor\\FileProcessorInterface' => $baseDir . '/src/Contract/Processor/FileProcessorInterface.php', 'Rector\\Core\\Contract\\Rector\\ConfigurableRectorInterface' => $baseDir . '/src/Contract/Rector/ConfigurableRectorInterface.php', 'Rector\\Core\\Contract\\Rector\\NonPhpRectorInterface' => $baseDir . '/src/Contract/Rector/NonPhpRectorInterface.php', - 'Rector\\Core\\Contract\\Rector\\PhpRectorInterface' => $baseDir . '/src/Contract/Rector/PhpRectorInterface.php', 'Rector\\Core\\Contract\\Rector\\RectorInterface' => $baseDir . '/src/Contract/Rector/RectorInterface.php', - 'Rector\\Core\\Contract\\Rector\\ScopeAwarePhpRectorInterface' => $baseDir . '/src/Contract/Rector/ScopeAwarePhpRectorInterface.php', - 'Rector\\Core\\DependencyInjection\\Collector\\ConfigureCallValuesCollector' => $baseDir . '/src/DependencyInjection/Collector/ConfigureCallValuesCollector.php', - 'Rector\\Core\\DependencyInjection\\CompilerPass\\MergeImportedRectorConfigureCallValuesCompilerPass' => $baseDir . '/src/DependencyInjection/CompilerPass/MergeImportedRectorConfigureCallValuesCompilerPass.php', - 'Rector\\Core\\DependencyInjection\\CompilerPass\\RemoveSkippedRectorsCompilerPass' => $baseDir . '/src/DependencyInjection/CompilerPass/RemoveSkippedRectorsCompilerPass.php', + 'Rector\\Core\\Contract\\Rector\\ScopeAwareRectorInterface' => $baseDir . '/src/Contract/Rector/ScopeAwareRectorInterface.php', + 'Rector\\Core\\DependencyInjection\\Laravel\\ContainerMemento' => $baseDir . '/src/DependencyInjection/Laravel/ContainerMemento.php', 'Rector\\Core\\DependencyInjection\\LazyContainerFactory' => $baseDir . '/src/DependencyInjection/LazyContainerFactory.php', - 'Rector\\Core\\DependencyInjection\\Loader\\ConfigurableCallValuesCollectingPhpFileLoader' => $baseDir . '/src/DependencyInjection/Loader/ConfigurableCallValuesCollectingPhpFileLoader.php', 'Rector\\Core\\DependencyInjection\\RectorContainerFactory' => $baseDir . '/src/DependencyInjection/RectorContainerFactory.php', 'Rector\\Core\\Differ\\DefaultDiffer' => $baseDir . '/src/Differ/DefaultDiffer.php', 'Rector\\Core\\Enum\\ObjectReference' => $baseDir . '/src/Enum/ObjectReference.php', @@ -1537,10 +1200,6 @@ 'Rector\\Core\\FileSystem\\FilesFinder' => $baseDir . '/src/FileSystem/FilesFinder.php', 'Rector\\Core\\FileSystem\\FilesystemTweaker' => $baseDir . '/src/FileSystem/FilesystemTweaker.php', 'Rector\\Core\\FileSystem\\InitFilePathsResolver' => $baseDir . '/src/FileSystem/InitFilePathsResolver.php', - 'Rector\\Core\\FileSystem\\PhpFilesFinder' => $baseDir . '/src/FileSystem/PhpFilesFinder.php', - 'Rector\\Core\\Kernel\\ContainerBuilderBuilder' => $baseDir . '/src/Kernel/ContainerBuilderBuilder.php', - 'Rector\\Core\\Kernel\\ContainerBuilderFactory' => $baseDir . '/src/Kernel/ContainerBuilderFactory.php', - 'Rector\\Core\\Kernel\\RectorKernel' => $baseDir . '/src/Kernel/RectorKernel.php', 'Rector\\Core\\Logging\\CurrentRectorProvider' => $baseDir . '/src/Logging/CurrentRectorProvider.php', 'Rector\\Core\\Logging\\RectorOutput' => $baseDir . '/src/Logging/RectorOutput.php', 'Rector\\Core\\NodeAnalyzer\\ArgsAnalyzer' => $baseDir . '/src/NodeAnalyzer/ArgsAnalyzer.php', @@ -1579,15 +1238,9 @@ 'Rector\\Core\\NodeManipulator\\PropertyFetchAssignManipulator' => $baseDir . '/src/NodeManipulator/PropertyFetchAssignManipulator.php', 'Rector\\Core\\NodeManipulator\\PropertyManipulator' => $baseDir . '/src/NodeManipulator/PropertyManipulator.php', 'Rector\\Core\\NodeManipulator\\StmtsManipulator' => $baseDir . '/src/NodeManipulator/StmtsManipulator.php', - 'Rector\\Core\\NonPhpFile\\NonPhpFileProcessor' => $baseDir . '/src/NonPhpFile/NonPhpFileProcessor.php', - 'Rector\\Core\\NonPhpFile\\Rector\\RenameClassNonPhpRector' => $baseDir . '/src/NonPhpFile/Rector/RenameClassNonPhpRector.php', + 'Rector\\Core\\PHPStan\\NodeVisitor\\ExprScopeFromStmtNodeVisitor' => $baseDir . '/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php', 'Rector\\Core\\PHPStan\\NodeVisitor\\UnreachableStatementNodeVisitor' => $baseDir . '/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php', 'Rector\\Core\\PHPStan\\NodeVisitor\\WrappedNodeRestoringNodeVisitor' => $baseDir . '/src/PHPStan/NodeVisitor/WrappedNodeRestoringNodeVisitor.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ClosureTypeToCallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantArrayTypeToCallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantStringTypeToCallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ObjectTypeToCallReflectionResolver' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ObjectTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\TypeToCallReflectionResolverRegistry' => $baseDir . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverRegistry.php', 'Rector\\Core\\PhpParser\\AstResolver' => $baseDir . '/src/PhpParser/AstResolver.php', 'Rector\\Core\\PhpParser\\ClassLikeAstResolver' => $baseDir . '/src/PhpParser/ClassLikeAstResolver.php', 'Rector\\Core\\PhpParser\\Comparing\\NodeComparator' => $baseDir . '/src/PhpParser/Comparing/NodeComparator.php', @@ -1718,6 +1371,7 @@ 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\CorrectDefaultTypesOnEntityPropertyRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\ImproveDoctrineCollectionDocTypeInEntityRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/ImproveDoctrineCollectionDocTypeInEntityRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\MakeEntityDateTimePropertyDateTimeInterfaceRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/MakeEntityDateTimePropertyDateTimeInterfaceRector.php', + 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\OrderByKeyToClassConstRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/OrderByKeyToClassConstRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\TypedPropertyFromColumnTypeRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\TypedPropertyFromDoctrineCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromDoctrineCollectionRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\TypedPropertyFromToManyRelationTypeRector' => $vendorDir . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromToManyRelationTypeRector.php', @@ -1829,6 +1483,8 @@ 'Rector\\DowngradePhp81\\Rector\\FunctionLike\\DowngradeNewInInitializerRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradeNewInInitializerRector.php', 'Rector\\DowngradePhp81\\Rector\\FunctionLike\\DowngradePureIntersectionTypeRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradePureIntersectionTypeRector.php', 'Rector\\DowngradePhp81\\Rector\\Instanceof_\\DowngradePhp81ResourceReturnToObjectRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Instanceof_/DowngradePhp81ResourceReturnToObjectRector.php', + 'Rector\\DowngradePhp81\\Rector\\LNumber\\DowngradeOctalNumberRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/LNumber/DowngradeOctalNumberRector.php', + 'Rector\\DowngradePhp81\\Rector\\MethodCall\\DowngradeIsEnumRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/MethodCall/DowngradeIsEnumRector.php', 'Rector\\DowngradePhp81\\Rector\\Property\\DowngradeReadonlyPropertyRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Property/DowngradeReadonlyPropertyRector.php', 'Rector\\DowngradePhp81\\Rector\\StmtsAwareInterface\\DowngradeSetAccessibleReflectionPropertyRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php', 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeReadonlyClassRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeReadonlyClassRector.php', @@ -1915,7 +1571,6 @@ 'Rector\\NodeNameResolver\\NodeNameResolver\\ClassConstFetchNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver/ClassConstFetchNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\ClassConstNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver/ClassConstNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\ClassNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver/ClassNameResolver.php', - 'Rector\\NodeNameResolver\\NodeNameResolver\\EmptyNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver/EmptyNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\FuncCallNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver/FuncCallNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\FunctionNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver/FunctionNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\NameNameResolver' => $baseDir . '/packages/NodeNameResolver/NodeNameResolver/NameNameResolver.php', @@ -1928,8 +1583,6 @@ 'Rector\\NodeNestingScope\\ValueObject\\ControlStructure' => $baseDir . '/packages/NodeNestingScope/ValueObject/ControlStructure.php', 'Rector\\NodeTypeResolver\\Contract\\NodeTypeResolverAwareInterface' => $baseDir . '/packages/NodeTypeResolver/Contract/NodeTypeResolverAwareInterface.php', 'Rector\\NodeTypeResolver\\Contract\\NodeTypeResolverInterface' => $baseDir . '/packages/NodeTypeResolver/Contract/NodeTypeResolverInterface.php', - 'Rector\\NodeTypeResolver\\DependencyInjection\\BleedingEdgeIncludePurifier' => $baseDir . '/packages/NodeTypeResolver/DependencyInjection/BleedingEdgeIncludePurifier.php', - 'Rector\\NodeTypeResolver\\DependencyInjection\\PHPStanExtensionsConfigResolver' => $baseDir . '/packages/NodeTypeResolver/DependencyInjection/PHPStanExtensionsConfigResolver.php', 'Rector\\NodeTypeResolver\\DependencyInjection\\PHPStanServicesFactory' => $baseDir . '/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php', 'Rector\\NodeTypeResolver\\NodeScopeAndMetadataDecorator' => $baseDir . '/packages/NodeTypeResolver/NodeScopeAndMetadataDecorator.php', 'Rector\\NodeTypeResolver\\NodeTypeCorrector\\AccessoryNonEmptyStringTypeCorrector' => $baseDir . '/packages/NodeTypeResolver/NodeTypeCorrector/AccessoryNonEmptyStringTypeCorrector.php', @@ -2086,6 +1739,7 @@ 'Rector\\PHPUnit\\PhpDoc\\PhpDocValueToNodeMapper' => $vendorDir . '/rector/rector-phpunit/src/PhpDoc/PhpDocValueToNodeMapper.php', 'Rector\\PHPUnit\\Rector\\ClassMethod\\CreateMockToAnonymousClassRector' => $vendorDir . '/rector/rector-phpunit/src/Rector/ClassMethod/CreateMockToAnonymousClassRector.php', 'Rector\\PHPUnit\\Rector\\Class_\\PreferPHPUnitSelfCallRector' => $vendorDir . '/rector/rector-phpunit/src/Rector/Class_/PreferPHPUnitSelfCallRector.php', + 'Rector\\PHPUnit\\Rector\\StmtsAwareInterface\\WithConsecutiveRector' => $vendorDir . '/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php', 'Rector\\PHPUnit\\Set\\PHPUnitLevelSetList' => $vendorDir . '/rector/rector-phpunit/src/Set/PHPUnitLevelSetList.php', 'Rector\\PHPUnit\\Set\\PHPUnitSetList' => $vendorDir . '/rector/rector-phpunit/src/Set/PHPUnitSetList.php', 'Rector\\PHPUnit\\ValueObject\\AnnotationWithValueToAttribute' => $vendorDir . '/rector/rector-phpunit/src/ValueObject/AnnotationWithValueToAttribute.php', @@ -2243,7 +1897,6 @@ 'Rector\\Php81\\Rector\\Class_\\MyCLabsClassToEnumRector' => $baseDir . '/rules/Php81/Rector/Class_/MyCLabsClassToEnumRector.php', 'Rector\\Php81\\Rector\\Class_\\SpatieEnumClassToEnumRector' => $baseDir . '/rules/Php81/Rector/Class_/SpatieEnumClassToEnumRector.php', 'Rector\\Php81\\Rector\\FuncCall\\NullToStrictStringFuncCallArgRector' => $baseDir . '/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php', - 'Rector\\Php81\\Rector\\FunctionLike\\IntersectionTypesRector' => $baseDir . '/rules/Php81/Rector/FunctionLike/IntersectionTypesRector.php', 'Rector\\Php81\\Rector\\MethodCall\\MyCLabsMethodCallToEnumConstRector' => $baseDir . '/rules/Php81/Rector/MethodCall/MyCLabsMethodCallToEnumConstRector.php', 'Rector\\Php81\\Rector\\MethodCall\\SpatieEnumMethodCallToEnumConstRector' => $baseDir . '/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php', 'Rector\\Php81\\Rector\\Property\\ReadOnlyPropertyRector' => $baseDir . '/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php', @@ -2287,7 +1940,6 @@ 'Rector\\PostRector\\Application\\PostFileProcessor' => $baseDir . '/packages/PostRector/Application/PostFileProcessor.php', 'Rector\\PostRector\\Collector\\UseNodesToAddCollector' => $baseDir . '/packages/PostRector/Collector/UseNodesToAddCollector.php', 'Rector\\PostRector\\Contract\\Collector\\NodeCollectorInterface' => $baseDir . '/packages/PostRector/Contract/Collector/NodeCollectorInterface.php', - 'Rector\\PostRector\\Contract\\Rector\\PostRectorDependencyInterface' => $baseDir . '/packages/PostRector/Contract/Rector/PostRectorDependencyInterface.php', 'Rector\\PostRector\\Contract\\Rector\\PostRectorInterface' => $baseDir . '/packages/PostRector/Contract/Rector/PostRectorInterface.php', 'Rector\\PostRector\\Rector\\AbstractPostRector' => $baseDir . '/packages/PostRector/Rector/AbstractPostRector.php', 'Rector\\PostRector\\Rector\\ClassRenamingPostRector' => $baseDir . '/packages/PostRector/Rector/ClassRenamingPostRector.php', @@ -2529,6 +2181,7 @@ 'Rector\\Symfony\\Symfony61\\Rector\\Class_\\CommandPropertyToAttributeRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony61/Rector/Class_/CommandPropertyToAttributeRector.php', 'Rector\\Symfony\\Symfony61\\Rector\\Class_\\MagicClosureTwigExtensionToNativeMethodsRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony61/Rector/Class_/MagicClosureTwigExtensionToNativeMethodsRector.php', 'Rector\\Symfony\\Symfony61\\Rector\\StaticPropertyFetch\\ErrorNamesPropertyToConstantRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony61/Rector/StaticPropertyFetch/ErrorNamesPropertyToConstantRector.php', + 'Rector\\Symfony\\Symfony62\\Rector\\ClassMethod\\ClassMethod\\ArgumentValueResolverToValueResolverRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php', 'Rector\\Symfony\\Symfony62\\Rector\\ClassMethod\\ParamConverterAttributeToMapEntityAttributeRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ParamConverterAttributeToMapEntityAttributeRector.php', 'Rector\\Symfony\\Symfony62\\Rector\\Class_\\MessageHandlerInterfaceToAttributeRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageHandlerInterfaceToAttributeRector.php', 'Rector\\Symfony\\Symfony62\\Rector\\Class_\\MessageSubscriberInterfaceToAttributeRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageSubscriberInterfaceToAttributeRector.php', @@ -2614,6 +2267,7 @@ 'Rector\\TypeDeclaration\\AlreadyAssignDetector\\PropertyDefaultAssignDetector' => $baseDir . '/rules/TypeDeclaration/AlreadyAssignDetector/PropertyDefaultAssignDetector.php', 'Rector\\TypeDeclaration\\Contract\\PHPStan\\TypeWithClassTypeSpecifierInterface' => $baseDir . '/rules/TypeDeclaration/Contract/PHPStan/TypeWithClassTypeSpecifierInterface.php', 'Rector\\TypeDeclaration\\FunctionLikeReturnTypeResolver' => $baseDir . '/rules/TypeDeclaration/FunctionLikeReturnTypeResolver.php', + 'Rector\\TypeDeclaration\\Guard\\ParamTypeAddGuard' => $baseDir . '/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php', 'Rector\\TypeDeclaration\\Guard\\PropertyTypeOverrideGuard' => $baseDir . '/rules/TypeDeclaration/Guard/PropertyTypeOverrideGuard.php', 'Rector\\TypeDeclaration\\Matcher\\PropertyAssignMatcher' => $baseDir . '/rules/TypeDeclaration/Matcher/PropertyAssignMatcher.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\AutowiredClassMethodOrPropertyAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php', @@ -2654,6 +2308,7 @@ 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromReturnNewRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromReturnNewRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictBoolReturnExprRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictBoolReturnExprRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictConstantReturnRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictConstantReturnRector.php', + 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictFluentReturnRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictFluentReturnRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNativeCallRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNewArrayRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictParamRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php', @@ -2712,7 +2367,6 @@ 'Rector\\Visibility\\Rector\\ClassMethod\\ExplicitPublicClassMethodRector' => $baseDir . '/rules/Visibility/Rector/ClassMethod/ExplicitPublicClassMethodRector.php', 'Rector\\Visibility\\ValueObject\\ChangeConstantVisibility' => $baseDir . '/rules/Visibility/ValueObject/ChangeConstantVisibility.php', 'Rector\\Visibility\\ValueObject\\ChangeMethodVisibility' => $baseDir . '/rules/Visibility/ValueObject/ChangeMethodVisibility.php', - 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php', 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', 'Symplify\\RuleDocGenerator\\Contract\\Category\\CategoryInfererInterface' => $vendorDir . '/symplify/rule-doc-generator-contracts/src/Contract/Category/CategoryInfererInterface.php', 'Symplify\\RuleDocGenerator\\Contract\\CodeSampleInterface' => $vendorDir . '/symplify/rule-doc-generator-contracts/src/Contract/CodeSampleInterface.php', diff --git a/vendor/rector/rector/vendor/composer/autoload_files.php b/vendor/rector/rector/vendor/composer/autoload_files.php index 8d7c3965d..326b9402f 100644 --- a/vendor/rector/rector/vendor/composer/autoload_files.php +++ b/vendor/rector/rector/vendor/composer/autoload_files.php @@ -8,10 +8,7 @@ return array( 'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', - 'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php', '9b38cf48e83f5d8f60375221cd213eee' => $vendorDir . '/phpstan/phpstan/bootstrap.php', - '2324d0e5cadd603331d27de142371f0b' => $vendorDir . '/symfony/contracts/Deprecation/function.php', '4508688f3cab21375725e8d11ca194a2' => $baseDir . '/src/constants.php', '30bca7fff093e8069bed7c55247e2bf8' => $baseDir . '/src/functions/node_helper.php', ); diff --git a/vendor/rector/rector/vendor/composer/autoload_psr4.php b/vendor/rector/rector/vendor/composer/autoload_psr4.php index 8729c7158..635b408f1 100644 --- a/vendor/rector/rector/vendor/composer/autoload_psr4.php +++ b/vendor/rector/rector/vendor/composer/autoload_psr4.php @@ -8,7 +8,6 @@ return array( 'Symplify\\RuleDocGenerator\\' => array($vendorDir . '/symplify/rule-doc-generator-contracts/src'), 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), 'Rector\\Utils\\' => array($baseDir . '/utils'), 'Rector\\Symfony\\' => array($vendorDir . '/rector/rector-symfony/src', $vendorDir . '/rector/rector-symfony/rules'), 'Rector\\RectorInstaller\\' => array($vendorDir . '/rector/extension-installer/src'), @@ -16,38 +15,33 @@ 'Rector\\Doctrine\\' => array($vendorDir . '/rector/rector-doctrine/src', $vendorDir . '/rector/rector-doctrine/rules'), 'Rector\\Core\\' => array($baseDir . '/src'), 'Rector\\' => array($baseDir . '/packages', $baseDir . '/rules', $vendorDir . '/rector/rector-downgrade-php/src', $vendorDir . '/rector/rector-downgrade-php/rules'), - 'RectorPrefix202308\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'RectorPrefix202308\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), - 'RectorPrefix202308\\Symfony\\Contracts\\' => array($vendorDir . '/symfony/contracts'), - 'RectorPrefix202308\\Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'), - 'RectorPrefix202308\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), - 'RectorPrefix202308\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\' => array($vendorDir . '/symfony/dependency-injection'), - 'RectorPrefix202308\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'RectorPrefix202308\\Symfony\\Component\\Config\\' => array($vendorDir . '/symfony/config'), - 'RectorPrefix202308\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), - 'RectorPrefix202308\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), - 'RectorPrefix202308\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), - 'RectorPrefix202308\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), - 'RectorPrefix202308\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), - 'RectorPrefix202308\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), - 'RectorPrefix202308\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), - 'RectorPrefix202308\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), - 'RectorPrefix202308\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), - 'RectorPrefix202308\\Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'), - 'RectorPrefix202308\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'RectorPrefix202308\\Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'), - 'RectorPrefix202308\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), - 'RectorPrefix202308\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), - 'RectorPrefix202308\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), - 'RectorPrefix202308\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), - 'RectorPrefix202308\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), - 'RectorPrefix202308\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), - 'RectorPrefix202308\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), - 'RectorPrefix202308\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), - 'RectorPrefix202308\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), + 'RectorPrefix202309\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'RectorPrefix202309\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), + 'RectorPrefix202309\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), + 'RectorPrefix202309\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), + 'RectorPrefix202309\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), + 'RectorPrefix202309\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), + 'RectorPrefix202309\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), + 'RectorPrefix202309\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), + 'RectorPrefix202309\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), + 'RectorPrefix202309\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), + 'RectorPrefix202309\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), + 'RectorPrefix202309\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), + 'RectorPrefix202309\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), + 'RectorPrefix202309\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), + 'RectorPrefix202309\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'RectorPrefix202309\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), + 'RectorPrefix202309\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), + 'RectorPrefix202309\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), + 'RectorPrefix202309\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), + 'RectorPrefix202309\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), + 'RectorPrefix202309\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), + 'RectorPrefix202309\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), + 'RectorPrefix202309\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), + 'RectorPrefix202309\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'PHPStan\\PhpDocParser\\' => array($vendorDir . '/phpstan/phpdoc-parser/src'), ); diff --git a/vendor/rector/rector/vendor/composer/autoload_real.php b/vendor/rector/rector/vendor/composer/autoload_real.php index c3d06d24c..01ae8ee48 100644 --- a/vendor/rector/rector/vendor/composer/autoload_real.php +++ b/vendor/rector/rector/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit5e920a093e34449f6b8d6b06417344ef +class ComposerAutoloaderInit02014386848e211b9ef5012c0cc91b7c { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit5e920a093e34449f6b8d6b06417344ef', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit02014386848e211b9ef5012c0cc91b7c', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit5e920a093e34449f6b8d6b06417344ef', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit02014386848e211b9ef5012c0cc91b7c', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit5e920a093e34449f6b8d6b06417344ef::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit02014386848e211b9ef5012c0cc91b7c::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit5e920a093e34449f6b8d6b06417344ef::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit02014386848e211b9ef5012c0cc91b7c::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/rector/rector/vendor/composer/autoload_static.php b/vendor/rector/rector/vendor/composer/autoload_static.php index ee09bc760..062164f7e 100644 --- a/vendor/rector/rector/vendor/composer/autoload_static.php +++ b/vendor/rector/rector/vendor/composer/autoload_static.php @@ -4,15 +4,12 @@ namespace Composer\Autoload; -class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef +class ComposerStaticInit02014386848e211b9ef5012c0cc91b7c { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', - 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', - 'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php', '9b38cf48e83f5d8f60375221cd213eee' => __DIR__ . '/..' . '/phpstan/phpstan/bootstrap.php', - '2324d0e5cadd603331d27de142371f0b' => __DIR__ . '/..' . '/symfony/contracts/Deprecation/function.php', '4508688f3cab21375725e8d11ca194a2' => __DIR__ . '/../..' . '/src/constants.php', '30bca7fff093e8069bed7c55247e2bf8' => __DIR__ . '/../..' . '/src/functions/node_helper.php', ); @@ -22,7 +19,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef array ( 'Symplify\\RuleDocGenerator\\' => 26, 'Symfony\\Polyfill\\Mbstring\\' => 26, - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, ), 'R' => array ( @@ -33,38 +29,33 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Doctrine\\' => 16, 'Rector\\Core\\' => 12, 'Rector\\' => 7, - 'RectorPrefix202308\\Webmozart\\Assert\\' => 36, - 'RectorPrefix202308\\Symplify\\EasyParallel\\' => 41, - 'RectorPrefix202308\\Symfony\\Contracts\\' => 37, - 'RectorPrefix202308\\Symfony\\Component\\String\\' => 44, - 'RectorPrefix202308\\Symfony\\Component\\Process\\' => 45, - 'RectorPrefix202308\\Symfony\\Component\\Finder\\' => 44, - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\' => 48, - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\' => 57, - 'RectorPrefix202308\\Symfony\\Component\\Console\\' => 45, - 'RectorPrefix202308\\Symfony\\Component\\Config\\' => 44, - 'RectorPrefix202308\\React\\Stream\\' => 32, - 'RectorPrefix202308\\React\\Socket\\' => 32, - 'RectorPrefix202308\\React\\Promise\\' => 33, - 'RectorPrefix202308\\React\\EventLoop\\' => 35, - 'RectorPrefix202308\\React\\Dns\\' => 29, - 'RectorPrefix202308\\React\\ChildProcess\\' => 38, - 'RectorPrefix202308\\React\\Cache\\' => 31, - 'RectorPrefix202308\\Psr\\SimpleCache\\' => 35, - 'RectorPrefix202308\\Psr\\Log\\' => 27, - 'RectorPrefix202308\\Psr\\EventDispatcher\\' => 39, - 'RectorPrefix202308\\Psr\\Container\\' => 33, - 'RectorPrefix202308\\Psr\\Cache\\' => 29, - 'RectorPrefix202308\\OndraM\\CiDetector\\' => 37, - 'RectorPrefix202308\\Illuminate\\Contracts\\' => 40, - 'RectorPrefix202308\\Illuminate\\Container\\' => 40, - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\' => 40, - 'RectorPrefix202308\\Evenement\\' => 29, - 'RectorPrefix202308\\Doctrine\\Inflector\\' => 38, - 'RectorPrefix202308\\Composer\\XdebugHandler\\' => 42, - 'RectorPrefix202308\\Composer\\Semver\\' => 35, - 'RectorPrefix202308\\Composer\\Pcre\\' => 33, - 'RectorPrefix202308\\Clue\\React\\NDJson\\' => 37, + 'RectorPrefix202309\\Webmozart\\Assert\\' => 36, + 'RectorPrefix202309\\Symplify\\EasyParallel\\' => 41, + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\' => 45, + 'RectorPrefix202309\\Symfony\\Component\\Process\\' => 45, + 'RectorPrefix202309\\Symfony\\Component\\Finder\\' => 44, + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\' => 48, + 'RectorPrefix202309\\Symfony\\Component\\Console\\' => 45, + 'RectorPrefix202309\\React\\Stream\\' => 32, + 'RectorPrefix202309\\React\\Socket\\' => 32, + 'RectorPrefix202309\\React\\Promise\\' => 33, + 'RectorPrefix202309\\React\\EventLoop\\' => 35, + 'RectorPrefix202309\\React\\Dns\\' => 29, + 'RectorPrefix202309\\React\\ChildProcess\\' => 38, + 'RectorPrefix202309\\React\\Cache\\' => 31, + 'RectorPrefix202309\\Psr\\SimpleCache\\' => 35, + 'RectorPrefix202309\\Psr\\Log\\' => 27, + 'RectorPrefix202309\\Psr\\Container\\' => 33, + 'RectorPrefix202309\\OndraM\\CiDetector\\' => 37, + 'RectorPrefix202309\\Illuminate\\Contracts\\' => 40, + 'RectorPrefix202309\\Illuminate\\Container\\' => 40, + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\' => 40, + 'RectorPrefix202309\\Evenement\\' => 29, + 'RectorPrefix202309\\Doctrine\\Inflector\\' => 38, + 'RectorPrefix202309\\Composer\\XdebugHandler\\' => 42, + 'RectorPrefix202309\\Composer\\Semver\\' => 35, + 'RectorPrefix202309\\Composer\\Pcre\\' => 33, + 'RectorPrefix202309\\Clue\\React\\NDJson\\' => 37, ), 'P' => array ( @@ -82,10 +73,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', ), - 'Symfony\\Polyfill\\Intl\\Normalizer\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', - ), 'Rector\\Utils\\' => array ( 0 => __DIR__ . '/../..' . '/utils', @@ -120,131 +107,111 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 2 => __DIR__ . '/..' . '/rector/rector-downgrade-php/src', 3 => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules', ), - 'RectorPrefix202308\\Webmozart\\Assert\\' => + 'RectorPrefix202309\\Webmozart\\Assert\\' => array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), - 'RectorPrefix202308\\Symplify\\EasyParallel\\' => + 'RectorPrefix202309\\Symplify\\EasyParallel\\' => array ( 0 => __DIR__ . '/..' . '/symplify/easy-parallel/src', ), - 'RectorPrefix202308\\Symfony\\Contracts\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/contracts', - ), - 'RectorPrefix202308\\Symfony\\Component\\String\\' => + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\' => array ( - 0 => __DIR__ . '/..' . '/symfony/string', + 0 => __DIR__ . '/..' . '/symfony/service-contracts', ), - 'RectorPrefix202308\\Symfony\\Component\\Process\\' => + 'RectorPrefix202309\\Symfony\\Component\\Process\\' => array ( 0 => __DIR__ . '/..' . '/symfony/process', ), - 'RectorPrefix202308\\Symfony\\Component\\Finder\\' => + 'RectorPrefix202309\\Symfony\\Component\\Finder\\' => array ( 0 => __DIR__ . '/..' . '/symfony/finder', ), - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\' => + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\' => array ( 0 => __DIR__ . '/..' . '/symfony/filesystem', ), - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/dependency-injection', - ), - 'RectorPrefix202308\\Symfony\\Component\\Console\\' => + 'RectorPrefix202309\\Symfony\\Component\\Console\\' => array ( 0 => __DIR__ . '/..' . '/symfony/console', ), - 'RectorPrefix202308\\Symfony\\Component\\Config\\' => - array ( - 0 => __DIR__ . '/..' . '/symfony/config', - ), - 'RectorPrefix202308\\React\\Stream\\' => + 'RectorPrefix202309\\React\\Stream\\' => array ( 0 => __DIR__ . '/..' . '/react/stream/src', ), - 'RectorPrefix202308\\React\\Socket\\' => + 'RectorPrefix202309\\React\\Socket\\' => array ( 0 => __DIR__ . '/..' . '/react/socket/src', ), - 'RectorPrefix202308\\React\\Promise\\' => + 'RectorPrefix202309\\React\\Promise\\' => array ( 0 => __DIR__ . '/..' . '/react/promise/src', ), - 'RectorPrefix202308\\React\\EventLoop\\' => + 'RectorPrefix202309\\React\\EventLoop\\' => array ( 0 => __DIR__ . '/..' . '/react/event-loop/src', ), - 'RectorPrefix202308\\React\\Dns\\' => + 'RectorPrefix202309\\React\\Dns\\' => array ( 0 => __DIR__ . '/..' . '/react/dns/src', ), - 'RectorPrefix202308\\React\\ChildProcess\\' => + 'RectorPrefix202309\\React\\ChildProcess\\' => array ( 0 => __DIR__ . '/..' . '/react/child-process/src', ), - 'RectorPrefix202308\\React\\Cache\\' => + 'RectorPrefix202309\\React\\Cache\\' => array ( 0 => __DIR__ . '/..' . '/react/cache/src', ), - 'RectorPrefix202308\\Psr\\SimpleCache\\' => + 'RectorPrefix202309\\Psr\\SimpleCache\\' => array ( 0 => __DIR__ . '/..' . '/psr/simple-cache/src', ), - 'RectorPrefix202308\\Psr\\Log\\' => + 'RectorPrefix202309\\Psr\\Log\\' => array ( 0 => __DIR__ . '/..' . '/psr/log/src', ), - 'RectorPrefix202308\\Psr\\EventDispatcher\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/event-dispatcher/src', - ), - 'RectorPrefix202308\\Psr\\Container\\' => + 'RectorPrefix202309\\Psr\\Container\\' => array ( 0 => __DIR__ . '/..' . '/psr/container/src', ), - 'RectorPrefix202308\\Psr\\Cache\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/cache/src', - ), - 'RectorPrefix202308\\OndraM\\CiDetector\\' => + 'RectorPrefix202309\\OndraM\\CiDetector\\' => array ( 0 => __DIR__ . '/..' . '/ondram/ci-detector/src', ), - 'RectorPrefix202308\\Illuminate\\Contracts\\' => + 'RectorPrefix202309\\Illuminate\\Contracts\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/contracts', ), - 'RectorPrefix202308\\Illuminate\\Container\\' => + 'RectorPrefix202309\\Illuminate\\Container\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/container', ), - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\' => + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\' => array ( 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src', ), - 'RectorPrefix202308\\Evenement\\' => + 'RectorPrefix202309\\Evenement\\' => array ( 0 => __DIR__ . '/..' . '/evenement/evenement/src', ), - 'RectorPrefix202308\\Doctrine\\Inflector\\' => + 'RectorPrefix202309\\Doctrine\\Inflector\\' => array ( 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', ), - 'RectorPrefix202308\\Composer\\XdebugHandler\\' => + 'RectorPrefix202309\\Composer\\XdebugHandler\\' => array ( 0 => __DIR__ . '/..' . '/composer/xdebug-handler/src', ), - 'RectorPrefix202308\\Composer\\Semver\\' => + 'RectorPrefix202309\\Composer\\Semver\\' => array ( 0 => __DIR__ . '/..' . '/composer/semver/src', ), - 'RectorPrefix202308\\Composer\\Pcre\\' => + 'RectorPrefix202309\\Composer\\Pcre\\' => array ( 0 => __DIR__ . '/..' . '/composer/pcre/src', ), - 'RectorPrefix202308\\Clue\\React\\NDJson\\' => + 'RectorPrefix202309\\Clue\\React\\NDJson\\' => array ( 0 => __DIR__ . '/..' . '/clue/ndjson-react/src', ), @@ -260,7 +227,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef public static $classMap = array ( 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 'PHPStan\\PhpDocParser\\Ast\\AbstractNodeVisitor' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/AbstractNodeVisitor.php', 'PHPStan\\PhpDocParser\\Ast\\Attribute' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/Attribute.php', 'PHPStan\\PhpDocParser\\Ast\\ConstExpr\\ConstExprArrayItemNode' => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprArrayItemNode.php', @@ -592,918 +558,594 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef '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', - 'RectorPrefix202308\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202308\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202308\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', - 'RectorPrefix202308\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', - 'RectorPrefix202308\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202308\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202308\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', - 'RectorPrefix202308\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202308\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', - 'RectorPrefix202308\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', - 'RectorPrefix202308\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', - 'RectorPrefix202308\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202308\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', - 'RectorPrefix202308\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', - 'RectorPrefix202308\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202308\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202308\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202308\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202308\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202308\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', - 'RectorPrefix202308\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202308\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202308\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202308\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', - 'RectorPrefix202308\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', - 'RectorPrefix202308\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202308\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202308\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202308\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202308\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', - 'RectorPrefix202308\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\Neon\\Decoder' => __DIR__ . '/..' . '/nette/neon/src/Neon/Decoder.php', - 'RectorPrefix202308\\Nette\\Neon\\Encoder' => __DIR__ . '/..' . '/nette/neon/src/Neon/Encoder.php', - 'RectorPrefix202308\\Nette\\Neon\\Entity' => __DIR__ . '/..' . '/nette/neon/src/Neon/Entity.php', - 'RectorPrefix202308\\Nette\\Neon\\Exception' => __DIR__ . '/..' . '/nette/neon/src/Neon/Exception.php', - 'RectorPrefix202308\\Nette\\Neon\\Lexer' => __DIR__ . '/..' . '/nette/neon/src/Neon/Lexer.php', - 'RectorPrefix202308\\Nette\\Neon\\Neon' => __DIR__ . '/..' . '/nette/neon/src/Neon/Neon.php', - 'RectorPrefix202308\\Nette\\Neon\\Node' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\ArrayItemNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/ArrayItemNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\ArrayNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/ArrayNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\BlockArrayNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/BlockArrayNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\EntityChainNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/EntityChainNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\EntityNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/EntityNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\InlineArrayNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/InlineArrayNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\LiteralNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/LiteralNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Node\\StringNode' => __DIR__ . '/..' . '/nette/neon/src/Neon/Node/StringNode.php', - 'RectorPrefix202308\\Nette\\Neon\\Parser' => __DIR__ . '/..' . '/nette/neon/src/Neon/Parser.php', - 'RectorPrefix202308\\Nette\\Neon\\Token' => __DIR__ . '/..' . '/nette/neon/src/Neon/Token.php', - 'RectorPrefix202308\\Nette\\Neon\\TokenStream' => __DIR__ . '/..' . '/nette/neon/src/Neon/TokenStream.php', - 'RectorPrefix202308\\Nette\\Neon\\Traverser' => __DIR__ . '/..' . '/nette/neon/src/Neon/Traverser.php', - 'RectorPrefix202308\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202308\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202308\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202308\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202308\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202308\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202308\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202308\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202308\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202308\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202308\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202308\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202308\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202308\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202308\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202308\\Nette\\Utils\\ObjectMixin' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectMixin.php', - 'RectorPrefix202308\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202308\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202308\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202308\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202308\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202308\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202308\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202308\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202308\\Psr\\Cache\\CacheException' => __DIR__ . '/..' . '/psr/cache/src/CacheException.php', - 'RectorPrefix202308\\Psr\\Cache\\CacheItemInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemInterface.php', - 'RectorPrefix202308\\Psr\\Cache\\CacheItemPoolInterface' => __DIR__ . '/..' . '/psr/cache/src/CacheItemPoolInterface.php', - 'RectorPrefix202308\\Psr\\Cache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/cache/src/InvalidArgumentException.php', - 'RectorPrefix202308\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202308\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202308\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202308\\Psr\\EventDispatcher\\EventDispatcherInterface' => __DIR__ . '/..' . '/psr/event-dispatcher/src/EventDispatcherInterface.php', - 'RectorPrefix202308\\Psr\\EventDispatcher\\ListenerProviderInterface' => __DIR__ . '/..' . '/psr/event-dispatcher/src/ListenerProviderInterface.php', - 'RectorPrefix202308\\Psr\\EventDispatcher\\StoppableEventInterface' => __DIR__ . '/..' . '/psr/event-dispatcher/src/StoppableEventInterface.php', - 'RectorPrefix202308\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202308\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202308\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202308\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202308\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', - 'RectorPrefix202308\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202308\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202308\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', - 'RectorPrefix202308\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202308\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202308\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', - 'RectorPrefix202308\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', - 'RectorPrefix202308\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', - 'RectorPrefix202308\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202308\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', - 'RectorPrefix202308\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', - 'RectorPrefix202308\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202308\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202308\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202308\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202308\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', - 'RectorPrefix202308\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202308\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202308\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202308\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202308\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202308\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202308\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', - 'RectorPrefix202308\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', - 'RectorPrefix202308\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202308\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202308\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202308\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202308\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202308\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202308\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202308\\React\\Promise\\CancellablePromiseInterface' => __DIR__ . '/..' . '/react/promise/src/CancellablePromiseInterface.php', - 'RectorPrefix202308\\React\\Promise\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/CancellationQueue.php', - 'RectorPrefix202308\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', - 'RectorPrefix202308\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202308\\React\\Promise\\ExtendedPromiseInterface' => __DIR__ . '/..' . '/react/promise/src/ExtendedPromiseInterface.php', - 'RectorPrefix202308\\React\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/FulfilledPromise.php', - 'RectorPrefix202308\\React\\Promise\\LazyPromise' => __DIR__ . '/..' . '/react/promise/src/LazyPromise.php', - 'RectorPrefix202308\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', - 'RectorPrefix202308\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202308\\React\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/react/promise/src/PromisorInterface.php', - 'RectorPrefix202308\\React\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/RejectedPromise.php', - 'RectorPrefix202308\\React\\Promise\\UnhandledRejectionException' => __DIR__ . '/..' . '/react/promise/src/UnhandledRejectionException.php', - 'RectorPrefix202308\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', - 'RectorPrefix202308\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202308\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', - 'RectorPrefix202308\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202308\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202308\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', - 'RectorPrefix202308\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202308\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202308\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202308\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202308\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202308\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', - 'RectorPrefix202308\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', - 'RectorPrefix202308\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202308\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', - 'RectorPrefix202308\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202308\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202308\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', - 'RectorPrefix202308\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202308\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202308\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', - 'RectorPrefix202308\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202308\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202308\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202308\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202308\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202308\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202308\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', - 'RectorPrefix202308\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202308\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202308\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ClassBuilder' => __DIR__ . '/..' . '/symfony/config/Builder/ClassBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ConfigBuilderGenerator' => __DIR__ . '/..' . '/symfony/config/Builder/ConfigBuilderGenerator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ConfigBuilderGeneratorInterface' => __DIR__ . '/..' . '/symfony/config/Builder/ConfigBuilderGeneratorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\ConfigBuilderInterface' => __DIR__ . '/..' . '/symfony/config/Builder/ConfigBuilderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\Method' => __DIR__ . '/..' . '/symfony/config/Builder/Method.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Builder\\Property' => __DIR__ . '/..' . '/symfony/config/Builder/Property.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCache' => __DIR__ . '/..' . '/symfony/config/ConfigCache.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCacheFactory' => __DIR__ . '/..' . '/symfony/config/ConfigCacheFactory.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCacheFactoryInterface' => __DIR__ . '/..' . '/symfony/config/ConfigCacheFactoryInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ConfigCacheInterface' => __DIR__ . '/..' . '/symfony/config/ConfigCacheInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ArrayNode' => __DIR__ . '/..' . '/symfony/config/Definition/ArrayNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\BaseNode' => __DIR__ . '/..' . '/symfony/config/Definition/BaseNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\BooleanNode' => __DIR__ . '/..' . '/symfony/config/Definition/BooleanNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ArrayNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/ArrayNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\BooleanNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/BooleanNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\BuilderAwareInterface' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/BuilderAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\EnumNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/EnumNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ExprBuilder' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/ExprBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\FloatNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/FloatNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\IntegerNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/IntegerNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\MergeBuilder' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/MergeBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NodeBuilder' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/NodeBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/NodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NodeParentInterface' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/NodeParentInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NormalizationBuilder' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/NormalizationBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\NumericNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/NumericNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ParentNodeDefinitionInterface' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ScalarNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/ScalarNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\TreeBuilder' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/TreeBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\ValidationBuilder' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/ValidationBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Builder\\VariableNodeDefinition' => __DIR__ . '/..' . '/symfony/config/Definition/Builder/VariableNodeDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ConfigurableInterface' => __DIR__ . '/..' . '/symfony/config/Definition/ConfigurableInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Configuration' => __DIR__ . '/..' . '/symfony/config/Definition/Configuration.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ConfigurationInterface' => __DIR__ . '/..' . '/symfony/config/Definition/ConfigurationInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Configurator\\DefinitionConfigurator' => __DIR__ . '/..' . '/symfony/config/Definition/Configurator/DefinitionConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Dumper\\XmlReferenceDumper' => __DIR__ . '/..' . '/symfony/config/Definition/Dumper/XmlReferenceDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Dumper\\YamlReferenceDumper' => __DIR__ . '/..' . '/symfony/config/Definition/Dumper/YamlReferenceDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\EnumNode' => __DIR__ . '/..' . '/symfony/config/Definition/EnumNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\DuplicateKeyException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/DuplicateKeyException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\Exception' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/Exception.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\ForbiddenOverwriteException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/ForbiddenOverwriteException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\InvalidConfigurationException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/InvalidConfigurationException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\InvalidDefinitionException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/InvalidDefinitionException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\InvalidTypeException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/InvalidTypeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Exception\\UnsetKeyException' => __DIR__ . '/..' . '/symfony/config/Definition/Exception/UnsetKeyException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\FloatNode' => __DIR__ . '/..' . '/symfony/config/Definition/FloatNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\IntegerNode' => __DIR__ . '/..' . '/symfony/config/Definition/IntegerNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Loader\\DefinitionFileLoader' => __DIR__ . '/..' . '/symfony/config/Definition/Loader/DefinitionFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\NodeInterface' => __DIR__ . '/..' . '/symfony/config/Definition/NodeInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\NumericNode' => __DIR__ . '/..' . '/symfony/config/Definition/NumericNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\Processor' => __DIR__ . '/..' . '/symfony/config/Definition/Processor.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\PrototypeNodeInterface' => __DIR__ . '/..' . '/symfony/config/Definition/PrototypeNodeInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\PrototypedArrayNode' => __DIR__ . '/..' . '/symfony/config/Definition/PrototypedArrayNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\ScalarNode' => __DIR__ . '/..' . '/symfony/config/Definition/ScalarNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Definition\\VariableNode' => __DIR__ . '/..' . '/symfony/config/Definition/VariableNode.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Exception\\FileLoaderImportCircularReferenceException' => __DIR__ . '/..' . '/symfony/config/Exception/FileLoaderImportCircularReferenceException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Exception\\FileLocatorFileNotFoundException' => __DIR__ . '/..' . '/symfony/config/Exception/FileLocatorFileNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Exception\\LoaderLoadException' => __DIR__ . '/..' . '/symfony/config/Exception/LoaderLoadException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\FileLocator' => __DIR__ . '/..' . '/symfony/config/FileLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\FileLocatorInterface' => __DIR__ . '/..' . '/symfony/config/FileLocatorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\DelegatingLoader' => __DIR__ . '/..' . '/symfony/config/Loader/DelegatingLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\DirectoryAwareLoaderInterface' => __DIR__ . '/..' . '/symfony/config/Loader/DirectoryAwareLoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\FileLoader' => __DIR__ . '/..' . '/symfony/config/Loader/FileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\GlobFileLoader' => __DIR__ . '/..' . '/symfony/config/Loader/GlobFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\Loader' => __DIR__ . '/..' . '/symfony/config/Loader/Loader.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\LoaderInterface' => __DIR__ . '/..' . '/symfony/config/Loader/LoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\LoaderResolver' => __DIR__ . '/..' . '/symfony/config/Loader/LoaderResolver.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\LoaderResolverInterface' => __DIR__ . '/..' . '/symfony/config/Loader/LoaderResolverInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Loader\\ParamConfigurator' => __DIR__ . '/..' . '/symfony/config/Loader/ParamConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ResourceCheckerConfigCache' => __DIR__ . '/..' . '/symfony/config/ResourceCheckerConfigCache.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ResourceCheckerConfigCacheFactory' => __DIR__ . '/..' . '/symfony/config/ResourceCheckerConfigCacheFactory.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\ResourceCheckerInterface' => __DIR__ . '/..' . '/symfony/config/ResourceCheckerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ClassExistenceResource' => __DIR__ . '/..' . '/symfony/config/Resource/ClassExistenceResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ComposerResource' => __DIR__ . '/..' . '/symfony/config/Resource/ComposerResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\DirectoryResource' => __DIR__ . '/..' . '/symfony/config/Resource/DirectoryResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\FileExistenceResource' => __DIR__ . '/..' . '/symfony/config/Resource/FileExistenceResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\FileResource' => __DIR__ . '/..' . '/symfony/config/Resource/FileResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\GlobResource' => __DIR__ . '/..' . '/symfony/config/Resource/GlobResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ReflectionClassResource' => __DIR__ . '/..' . '/symfony/config/Resource/ReflectionClassResource.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\ResourceInterface' => __DIR__ . '/..' . '/symfony/config/Resource/ResourceInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\SelfCheckingResourceChecker' => __DIR__ . '/..' . '/symfony/config/Resource/SelfCheckingResourceChecker.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Resource\\SelfCheckingResourceInterface' => __DIR__ . '/..' . '/symfony/config/Resource/SelfCheckingResourceInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Util\\Exception\\InvalidXmlException' => __DIR__ . '/..' . '/symfony/config/Util/Exception/InvalidXmlException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Util\\Exception\\XmlParsingException' => __DIR__ . '/..' . '/symfony/config/Util/Exception/XmlParsingException.php', - 'RectorPrefix202308\\Symfony\\Component\\Config\\Util\\XmlUtils' => __DIR__ . '/..' . '/symfony/config/Util/XmlUtils.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202308\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Alias' => __DIR__ . '/..' . '/symfony/dependency-injection/Alias.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\AbstractArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/AbstractArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ArgumentInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ArgumentInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\BoundArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/BoundArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\IteratorArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/IteratorArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ReferenceSetArgumentTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\RewindableGenerator' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/RewindableGenerator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ServiceClosureArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ServiceClosureArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocator' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ServiceLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\ServiceLocatorArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/ServiceLocatorArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Argument\\TaggedIteratorArgument' => __DIR__ . '/..' . '/symfony/dependency-injection/Argument/TaggedIteratorArgument.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\AsDecorator' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/AsDecorator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\AsTaggedItem' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/AsTaggedItem.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\Autoconfigure' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/Autoconfigure.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\AutoconfigureTag' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/AutoconfigureTag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\Autowire' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/Autowire.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\MapDecorated' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/MapDecorated.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\TaggedIterator' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/TaggedIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\TaggedLocator' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/TaggedLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\Target' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/Target.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Attribute\\When' => __DIR__ . '/..' . '/symfony/dependency-injection/Attribute/When.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ChildDefinition' => __DIR__ . '/..' . '/symfony/dependency-injection/ChildDefinition.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AbstractRecursivePass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AbstractRecursivePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AliasDeprecatedPublicServicesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AnalyzeServiceReferencesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AttributeAutoconfigurationPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutoAliasServicePass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AutoAliasServicePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowireAsDecoratorPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowirePass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AutowirePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowireRequiredMethodsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\AutowireRequiredPropertiesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckArgumentsValidityPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckCircularReferencesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckDefinitionValidityPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckExceptionOnInvalidReferenceBehaviorPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckReferenceValidityPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CheckTypeDeclarationsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\Compiler' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/Compiler.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\CompilerPassInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/CompilerPassInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\DecoratorServicePass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/DecoratorServicePass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\DefinitionErrorExceptionPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ExtensionCompilerPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\InlineServiceDefinitionsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\MergeExtensionConfigurationPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\PassConfig' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/PassConfig.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\PriorityTaggedServiceTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterAutoconfigureAttributesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterEnvVarProcessorsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterReverseContainerPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RegisterServiceSubscribersPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RemoveAbstractDefinitionsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RemovePrivateAliasesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\RemoveUnusedDefinitionsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ReplaceAliasByActualDefinitionPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveBindingsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveBindingsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveChildDefinitionsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveClassPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveClassPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveDecoratorStackPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveEnvPlaceholdersPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveFactoryClassPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveHotPathPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveHotPathPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveInstanceofConditionalsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveInvalidReferencesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveNamedArgumentsPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveNoPreloadPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveParameterPlaceHoldersPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveReferencesToAliasesPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveServiceSubscribersPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ResolveTaggedIteratorArgumentPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceLocatorTagPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraph' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphEdge' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ServiceReferenceGraphNode' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Compiler\\ValidateEnvPlaceholdersPass' => __DIR__ . '/..' . '/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResource' => __DIR__ . '/..' . '/symfony/dependency-injection/Config/ContainerParametersResource.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Config\\ContainerParametersResourceChecker' => __DIR__ . '/..' . '/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Container' => __DIR__ . '/..' . '/symfony/dependency-injection/Container.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerAwareInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ContainerAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerAwareTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/ContainerAwareTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerBuilder' => __DIR__ . '/..' . '/symfony/dependency-injection/ContainerBuilder.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ContainerInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ContainerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Definition' => __DIR__ . '/..' . '/symfony/dependency-injection/Definition.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\Dumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/Dumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\DumperInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/DumperInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\GraphvizDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/GraphvizDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\PhpDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/PhpDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\Preloader' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/Preloader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\XmlDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/XmlDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\YamlDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/Dumper/YamlDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\EnvVarLoaderInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/EnvVarLoaderInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\EnvVarProcessor' => __DIR__ . '/..' . '/symfony/dependency-injection/EnvVarProcessor.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\EnvVarProcessorInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/EnvVarProcessorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\AutowiringFailedException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/AutowiringFailedException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\BadMethodCallException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/BadMethodCallException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\EnvNotFoundException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/EnvNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\EnvParameterException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/EnvParameterException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\InvalidParameterTypeException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/InvalidParameterTypeException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/LogicException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\OutOfBoundsException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/OutOfBoundsException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ParameterCircularReferenceException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ParameterNotFoundException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/ParameterNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceCircularReferenceException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Exception\\ServiceNotFoundException' => __DIR__ . '/..' . '/symfony/dependency-injection/Exception/ServiceNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\AbstractExtension' => __DIR__ . '/..' . '/symfony/dependency-injection/Extension/AbstractExtension.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ConfigurableExtensionInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ConfigurationExtensionInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\Extension' => __DIR__ . '/..' . '/symfony/dependency-injection/Extension/Extension.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ExtensionInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Extension/ExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\ExtensionTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Extension/ExtensionTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Extension\\PrependExtensionInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/Extension/PrependExtensionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\Instantiator\\InstantiatorInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\Instantiator\\RealServiceInstantiator' => __DIR__ . '/..' . '/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\PhpDumper\\DumperInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\PhpDumper\\NullDumper' => __DIR__ . '/..' . '/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\LazyProxy\\ProxyHelper' => __DIR__ . '/..' . '/symfony/dependency-injection/LazyProxy/ProxyHelper.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\ClosureLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/ClosureLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\AbstractConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\AbstractServiceConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\AliasConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ClosureReferenceConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ContainerConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\DefaultsConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\EnvConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\InlineServiceConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\InstanceofConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ParametersConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\PrototypeConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ReferenceConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ServiceConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\ServicesConfigurator' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\AbstractTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ArgumentTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\AutoconfigureTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\AutowireTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\BindTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\CallTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ClassTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ConfiguratorTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\DecorateTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\DeprecateTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\FactoryTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\FileTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\LazyTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ParentTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\PropertyTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\PublicTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\ShareTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\SyntheticTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\Configurator\\Traits\\TagTrait' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\DirectoryLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/DirectoryLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\FileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/FileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\GlobFileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/GlobFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\IniFileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/IniFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\PhpFileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/PhpFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\XmlFileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/XmlFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Loader\\YamlFileLoader' => __DIR__ . '/..' . '/symfony/dependency-injection/Loader/YamlFileLoader.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Parameter' => __DIR__ . '/..' . '/symfony/dependency-injection/Parameter.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ContainerBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ContainerBagInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\EnvPlaceholderParameterBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\FrozenParameterBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBag' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ParameterBag.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ParameterBag\\ParameterBagInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Reference' => __DIR__ . '/..' . '/symfony/dependency-injection/Reference.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ReverseContainer' => __DIR__ . '/..' . '/symfony/dependency-injection/ReverseContainer.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\ServiceLocator' => __DIR__ . '/..' . '/symfony/dependency-injection/ServiceLocator.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\TaggedContainerInterface' => __DIR__ . '/..' . '/symfony/dependency-injection/TaggedContainerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\TypedReference' => __DIR__ . '/..' . '/symfony/dependency-injection/TypedReference.php', - 'RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Variable' => __DIR__ . '/..' . '/symfony/dependency-injection/Variable.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202308\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202308\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', - 'RectorPrefix202308\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\AbstractString' => __DIR__ . '/..' . '/symfony/string/AbstractString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\AbstractUnicodeString' => __DIR__ . '/..' . '/symfony/string/AbstractUnicodeString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\ByteString' => __DIR__ . '/..' . '/symfony/string/ByteString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\CodePointString' => __DIR__ . '/..' . '/symfony/string/CodePointString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/string/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/string/Exception/InvalidArgumentException.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/string/Exception/RuntimeException.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Inflector\\EnglishInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/EnglishInflector.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Inflector\\FrenchInflector' => __DIR__ . '/..' . '/symfony/string/Inflector/FrenchInflector.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Inflector\\InflectorInterface' => __DIR__ . '/..' . '/symfony/string/Inflector/InflectorInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\LazyString' => __DIR__ . '/..' . '/symfony/string/LazyString.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Slugger\\AsciiSlugger' => __DIR__ . '/..' . '/symfony/string/Slugger/AsciiSlugger.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\Slugger\\SluggerInterface' => __DIR__ . '/..' . '/symfony/string/Slugger/SluggerInterface.php', - 'RectorPrefix202308\\Symfony\\Component\\String\\UnicodeString' => __DIR__ . '/..' . '/symfony/string/UnicodeString.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\CacheInterface' => __DIR__ . '/..' . '/symfony/contracts/Cache/CacheInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\CacheTrait' => __DIR__ . '/..' . '/symfony/contracts/Cache/CacheTrait.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\CallbackInterface' => __DIR__ . '/..' . '/symfony/contracts/Cache/CallbackInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Cache\\TagAwareCacheInterface' => __DIR__ . '/..' . '/symfony/contracts/Cache/TagAwareCacheInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\EventDispatcher\\Event' => __DIR__ . '/..' . '/symfony/contracts/EventDispatcher/Event.php', - 'RectorPrefix202308\\Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface' => __DIR__ . '/..' . '/symfony/contracts/EventDispatcher/EventDispatcherInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\ChunkInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/ChunkInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\ClientExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/ClientExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\DecodingExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/DecodingExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/ExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\HttpExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/HttpExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\RedirectionExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/RedirectionExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\ServerExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/ServerExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\TimeoutExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/TimeoutExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Exception\\TransportExceptionInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Exception/TransportExceptionInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\HttpClientInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/HttpClientInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\ResponseInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/ResponseInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\ResponseStreamInterface' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/ResponseStreamInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Test\\HttpClientTestCase' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Test/HttpClientTestCase.php', - 'RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\Test\\TestHttpServer' => __DIR__ . '/..' . '/symfony/contracts/HttpClient/Test/TestHttpServer.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/contracts/Service/Attribute/Required.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/contracts/Service/Attribute/SubscribedService.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/contracts/Service/ResetInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/contracts/Service/ServiceLocatorTrait.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/contracts/Service/ServiceProviderInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/contracts/Service/ServiceSubscriberInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/contracts/Service/ServiceSubscriberTrait.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTest' => __DIR__ . '/..' . '/symfony/contracts/Service/Test/ServiceLocatorTest.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Service\\Test\\ServiceLocatorTestCase' => __DIR__ . '/..' . '/symfony/contracts/Service/Test/ServiceLocatorTestCase.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\LocaleAwareInterface' => __DIR__ . '/..' . '/symfony/contracts/Translation/LocaleAwareInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\Test\\TranslatorTest' => __DIR__ . '/..' . '/symfony/contracts/Translation/Test/TranslatorTest.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\TranslatableInterface' => __DIR__ . '/..' . '/symfony/contracts/Translation/TranslatableInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\TranslatorInterface' => __DIR__ . '/..' . '/symfony/contracts/Translation/TranslatorInterface.php', - 'RectorPrefix202308\\Symfony\\Contracts\\Translation\\TranslatorTrait' => __DIR__ . '/..' . '/symfony/contracts/Translation/TranslatorTrait.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => __DIR__ . '/..' . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202308\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', - 'RectorPrefix202308\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202308\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202308\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202309\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202309\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202309\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', + 'RectorPrefix202309\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', + 'RectorPrefix202309\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202309\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202309\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', + 'RectorPrefix202309\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202309\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', + 'RectorPrefix202309\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', + 'RectorPrefix202309\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', + 'RectorPrefix202309\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202309\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202309\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202309\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202309\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202309\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202309\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202309\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202309\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', + 'RectorPrefix202309\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202309\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202309\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202309\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', + 'RectorPrefix202309\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202309\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202309\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202309\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202309\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202309\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', + 'RectorPrefix202309\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202309\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202309\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202309\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202309\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202309\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202309\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202309\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202309\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202309\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202309\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202309\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202309\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202309\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202309\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202309\\Nette\\Utils\\ObjectMixin' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectMixin.php', + 'RectorPrefix202309\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202309\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202309\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202309\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202309\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202309\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202309\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202309\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202309\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202309\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202309\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202309\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202309\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202309\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202309\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202309\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', + 'RectorPrefix202309\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202309\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202309\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202309\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202309\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202309\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', + 'RectorPrefix202309\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', + 'RectorPrefix202309\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', + 'RectorPrefix202309\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202309\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', + 'RectorPrefix202309\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', + 'RectorPrefix202309\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202309\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202309\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202309\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202309\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', + 'RectorPrefix202309\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202309\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202309\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202309\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202309\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202309\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202309\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', + 'RectorPrefix202309\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', + 'RectorPrefix202309\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202309\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202309\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202309\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202309\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202309\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202309\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202309\\React\\Promise\\CancellablePromiseInterface' => __DIR__ . '/..' . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202309\\React\\Promise\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202309\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', + 'RectorPrefix202309\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202309\\React\\Promise\\ExtendedPromiseInterface' => __DIR__ . '/..' . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202309\\React\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202309\\React\\Promise\\LazyPromise' => __DIR__ . '/..' . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202309\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', + 'RectorPrefix202309\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202309\\React\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202309\\React\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202309\\React\\Promise\\UnhandledRejectionException' => __DIR__ . '/..' . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202309\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', + 'RectorPrefix202309\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202309\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', + 'RectorPrefix202309\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202309\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202309\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', + 'RectorPrefix202309\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202309\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202309\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202309\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202309\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202309\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', + 'RectorPrefix202309\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', + 'RectorPrefix202309\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202309\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', + 'RectorPrefix202309\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202309\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202309\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', + 'RectorPrefix202309\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202309\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202309\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', + 'RectorPrefix202309\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202309\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202309\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202309\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202309\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202309\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202309\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', + 'RectorPrefix202309\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202309\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202309\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202309\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202309\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202309\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', + 'RectorPrefix202309\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202309\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => __DIR__ . '/..' . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202309\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202309\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202309\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202309\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', 'Rector\\Arguments\\ArgumentDefaultValueReplacer' => __DIR__ . '/../..' . '/rules/Arguments/ArgumentDefaultValueReplacer.php', 'Rector\\Arguments\\Contract\\ReplaceArgumentDefaultValueInterface' => __DIR__ . '/../..' . '/rules/Arguments/Contract/ReplaceArgumentDefaultValueInterface.php', 'Rector\\Arguments\\NodeAnalyzer\\ArgumentAddingScope' => __DIR__ . '/../..' . '/rules/Arguments/NodeAnalyzer/ArgumentAddingScope.php', @@ -1511,15 +1153,11 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Arguments\\Rector\\ClassMethod\\ArgumentAdderRector' => __DIR__ . '/../..' . '/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php', 'Rector\\Arguments\\Rector\\ClassMethod\\ReplaceArgumentDefaultValueRector' => __DIR__ . '/../..' . '/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php', 'Rector\\Arguments\\Rector\\FuncCall\\FunctionArgumentDefaultValueReplacerRector' => __DIR__ . '/../..' . '/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php', - 'Rector\\Arguments\\Rector\\FuncCall\\SwapFuncCallArgumentsRector' => __DIR__ . '/../..' . '/rules/Arguments/Rector/FuncCall/SwapFuncCallArgumentsRector.php', 'Rector\\Arguments\\Rector\\MethodCall\\RemoveMethodCallParamRector' => __DIR__ . '/../..' . '/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php', - 'Rector\\Arguments\\Rector\\MethodCall\\SwapMethodCallArgumentsRector' => __DIR__ . '/../..' . '/rules/Arguments/Rector/MethodCall/SwapMethodCallArgumentsRector.php', 'Rector\\Arguments\\ValueObject\\ArgumentAdder' => __DIR__ . '/../..' . '/rules/Arguments/ValueObject/ArgumentAdder.php', 'Rector\\Arguments\\ValueObject\\RemoveMethodCallParam' => __DIR__ . '/../..' . '/rules/Arguments/ValueObject/RemoveMethodCallParam.php', 'Rector\\Arguments\\ValueObject\\ReplaceArgumentDefaultValue' => __DIR__ . '/../..' . '/rules/Arguments/ValueObject/ReplaceArgumentDefaultValue.php', 'Rector\\Arguments\\ValueObject\\ReplaceFuncCallArgumentDefaultValue' => __DIR__ . '/../..' . '/rules/Arguments/ValueObject/ReplaceFuncCallArgumentDefaultValue.php', - 'Rector\\Arguments\\ValueObject\\SwapFuncCallArguments' => __DIR__ . '/../..' . '/rules/Arguments/ValueObject/SwapFuncCallArguments.php', - 'Rector\\Arguments\\ValueObject\\SwapMethodCallArguments' => __DIR__ . '/../..' . '/rules/Arguments/ValueObject/SwapMethodCallArguments.php', 'Rector\\BetterPhpDocParser\\Annotation\\AnnotationNaming' => __DIR__ . '/../..' . '/packages/BetterPhpDocParser/Annotation/AnnotationNaming.php', 'Rector\\BetterPhpDocParser\\Attributes\\AttributeMirrorer' => __DIR__ . '/../..' . '/packages/BetterPhpDocParser/Attributes/AttributeMirrorer.php', 'Rector\\BetterPhpDocParser\\Comment\\CommentsMerger' => __DIR__ . '/../..' . '/packages/BetterPhpDocParser/Comment/CommentsMerger.php', @@ -1578,7 +1216,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Caching\\Contract\\ValueObject\\Storage\\CacheStorageInterface' => __DIR__ . '/../..' . '/packages/Caching/Contract/ValueObject/Storage/CacheStorageInterface.php', 'Rector\\Caching\\Detector\\ChangedFilesDetector' => __DIR__ . '/../..' . '/packages/Caching/Detector/ChangedFilesDetector.php', 'Rector\\Caching\\Enum\\CacheKey' => __DIR__ . '/../..' . '/packages/Caching/Enum/CacheKey.php', - 'Rector\\Caching\\FileSystem\\DependencyResolver' => __DIR__ . '/../..' . '/packages/Caching/FileSystem/DependencyResolver.php', 'Rector\\Caching\\UnchangedFilesFilter' => __DIR__ . '/../..' . '/packages/Caching/UnchangedFilesFilter.php', 'Rector\\Caching\\ValueObject\\CacheFilePaths' => __DIR__ . '/../..' . '/packages/Caching/ValueObject/CacheFilePaths.php', 'Rector\\Caching\\ValueObject\\CacheItem' => __DIR__ . '/../..' . '/packages/Caching/ValueObject/CacheItem.php', @@ -1667,6 +1304,7 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\CodeQuality\\Rector\\Switch_\\SingularSwitchToIfRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Switch_/SingularSwitchToIfRector.php', 'Rector\\CodeQuality\\Rector\\Switch_\\SwitchTrueToIfRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Switch_/SwitchTrueToIfRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\ArrayKeyExistsTernaryThenValueToCoalescingRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Ternary/ArrayKeyExistsTernaryThenValueToCoalescingRector.php', + 'Rector\\CodeQuality\\Rector\\Ternary\\NumberCompareToMaxFuncCallRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Ternary/NumberCompareToMaxFuncCallRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\SimplifyTautologyTernaryRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Ternary/SimplifyTautologyTernaryRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\SwitchNegatedTernaryRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Ternary/SwitchNegatedTernaryRector.php', 'Rector\\CodeQuality\\Rector\\Ternary\\TernaryEmptyArrayArrayDimFetchToCoalesceRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Ternary/TernaryEmptyArrayArrayDimFetchToCoalesceRector.php', @@ -1729,7 +1367,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Comments\\NodeDocBlock\\DocBlockUpdater' => __DIR__ . '/../..' . '/packages/Comments/NodeDocBlock/DocBlockUpdater.php', 'Rector\\Comments\\NodeTraverser\\CommentRemovingNodeTraverser' => __DIR__ . '/../..' . '/packages/Comments/NodeTraverser/CommentRemovingNodeTraverser.php', 'Rector\\Comments\\NodeVisitor\\CommentRemovingNodeVisitor' => __DIR__ . '/../..' . '/packages/Comments/NodeVisitor/CommentRemovingNodeVisitor.php', - 'Rector\\Config\\LazyRectorConfig' => __DIR__ . '/../..' . '/packages/Config/LazyRectorConfig.php', 'Rector\\Config\\RectorConfig' => __DIR__ . '/../..' . '/packages/Config/RectorConfig.php', 'Rector\\Core\\Application\\ApplicationFileProcessor' => __DIR__ . '/../..' . '/src/Application/ApplicationFileProcessor.php', 'Rector\\Core\\Application\\ChangedNodeScopeRefresher' => __DIR__ . '/../..' . '/src/Application/ChangedNodeScopeRefresher.php', @@ -1740,14 +1377,12 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Core\\Autoloading\\BootstrapFilesIncluder' => __DIR__ . '/../..' . '/src/Autoloading/BootstrapFilesIncluder.php', 'Rector\\Core\\Bootstrap\\ExtensionConfigResolver' => __DIR__ . '/../..' . '/src/Bootstrap/ExtensionConfigResolver.php', 'Rector\\Core\\Bootstrap\\RectorConfigsResolver' => __DIR__ . '/../..' . '/src/Bootstrap/RectorConfigsResolver.php', - 'Rector\\Core\\Config\\Loader\\ConfigureCallMergingLoaderFactory' => __DIR__ . '/../..' . '/src/Config/Loader/ConfigureCallMergingLoaderFactory.php', 'Rector\\Core\\Configuration\\ConfigInitializer' => __DIR__ . '/../..' . '/src/Configuration/ConfigInitializer.php', 'Rector\\Core\\Configuration\\ConfigurationFactory' => __DIR__ . '/../..' . '/src/Configuration/ConfigurationFactory.php', 'Rector\\Core\\Configuration\\CurrentNodeProvider' => __DIR__ . '/../..' . '/src/Configuration/CurrentNodeProvider.php', 'Rector\\Core\\Configuration\\Option' => __DIR__ . '/../..' . '/src/Configuration/Option.php', 'Rector\\Core\\Configuration\\Parameter\\SimpleParameterProvider' => __DIR__ . '/../..' . '/src/Configuration/Parameter/SimpleParameterProvider.php', 'Rector\\Core\\Configuration\\RenamedClassesDataCollector' => __DIR__ . '/../..' . '/src/Configuration/RenamedClassesDataCollector.php', - 'Rector\\Core\\Configuration\\ValueObjectInliner' => __DIR__ . '/../..' . '/src/Configuration/ValueObjectInliner.php', 'Rector\\Core\\Console\\Command\\ListRulesCommand' => __DIR__ . '/../..' . '/src/Console/Command/ListRulesCommand.php', 'Rector\\Core\\Console\\Command\\ProcessCommand' => __DIR__ . '/../..' . '/src/Console/Command/ProcessCommand.php', 'Rector\\Core\\Console\\Command\\SetupCICommand' => __DIR__ . '/../..' . '/src/Console/Command/SetupCICommand.php', @@ -1761,19 +1396,14 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Core\\Console\\ProcessConfigureDecorator' => __DIR__ . '/../..' . '/src/Console/ProcessConfigureDecorator.php', 'Rector\\Core\\Console\\Style\\RectorStyle' => __DIR__ . '/../..' . '/src/Console/Style/RectorStyle.php', 'Rector\\Core\\Console\\Style\\SymfonyStyleFactory' => __DIR__ . '/../..' . '/src/Console/Style/SymfonyStyleFactory.php', - 'Rector\\Core\\Contract\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\TypeToCallReflectionResolverInterface' => __DIR__ . '/../..' . '/src/Contract/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverInterface.php', + 'Rector\\Core\\Contract\\DependencyInjection\\ResetableInterface' => __DIR__ . '/../..' . '/src/Contract/DependencyInjection/ResetableInterface.php', 'Rector\\Core\\Contract\\PhpParser\\Node\\StmtsAwareInterface' => __DIR__ . '/../..' . '/src/Contract/PhpParser/Node/StmtsAwareInterface.php', - 'Rector\\Core\\Contract\\Processor\\FileProcessorInterface' => __DIR__ . '/../..' . '/src/Contract/Processor/FileProcessorInterface.php', 'Rector\\Core\\Contract\\Rector\\ConfigurableRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/ConfigurableRectorInterface.php', 'Rector\\Core\\Contract\\Rector\\NonPhpRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/NonPhpRectorInterface.php', - 'Rector\\Core\\Contract\\Rector\\PhpRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/PhpRectorInterface.php', 'Rector\\Core\\Contract\\Rector\\RectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/RectorInterface.php', - 'Rector\\Core\\Contract\\Rector\\ScopeAwarePhpRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/ScopeAwarePhpRectorInterface.php', - 'Rector\\Core\\DependencyInjection\\Collector\\ConfigureCallValuesCollector' => __DIR__ . '/../..' . '/src/DependencyInjection/Collector/ConfigureCallValuesCollector.php', - 'Rector\\Core\\DependencyInjection\\CompilerPass\\MergeImportedRectorConfigureCallValuesCompilerPass' => __DIR__ . '/../..' . '/src/DependencyInjection/CompilerPass/MergeImportedRectorConfigureCallValuesCompilerPass.php', - 'Rector\\Core\\DependencyInjection\\CompilerPass\\RemoveSkippedRectorsCompilerPass' => __DIR__ . '/../..' . '/src/DependencyInjection/CompilerPass/RemoveSkippedRectorsCompilerPass.php', + 'Rector\\Core\\Contract\\Rector\\ScopeAwareRectorInterface' => __DIR__ . '/../..' . '/src/Contract/Rector/ScopeAwareRectorInterface.php', + 'Rector\\Core\\DependencyInjection\\Laravel\\ContainerMemento' => __DIR__ . '/../..' . '/src/DependencyInjection/Laravel/ContainerMemento.php', 'Rector\\Core\\DependencyInjection\\LazyContainerFactory' => __DIR__ . '/../..' . '/src/DependencyInjection/LazyContainerFactory.php', - 'Rector\\Core\\DependencyInjection\\Loader\\ConfigurableCallValuesCollectingPhpFileLoader' => __DIR__ . '/../..' . '/src/DependencyInjection/Loader/ConfigurableCallValuesCollectingPhpFileLoader.php', 'Rector\\Core\\DependencyInjection\\RectorContainerFactory' => __DIR__ . '/../..' . '/src/DependencyInjection/RectorContainerFactory.php', 'Rector\\Core\\Differ\\DefaultDiffer' => __DIR__ . '/../..' . '/src/Differ/DefaultDiffer.php', 'Rector\\Core\\Enum\\ObjectReference' => __DIR__ . '/../..' . '/src/Enum/ObjectReference.php', @@ -1790,10 +1420,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Core\\FileSystem\\FilesFinder' => __DIR__ . '/../..' . '/src/FileSystem/FilesFinder.php', 'Rector\\Core\\FileSystem\\FilesystemTweaker' => __DIR__ . '/../..' . '/src/FileSystem/FilesystemTweaker.php', 'Rector\\Core\\FileSystem\\InitFilePathsResolver' => __DIR__ . '/../..' . '/src/FileSystem/InitFilePathsResolver.php', - 'Rector\\Core\\FileSystem\\PhpFilesFinder' => __DIR__ . '/../..' . '/src/FileSystem/PhpFilesFinder.php', - 'Rector\\Core\\Kernel\\ContainerBuilderBuilder' => __DIR__ . '/../..' . '/src/Kernel/ContainerBuilderBuilder.php', - 'Rector\\Core\\Kernel\\ContainerBuilderFactory' => __DIR__ . '/../..' . '/src/Kernel/ContainerBuilderFactory.php', - 'Rector\\Core\\Kernel\\RectorKernel' => __DIR__ . '/../..' . '/src/Kernel/RectorKernel.php', 'Rector\\Core\\Logging\\CurrentRectorProvider' => __DIR__ . '/../..' . '/src/Logging/CurrentRectorProvider.php', 'Rector\\Core\\Logging\\RectorOutput' => __DIR__ . '/../..' . '/src/Logging/RectorOutput.php', 'Rector\\Core\\NodeAnalyzer\\ArgsAnalyzer' => __DIR__ . '/../..' . '/src/NodeAnalyzer/ArgsAnalyzer.php', @@ -1832,15 +1458,9 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Core\\NodeManipulator\\PropertyFetchAssignManipulator' => __DIR__ . '/../..' . '/src/NodeManipulator/PropertyFetchAssignManipulator.php', 'Rector\\Core\\NodeManipulator\\PropertyManipulator' => __DIR__ . '/../..' . '/src/NodeManipulator/PropertyManipulator.php', 'Rector\\Core\\NodeManipulator\\StmtsManipulator' => __DIR__ . '/../..' . '/src/NodeManipulator/StmtsManipulator.php', - 'Rector\\Core\\NonPhpFile\\NonPhpFileProcessor' => __DIR__ . '/../..' . '/src/NonPhpFile/NonPhpFileProcessor.php', - 'Rector\\Core\\NonPhpFile\\Rector\\RenameClassNonPhpRector' => __DIR__ . '/../..' . '/src/NonPhpFile/Rector/RenameClassNonPhpRector.php', + 'Rector\\Core\\PHPStan\\NodeVisitor\\ExprScopeFromStmtNodeVisitor' => __DIR__ . '/../..' . '/src/PHPStan/NodeVisitor/ExprScopeFromStmtNodeVisitor.php', 'Rector\\Core\\PHPStan\\NodeVisitor\\UnreachableStatementNodeVisitor' => __DIR__ . '/../..' . '/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php', 'Rector\\Core\\PHPStan\\NodeVisitor\\WrappedNodeRestoringNodeVisitor' => __DIR__ . '/../..' . '/src/PHPStan/NodeVisitor/WrappedNodeRestoringNodeVisitor.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ClosureTypeToCallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ClosureTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantArrayTypeToCallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantArrayTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ConstantStringTypeToCallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ConstantStringTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\ObjectTypeToCallReflectionResolver' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/ObjectTypeToCallReflectionResolver.php', - 'Rector\\Core\\PHPStan\\Reflection\\TypeToCallReflectionResolver\\TypeToCallReflectionResolverRegistry' => __DIR__ . '/../..' . '/src/PHPStan/Reflection/TypeToCallReflectionResolver/TypeToCallReflectionResolverRegistry.php', 'Rector\\Core\\PhpParser\\AstResolver' => __DIR__ . '/../..' . '/src/PhpParser/AstResolver.php', 'Rector\\Core\\PhpParser\\ClassLikeAstResolver' => __DIR__ . '/../..' . '/src/PhpParser/ClassLikeAstResolver.php', 'Rector\\Core\\PhpParser\\Comparing\\NodeComparator' => __DIR__ . '/../..' . '/src/PhpParser/Comparing/NodeComparator.php', @@ -1971,6 +1591,7 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\CorrectDefaultTypesOnEntityPropertyRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/CorrectDefaultTypesOnEntityPropertyRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\ImproveDoctrineCollectionDocTypeInEntityRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/ImproveDoctrineCollectionDocTypeInEntityRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\MakeEntityDateTimePropertyDateTimeInterfaceRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/MakeEntityDateTimePropertyDateTimeInterfaceRector.php', + 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\OrderByKeyToClassConstRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/OrderByKeyToClassConstRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\TypedPropertyFromColumnTypeRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromColumnTypeRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\TypedPropertyFromDoctrineCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromDoctrineCollectionRector.php', 'Rector\\Doctrine\\CodeQuality\\Rector\\Property\\TypedPropertyFromToManyRelationTypeRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/CodeQuality/Rector/Property/TypedPropertyFromToManyRelationTypeRector.php', @@ -2082,6 +1703,8 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\DowngradePhp81\\Rector\\FunctionLike\\DowngradeNewInInitializerRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradeNewInInitializerRector.php', 'Rector\\DowngradePhp81\\Rector\\FunctionLike\\DowngradePureIntersectionTypeRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FunctionLike/DowngradePureIntersectionTypeRector.php', 'Rector\\DowngradePhp81\\Rector\\Instanceof_\\DowngradePhp81ResourceReturnToObjectRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Instanceof_/DowngradePhp81ResourceReturnToObjectRector.php', + 'Rector\\DowngradePhp81\\Rector\\LNumber\\DowngradeOctalNumberRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/LNumber/DowngradeOctalNumberRector.php', + 'Rector\\DowngradePhp81\\Rector\\MethodCall\\DowngradeIsEnumRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/MethodCall/DowngradeIsEnumRector.php', 'Rector\\DowngradePhp81\\Rector\\Property\\DowngradeReadonlyPropertyRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Property/DowngradeReadonlyPropertyRector.php', 'Rector\\DowngradePhp81\\Rector\\StmtsAwareInterface\\DowngradeSetAccessibleReflectionPropertyRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php', 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeReadonlyClassRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeReadonlyClassRector.php', @@ -2168,7 +1791,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\NodeNameResolver\\NodeNameResolver\\ClassConstFetchNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver/ClassConstFetchNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\ClassConstNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver/ClassConstNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\ClassNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver/ClassNameResolver.php', - 'Rector\\NodeNameResolver\\NodeNameResolver\\EmptyNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver/EmptyNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\FuncCallNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver/FuncCallNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\FunctionNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver/FunctionNameResolver.php', 'Rector\\NodeNameResolver\\NodeNameResolver\\NameNameResolver' => __DIR__ . '/../..' . '/packages/NodeNameResolver/NodeNameResolver/NameNameResolver.php', @@ -2181,8 +1803,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\NodeNestingScope\\ValueObject\\ControlStructure' => __DIR__ . '/../..' . '/packages/NodeNestingScope/ValueObject/ControlStructure.php', 'Rector\\NodeTypeResolver\\Contract\\NodeTypeResolverAwareInterface' => __DIR__ . '/../..' . '/packages/NodeTypeResolver/Contract/NodeTypeResolverAwareInterface.php', 'Rector\\NodeTypeResolver\\Contract\\NodeTypeResolverInterface' => __DIR__ . '/../..' . '/packages/NodeTypeResolver/Contract/NodeTypeResolverInterface.php', - 'Rector\\NodeTypeResolver\\DependencyInjection\\BleedingEdgeIncludePurifier' => __DIR__ . '/../..' . '/packages/NodeTypeResolver/DependencyInjection/BleedingEdgeIncludePurifier.php', - 'Rector\\NodeTypeResolver\\DependencyInjection\\PHPStanExtensionsConfigResolver' => __DIR__ . '/../..' . '/packages/NodeTypeResolver/DependencyInjection/PHPStanExtensionsConfigResolver.php', 'Rector\\NodeTypeResolver\\DependencyInjection\\PHPStanServicesFactory' => __DIR__ . '/../..' . '/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php', 'Rector\\NodeTypeResolver\\NodeScopeAndMetadataDecorator' => __DIR__ . '/../..' . '/packages/NodeTypeResolver/NodeScopeAndMetadataDecorator.php', 'Rector\\NodeTypeResolver\\NodeTypeCorrector\\AccessoryNonEmptyStringTypeCorrector' => __DIR__ . '/../..' . '/packages/NodeTypeResolver/NodeTypeCorrector/AccessoryNonEmptyStringTypeCorrector.php', @@ -2339,6 +1959,7 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\PHPUnit\\PhpDoc\\PhpDocValueToNodeMapper' => __DIR__ . '/..' . '/rector/rector-phpunit/src/PhpDoc/PhpDocValueToNodeMapper.php', 'Rector\\PHPUnit\\Rector\\ClassMethod\\CreateMockToAnonymousClassRector' => __DIR__ . '/..' . '/rector/rector-phpunit/src/Rector/ClassMethod/CreateMockToAnonymousClassRector.php', 'Rector\\PHPUnit\\Rector\\Class_\\PreferPHPUnitSelfCallRector' => __DIR__ . '/..' . '/rector/rector-phpunit/src/Rector/Class_/PreferPHPUnitSelfCallRector.php', + 'Rector\\PHPUnit\\Rector\\StmtsAwareInterface\\WithConsecutiveRector' => __DIR__ . '/..' . '/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php', 'Rector\\PHPUnit\\Set\\PHPUnitLevelSetList' => __DIR__ . '/..' . '/rector/rector-phpunit/src/Set/PHPUnitLevelSetList.php', 'Rector\\PHPUnit\\Set\\PHPUnitSetList' => __DIR__ . '/..' . '/rector/rector-phpunit/src/Set/PHPUnitSetList.php', 'Rector\\PHPUnit\\ValueObject\\AnnotationWithValueToAttribute' => __DIR__ . '/..' . '/rector/rector-phpunit/src/ValueObject/AnnotationWithValueToAttribute.php', @@ -2496,7 +2117,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Php81\\Rector\\Class_\\MyCLabsClassToEnumRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/Class_/MyCLabsClassToEnumRector.php', 'Rector\\Php81\\Rector\\Class_\\SpatieEnumClassToEnumRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/Class_/SpatieEnumClassToEnumRector.php', 'Rector\\Php81\\Rector\\FuncCall\\NullToStrictStringFuncCallArgRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/FuncCall/NullToStrictStringFuncCallArgRector.php', - 'Rector\\Php81\\Rector\\FunctionLike\\IntersectionTypesRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/FunctionLike/IntersectionTypesRector.php', 'Rector\\Php81\\Rector\\MethodCall\\MyCLabsMethodCallToEnumConstRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/MethodCall/MyCLabsMethodCallToEnumConstRector.php', 'Rector\\Php81\\Rector\\MethodCall\\SpatieEnumMethodCallToEnumConstRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php', 'Rector\\Php81\\Rector\\Property\\ReadOnlyPropertyRector' => __DIR__ . '/../..' . '/rules/Php81/Rector/Property/ReadOnlyPropertyRector.php', @@ -2540,7 +2160,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\PostRector\\Application\\PostFileProcessor' => __DIR__ . '/../..' . '/packages/PostRector/Application/PostFileProcessor.php', 'Rector\\PostRector\\Collector\\UseNodesToAddCollector' => __DIR__ . '/../..' . '/packages/PostRector/Collector/UseNodesToAddCollector.php', 'Rector\\PostRector\\Contract\\Collector\\NodeCollectorInterface' => __DIR__ . '/../..' . '/packages/PostRector/Contract/Collector/NodeCollectorInterface.php', - 'Rector\\PostRector\\Contract\\Rector\\PostRectorDependencyInterface' => __DIR__ . '/../..' . '/packages/PostRector/Contract/Rector/PostRectorDependencyInterface.php', 'Rector\\PostRector\\Contract\\Rector\\PostRectorInterface' => __DIR__ . '/../..' . '/packages/PostRector/Contract/Rector/PostRectorInterface.php', 'Rector\\PostRector\\Rector\\AbstractPostRector' => __DIR__ . '/../..' . '/packages/PostRector/Rector/AbstractPostRector.php', 'Rector\\PostRector\\Rector\\ClassRenamingPostRector' => __DIR__ . '/../..' . '/packages/PostRector/Rector/ClassRenamingPostRector.php', @@ -2782,6 +2401,7 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Symfony\\Symfony61\\Rector\\Class_\\CommandPropertyToAttributeRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony61/Rector/Class_/CommandPropertyToAttributeRector.php', 'Rector\\Symfony\\Symfony61\\Rector\\Class_\\MagicClosureTwigExtensionToNativeMethodsRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony61/Rector/Class_/MagicClosureTwigExtensionToNativeMethodsRector.php', 'Rector\\Symfony\\Symfony61\\Rector\\StaticPropertyFetch\\ErrorNamesPropertyToConstantRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony61/Rector/StaticPropertyFetch/ErrorNamesPropertyToConstantRector.php', + 'Rector\\Symfony\\Symfony62\\Rector\\ClassMethod\\ClassMethod\\ArgumentValueResolverToValueResolverRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php', 'Rector\\Symfony\\Symfony62\\Rector\\ClassMethod\\ParamConverterAttributeToMapEntityAttributeRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ParamConverterAttributeToMapEntityAttributeRector.php', 'Rector\\Symfony\\Symfony62\\Rector\\Class_\\MessageHandlerInterfaceToAttributeRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageHandlerInterfaceToAttributeRector.php', 'Rector\\Symfony\\Symfony62\\Rector\\Class_\\MessageSubscriberInterfaceToAttributeRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony62/Rector/Class_/MessageSubscriberInterfaceToAttributeRector.php', @@ -2867,6 +2487,7 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\TypeDeclaration\\AlreadyAssignDetector\\PropertyDefaultAssignDetector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/AlreadyAssignDetector/PropertyDefaultAssignDetector.php', 'Rector\\TypeDeclaration\\Contract\\PHPStan\\TypeWithClassTypeSpecifierInterface' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Contract/PHPStan/TypeWithClassTypeSpecifierInterface.php', 'Rector\\TypeDeclaration\\FunctionLikeReturnTypeResolver' => __DIR__ . '/../..' . '/rules/TypeDeclaration/FunctionLikeReturnTypeResolver.php', + 'Rector\\TypeDeclaration\\Guard\\ParamTypeAddGuard' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Guard/ParamTypeAddGuard.php', 'Rector\\TypeDeclaration\\Guard\\PropertyTypeOverrideGuard' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Guard/PropertyTypeOverrideGuard.php', 'Rector\\TypeDeclaration\\Matcher\\PropertyAssignMatcher' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Matcher/PropertyAssignMatcher.php', 'Rector\\TypeDeclaration\\NodeAnalyzer\\AutowiredClassMethodOrPropertyAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php', @@ -2907,6 +2528,7 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromReturnNewRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromReturnNewRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictBoolReturnExprRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictBoolReturnExprRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictConstantReturnRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictConstantReturnRector.php', + 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictFluentReturnRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictFluentReturnRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNativeCallRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNewArrayRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictParamRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictParamRector.php', @@ -2965,7 +2587,6 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef 'Rector\\Visibility\\Rector\\ClassMethod\\ExplicitPublicClassMethodRector' => __DIR__ . '/../..' . '/rules/Visibility/Rector/ClassMethod/ExplicitPublicClassMethodRector.php', 'Rector\\Visibility\\ValueObject\\ChangeConstantVisibility' => __DIR__ . '/../..' . '/rules/Visibility/ValueObject/ChangeConstantVisibility.php', 'Rector\\Visibility\\ValueObject\\ChangeMethodVisibility' => __DIR__ . '/../..' . '/rules/Visibility/ValueObject/ChangeMethodVisibility.php', - 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php', 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', 'Symplify\\RuleDocGenerator\\Contract\\Category\\CategoryInfererInterface' => __DIR__ . '/..' . '/symplify/rule-doc-generator-contracts/src/Contract/Category/CategoryInfererInterface.php', 'Symplify\\RuleDocGenerator\\Contract\\CodeSampleInterface' => __DIR__ . '/..' . '/symplify/rule-doc-generator-contracts/src/Contract/CodeSampleInterface.php', @@ -2985,9 +2606,9 @@ class ComposerStaticInit5e920a093e34449f6b8d6b06417344ef public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit5e920a093e34449f6b8d6b06417344ef::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit5e920a093e34449f6b8d6b06417344ef::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit5e920a093e34449f6b8d6b06417344ef::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit02014386848e211b9ef5012c0cc91b7c::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit02014386848e211b9ef5012c0cc91b7c::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit02014386848e211b9ef5012c0cc91b7c::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/rector/rector/vendor/composer/installed.json b/vendor/rector/rector/vendor/composer/installed.json index 6a0470bf9..faa3e8814 100644 --- a/vendor/rector/rector/vendor/composer/installed.json +++ b/vendor/rector/rector/vendor/composer/installed.json @@ -28,7 +28,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202309\\Clue\\React\\NDJson\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -100,7 +100,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Composer\\Pcre\\": "src" + "RectorPrefix202309\\Composer\\Pcre\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -143,17 +143,17 @@ }, { "name": "composer\/semver", - "version": "3.3.2", - "version_normalized": "3.3.2.0", + "version": "3.4.0", + "version_normalized": "3.4.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/composer\/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/composer\/semver\/zipball\/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https:\/\/api.github.com\/repos\/composer\/semver\/zipball\/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -163,7 +163,7 @@ "phpstan\/phpstan": "^1.4", "symfony\/phpunit-bridge": "^4.2 || ^5" }, - "time": "2022-04-01T19:23:25+00:00", + "time": "2023-08-31T09:50:34+00:00", "type": "library", "extra": { "branch-alias": { @@ -173,7 +173,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Composer\\Semver\\": "src" + "RectorPrefix202309\\Composer\\Semver\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -205,9 +205,9 @@ "versioning" ], "support": { - "irc": "irc:\/\/irc.freenode.org\/composer", + "irc": "ircs:\/\/irc.libera.chat:6697\/composer", "issues": "https:\/\/github.com\/composer\/semver\/issues", - "source": "https:\/\/github.com\/composer\/semver\/tree\/3.3.2" + "source": "https:\/\/github.com\/composer\/semver\/tree\/3.4.0" }, "funding": [ { @@ -255,7 +255,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202309\\Composer\\XdebugHandler\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -325,7 +325,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202309\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -414,7 +414,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Evenement\\": "src\/" + "RectorPrefix202309\\Evenement\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -472,7 +472,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Fidry\\CpuCoreCounter\\": "src\/" + "RectorPrefix202309\\Fidry\\CpuCoreCounter\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -504,8 +504,8 @@ }, { "name": "illuminate\/container", - "version": "v10.18.0", - "version_normalized": "10.18.0.0", + "version": "v10.22.0", + "version_normalized": "10.22.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/container.git", @@ -538,7 +538,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Illuminate\\Container\\": "" + "RectorPrefix202309\\Illuminate\\Container\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -561,8 +561,8 @@ }, { "name": "illuminate\/contracts", - "version": "v10.18.0", - "version_normalized": "10.18.0.0", + "version": "v10.22.0", + "version_normalized": "10.22.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/contracts.git", @@ -589,7 +589,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Illuminate\\Contracts\\": "" + "RectorPrefix202309\\Illuminate\\Contracts\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -610,77 +610,6 @@ }, "install-path": "..\/illuminate\/contracts" }, - { - "name": "nette\/neon", - "version": "v3.4.0", - "version_normalized": "3.4.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/nette\/neon.git", - "reference": "372d945c156ee7f35c953339fb164538339e6283" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nette\/neon\/zipball\/372d945c156ee7f35c953339fb164538339e6283", - "reference": "372d945c156ee7f35c953339fb164538339e6283", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=8.0 <8.3" - }, - "require-dev": { - "nette\/tester": "^2.4", - "phpstan\/phpstan": "^1.0", - "tracy\/tracy": "^2.7" - }, - "time": "2023-01-13T03:08:29+00:00", - "bin": [ - "bin\/neon-lint" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "classmap": [ - "src\/" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https:\/\/davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https:\/\/nette.org\/contributors" - } - ], - "description": "\ud83c\udf78 Nette NEON: encodes and decodes NEON file format.", - "homepage": "https:\/\/ne-on.org", - "keywords": [ - "export", - "import", - "neon", - "nette", - "yaml" - ], - "support": { - "issues": "https:\/\/github.com\/nette\/neon\/issues", - "source": "https:\/\/github.com\/nette\/neon\/tree\/v3.4.0" - }, - "install-path": "..\/nette\/neon" - }, { "name": "nette\/utils", "version": "v3.2.10", @@ -772,17 +701,17 @@ }, { "name": "nikic\/php-parser", - "version": "v4.16.0", - "version_normalized": "4.16.0.0", + "version": "v4.17.1", + "version_normalized": "4.17.1.0", "source": { "type": "git", "url": "https:\/\/github.com\/nikic\/PHP-Parser.git", - "reference": "19526a33fb561ef417e822e85f08a00db4059c17" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/19526a33fb561ef417e822e85f08a00db4059c17", - "reference": "19526a33fb561ef417e822e85f08a00db4059c17", + "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -793,7 +722,7 @@ "ircmaxell\/php-yacc": "^0.0.7", "phpunit\/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, - "time": "2023-06-25T14:52:30+00:00", + "time": "2023-08-13T19:53:39+00:00", "bin": [ "bin\/php-parse" ], @@ -842,7 +771,7 @@ ], "support": { "issues": "https:\/\/github.com\/nikic\/PHP-Parser\/issues", - "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v4.16.0" + "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v4.17.1" }, "install-path": "..\/nikic\/php-parser" }, @@ -878,7 +807,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202309\\OndraM\\CiDetector\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -979,17 +908,17 @@ }, { "name": "phpstan\/phpstan", - "version": "1.10.28", - "version_normalized": "1.10.28.0", + "version": "1.10.33", + "version_normalized": "1.10.33.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpstan.git", - "reference": "e4545b55904ebef470423d3ddddb74fa7325497a" + "reference": "03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/e4545b55904ebef470423d3ddddb74fa7325497a", - "reference": "e4545b55904ebef470423d3ddddb74fa7325497a", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpstan\/zipball\/03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1", + "reference": "03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1", "shasum": "" }, "require": { @@ -998,7 +927,7 @@ "conflict": { "phpstan\/phpstan-shim": "*" }, - "time": "2023-08-08T12:33:42+00:00", + "time": "2023-09-04T12:20:53+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -1042,58 +971,6 @@ ], "install-path": "..\/phpstan\/phpstan" }, - { - "name": "psr\/cache", - "version": "3.0.0", - "version_normalized": "3.0.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/php-fig\/cache.git", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/php-fig\/cache\/zipball\/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", - "shasum": "" - }, - "require": { - "php": ">=8.0.0" - }, - "time": "2021-02-03T23:26:27+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202308\\Psr\\Cache\\": "src\/" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https:\/\/www.php-fig.org\/" - } - ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https:\/\/github.com\/php-fig\/cache\/tree\/3.0.0" - }, - "install-path": "..\/psr\/cache" - }, { "name": "psr\/container", "version": "2.0.2", @@ -1122,7 +999,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Psr\\Container\\": "src\/" + "RectorPrefix202309\\Psr\\Container\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1150,59 +1027,6 @@ }, "install-path": "..\/psr\/container" }, - { - "name": "psr\/event-dispatcher", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/php-fig\/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/php-fig\/event-dispatcher\/zipball\/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "time": "2019-01-08T18:20:26+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202308\\Psr\\EventDispatcher\\": "src\/" - } - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http:\/\/www.php-fig.org\/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https:\/\/github.com\/php-fig\/event-dispatcher\/issues", - "source": "https:\/\/github.com\/php-fig\/event-dispatcher\/tree\/1.0.0" - }, - "install-path": "..\/psr\/event-dispatcher" - }, { "name": "psr\/log", "version": "3.0.0", @@ -1231,7 +1055,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Psr\\Log\\": "src" + "RectorPrefix202309\\Psr\\Log\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1284,7 +1108,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Psr\\SimpleCache\\": "src\/" + "RectorPrefix202309\\Psr\\SimpleCache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1337,7 +1161,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\React\\Cache\\": "src\/" + "RectorPrefix202309\\React\\Cache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1416,7 +1240,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\React\\ChildProcess\\": "src" + "RectorPrefix202309\\React\\ChildProcess\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1498,7 +1322,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\React\\Dns\\": "src\/" + "RectorPrefix202309\\React\\Dns\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1575,7 +1399,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\React\\EventLoop\\": "src\/" + "RectorPrefix202309\\React\\EventLoop\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1650,7 +1474,7 @@ "src\/functions_include.php" ], "psr-4": { - "RectorPrefix202308\\React\\Promise\\": "src\/" + "RectorPrefix202309\\React\\Promise\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1698,17 +1522,17 @@ }, { "name": "react\/socket", - "version": "v1.13.0", - "version_normalized": "1.13.0.0", + "version": "v1.14.0", + "version_normalized": "1.14.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/reactphp\/socket.git", - "reference": "cff482bbad5848ecbe8b57da57e4e213b03619aa" + "reference": "21591111d3ea62e31f2254280ca0656bc2b1bda6" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/reactphp\/socket\/zipball\/cff482bbad5848ecbe8b57da57e4e213b03619aa", - "reference": "cff482bbad5848ecbe8b57da57e4e213b03619aa", + "url": "https:\/\/api.github.com\/repos\/reactphp\/socket\/zipball\/21591111d3ea62e31f2254280ca0656bc2b1bda6", + "reference": "21591111d3ea62e31f2254280ca0656bc2b1bda6", "shasum": "" }, "require": { @@ -1723,14 +1547,14 @@ "phpunit\/phpunit": "^9.5 || ^5.7 || ^4.8.35", "react\/async": "^4 || ^3 || ^2", "react\/promise-stream": "^1.4", - "react\/promise-timer": "^1.9" + "react\/promise-timer": "^1.10" }, - "time": "2023-06-07T10:28:34+00:00", + "time": "2023-08-25T13:48:09+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\React\\Socket\\": "src" + "RectorPrefix202309\\React\\Socket\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1769,7 +1593,7 @@ ], "support": { "issues": "https:\/\/github.com\/reactphp\/socket\/issues", - "source": "https:\/\/github.com\/reactphp\/socket\/tree\/v1.13.0" + "source": "https:\/\/github.com\/reactphp\/socket\/tree\/v1.14.0" }, "funding": [ { @@ -1808,7 +1632,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\React\\Stream\\": "src\/" + "RectorPrefix202309\\React\\Stream\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1920,12 +1744,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git", - "reference": "d09e0f376731912f3fd76df176db68f2e357ebc3" + "reference": "b5eea3f1586e0539aafe6f96fbd21f8c8e86c290" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/d09e0f376731912f3fd76df176db68f2e357ebc3", - "reference": "d09e0f376731912f3fd76df176db68f2e357ebc3", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/b5eea3f1586e0539aafe6f96fbd21f8c8e86c290", + "reference": "b5eea3f1586e0539aafe6f96fbd21f8c8e86c290", "shasum": "" }, "require": { @@ -1935,23 +1759,22 @@ "doctrine\/orm": "^2.10", "phpstan\/extension-installer": "^1.3", "phpstan\/phpstan": "^1.10", - "phpstan\/phpstan-strict-rules": "^1.1", "phpstan\/phpstan-webmozart-assert": "^1.2", - "phpunit\/phpunit": "^10.2", + "phpunit\/phpunit": "^10.3", "rector\/phpstan-rules": "^0.6", "rector\/rector-generator": "^0.6", "rector\/rector-src": "dev-main", "symplify\/easy-ci": "^11.2", - "symplify\/easy-coding-standard": "^11.5", + "symplify\/easy-coding-standard": "^12.0", "symplify\/phpstan-extensions": "^11.2", "symplify\/phpstan-rules": "^11.1", - "symplify\/rule-doc-generator": "^11.2", + "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "0.0.22.72", + "tomasvotruba\/class-leak": "^0.1", "tomasvotruba\/type-coverage": "^0.2", "tomasvotruba\/unused-public": "^0.1" }, - "time": "2023-08-06T15:51:10+00:00", + "time": "2023-09-04T16:27:58+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1989,12 +1812,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "44cec673c677071751bbf81c9184d8c52aea19be" + "reference": "51a2650fc81ec757ff7832b20cacb2da5058dc5f" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/44cec673c677071751bbf81c9184d8c52aea19be", - "reference": "44cec673c677071751bbf81c9184d8c52aea19be", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/51a2650fc81ec757ff7832b20cacb2da5058dc5f", + "reference": "51a2650fc81ec757ff7832b20cacb2da5058dc5f", "shasum": "" }, "require": { @@ -2005,22 +1828,23 @@ "phpstan\/phpstan": "^1.9", "phpstan\/phpstan-deprecation-rules": "^1.1", "phpstan\/phpstan-webmozart-assert": "^1.2", - "phpunit\/phpunit": "^10.1", - "rector\/phpstan-rules": "^0.6", - "rector\/rector-generator": "^0.6", + "phpunit\/phpunit": "^10.3", + "rector\/phpstan-rules": "^0.7", + "rector\/rector-generator": "^0.7.3", "rector\/rector-src": "dev-main", "symplify\/easy-ci": "^11.2", - "symplify\/easy-coding-standard": "^11.2", - "symplify\/phpstan-extensions": "^11.2", - "symplify\/phpstan-rules": "^11.4", - "symplify\/rule-doc-generator": "^11.2", + "symplify\/easy-coding-standard": "^12.0", + "symplify\/phpstan-extensions": "^11.3", + "symplify\/phpstan-rules": "^12.0", + "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "0.0.22.72", + "tomasvotruba\/class-leak": "^0.1", "tomasvotruba\/cognitive-complexity": "^0.1", "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/unused-public": "^0.1" + "tomasvotruba\/unused-public": "^0.2", + "tracy\/tracy": "^2.10" }, - "time": "2023-08-06T00:03:41+00:00", + "time": "2023-09-04T16:29:25+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -2058,12 +1882,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "14f0412eae74810120e4dd4916d49512e0fd5e60" + "reference": "0810d7c51e4f3e17410bebd33af2cfd9b9a0b2ca" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/14f0412eae74810120e4dd4916d49512e0fd5e60", - "reference": "14f0412eae74810120e4dd4916d49512e0fd5e60", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/0810d7c51e4f3e17410bebd33af2cfd9b9a0b2ca", + "reference": "0810d7c51e4f3e17410bebd33af2cfd9b9a0b2ca", "shasum": "" }, "require": { @@ -2079,20 +1903,21 @@ "phpstan\/phpstan-webmozart-assert": "^1.2.2", "phpunit\/phpunit": "^10.2", "rector\/phpstan-rules": "^0.6", - "rector\/rector-generator": "^0.6.15", + "rector\/rector-generator": "^0.7", "rector\/rector-src": "dev-main", "symplify\/easy-ci": "^11.2.0", - "symplify\/easy-coding-standard": "^11.5", + "symplify\/easy-coding-standard": "^12.0", "symplify\/phpstan-extensions": "^11.2", "symplify\/phpstan-rules": "^11.4", - "symplify\/rule-doc-generator": "^11.2", + "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2.0", - "tomasvotruba\/class-leak": "0.0.22.72", + "tomasvotruba\/class-leak": "^0.1", "tomasvotruba\/cognitive-complexity": "^0.1", - "tomasvotruba\/type-coverage": "^0.1", - "tomasvotruba\/unused-public": "^0.1" + "tomasvotruba\/type-coverage": "^0.2", + "tomasvotruba\/unused-public": "^0.3", + "tracy\/tracy": "^2.10" }, - "time": "2023-08-10T11:29:45+00:00", + "time": "2023-09-04T16:28:25+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -2133,43 +1958,45 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "c6b7ee75239900ccf9abd234fc135e817f869d93" + "reference": "0b0b6158f30de1201e51d4f50c748b893bb6ee1b" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/c6b7ee75239900ccf9abd234fc135e817f869d93", - "reference": "c6b7ee75239900ccf9abd234fc135e817f869d93", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/0b0b6158f30de1201e51d4f50c748b893bb6ee1b", + "reference": "0b0b6158f30de1201e51d4f50c748b893bb6ee1b", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=8.1", - "symfony\/string": "^6.3" + "php": ">=8.1" }, "require-dev": { "phpstan\/extension-installer": "^1.3", - "phpstan\/phpstan": "^1.9.2", + "phpstan\/phpstan": "^1.10.28", "phpstan\/phpstan-webmozart-assert": "^1.2", "phpunit\/phpunit": "^10.3", "rector\/phpstan-rules": "^0.6", - "rector\/rector-generator": "^0.6", + "rector\/rector-generator": "^0.7", "rector\/rector-src": "dev-main", - "symfony\/routing": "^6.1", + "symfony\/config": "^6.3", + "symfony\/dependency-injection": "^6.3", + "symfony\/routing": "^6.2", "symfony\/security-core": "^6.2", "symfony\/security-http": "^6.1", "symfony\/validator": "^6.2", "symplify\/easy-ci": "^11.2", "symplify\/easy-coding-standard": "^12.0", "symplify\/phpstan-extensions": "^11.1", - "symplify\/phpstan-rules": "^11.2", - "symplify\/rule-doc-generator": "^11.2", + "symplify\/phpstan-rules": "^12.0", + "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "0.1.1.72", + "tomasvotruba\/class-leak": "^0.1", "tomasvotruba\/cognitive-complexity": "^0.1", "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/unused-public": "^0.2" + "tomasvotruba\/unused-public": "^0.2", + "tracy\/tracy": "^2.10" }, - "time": "2023-08-10T09:36:28+00:00", + "time": "2023-09-04T16:28:46+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -2270,97 +2097,19 @@ ], "install-path": "..\/sebastian\/diff" }, - { - "name": "symfony\/config", - "version": "v6.3.2", - "version_normalized": "6.3.2.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symfony\/config.git", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/config\/zipball\/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", - "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony\/deprecation-contracts": "^2.5|^3", - "symfony\/filesystem": "^5.4|^6.0", - "symfony\/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony\/finder": "<5.4", - "symfony\/service-contracts": "<2.5" - }, - "require-dev": { - "symfony\/event-dispatcher": "^5.4|^6.0", - "symfony\/finder": "^5.4|^6.0", - "symfony\/messenger": "^5.4|^6.0", - "symfony\/service-contracts": "^2.5|^3", - "symfony\/yaml": "^5.4|^6.0" - }, - "time": "2023-07-19T20:22:16+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "\/Tests\/" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", - "homepage": "https:\/\/symfony.com", - "support": { - "source": "https:\/\/github.com\/symfony\/config\/tree\/v6.3.2" - }, - "funding": [ - { - "url": "https:\/\/symfony.com\/sponsor", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/fabpot", - "type": "github" - }, - { - "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", - "type": "tidelift" - } - ], - "install-path": "..\/symfony\/config" - }, { "name": "symfony\/console", - "version": "v6.3.2", - "version_normalized": "6.3.2.0", + "version": "v6.3.4", + "version_normalized": "6.3.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/console.git", - "reference": "aa5d64ad3f63f2e48964fc81ee45cb318a723898" + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/aa5d64ad3f63f2e48964fc81ee45cb318a723898", - "reference": "aa5d64ad3f63f2e48964fc81ee45cb318a723898", + "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", "shasum": "" }, "require": { @@ -2389,12 +2138,17 @@ "symfony\/process": "^5.4|^6.0", "symfony\/var-dumper": "^5.4|^6.0" }, - "time": "2023-07-19T20:17:28+00:00", + "time": "2023-08-16T10:10:12+00:00", "type": "library", + "extra": { + "patches_applied": [ + "https:\/\/raw.githubusercontent.com\/rectorphp\/vendor-patches\/main\/patches\/symfony-console-helper-helper-php.patch" + ] + }, "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Console\\": "" + "RectorPrefix202309\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2423,7 +2177,7 @@ "terminal" ], "support": { - "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.3.2" + "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.3.4" }, "funding": [ { @@ -2441,198 +2195,6 @@ ], "install-path": "..\/symfony\/console" }, - { - "name": "symfony\/contracts", - "version": "v3.3.0", - "version_normalized": "3.3.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symfony\/contracts.git", - "reference": "9e4b5e4e44e7620475dbceecf7c72c3883f3ea35" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/contracts\/zipball\/9e4b5e4e44e7620475dbceecf7c72c3883f3ea35", - "reference": "9e4b5e4e44e7620475dbceecf7c72c3883f3ea35", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr\/cache": "^3.0", - "psr\/container": "^2.0", - "psr\/event-dispatcher": "^1.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "replace": { - "symfony\/cache-contracts": "self.version", - "symfony\/deprecation-contracts": "self.version", - "symfony\/event-dispatcher-contracts": "self.version", - "symfony\/http-client-contracts": "self.version", - "symfony\/service-contracts": "self.version", - "symfony\/translation-contracts": "self.version" - }, - "require-dev": { - "symfony\/polyfill-intl-idn": "^1.10" - }, - "time": "2023-05-30T17:17:10+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "Deprecation\/function.php" - ], - "psr-4": { - "RectorPrefix202308\\Symfony\\Contracts\\": "" - }, - "exclude-from-classmap": [ - "**\/Tests\/" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "description": "A set of abstractions extracted out of the Symfony components", - "homepage": "https:\/\/symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https:\/\/github.com\/symfony\/contracts\/tree\/v3.3.0" - }, - "funding": [ - { - "url": "https:\/\/symfony.com\/sponsor", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/fabpot", - "type": "github" - }, - { - "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", - "type": "tidelift" - } - ], - "install-path": "..\/symfony\/contracts" - }, - { - "name": "symfony\/dependency-injection", - "version": "v6.1.12", - "version_normalized": "6.1.12.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symfony\/dependency-injection.git", - "reference": "360c9d0948e1fe675336346d5862e8e55b378d90" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/dependency-injection\/zipball\/360c9d0948e1fe675336346d5862e8e55b378d90", - "reference": "360c9d0948e1fe675336346d5862e8e55b378d90", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr\/container": "^1.1|^2.0", - "symfony\/deprecation-contracts": "^2.1|^3", - "symfony\/service-contracts": "^1.1.6|^2.0|^3.0" - }, - "conflict": { - "ext-psr": "<1.1|>=2", - "symfony\/config": "<6.1", - "symfony\/finder": "<5.4", - "symfony\/proxy-manager-bridge": "<5.4", - "symfony\/yaml": "<5.4" - }, - "provide": { - "psr\/container-implementation": "1.1|2.0", - "symfony\/service-implementation": "1.1|2.0|3.0" - }, - "require-dev": { - "symfony\/config": "^6.1", - "symfony\/expression-language": "^5.4|^6.0", - "symfony\/yaml": "^5.4|^6.0" - }, - "suggest": { - "symfony\/config": "", - "symfony\/expression-language": "For using expressions in service container configuration", - "symfony\/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony\/proxy-manager-bridge": "Generate service proxies to lazy load them", - "symfony\/yaml": "" - }, - "time": "2023-01-30T15:43:30+00:00", - "type": "library", - "extra": { - "patches_applied": [ - "https:\/\/raw.githubusercontent.com\/symplify\/vendor-patch-files\/main\/patches\/generic-php-config-loader.patch" - ] - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "\/Tests\/" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "description": "Allows you to standardize and centralize the way objects are constructed in your application", - "homepage": "https:\/\/symfony.com", - "support": { - "source": "https:\/\/github.com\/symfony\/dependency-injection\/tree\/v6.1.12" - }, - "funding": [ - { - "url": "https:\/\/symfony.com\/sponsor", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/fabpot", - "type": "github" - }, - { - "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", - "type": "tidelift" - } - ], - "install-path": "..\/symfony\/dependency-injection" - }, { "name": "symfony\/filesystem", "version": "v6.3.1", @@ -2658,7 +2220,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202309\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2725,7 +2287,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202309\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2766,106 +2328,19 @@ ], "install-path": "..\/symfony\/finder" }, - { - "name": "symfony\/polyfill-intl-normalizer", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", - "source": { - "type": "git", - "url": "https:\/\/github.com\/symfony\/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" - }, - "dist": { - "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/polyfill-intl-normalizer\/zipball\/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "time": "2022-11-03T14:55:06+00:00", - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony\/polyfill", - "url": "https:\/\/github.com\/symfony\/polyfill" - } - }, - "installation-source": "dist", - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "classmap": [ - "Resources\/stubs" - ] - }, - "notification-url": "https:\/\/packagist.org\/downloads\/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https:\/\/symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https:\/\/github.com\/symfony\/polyfill-intl-normalizer\/tree\/v1.27.0" - }, - "funding": [ - { - "url": "https:\/\/symfony.com\/sponsor", - "type": "custom" - }, - { - "url": "https:\/\/github.com\/fabpot", - "type": "github" - }, - { - "url": "https:\/\/tidelift.com\/funding\/github\/packagist\/symfony\/symfony", - "type": "tidelift" - } - ], - "install-path": "..\/symfony\/polyfill-intl-normalizer" - }, { "name": "symfony\/polyfill-mbstring", - "version": "v1.27.0", - "version_normalized": "1.27.0.0", + "version": "v1.28.0", + "version_normalized": "1.28.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/polyfill-mbstring\/zipball\/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https:\/\/api.github.com\/repos\/symfony\/polyfill-mbstring\/zipball\/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -2877,11 +2352,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2022-11-03T14:55:06+00:00", + "time": "2023-07-28T09:04:16+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony\/polyfill", @@ -2921,7 +2396,7 @@ "shim" ], "support": { - "source": "https:\/\/github.com\/symfony\/polyfill-mbstring\/tree\/v1.27.0" + "source": "https:\/\/github.com\/symfony\/polyfill-mbstring\/tree\/v1.28.0" }, "funding": [ { @@ -2941,28 +2416,28 @@ }, { "name": "symfony\/process", - "version": "v6.3.2", - "version_normalized": "6.3.2.0", + "version": "v6.3.4", + "version_normalized": "6.3.4.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/process.git", - "reference": "c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d" + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d", - "reference": "c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d", + "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/0b5c29118f2e980d455d2e34a5659f4579847c54", + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54", "shasum": "" }, "require": { "php": ">=8.1" }, - "time": "2023-07-12T16:00:22+00:00", + "time": "2023-08-07T10:39:22+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Process\\": "" + "RectorPrefix202309\\Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2985,7 +2460,7 @@ "description": "Executes commands in sub-processes", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.3.2" + "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.3.4" }, "funding": [ { @@ -3004,49 +2479,45 @@ "install-path": "..\/symfony\/process" }, { - "name": "symfony\/string", - "version": "v6.3.2", - "version_normalized": "6.3.2.0", + "name": "symfony\/service-contracts", + "version": "v3.3.0", + "version_normalized": "3.3.0.0", "source": { "type": "git", - "url": "https:\/\/github.com\/symfony\/string.git", - "reference": "53d1a83225002635bca3482fcbf963001313fb68" + "url": "https:\/\/github.com\/symfony\/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/string\/zipball\/53d1a83225002635bca3482fcbf963001313fb68", - "reference": "53d1a83225002635bca3482fcbf963001313fb68", + "url": "https:\/\/api.github.com\/repos\/symfony\/service-contracts\/zipball\/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", "shasum": "" }, "require": { "php": ">=8.1", - "symfony\/polyfill-ctype": "~1.8", - "symfony\/polyfill-intl-grapheme": "~1.0", - "symfony\/polyfill-intl-normalizer": "~1.0", - "symfony\/polyfill-mbstring": "~1.0" + "psr\/container": "^2.0" }, "conflict": { - "symfony\/translation-contracts": "<2.5" - }, - "require-dev": { - "symfony\/error-handler": "^5.4|^6.0", - "symfony\/http-client": "^5.4|^6.0", - "symfony\/intl": "^6.2", - "symfony\/translation-contracts": "^2.5|^3.0", - "symfony\/var-exporter": "^5.4|^6.0" + "ext-psr": "<1.1|>=2" }, - "time": "2023-07-05T08:41:27+00:00", + "time": "2023-05-23T14:45:45+00:00", "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony\/contracts", + "url": "https:\/\/github.com\/symfony\/contracts" + } + }, "installation-source": "dist", "autoload": { - "files": [ - "Resources\/functions.php" - ], "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\String\\": "" + "RectorPrefix202309\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ - "\/Tests\/" + "\/Test\/" ] }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -3063,18 +2534,18 @@ "homepage": "https:\/\/symfony.com\/contributors" } ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "description": "Generic abstractions related to writing services", "homepage": "https:\/\/symfony.com", "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], "support": { - "source": "https:\/\/github.com\/symfony\/string\/tree\/v6.3.2" + "source": "https:\/\/github.com\/symfony\/service-contracts\/tree\/v3.3.0" }, "funding": [ { @@ -3090,7 +2561,7 @@ "type": "tidelift" } ], - "install-path": "..\/symfony\/string" + "install-path": "..\/symfony\/service-contracts" }, { "name": "symplify\/easy-parallel", @@ -3138,7 +2609,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202309\\Symplify\\EasyParallel\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -3261,7 +2732,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202308\\Webmozart\\Assert\\": "src\/" + "RectorPrefix202309\\Webmozart\\Assert\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", diff --git a/vendor/rector/rector/vendor/composer/installed.php b/vendor/rector/rector/vendor/composer/installed.php index 1f9ee5353..d263c9b3a 100644 --- a/vendor/rector/rector/vendor/composer/installed.php +++ b/vendor/rector/rector/vendor/composer/installed.php @@ -1,5 +1,5 @@ array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.0', 'version' => '3.1.0.0', 'reference' => '4bff79ddd77851fe3cdd11616ed3f92841ba5bd2', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.3.2', 'version' => '3.3.2.0', 'reference' => '3953f23262f2bff1919fc82183ad9acb13ff62c9', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.18.0', 'version' => '10.18.0.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.18.0', 'version' => '10.18.0.0', 'reference' => 'eb1a7e72e159136a832f2c0467de5570bdc208ae', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/neon' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => '372d945c156ee7f35c953339fb164538339e6283', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/neon', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.16.0', 'version' => '4.16.0.0', 'reference' => '19526a33fb561ef417e822e85f08a00db4059c17', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.23.1', 'version' => '1.23.1.0', 'reference' => '846ae76eef31c6d7790fac9bc399ecee45160b26', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.10.28', 'version' => '1.10.28.0', 'reference' => 'e4545b55904ebef470423d3ddddb74fa7325497a', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/event-dispatcher' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', 'reference' => '3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '6e7e587714fff7a83dcc7025aee42ab3b265ae05', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.10.0', 'version' => '2.10.0.0', 'reference' => 'f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.13.0', 'version' => '1.13.0.0', 'reference' => 'cff482bbad5848ecbe8b57da57e4e213b03619aa', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'd09e0f376731912f3fd76df176db68f2e357ebc3', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '44cec673c677071751bbf81c9184d8c52aea19be', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '14f0412eae74810120e4dd4916d49512e0fd5e60', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'c6b7ee75239900ccf9abd234fc135e817f869d93', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/cache-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/config' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'b47ca238b03e7b0d7880ffd1cf06e8d637ca1467', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/config', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'aa5d64ad3f63f2e48964fc81ee45cb318a723898', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/contracts' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '9e4b5e4e44e7620475dbceecf7c72c3883f3ea35', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/dependency-injection' => array('pretty_version' => 'v6.1.12', 'version' => '6.1.12.0', 'reference' => '360c9d0948e1fe675336346d5862e8e55b378d90', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/dependency-injection', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/error-handler' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/event-dispatcher-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/filesystem' => array('pretty_version' => 'v6.3.1', 'version' => '6.3.1.0', 'reference' => 'edd36776956f2a6fcf577edb5b05eb0e3bdc52ae', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.3.3', 'version' => '6.3.3.0', 'reference' => '9915db259f67d21eefee768c1abcf1cc61b1fc9e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-client-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-normalizer' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '19bd1e4fcd5b91116f14d8533c57831ed00571b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.27.0', 'version' => '1.27.0.0', 'reference' => '8ad114f6b39e2c98a8b0e3bd907732c207c2b534', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => 'c5ce962db0d9b6e80247ca5eb9af6472bd4d7b5d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/service-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0|3.0')), 'symfony/string' => array('pretty_version' => 'v6.3.2', 'version' => '6.3.2.0', 'reference' => '53d1a83225002635bca3482fcbf963001313fb68', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => 'v3.3.0')), 'symfony/var-dumper' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); +return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.0', 'version' => '3.1.0.0', 'reference' => '4bff79ddd77851fe3cdd11616ed3f92841ba5bd2', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.0', 'version' => '3.4.0.0', 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.22.0', 'version' => '10.22.0.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.22.0', 'version' => '10.22.0.0', 'reference' => 'eb1a7e72e159136a832f2c0467de5570bdc208ae', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.17.1', 'version' => '4.17.1.0', 'reference' => 'a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.23.1', 'version' => '1.23.1.0', 'reference' => '846ae76eef31c6d7790fac9bc399ecee45160b26', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('pretty_version' => '1.10.33', 'version' => '1.10.33.0', 'reference' => '03b1cf9f814ba0863c4e9affea49a4d1ed9a2ed1', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', 'reference' => '3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '6e7e587714fff7a83dcc7025aee42ab3b265ae05', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.10.0', 'version' => '2.10.0.0', 'reference' => 'f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '21591111d3ea62e31f2254280ca0656bc2b1bda6', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => 'b5eea3f1586e0539aafe6f96fbd21f8c8e86c290', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '51a2650fc81ec757ff7832b20cacb2da5058dc5f', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '0810d7c51e4f3e17410bebd33af2cfd9b9a0b2ca', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '0b0b6158f30de1201e51d4f50c748b893bb6ee1b', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.3.4', 'version' => '6.3.4.0', 'reference' => 'eca495f2ee845130855ddf1cf18460c38966c8b6', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/filesystem' => array('pretty_version' => 'v6.3.1', 'version' => '6.3.1.0', 'reference' => 'edd36776956f2a6fcf577edb5b05eb0e3bdc52ae', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.3.3', 'version' => '6.3.3.0', 'reference' => '9915db259f67d21eefee768c1abcf1cc61b1fc9e', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.28.0', 'version' => '1.28.0.0', 'reference' => '42292d99c55abe617799667f454222c54c60e229', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.3.4', 'version' => '6.3.4.0', 'reference' => '0b5c29118f2e980d455d2e34a5659f4579847c54', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.3.0', 'version' => '3.3.0.0', 'reference' => '40da9cc13ec349d9e4966ce18b5fbcd724ab10a4', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/rector/rector/vendor/composer/pcre/composer.json b/vendor/rector/rector/vendor/composer/pcre/composer.json index aba5c83f5..7cbd78aa0 100644 --- a/vendor/rector/rector/vendor/composer/pcre/composer.json +++ b/vendor/rector/rector/vendor/composer/pcre/composer.json @@ -26,12 +26,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Composer\\Pcre\\": "src" + "RectorPrefix202309\\Composer\\Pcre\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\Composer\\Pcre\\": "tests" + "RectorPrefix202309\\Composer\\Pcre\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php index 4c09b16ae..b87bd4df8 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; final class MatchAllResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php index 59d49d55e..01eab4e9d 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; final class MatchAllStrictGroupsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php index 3b66b45f5..4d209c3df 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; final class MatchAllWithOffsetsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php index 566081091..d5851855d 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; final class MatchResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php index 1ee3095c0..fc4a7db91 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; final class MatchStrictGroupsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php index 85b731721..d795f3efc 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; final class MatchWithOffsetsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php b/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php index bf819be7e..8910eb9da 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; class PcreException extends \RuntimeException { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/Preg.php b/vendor/rector/rector/vendor/composer/pcre/src/Preg.php index 5b811ddd6..1b462b1ce 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/Preg.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/Preg.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; class Preg { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/Regex.php b/vendor/rector/rector/vendor/composer/pcre/src/Regex.php index 8167e8084..cc53b97aa 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/Regex.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/Regex.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; class Regex { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php b/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php index d3f5dc055..813a49a57 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; final class ReplaceResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php b/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php index 0080fd9d5..aa12d6387 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Pcre; +namespace RectorPrefix202309\Composer\Pcre; class UnexpectedNullMatchException extends PcreException { diff --git a/vendor/rector/rector/vendor/composer/semver/README.md b/vendor/rector/rector/vendor/composer/semver/README.md index 35db99a5c..767784906 100644 --- a/vendor/rector/rector/vendor/composer/semver/README.md +++ b/vendor/rector/rector/vendor/composer/semver/README.md @@ -6,8 +6,9 @@ Semver (Semantic Versioning) library that offers utilities, version constraint p Originally written as part of [composer/composer](https://github.com/composer/composer), now extracted and made available as a stand-alone library. -[![Continuous Integration](https://github.com/composer/semver/workflows/Continuous%20Integration/badge.svg?branch=main)](https://github.com/composer/semver/actions) - +[![Continuous Integration](https://github.com/composer/semver/actions/workflows/continuous-integration.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/continuous-integration.yml) +[![PHP Lint](https://github.com/composer/semver/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/lint.yml) +[![PHPStan](https://github.com/composer/semver/actions/workflows/phpstan.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/phpstan.yml) Installation ------------ @@ -15,7 +16,7 @@ Installation Install the latest version with: ```bash -$ composer require composer/semver +composer require composer/semver ``` diff --git a/vendor/rector/rector/vendor/composer/semver/composer.json b/vendor/rector/rector/vendor/composer/semver/composer.json index 0a5273cf1..453d0e151 100644 --- a/vendor/rector/rector/vendor/composer/semver/composer.json +++ b/vendor/rector/rector/vendor/composer/semver/composer.json @@ -27,7 +27,7 @@ } ], "support": { - "irc": "irc:\/\/irc.freenode.org\/composer", + "irc": "ircs:\/\/irc.libera.chat:6697\/composer", "issues": "https:\/\/github.com\/composer\/semver\/issues" }, "require": { @@ -39,12 +39,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Composer\\Semver\\": "src" + "RectorPrefix202309\\Composer\\Semver\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\Composer\\Semver\\": "tests" + "RectorPrefix202309\\Composer\\Semver\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/composer/semver/phpstan-baseline.neon b/vendor/rector/rector/vendor/composer/semver/phpstan-baseline.neon new file mode 100644 index 000000000..933cf2031 --- /dev/null +++ b/vendor/rector/rector/vendor/composer/semver/phpstan-baseline.neon @@ -0,0 +1,11 @@ +parameters: + ignoreErrors: + - + message: "#^Parameter \\#1 \\$operator of class Composer\\\\Semver\\\\Constraint\\\\Constraint constructor expects '\\!\\='\\|'\\<'\\|'\\<\\='\\|'\\<\\>'\\|'\\='\\|'\\=\\='\\|'\\>'\\|'\\>\\=', non\\-falsy\\-string given\\.$#" + count: 1 + path: src/VersionParser.php + + - + message: "#^Strict comparison using \\=\\=\\= between null and non\\-empty\\-string will always evaluate to false\\.$#" + count: 2 + path: src/VersionParser.php diff --git a/vendor/rector/rector/vendor/composer/semver/src/Comparator.php b/vendor/rector/rector/vendor/composer/semver/src/Comparator.php index 602b597dc..c324c683a 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Comparator.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Comparator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver; +namespace RectorPrefix202309\Composer\Semver; -use RectorPrefix202308\Composer\Semver\Constraint\Constraint; +use RectorPrefix202309\Composer\Semver\Constraint\Constraint; class Comparator { /** diff --git a/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php b/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php index 8b4ba8f43..ceba28002 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php +++ b/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver; +namespace RectorPrefix202309\Composer\Semver; -use RectorPrefix202308\Composer\Semver\Constraint\Constraint; -use RectorPrefix202308\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202309\Composer\Semver\Constraint\Constraint; +use RectorPrefix202309\Composer\Semver\Constraint\ConstraintInterface; /** * Helper class to evaluate constraint by compiling and reusing the code to evaluate */ diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php index 7227ed696..1414568d1 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver\Constraint; +namespace RectorPrefix202309\Composer\Semver\Constraint; class Bound { diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php index 74419f9e8..0d41f46b1 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver\Constraint; +namespace RectorPrefix202309\Composer\Semver\Constraint; /** * Defines a constraint. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php index 409e8cd15..c4af774af 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver\Constraint; +namespace RectorPrefix202309\Composer\Semver\Constraint; /** * DO NOT IMPLEMENT this interface. It is only meant for usage as a type hint diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php index ab4182f28..2d76bdf21 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver\Constraint; +namespace RectorPrefix202309\Composer\Semver\Constraint; /** * Defines the absence of a constraint. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php index d8592dd46..a36383886 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver\Constraint; +namespace RectorPrefix202309\Composer\Semver\Constraint; /** * Blackhole of constraints, nothing escapes it diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php index ecf848dca..ac5626e58 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver\Constraint; +namespace RectorPrefix202309\Composer\Semver\Constraint; /** * Defines a conjunctive or disjunctive set of constraints. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Interval.php b/vendor/rector/rector/vendor/composer/semver/src/Interval.php index df0ebd0bd..7213f6a83 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Interval.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Interval.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver; +namespace RectorPrefix202309\Composer\Semver; -use RectorPrefix202308\Composer\Semver\Constraint\Constraint; +use RectorPrefix202309\Composer\Semver\Constraint\Constraint; class Interval { /** @var Constraint */ diff --git a/vendor/rector/rector/vendor/composer/semver/src/Intervals.php b/vendor/rector/rector/vendor/composer/semver/src/Intervals.php index 7d1e4b142..576d922f1 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Intervals.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Intervals.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver; +namespace RectorPrefix202309\Composer\Semver; -use RectorPrefix202308\Composer\Semver\Constraint\Constraint; -use RectorPrefix202308\Composer\Semver\Constraint\ConstraintInterface; -use RectorPrefix202308\Composer\Semver\Constraint\MatchAllConstraint; -use RectorPrefix202308\Composer\Semver\Constraint\MatchNoneConstraint; -use RectorPrefix202308\Composer\Semver\Constraint\MultiConstraint; +use RectorPrefix202309\Composer\Semver\Constraint\Constraint; +use RectorPrefix202309\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202309\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202309\Composer\Semver\Constraint\MatchNoneConstraint; +use RectorPrefix202309\Composer\Semver\Constraint\MultiConstraint; /** * Helper class generating intervals from constraints * diff --git a/vendor/rector/rector/vendor/composer/semver/src/Semver.php b/vendor/rector/rector/vendor/composer/semver/src/Semver.php index 466890e3b..5cac099e8 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Semver.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Semver.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver; +namespace RectorPrefix202309\Composer\Semver; -use RectorPrefix202308\Composer\Semver\Constraint\Constraint; +use RectorPrefix202309\Composer\Semver\Constraint\Constraint; class Semver { const SORT_ASC = 1; diff --git a/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php b/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php index df8d0e086..94bc34760 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php +++ b/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\Semver; +namespace RectorPrefix202309\Composer\Semver; -use RectorPrefix202308\Composer\Semver\Constraint\ConstraintInterface; -use RectorPrefix202308\Composer\Semver\Constraint\MatchAllConstraint; -use RectorPrefix202308\Composer\Semver\Constraint\MultiConstraint; -use RectorPrefix202308\Composer\Semver\Constraint\Constraint; +use RectorPrefix202309\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202309\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202309\Composer\Semver\Constraint\MultiConstraint; +use RectorPrefix202309\Composer\Semver\Constraint\Constraint; /** * Version parser. * @@ -116,12 +116,12 @@ public function normalize($version, $fullVersion = null) $version = $match[1]; } // match classical versioning - if (\preg_match('{^v?(\\d{1,5})(\\.\\d++)?(\\.\\d++)?(\\.\\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) { + if (\preg_match('{^v?(\\d{1,5}+)(\\.\\d++)?(\\.\\d++)?(\\.\\d++)?' . self::$modifierRegex . '$}i', $version, $matches)) { $version = $matches[1] . (!empty($matches[2]) ? $matches[2] : '.0') . (!empty($matches[3]) ? $matches[3] : '.0') . (!empty($matches[4]) ? $matches[4] : '.0'); $index = 5; // match date(time) based versioning - } elseif (\preg_match('{^v?(\\d{4}(?:[.:-]?\\d{2}){1,6}(?:[.:-]?\\d{1,3})?)' . self::$modifierRegex . '$}i', $version, $matches)) { - $version = \preg_replace('{\\D}', '.', $matches[1]); + } elseif (\preg_match('{^v?(\\d{4}(?:[.:-]?\\d{2}){1,6}(?:[.:-]?\\d{1,3}){0,2})' . self::$modifierRegex . '$}i', $version, $matches)) { + $version = (string) \preg_replace('{\\D}', '.', $matches[1]); $index = 2; } // add version modifiers if a version was matched @@ -222,16 +222,16 @@ public function parseConstraints($constraints) throw new \RuntimeException('Failed to preg_split string: ' . $constraints); } $orGroups = array(); - foreach ($orConstraints as $constraints) { - $andConstraints = \preg_split('{(?< ,]) *(?< ,]) *(? 1) { $constraintObjects = array(); - foreach ($andConstraints as $constraint) { - foreach ($this->parseConstraint($constraint) as $parsedConstraint) { - $constraintObjects[] = $parsedConstraint; + foreach ($andConstraints as $andConstraint) { + foreach ($this->parseConstraint($andConstraint) as $parsedAndConstraint) { + $constraintObjects[] = $parsedAndConstraint; } } } else { @@ -244,9 +244,9 @@ public function parseConstraints($constraints) } $orGroups[] = $constraint; } - $constraint = MultiConstraint::create($orGroups, \false); - $constraint->setPrettyString($prettyConstraint); - return $constraint; + $parsedConstraint = MultiConstraint::create($orGroups, \false); + $parsedConstraint->setPrettyString($prettyConstraint); + return $parsedConstraint; } /** * @param string $constraint diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json b/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json index 1e8a430b0..ca7932ee1 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json @@ -29,12 +29,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202309\\Composer\\XdebugHandler\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\Composer\\XdebugHandler\\Tests\\": "tests" + "RectorPrefix202309\\Composer\\XdebugHandler\\Tests\\": "tests" } }, "scripts": { diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php index cd034e618..fccae6eda 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202308\Composer\XdebugHandler; +namespace RectorPrefix202309\Composer\XdebugHandler; /** * @author John Stevenson diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php index 910ba0cf5..3da46aa4b 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php @@ -9,9 +9,9 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202308\Composer\XdebugHandler; +namespace RectorPrefix202309\Composer\XdebugHandler; -use RectorPrefix202308\Composer\Pcre\Preg; +use RectorPrefix202309\Composer\Pcre\Preg; /** * Process utility functions * diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php index 0308bd3f5..5013c3edb 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202308\Composer\XdebugHandler; +namespace RectorPrefix202309\Composer\XdebugHandler; -use RectorPrefix202308\Psr\Log\LoggerInterface; -use RectorPrefix202308\Psr\Log\LogLevel; +use RectorPrefix202309\Psr\Log\LoggerInterface; +use RectorPrefix202309\Psr\Log\LogLevel; /** * @author John Stevenson * @internal diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php index 74d8a933b..65cca3145 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202308\Composer\XdebugHandler; +namespace RectorPrefix202309\Composer\XdebugHandler; -use RectorPrefix202308\Composer\Pcre\Preg; -use RectorPrefix202308\Psr\Log\LoggerInterface; +use RectorPrefix202309\Composer\Pcre\Preg; +use RectorPrefix202309\Psr\Log\LoggerInterface; /** * @author John Stevenson * diff --git a/vendor/rector/rector/vendor/doctrine/inflector/composer.json b/vendor/rector/rector/vendor/doctrine/inflector/composer.json index c41fb5f06..7ba066da5 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/composer.json +++ b/vendor/rector/rector/vendor/doctrine/inflector/composer.json @@ -51,12 +51,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202309\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\Doctrine\\Tests\\Inflector\\": "tests\/Doctrine\/Tests\/Inflector" + "RectorPrefix202309\\Doctrine\\Tests\\Inflector\\": "tests\/Doctrine\/Tests\/Inflector" } }, "config": { diff --git a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php index 431363ceb..3fec5df60 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php +++ b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php @@ -1,7 +1,7 @@ ' ', '/([A-Z]+)([A-Z][a-z])/' => 'RectorPrefix202308\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202308\\1_\\2', '/[^A-Z^a-z^0-9^\\/]+/' => '-']; + $replacements = ['/\\W/' => ' ', '/([A-Z]+)([A-Z][a-z])/' => 'RectorPrefix202309\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202309\\1_\\2', '/[^A-Z^a-z^0-9^\\/]+/' => '-']; $urlized = $lowered; foreach ($replacements as $pattern => $replacement) { $replaced = preg_replace($pattern, $replacement, $urlized); diff --git a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php index 5929934f2..c1b888569 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php +++ b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php @@ -1,14 +1,14 @@ \n"; - exit(1); -} -$ok = scanPath($argv[1]); -exit($ok ? 0 : 1); -function scanPath(string $path) : bool -{ - echo "Scanning {$path}\n"; - $it = new \RecursiveDirectoryIterator($path); - $it = new \RecursiveIteratorIterator($it, \RecursiveIteratorIterator::LEAVES_ONLY); - $it = new \RegexIterator($it, '~\\.neon$~'); - $counter = 0; - $success = \true; - foreach ($it as $file) { - echo \str_pad(\str_repeat('.', $counter++ % 40), 40), "\r"; - $success = lintFile((string) $file) && $success; - } - echo \str_pad('', 40), "\r"; - echo "Done.\n"; - return $success; -} -function lintFile(string $file) : bool -{ - \set_error_handler(function (int $severity, string $message) use($file) { - if ($severity === \E_USER_DEPRECATED) { - \fwrite(\STDERR, "[DEPRECATED] {$file} {$message}\n"); - return null; - } - return \false; - }); - $s = \file_get_contents($file); - if (\substr($s, 0, 3) === "") { - \fwrite(\STDERR, "[WARNING] {$file} contains BOM\n"); - $contents = \substr($s, 3); - } - try { - Nette\Neon\Neon::decode($s); - return \true; - } catch (Nette\Neon\Exception $e) { - \fwrite(\STDERR, "[ERROR] {$file} {$e->getMessage()}\n"); - } finally { - \restore_error_handler(); - } - return \false; -} diff --git a/vendor/rector/rector/vendor/nette/neon/composer.json b/vendor/rector/rector/vendor/nette/neon/composer.json deleted file mode 100644 index edd41a3c0..000000000 --- a/vendor/rector/rector/vendor/nette/neon/composer.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "nette\/neon", - "description": "\ud83c\udf78 Nette NEON: encodes and decodes NEON file format.", - "keywords": [ - "nette", - "neon", - "import", - "export", - "yaml" - ], - "homepage": "https:\/\/ne-on.org", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https:\/\/davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https:\/\/nette.org\/contributors" - } - ], - "require": { - "php": ">=8.0 <8.3", - "ext-json": "*" - }, - "require-dev": { - "nette\/tester": "^2.4", - "tracy\/tracy": "^2.7", - "phpstan\/phpstan": "^1.0" - }, - "autoload": { - "classmap": [ - "src\/" - ] - }, - "minimum-stability": "dev", - "bin": [ - "bin\/neon-lint" - ], - "scripts": { - "phpstan": "phpstan analyse", - "tester": "tester tests -s" - }, - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/nette/neon/license.md b/vendor/rector/rector/vendor/nette/neon/license.md deleted file mode 100644 index a955f5d3a..000000000 --- a/vendor/rector/rector/vendor/nette/neon/license.md +++ /dev/null @@ -1,60 +0,0 @@ -Licenses -======== - -Good news! You may use Nette Framework under the terms of either -the New BSD License or the GNU General Public License (GPL) version 2 or 3. - -The BSD License is recommended for most projects. It is easy to understand and it -places almost no restrictions on what you can do with the framework. If the GPL -fits better to your project, you can use the framework under this license. - -You don't have to notify anyone which license you are using. You can freely -use Nette Framework in commercial projects as long as the copyright header -remains intact. - -Please be advised that the name "Nette Framework" is a protected trademark and its -usage has some limitations. So please do not use word "Nette" in the name of your -project or top-level domain, and choose a name that stands on its own merits. -If your stuff is good, it will not take long to establish a reputation for yourselves. - - -New BSD License ---------------- - -Copyright (c) 2004, 2014 David Grudl (https://davidgrudl.com) -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 "Nette Framework" 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. - - -GNU General Public License --------------------------- - -GPL licenses are very very long, so instead of including them here we offer -you URLs with full text: - -- [GPL version 2](https://www.gnu.org/licenses/gpl-2.0.html) -- [GPL version 3](https://www.gnu.org/licenses/gpl-3.0.html) diff --git a/vendor/rector/rector/vendor/nette/neon/phpstan-baseline.neon b/vendor/rector/rector/vendor/nette/neon/phpstan-baseline.neon deleted file mode 100644 index 8becce99e..000000000 --- a/vendor/rector/rector/vendor/nette/neon/phpstan-baseline.neon +++ /dev/null @@ -1,41 +0,0 @@ -parameters: - ignoreErrors: - - - message: '#^Property Nette\\Neon\\Node\\EntityChainNode\:\:\$chain \(array\\) does not accept array\\.$#' - count: 1 - path: src/Neon/Encoder.php - - - - message: '#^Unreachable statement \- code above always terminates\.$#' - count: 1 - path: src/Neon/Node.php - - - - message: '#^If condition is always true\.$#' - count: 1 - path: src/Neon/Parser.php - - - - message: '#^Left side of && is always true\.$#' - count: 1 - path: src/Neon/Parser.php - - - - message: '#^Parameter \#1 \$chain of class Nette\\Neon\\Node\\EntityChainNode constructor expects array\, array\ given\.$#' - count: 1 - path: src/Neon/Parser.php - - - - message: '#^Unreachable statement \- code above always terminates\.$#' - count: 1 - path: src/Neon/Parser.php - - - - message: '#^While loop condition is always false\.$#' - count: 2 - path: src/Neon/Parser.php - - - - message: '#^While loop condition is always true\.$#' - count: 1 - path: src/Neon/Parser.php diff --git a/vendor/rector/rector/vendor/nette/neon/readme.md b/vendor/rector/rector/vendor/nette/neon/readme.md deleted file mode 100644 index b2c0bfe92..000000000 --- a/vendor/rector/rector/vendor/nette/neon/readme.md +++ /dev/null @@ -1,490 +0,0 @@ -[NEON](https://ne-on.org): Nette Object Notation -================================================ - -[![Downloads this Month](https://img.shields.io/packagist/dm/nette/neon.svg)](https://packagist.org/packages/nette/neon) -[![Tests](https://github.com/nette/neon/workflows/Tests/badge.svg?branch=master)](https://github.com/nette/neon/actions) -[![Coverage Status](https://coveralls.io/repos/github/nette/neon/badge.svg?branch=master)](https://coveralls.io/github/nette/neon?branch=master) -[![Latest Stable Version](https://poser.pugx.org/nette/neon/v/stable)](https://github.com/nette/neon/releases) -[![License](https://img.shields.io/badge/license-New%20BSD-blue.svg)](https://github.com/nette/neon/blob/master/license.md) - - -Introduction -============ - -NEON is a human-readable structured data format. In Nette, it is used for configuration files. It is also used for structured data such as settings, language translations, etc. [Try it on the sandbox](https://ne-on.org). - -NEON stands for *Nette Object Notation*. It is less complex and ungainly than XML or JSON, but provides similar capabilities. It is very similar to YAML. The main advantage is that NEON has so-called [entities](#entities), thanks to which the configuration of DI services is so sexy. And allows tabs for indentation. - -NEON is built from the ground up to be simple to use. - - -[Support Neon](https://github.com/sponsors/dg) ----------------------------------------------- - -Do you like NEON? Are you looking forward to the new features? - -[![Buy me a coffee](https://files.nette.org/icons/donation-3.svg)](https://github.com/sponsors/dg) - -Thank you! - - -Usage -===== - -Install via Composer: - -``` -composer require nette/neon -``` - -It requires PHP version 8.0 up to 8.2. Documentation can be found on the [website](https://doc.nette.org/neon). - -`Neon::encode()` returns `$value` converted to NEON. As the second parameter `$blockMode` you can pass true, which will create multiline output. The third parameter `$indentation` specifies the characters used for indentation (default is tab). - -```php -use Nette\Neon\Neon; - -$neon = Neon::encode($value); // Returns $value converted to NEON -$neon = Neon::encode($value, true); // Returns $value converted to multiline NEON -``` - -`Neon::decode()` converts given NEON to PHP value: - -```php -$value = Neon::decode('hello: world'); // Returns an array ['hello' => 'world'] -``` - -`Neon::decodeFile()` converts given NEON file to PHP value: - -```php -$value = Neon::decodeFile('config.neon'); -``` - -All methods throw `Nette\Neon\Exception` on error. - - -Integration -=========== - -- NetBeans (has built-in support) -- PhpStorm ([plugin](https://plugins.jetbrains.com/plugin/7060?pr)) -- Visual Studio Code ([plugin](https://marketplace.visualstudio.com/items?itemName=Kasik96.latte)) -- Sublime Text 3 ([plugin](https://github.com/FilipStryk/Nette-Latte-Neon-for-Sublime-Text-3)) -- Sublime Text 2 ([plugin](https://github.com/Michal-Mikolas/Nette-package-for-Sublime-Text-2)) - - -- [NEON for PHP](https://doc.nette.org/neon) -- [NEON for JavaScript](https://github.com/matej21/neon-js) -- [NEON for Python](https://github.com/paveldedik/neon-py). - - -You can check for syntax errors in Neon files using the `neon-lint` console command: - -```shell -vendor/bin/neon-lint -``` - -Syntax -====== - -A file written in NEON usually consists of a sequence or mapping. - - -Mappings --------- -Mapping is a set of key-value pairs, in PHP it would be called an associative array. Each pair is written as `key: value`, a space after `:` is required. The value can be anything: string, number, boolean, null, sequence, or other mapping. - -```neon -street: 742 Evergreen Terrace -city: Springfield -country: USA -``` - -In PHP, the same structure would be written as: - -```php -[ // PHP - 'street' => '742 Evergreen Terrace', - 'city' => 'Springfield', - 'country' => 'USA', -] -``` - -This notation is called a block notation because all items are on a separate line and have the same indentation (none in this case). NEON also supports inline representation for mapping, which is enclosed in brackets, indentation plays no role, and the separator of each element is either a comma or a newline: - -```neon -{street: 742 Evergreen Terrace, city: Springfield, country: USA} -``` - -This is the same written on multiple lines (indentation does not matter): - -```neon -{ - street: 742 Evergreen Terrace - city: Springfield, country: USA -} -``` - -Alternatively, `=` can be used instead of : , both in block and inline notation: - -```neon -{street=742 Evergreen Terrace, city=Springfield, country=USA} -``` - - -Sequences ---------- -Sequences are indexed arrays in PHP. They are written as lines starting with the hyphen `-` followed by a space. Again, the value can be anything: string, number, boolean, null, sequence, or other mapping. - -```neon -- Cat -- Dog -- Goldfish -``` - -In PHP, the same structure would be written as: - -```php -[ // PHP - 'Cat', - 'Dog', - 'Goldfish', -] -``` - -This notation is called a block notation because all items are on a separate line and have the same indentation (none in this case). NEON also supports inline representation for sequences, which is enclosed in brackets, indentation plays no role, and the separator of each element is either a comma or a newline: - -```neon -[Cat, Dog, Goldfish] -``` - -This is the same written on multiple lines (indentation does not matter): - -```neon -[ - Cat, Dog - Goldfish -] -``` - -Hyphens cannot be used in an inline representation. - - -Combination ------------ -Values of mappings and sequences may be other mappings and sequences. The level of indentation plays a major role. In the following example, the hyphen used to indicate sequence items has a greater indent than the `pets` key, so the items become the value of the first line: - -```neon -pets: - - Cat - - Dog -cars: - - Volvo - - Skoda -``` - -In PHP, the same structure would be written as: - -```php -[ // PHP - 'pets' => [ - 'Cat', - 'Dog', - ], - 'cars' => [ - 'Volvo', - 'Skoda', - ], -] -``` - -It is possible to combine block and inline notation: - -```neon -pets: [Cat, Dog] -cars: [ - Volvo, - Skoda, -] -``` - -Block notation can no longer be used inside an inline notation, this does not work: - -```neon -item: [ - pets: - - Cat # THIS IS NOT POSSIBLE!!! - - Dog -] -``` - -Because PHP uses the same structure for mapping and sequences, that is, arrays, both can be merged. The indentation is the same this time: - -```neon -- Cat -street: 742 Evergreen Terrace -- Goldfish -``` - -In PHP, the same structure would be written as: - -```php -[ // PHP - 'Cat', - 'street' => '742 Evergreen Terrace', - 'Goldfish', -] -``` - -Strings -------- -Strings in NEON can be enclosed in single or double quotes. But as you can see, they can also be without quotes. - -```neon -- A unquoted string in NEON -- 'A singled-quoted string in NEON' -- "A double-quoted string in NEON" -``` - -If the string contains characters that can be confused with NEON syntax (hyphens, colons, etc.), it must be enclosed in quotation marks. We recommend using single quotes because they do not use escaping. If you need to enclose a quotation mark in such a string, double it: - -```neon -'A single quote '' inside a single-quoted string' -``` - -Double quotes allow you to use escape sequences to write special characters using backslashes `\`. All escape sequences as in the JSON format are supported, plus `\_`, which is an non-breaking space, ie `\u00A0`. - -```neon -- "\t \n \r \f \b \" \\ \/ \_" -- "\u00A9" -``` - -There are other cases where you need to enclose strings in quotation marks: -- they begin or end with spaces -- look like numbers, booleans, or null -- NEON would understand them as [dates](#dates) - - -Multiline strings ------------------ - -A multiline string begins and ends with a triple quotation mark on separate lines. The indent of the first line is ignored for all lines: - -```neon -''' - first line - second line - third line - ''' -``` - -In PHP we would write the same as: - -```php -"first line\n\tsecond line\nthird line" // PHP -``` - -Escaping sequences only work for strings enclosed in double quotes instead of apostrophes: - -```neon -""" - Copyright \u00A9 -""" -``` - - -Numbers -------- -NEON understands numbers written in so-called scientific notation and also numbers in binary, octal and hexadecimal: - -```neon -- 12 # an integer -- 12.3 # a float -- +1.2e-34 # an exponential number - -- 0b11010 # binary number -- 0o666 # octal number -- 0x7A # hexa number -``` - -Nulls ------ -Null can be expressed in NEON by using `null` or by not specifying a value. Variants with a capital first or all uppercase letters are also allowed. - -```neon -a: null -b: -``` - -Booleans --------- -Boolean values are expressed in NEON using `true` / `false` or `yes` / `no`. Variants with a capital first or all uppercase letters are also allowed. - -```neon -[true, TRUE, True, false, yes, no] -``` - -Dates ------ -NEON uses the following formats to express data and automatically converts them to `DateTimeImmutable` objects: - -```neon -- 2016-06-03 # date -- 2016-06-03 19:00:00 # date & time -- 2016-06-03 19:00:00.1234 # date & microtime -- 2016-06-03 19:00:00 +0200 # date & time & timezone -- 2016-06-03 19:00:00 +02:00 # date & time & timezone -``` - - -Entities --------- -An entity is a structure that resembles a function call: - -```neon -Column(type: int, nulls: yes) -``` - -In PHP, it is parsed as an object [Nette\Neon\Entity](https://api.nette.org/3.0/Nette/Neon/Entity.html): - -```php -// PHP -new Nette\Neon\Entity('Column', ['type' => 'int', 'nulls' => true]) -``` - -Entities can also be chained: - -```neon -Column(type: int, nulls: yes) Field(id: 1) -``` - -Which is parsed in PHP as follows: - -```php -// PHP -new Nette\Neon\Entity(Nette\Neon\Neon::Chain, [ - new Nette\Neon\Entity('Column', ['type' => 'int', 'nulls' => true]), - new Nette\Neon\Entity('Field', ['id' => 1]), -]) -``` - -Inside the parentheses, the rules for inline notation used for mapping and sequences apply, so it can be divided into several lines and it is not necessary to add commas: - -```neon -Column( - type: int - nulls: yes -) -``` - - -Comments --------- -Comments start with `#` and all of the following characters on the right are ignored: - -```neon -# this line will be ignored by the interpreter -street: 742 Evergreen Terrace -city: Springfield # this is ignored too -country: USA -``` - - -NEON versus JSON -================ -JSON is a subset of NEON. Each JSON can therefore be parsed as NEON: - -```neon -{ -"php": { - "date.timezone": "Europe\/Prague", - "zlib.output_compression": true -}, -"database": { - "driver": "mysql", - "username": "root", - "password": "beruska92" -}, -"users": [ - "Dave", "Kryten", "Rimmer" -] -} -``` - -What if we could omit quotes? - -```neon -{ -php: { - date.timezone: Europe/Prague, - zlib.output_compression: true -}, -database: { - driver: mysql, - username: root, - password: beruska92 -}, -users: [ - Dave, Kryten, Rimmer -] -} -``` - -How about braces and commas? - -```neon -php: - date.timezone: Europe/Prague - zlib.output_compression: true - -database: - driver: mysql - username: root - password: beruska92 - -users: [ - Dave, Kryten, Rimmer -] -``` - -Are bullets more legible? - -```neon -php: - date.timezone: Europe/Prague - zlib.output_compression: true - -database: - driver: mysql - username: root - password: beruska92 - -users: - - Dave - - Kryten - - Rimmer -``` - -How about comments? - -```neon -# my web application config - -php: - date.timezone: Europe/Prague - zlib.output_compression: true # use gzip - -database: - driver: mysql - username: root - password: beruska92 - -users: - - Dave - - Kryten - - Rimmer -``` - -You found NEON syntax! - -If you like NEON, **[please make a donation now](https://github.com/sponsors/dg)**. Thank you! diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Decoder.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Decoder.php deleted file mode 100644 index ea10c99fd..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Decoder.php +++ /dev/null @@ -1,32 +0,0 @@ -parseToNode($input); - return $node->toValue(); - } - public function parseToNode(string $input) : Node - { - $lexer = new Lexer(); - $parser = new Parser(); - $tokens = $lexer->tokenize($input); - return $parser->parse($tokens); - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Encoder.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Encoder.php deleted file mode 100644 index d46c31d30..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Encoder.php +++ /dev/null @@ -1,86 +0,0 @@ -valueToNode($val, $this->blockMode); - return $node->toString(); - } - /** - * @param mixed $val - */ - public function valueToNode($val, bool $blockMode = \false) : Node - { - if ($val instanceof \DateTimeInterface) { - return new Node\LiteralNode($val); - } elseif ($val instanceof Entity && $val->value === Neon::Chain) { - $node = new Node\EntityChainNode(); - foreach ($val->attributes as $entity) { - $node->chain[] = $this->valueToNode($entity); - } - return $node; - } elseif ($val instanceof Entity) { - return new Node\EntityNode($this->valueToNode($val->value), $this->arrayToNodes($val->attributes)); - } elseif (\is_object($val) || \is_array($val)) { - if ($blockMode) { - $node = new Node\BlockArrayNode(); - } else { - $isList = \is_array($val) && (!$val || \array_keys($val) === \range(0, \count($val) - 1)); - $node = new Node\InlineArrayNode($isList ? '[' : '{'); - } - $node->items = $this->arrayToNodes($val, $blockMode); - return $node; - } elseif (\is_string($val) && Lexer::requiresDelimiters($val)) { - return new Node\StringNode($val); - } else { - return new Node\LiteralNode($val); - } - } - /** @return Node\ArrayItemNode[] - * @param mixed $val */ - private function arrayToNodes($val, bool $blockMode = \false) : array - { - $res = []; - $counter = 0; - $hide = \true; - foreach ($val as $k => $v) { - $res[] = $item = new Node\ArrayItemNode(); - $item->key = $hide && $k === $counter ? null : self::valueToNode($k); - $item->value = self::valueToNode($v, $blockMode); - if ($item->value instanceof Node\BlockArrayNode) { - $item->value->indentation = $this->indentation; - } - if ($hide && \is_int($k)) { - $hide = $k === $counter; - $counter = \max($k + 1, $counter); - } - } - return $res; - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Entity.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Entity.php deleted file mode 100644 index 83d1ba413..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Entity.php +++ /dev/null @@ -1,37 +0,0 @@ -value = $value; - /** @var mixed[] */ - $this->attributes = $attributes; - } - /** @param mixed[] $properties */ - public static function __set_state(array $properties) - { - return new self($properties['value'], $properties['attributes']); - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Exception.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Exception.php deleted file mode 100644 index 23cb5ecdc..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Exception.php +++ /dev/null @@ -1,15 +0,0 @@ - <<<'XX' -'''\n (?:(?: [^\n] | \n(?![\t ]*+''') )*+ \n)?[\t ]*+''' | -"""\n (?:(?: [^\n] | \n(?![\t ]*+""") )*+ \n)?[\t ]*+""" | -' (?: '' | [^'\n] )*+ ' | -" (?: \\. | [^"\\\n] )*+ " -XX -, - // literal / boolean / integer / float - Token::Literal => <<<'XX' -(?: [^#"',:=[\]{}()\n\t `-] | (? '[,:=[\\]{}()-]', - // comment - Token::Comment => '\\#.*+', - // new line - Token::Newline => '\\n++', - // whitespace - Token::Whitespace => '[\\t ]++', - ]; - public function tokenize(string $input) : TokenStream - { - $input = \str_replace("\r", '', $input); - $pattern = '~(' . \implode(')|(', self::Patterns) . ')~Amixu'; - $res = \preg_match_all($pattern, $input, $matches, \PREG_SET_ORDER); - if ($res === \false) { - throw new Exception('Invalid UTF-8 sequence.'); - } - $types = \array_keys(self::Patterns); - $offset = 0; - $tokens = []; - foreach ($matches as $match) { - $type = $types[\count($match) - 2]; - $tokens[] = new Token($match[0], $type === Token::Char ? $match[0] : $type); - $offset += \strlen($match[0]); - } - $stream = new TokenStream($tokens); - if ($offset !== \strlen($input)) { - $s = \str_replace("\n", '\\n', \substr($input, $offset, 40)); - $stream->error("Unexpected '{$s}'", \count($tokens)); - } - return $stream; - } - public static function requiresDelimiters(string $s) : bool - { - return \preg_match('~[\\x00-\\x1F]|^[+-.]?\\d|^(true|false|yes|no|on|off|null)$~Di', $s) || !\preg_match('~^' . self::Patterns[Token::Literal] . '$~Dx', $s); - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Neon.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Neon.php deleted file mode 100644 index 89f168a88..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Neon.php +++ /dev/null @@ -1,59 +0,0 @@ -blockMode = $blockMode; - $encoder->indentation = $indentation; - return $encoder->encode($value); - } - /** - * Converts given NEON to PHP value. - * @return mixed - */ - public static function decode(string $input) - { - $decoder = new Decoder(); - return $decoder->decode($input); - } - /** - * Converts given NEON file to PHP value. - * @return mixed - */ - public static function decodeFile(string $file) - { - $input = @\file_get_contents($file); - // @ is escalated to exception - if ($input === \false) { - $error = \preg_replace('#^\\w+\\(.*?\\): #', '', \error_get_last()['message'] ?? ''); - throw new Exception("Unable to read file '{$file}'. {$error}"); - } - if (\substr($input, 0, 3) === "") { - // BOM - $input = \substr($input, 3); - } - return self::decode($input); - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node.php deleted file mode 100644 index 9ada6e3a7..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node.php +++ /dev/null @@ -1,41 +0,0 @@ - - */ -abstract class Node implements \IteratorAggregate -{ - /** - * @var int|null - */ - public $startTokenPos; - /** - * @var int|null - */ - public $endTokenPos; - /** - * @var int|null - */ - public $startLine; - /** - * @var int|null - */ - public $endLine; - /** - * @return mixed - */ - public abstract function toValue(); - public abstract function toString() : string; - public function &getIterator() : \Generator - { - return; - yield; - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayItemNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayItemNode.php deleted file mode 100644 index b9129811d..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayItemNode.php +++ /dev/null @@ -1,75 +0,0 @@ -key === null) { - $res[] = $item->value->toValue(); - } else { - $res[(string) $item->key->toValue()] = $item->value->toValue(); - } - } - return $res; - } - /** @param self[] $items */ - public static function itemsToInlineString(array $items) : string - { - $res = ''; - foreach ($items as $item) { - $res .= ($res === '' ? '' : ', ') . ($item->key ? $item->key->toString() . ': ' : '') . $item->value->toString(); - } - return $res; - } - /** @param self[] $items */ - public static function itemsToBlockString(array $items) : string - { - $res = ''; - foreach ($items as $item) { - $v = $item->value->toString(); - $res .= ($item->key ? $item->key->toString() . ':' : '-') . ($item->value instanceof BlockArrayNode && $item->value->items ? "\n" . $v . (\substr($v, -2, 1) === "\n" ? '' : "\n") : ' ' . $v . "\n"); - } - return $res; - } - /** - * @return mixed - */ - public function toValue() - { - throw new \LogicException(); - } - public function toString() : string - { - throw new \LogicException(); - } - public function &getIterator() : \Generator - { - if ($this->key) { - (yield $this->key); - } - (yield $this->value); - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayNode.php deleted file mode 100644 index a806b68ee..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/ArrayNode.php +++ /dev/null @@ -1,27 +0,0 @@ -items); - } - public function &getIterator() : \Generator - { - foreach ($this->items as &$item) { - (yield $item); - } - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/BlockArrayNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/BlockArrayNode.php deleted file mode 100644 index 6997e2f5d..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/BlockArrayNode.php +++ /dev/null @@ -1,29 +0,0 @@ -indentation = $indentation; - } - public function toString() : string - { - if (\count($this->items) === 0) { - return '[]'; - } - $res = ArrayItemNode::itemsToBlockString($this->items); - return \preg_replace('#^(?=.)#m', $this->indentation, $res); - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityChainNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityChainNode.php deleted file mode 100644 index f02e07694..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityChainNode.php +++ /dev/null @@ -1,44 +0,0 @@ -chain = $chain; - } - public function toValue() : Neon\Entity - { - $entities = []; - foreach ($this->chain as $item) { - $entities[] = $item->toValue(); - } - return new Neon\Entity(Neon\Neon::Chain, $entities); - } - public function toString() : string - { - return \implode('', \array_map(function ($entity) { - return $entity->toString(); - }, $this->chain)); - } - public function &getIterator() : \Generator - { - foreach ($this->chain as &$item) { - (yield $item); - } - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityNode.php deleted file mode 100644 index 861ae2ec6..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/EntityNode.php +++ /dev/null @@ -1,44 +0,0 @@ -value = $value; - /** @var ArrayItemNode[] */ - $this->attributes = $attributes; - } - public function toValue() : Entity - { - return new Entity($this->value->toValue(), ArrayItemNode::itemsToArray($this->attributes)); - } - public function toString() : string - { - return $this->value->toString() . '(' . ($this->attributes ? ArrayItemNode::itemsToInlineString($this->attributes) : '') . ')'; - } - public function &getIterator() : \Generator - { - (yield $this->value); - foreach ($this->attributes as &$item) { - (yield $item); - } - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/InlineArrayNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/InlineArrayNode.php deleted file mode 100644 index ed981c968..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/InlineArrayNode.php +++ /dev/null @@ -1,25 +0,0 @@ -bracket = $bracket; - } - public function toString() : string - { - return $this->bracket . ArrayItemNode::itemsToInlineString($this->items) . ['[' => ']', '{' => '}', '(' => ')'][$this->bracket]; - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/LiteralNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/LiteralNode.php deleted file mode 100644 index 252e8c582..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/LiteralNode.php +++ /dev/null @@ -1,73 +0,0 @@ - \true, 'True' => \true, 'TRUE' => \true, 'yes' => \true, 'Yes' => \true, 'YES' => \true, 'false' => \false, 'False' => \false, 'FALSE' => \false, 'no' => \false, 'No' => \false, 'NO' => \false, 'null' => null, 'Null' => null, 'NULL' => null]; - private const PatternDatetime = '#\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| ++)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*+)? *+(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?$#DA'; - private const PatternHex = '#0x[0-9a-fA-F]++$#DA'; - private const PatternOctal = '#0o[0-7]++$#DA'; - private const PatternBinary = '#0b[0-1]++$#DA'; - /** - * @param mixed $value - */ - public function __construct($value) - { - $this->value = $value; - } - /** - * @return mixed - */ - public function toValue() - { - return $this->value; - } - /** - * @return mixed - */ - public static function parse(string $value, bool $isKey = \false) - { - if (!$isKey && \array_key_exists($value, self::SimpleTypes)) { - return self::SimpleTypes[$value]; - } elseif (\is_numeric($value)) { - return $value * 1; - } elseif (\preg_match(self::PatternHex, $value)) { - return \hexdec($value); - } elseif (\preg_match(self::PatternOctal, $value)) { - return \octdec($value); - } elseif (\preg_match(self::PatternBinary, $value)) { - return \bindec($value); - } elseif (!$isKey && \preg_match(self::PatternDatetime, $value)) { - return new \DateTimeImmutable($value); - } else { - return $value; - } - } - public function toString() : string - { - if ($this->value instanceof \DateTimeInterface) { - return $this->value->format('Y-m-d H:i:s O'); - } elseif (\is_string($this->value)) { - return $this->value; - } elseif (\is_float($this->value)) { - $res = \json_encode($this->value); - return \strpos($res, '.') !== \false ? $res : $res . '.0'; - } elseif (\is_int($this->value) || \is_bool($this->value) || $this->value === null) { - return \json_encode($this->value); - } else { - throw new \LogicException(); - } - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/StringNode.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/StringNode.php deleted file mode 100644 index 7881c20cd..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Node/StringNode.php +++ /dev/null @@ -1,76 +0,0 @@ - "\t", 'n' => "\n", 'r' => "\r", 'f' => "\f", 'b' => "\x08", '"' => '"', '\\' => '\\', '/' => '/', '_' => " "]; - public function __construct(string $value) - { - $this->value = $value; - } - public function toValue() : string - { - return $this->value; - } - public static function parse(string $s) : string - { - if (\preg_match('#^...\\n++([\\t ]*+)#', $s, $m)) { - // multiline - $res = \substr($s, 3, -3); - $res = \str_replace("\n" . $m[1], "\n", $res); - $res = \preg_replace('#^\\n|\\n[\\t ]*+$#D', '', $res); - } else { - $res = \substr($s, 1, -1); - if ($s[0] === "'") { - $res = \str_replace("''", "'", $res); - } - } - if ($s[0] === "'") { - return $res; - } - return \preg_replace_callback('#\\\\(?:ud[89ab][0-9a-f]{2}\\\\ud[c-f][0-9a-f]{2}|u[0-9a-f]{4}|.)#i', function (array $m) : string { - $sq = $m[0]; - if (isset(self::EscapeSequences[$sq[1]])) { - return self::EscapeSequences[$sq[1]]; - } elseif ($sq[1] === 'u' && \strlen($sq) >= 6) { - if (\json_decode('"' . $sq . '"') !== null) { - throw new Nette\Neon\Exception("Invalid UTF-8 sequence {$sq}"); - } - return \json_decode('"' . $sq . '"'); - } else { - throw new Nette\Neon\Exception("Invalid escaping sequence {$sq}"); - } - }, $res); - } - public function toString() : string - { - if (\strpos($this->value, "\n") === \false) { - return "'" . \str_replace("'", "''", $this->value) . "'"; - } elseif (\preg_match('~\\n[\\t ]+\'{3}~', $this->value)) { - $s = \json_encode($this->value, \JSON_UNESCAPED_UNICODE | \JSON_UNESCAPED_SLASHES); - $s = \preg_replace_callback('#[^\\\\]|\\\\(.)#s', function ($m) { - return ['n' => "\n", 't' => "\t", '"' => '"'][$m[1] ?? ''] ?? $m[0]; - }, \substr($s, 1, -1)); - $s = \str_replace('"""', '""\\"', $s); - $delim = '"""'; - } else { - $s = $this->value; - $delim = "'''"; - } - $s = \preg_replace('#^(?=.)#m', "\t", $s); - return $delim . "\n" . $s . "\n" . $delim; - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Parser.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Parser.php deleted file mode 100644 index 1ef7dc616..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Parser.php +++ /dev/null @@ -1,211 +0,0 @@ -tokens = $tokens; - $this->initLines(); - while ($this->tokens->consume(Token::Newline)) { - } - $node = $this->parseBlock($this->tokens->getIndentation()); - while ($this->tokens->consume(Token::Newline)) { - } - if ($this->tokens->isNext()) { - $this->tokens->error(); - } - return $node; - } - private function parseBlock(string $indent, bool $onlyBullets = \false) : Node - { - $res = new Node\BlockArrayNode($indent); - $this->injectPos($res); - $keyCheck = []; - loop: - $item = new Node\ArrayItemNode(); - $this->injectPos($item); - if ($this->tokens->consume('-')) { - // continue - } elseif (!$this->tokens->isNext() || $onlyBullets) { - return $res->items ? $res : $this->injectPos(new Node\LiteralNode(null)); - } else { - $value = $this->parseValue(); - if ($this->tokens->consume(':', '=')) { - $this->checkArrayKey($value, $keyCheck); - $item->key = $value; - } else { - if ($res->items) { - $this->tokens->error(); - } - return $value; - } - } - $res->items[] = $item; - $item->value = new Node\LiteralNode(null); - $this->injectPos($item->value); - if ($this->tokens->consume(Token::Newline)) { - while ($this->tokens->consume(Token::Newline)) { - } - $nextIndent = $this->tokens->getIndentation(); - if (\strncmp($nextIndent, $indent, \min(\strlen($nextIndent), \strlen($indent)))) { - $this->tokens->error('Invalid combination of tabs and spaces'); - } elseif (\strlen($nextIndent) > \strlen($indent)) { - // open new block - $item->value = $this->parseBlock($nextIndent); - } elseif (\strlen($nextIndent) < \strlen($indent)) { - // close block - return $res; - } elseif ($item->key !== null && $this->tokens->isNext('-')) { - // special dash subblock - $item->value = $this->parseBlock($indent, \true); - } - } elseif ($item->key === null) { - $item->value = $this->parseBlock($indent . ' '); - // open new block after dash - } elseif ($this->tokens->isNext()) { - $item->value = $this->parseValue(); - if ($this->tokens->isNext() && !$this->tokens->isNext(Token::Newline)) { - $this->tokens->error(); - } - } - if ($item->value instanceof Node\BlockArrayNode) { - $item->value->indentation = \substr($item->value->indentation, \strlen($indent)); - } - $this->injectPos($res, $res->startTokenPos, $item->value->endTokenPos); - $this->injectPos($item, $item->startTokenPos, $item->value->endTokenPos); - while ($this->tokens->consume(Token::Newline)) { - } - if (!$this->tokens->isNext()) { - return $res; - } - $nextIndent = $this->tokens->getIndentation(); - if (\strncmp($nextIndent, $indent, \min(\strlen($nextIndent), \strlen($indent)))) { - $this->tokens->error('Invalid combination of tabs and spaces'); - } elseif (\strlen($nextIndent) > \strlen($indent)) { - $this->tokens->error('Bad indentation'); - } elseif (\strlen($nextIndent) < \strlen($indent)) { - // close block - return $res; - } - goto loop; - } - private function parseValue() : Node - { - if ($token = $this->tokens->consume(Token::String)) { - try { - $node = new Node\StringNode(Node\StringNode::parse($token->value)); - $this->injectPos($node, $this->tokens->getPos() - 1); - } catch (Exception $e) { - $this->tokens->error($e->getMessage(), $this->tokens->getPos() - 1); - } - } elseif ($token = $this->tokens->consume(Token::Literal)) { - $pos = $this->tokens->getPos() - 1; - $node = new Node\LiteralNode(Node\LiteralNode::parse($token->value, $this->tokens->isNext(':', '='))); - $this->injectPos($node, $pos); - } elseif ($this->tokens->isNext('[', '(', '{')) { - $node = $this->parseBraces(); - } else { - $this->tokens->error(); - } - return $this->parseEntity($node); - } - private function parseEntity(Node $node) : Node - { - if (!$this->tokens->isNext('(')) { - return $node; - } - $attributes = $this->parseBraces(); - $entities[] = $this->injectPos(new Node\EntityNode($node, $attributes->items), $node->startTokenPos, $attributes->endTokenPos); - while ($token = $this->tokens->consume(Token::Literal)) { - $valueNode = new Node\LiteralNode(Node\LiteralNode::parse($token->value)); - $this->injectPos($valueNode, $this->tokens->getPos() - 1); - if ($this->tokens->isNext('(')) { - $attributes = $this->parseBraces(); - $entities[] = $this->injectPos(new Node\EntityNode($valueNode, $attributes->items), $valueNode->startTokenPos, $attributes->endTokenPos); - } else { - $entities[] = $this->injectPos(new Node\EntityNode($valueNode), $valueNode->startTokenPos); - break; - } - } - return \count($entities) === 1 ? $entities[0] : $this->injectPos(new Node\EntityChainNode($entities), $node->startTokenPos, \end($entities)->endTokenPos); - } - private function parseBraces() : Node\InlineArrayNode - { - $token = $this->tokens->consume(); - $endBrace = ['[' => ']', '{' => '}', '(' => ')'][$token->value]; - $res = new Node\InlineArrayNode($token->value); - $this->injectPos($res, $this->tokens->getPos() - 1); - $keyCheck = []; - loop: - while ($this->tokens->consume(Token::Newline)) { - } - if ($this->tokens->consume($endBrace)) { - $this->injectPos($res, $res->startTokenPos, $this->tokens->getPos() - 1); - return $res; - } - $res->items[] = $item = new Node\ArrayItemNode(); - $this->injectPos($item, $this->tokens->getPos()); - $value = $this->parseValue(); - if ($this->tokens->consume(':', '=')) { - $this->checkArrayKey($value, $keyCheck); - $item->key = $value; - $item->value = $this->tokens->isNext(Token::Newline, ',', $endBrace) ? $this->injectPos(new Node\LiteralNode(null), $this->tokens->getPos()) : $this->parseValue(); - } else { - $item->value = $value; - } - $this->injectPos($item, $item->startTokenPos, $item->value->endTokenPos); - if ($this->tokens->consume(',', Token::Newline)) { - goto loop; - } - while ($this->tokens->consume(Token::Newline)) { - } - if (!$this->tokens->isNext($endBrace)) { - $this->tokens->error(); - } - goto loop; - } - /** @param true[] $arr */ - private function checkArrayKey(Node $key, array &$arr) : void - { - if (!$key instanceof Node\StringNode && !$key instanceof Node\LiteralNode || !\is_scalar($key->value)) { - $this->tokens->error('Unacceptable key', $key->startTokenPos); - } - $k = (string) $key->value; - if (\array_key_exists($k, $arr)) { - $this->tokens->error("Duplicated key '{$k}'", $key->startTokenPos); - } - $arr[$k] = \true; - } - private function injectPos(Node $node, int $start = null, int $end = null) : Node - { - $node->startTokenPos = $start ?? $this->tokens->getPos(); - $node->startLine = $this->posToLine[$node->startTokenPos]; - $node->endTokenPos = $end ?? $node->startTokenPos; - $node->endLine = $this->posToLine[$node->endTokenPos + 1] ?? \end($this->posToLine); - return $node; - } - private function initLines() : void - { - $this->posToLine = []; - $line = 1; - foreach ($this->tokens->getTokens() as $token) { - $this->posToLine[] = $line; - $line += \substr_count($token->value, "\n"); - } - $this->posToLine[] = $line; - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Token.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Token.php deleted file mode 100644 index e01a0bc28..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Token.php +++ /dev/null @@ -1,35 +0,0 @@ -value = $value; - $this->type = $type; - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/TokenStream.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/TokenStream.php deleted file mode 100644 index 191cdb576..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/TokenStream.php +++ /dev/null @@ -1,73 +0,0 @@ -tokens = $tokens; - } - public function getPos() : int - { - return $this->pos; - } - /** @return Token[] */ - public function getTokens() : array - { - return $this->tokens; - } - /** - * @param int|string ...$types - */ - public function isNext(...$types) : bool - { - while (\in_array($this->tokens[$this->pos]->type ?? null, [Token::Comment, Token::Whitespace], \true)) { - $this->pos++; - } - return $types ? \in_array($this->tokens[$this->pos]->type ?? null, $types, \true) : isset($this->tokens[$this->pos]); - } - /** - * @param int|string ...$types - */ - public function consume(...$types) : ?Token - { - return $this->isNext(...$types) ? $this->tokens[$this->pos++] : null; - } - public function getIndentation() : string - { - return \in_array($this->tokens[$this->pos - 2]->type ?? null, [Token::Newline, null], \true) && ($this->tokens[$this->pos - 1]->type ?? null) === Token::Whitespace ? $this->tokens[$this->pos - 1]->value : ''; - } - /** @return never */ - public function error(?string $message = null, ?int $pos = null) : void - { - $pos = $pos ?? $this->pos; - $input = ''; - foreach ($this->tokens as $i => $token) { - if ($i >= $pos) { - break; - } - $input .= $token->value; - } - $line = \substr_count($input, "\n") + 1; - $col = \strlen($input) - \strrpos("\n" . $input, "\n") + 1; - $token = $this->tokens[$pos] ?? null; - $message = $message ?? 'Unexpected ' . ($token === null ? 'end' : "'" . \str_replace("\n", '', \substr($this->tokens[$pos]->value, 0, 40)) . "'"); - throw new Exception("{$message} on line {$line}, column {$col}."); - } -} diff --git a/vendor/rector/rector/vendor/nette/neon/src/Neon/Traverser.php b/vendor/rector/rector/vendor/nette/neon/src/Neon/Traverser.php deleted file mode 100644 index 11596df3e..000000000 --- a/vendor/rector/rector/vendor/nette/neon/src/Neon/Traverser.php +++ /dev/null @@ -1,64 +0,0 @@ -enter = $enter; - $this->leave = $leave; - $this->stop = \false; - return $this->traverseNode($node); - } - private function traverseNode(Node $node) : Node - { - $children = \true; - if ($this->enter) { - $res = ($this->enter)($node); - if ($res instanceof Node) { - $node = $res; - } elseif ($res === self::DontTraverseChildren) { - $children = \false; - } elseif ($res === self::StopTraversal) { - $this->stop = \true; - $children = \false; - } - } - if ($children) { - foreach ($node as &$subnode) { - $subnode = $this->traverseNode($subnode); - if ($this->stop) { - break; - } - } - } - if (!$this->stop && $this->leave) { - $res = ($this->leave)($node); - if ($res instanceof Node) { - $node = $res; - } elseif ($res === self::StopTraversal) { - $this->stop = \true; - } - } - return $node; - } -} diff --git a/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php b/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php index 0da34dacd..bb48395b3 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php +++ b/vendor/rector/rector/vendor/nette/utils/src/HtmlStringable.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette; +namespace RectorPrefix202309\Nette; interface HtmlStringable { diff --git a/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php b/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php index c5e9cbc93..888d7d90e 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Iterators/CachingIterator.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Iterators; +namespace RectorPrefix202309\Nette\Iterators; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Smarter caching iterator. * diff --git a/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php b/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php index 651151af2..c997e1028 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Iterators/Mapper.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Iterators; +namespace RectorPrefix202309\Nette\Iterators; /** * Applies the callback to the elements of the inner iterator. diff --git a/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php b/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php index b884dbaab..78cdc1ae9 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php +++ b/vendor/rector/rector/vendor/nette/utils/src/SmartObject.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette; +namespace RectorPrefix202309\Nette; -use RectorPrefix202308\Nette\Utils\ObjectHelpers; +use RectorPrefix202309\Nette\Utils\ObjectHelpers; /** * Strict class for better experience. * - 'did you mean' hints diff --git a/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php b/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php index e7da9d24a..c5304992a 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php +++ b/vendor/rector/rector/vendor/nette/utils/src/StaticClass.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette; +namespace RectorPrefix202309\Nette; /** * Static class. diff --git a/vendor/rector/rector/vendor/nette/utils/src/Translator.php b/vendor/rector/rector/vendor/nette/utils/src/Translator.php index 30113dab9..5290144bd 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Translator.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Translator.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Localization; +namespace RectorPrefix202309\Nette\Localization; /** * Translator adapter. diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php index 758ab330f..29b0b1176 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayHash.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Provides objects to work as array. * @template T diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php index 7a82bcbff..c6dac2454 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ArrayList.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Provides the base class for a generic list (items can be accessed by index). * @template T diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php index b7b027cec..b6f9f04ea 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Arrays.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\JetBrains\PhpStorm\Language; -use RectorPrefix202308\Nette; +use RectorPrefix202309\JetBrains\PhpStorm\Language; +use RectorPrefix202309\Nette; use function is_array, is_int, is_object, count; /** * Array tools library. @@ -198,7 +198,7 @@ public static function flatten(array $array, bool $preserveKeys = \false) : arra */ public static function isList($value) : bool { - $arrayIsList = function (array $array) : bool { + $arrayIsListFunction = function (array $array) : bool { if (\function_exists('array_is_list')) { return \array_is_list($array); } @@ -214,7 +214,7 @@ public static function isList($value) : bool } return \true; }; - return is_array($value) && (\PHP_VERSION_ID < 80100 ? !$value || \array_keys($value) === \range(0, count($value) - 1) : $arrayIsList($value)); + return is_array($value) && (\PHP_VERSION_ID < 80100 ? !$value || \array_keys($value) === \range(0, count($value) - 1) : $arrayIsListFunction($value)); } /** * Reformats table to associative tree. Path looks like 'field|field[]field->field=field'. diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php index 10dff68f6..620e6161b 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Callback.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; use function is_array, is_object, is_string; /** * PHP callable tools. diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php index e22a69a61..b0fa1b169 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/DateTime.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * DateTime. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php index 75fe6f11b..ac020cc32 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/FileSystem.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * File system tool. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php index cde00ac0f..40ec67e29 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Floats.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Floating-point numbers comparison. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php index 8cb41f4df..600fe8cc2 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Helpers.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; class Helpers { /** diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php index 21eb55871..7d4ac2c23 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Html.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; -use RectorPrefix202308\Nette\HtmlStringable; +use RectorPrefix202309\Nette; +use RectorPrefix202309\Nette\HtmlStringable; use function is_array, is_float, is_object, is_string; /** * HTML helper. diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php index e3f2a1478..3a264050c 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Image.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Basic manipulation with images. Supported types are JPEG, PNG, GIF, WEBP, AVIF and BMP. * diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php index 81392cf7e..34675308f 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Json.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * JSON encoder and decoder. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php index bf6eccd64..d058cc433 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectHelpers.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; -use RectorPrefix202308\Nette\MemberAccessException; +use RectorPrefix202309\Nette; +use RectorPrefix202309\Nette\MemberAccessException; /** * Nette\SmartObject helpers. * @internal diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php index 5f04b9911..c6d37018f 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/ObjectMixin.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Nette\Object behaviour mixin. * @deprecated diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Paginator.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Paginator.php index 4995b2b82..9ae6f4700 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Paginator.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Paginator.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Paginating math. * diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php index 8afee5b49..dfb4de539 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Random.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Secure random string generator. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php index dad67acd7..099726553 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Reflection.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * PHP reflection helpers. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php index f837625a6..6299f6b7f 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Strings.php @@ -5,10 +5,10 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\JetBrains\PhpStorm\Language; -use RectorPrefix202308\Nette; +use RectorPrefix202309\JetBrains\PhpStorm\Language; +use RectorPrefix202309\Nette; use function is_array, is_object, strlen; /** * String tools library. diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php index 526a0c1d8..3ecd03d3b 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Type.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * PHP type reflection. */ @@ -31,7 +31,7 @@ public static function fromReflection($reflection) : ?self } elseif ($reflection instanceof \ReflectionMethod) { $type = $reflection->getReturnType() ?? (\PHP_VERSION_ID >= 80100 ? $reflection->getTentativeReturnType() : null); } else { - $type = $reflection instanceof \ReflectionFunctionAbstract ? $reflection->getReturnType() : $reflection->getType(); + $type = $reflection instanceof \ReflectionFunctionAbstract ? $reflection->getReturnType() : (\method_exists($reflection, 'getType') ? $reflection->getType() : null); } return $type ? self::fromReflectionType($type, $reflection, \true) : null; } diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php index 838a0147e..298931ef1 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/Validators.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; /** * Validation utilities. */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php b/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php index de129f274..e00454019 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php +++ b/vendor/rector/rector/vendor/nette/utils/src/Utils/exceptions.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; /** * The exception that is thrown when an image error occurs. diff --git a/vendor/rector/rector/vendor/nette/utils/src/compatibility.php b/vendor/rector/rector/vendor/nette/utils/src/compatibility.php index 8d20246cf..4f21252ae 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/compatibility.php +++ b/vendor/rector/rector/vendor/nette/utils/src/compatibility.php @@ -5,9 +5,9 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette\Utils; +namespace RectorPrefix202309\Nette\Utils; -use RectorPrefix202308\Nette; +use RectorPrefix202309\Nette; if (\false) { /** @deprecated use Nette\HtmlStringable */ interface IHtmlString extends Nette\HtmlStringable @@ -16,7 +16,7 @@ interface IHtmlString extends Nette\HtmlStringable } elseif (!\interface_exists(IHtmlString::class)) { \class_alias(Nette\HtmlStringable::class, IHtmlString::class); } -namespace RectorPrefix202308\Nette\Localization; +namespace RectorPrefix202309\Nette\Localization; if (\false) { /** @deprecated use Nette\Localization\Translator */ diff --git a/vendor/rector/rector/vendor/nette/utils/src/exceptions.php b/vendor/rector/rector/vendor/nette/utils/src/exceptions.php index 55cc6d35d..435ec493e 100644 --- a/vendor/rector/rector/vendor/nette/utils/src/exceptions.php +++ b/vendor/rector/rector/vendor/nette/utils/src/exceptions.php @@ -5,7 +5,7 @@ * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare (strict_types=1); -namespace RectorPrefix202308\Nette; +namespace RectorPrefix202309\Nette; /** * The exception that is thrown when the value of an argument is diff --git a/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse b/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse index 392c8a569..9b706ae40 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse +++ b/vendor/rector/rector/vendor/nikic/php-parser/bin/php-parse @@ -1,6 +1,6 @@ #!/usr/bin/env php checkClassConst($$, #2); } + | optional_attributes method_modifiers T_CONST type_expr class_const_list semi + { $$ = new Stmt\ClassConst($5, $2, attributes(), $1, $4); + $this->checkClassConst($$, #2); } | optional_attributes method_modifiers T_FUNCTION optional_ref identifier_maybe_reserved '(' parameter_list ')' optional_return_type method_body { $$ = Stmt\ClassMethod[$5, ['type' => $2, 'byRef' => $4, 'params' => $7, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; @@ -943,8 +949,8 @@ expr: ; anonymous_class: - optional_attributes T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3); + optional_attributes class_entry_type ctor_arguments extends_from implements_list '{' class_statement_list '}' + { $$ = array(Stmt\Class_[null, ['type' => $2, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3); $this->checkClass($$[0], -1); } ; @@ -1040,6 +1046,8 @@ constant: class_constant: class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_maybe_reserved { $$ = Expr\ClassConstFetch[$1, $3]; } + | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '{' expr '}' + { $$ = Expr\ClassConstFetch[$1, $4]; } /* We interpret an isolated FOO:: as an unfinished class constant fetch. It could also be an unfinished static property fetch or unfinished scoped call. */ | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM error diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php b/vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php index 33f9b757d..2944bfad5 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php @@ -1,6 +1,6 @@ [A-Z][a-zA-Z_\\\\]++)\\s*' . \RectorPrefix202308\PARAMS . '~', function ($matches) { + return \preg_replace_callback('~\\b(?[A-Z][a-zA-Z_\\\\]++)\\s*' . \RectorPrefix202309\PARAMS . '~', function ($matches) { // recurse $matches['params'] = resolveNodes($matches['params']); - $params = magicSplit('(?:' . \RectorPrefix202308\PARAMS . '|' . \RectorPrefix202308\ARGS . ')(*SKIP)(*FAIL)|,', $matches['params']); + $params = magicSplit('(?:' . \RectorPrefix202309\PARAMS . '|' . \RectorPrefix202309\ARGS . ')(*SKIP)(*FAIL)|,', $matches['params']); $paramCode = ''; foreach ($params as $param) { $paramCode .= $param . ', '; @@ -39,11 +39,11 @@ function resolveNodes($code) } function resolveMacros($code) { - return \preg_replace_callback('~\\b(?)(?!array\\()(?[a-z][A-Za-z]++)' . \RectorPrefix202308\ARGS . '~', function ($matches) { + return \preg_replace_callback('~\\b(?)(?!array\\()(?[a-z][A-Za-z]++)' . \RectorPrefix202309\ARGS . '~', function ($matches) { // recurse $matches['args'] = resolveMacros($matches['args']); $name = $matches['name']; - $args = magicSplit('(?:' . \RectorPrefix202308\PARAMS . '|' . \RectorPrefix202308\ARGS . ')(*SKIP)(*FAIL)|,', $matches['args']); + $args = magicSplit('(?:' . \RectorPrefix202309\PARAMS . '|' . \RectorPrefix202309\ARGS . ')(*SKIP)(*FAIL)|,', $matches['args']); if ('attributes' === $name) { assertArgs(0, $args, $name); return '$this->startAttributeStack[#1] + $this->endAttributes'; @@ -113,7 +113,7 @@ function removeTrailingWhitespace($code) ////////////////////////////// function regex($regex) { - return '~' . \RectorPrefix202308\LIB . '(?:' . \str_replace('~', '\\~', $regex) . ')~'; + return '~' . \RectorPrefix202309\LIB . '(?:' . \str_replace('~', '\\~', $regex) . ')~'; } function magicSplit($regex, $string) { diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php b/vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php index 892ac7109..86f6b9c9c 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php @@ -1,6 +1,6 @@ 'Php5', __DIR__ . '/php7.y' => 'Php7']; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php index ff753cd23..1605bd2ec 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php @@ -16,6 +16,8 @@ class ClassConst implements PhpParser\Builder protected $constants = []; /** @var Node\AttributeGroup[] */ protected $attributeGroups = []; + /** @var Identifier|Node\Name|Node\ComplexType */ + protected $type; /** * Creates a class constant builder * @@ -103,6 +105,18 @@ public function addAttribute($attribute) $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute); return $this; } + /** + * Sets the constant type. + * + * @param string|Node\Name|Identifier|Node\ComplexType $type + * + * @return $this + */ + public function setType($type) + { + $this->type = BuilderHelpers::normalizeType($type); + return $this; + } /** * Returns the built class node. * @@ -110,6 +124,6 @@ public function addAttribute($attribute) */ public function getNode() : PhpParser\Node { - return new Stmt\ClassConst($this->constants, $this->flags, $this->attributes, $this->attributeGroups); + return new Stmt\ClassConst($this->constants, $this->flags, $this->attributes, $this->attributeGroups, $this->type); } } diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php index fc97c3ec3..d23b00492 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderFactory.php @@ -330,14 +330,14 @@ public function propertyFetch(Expr $var, $name) : Expr\PropertyFetch /** * Creates a class constant fetch node. * - * @param string|Name|Expr $class Class name - * @param string|Identifier $name Constant name + * @param string|Name|Expr $class Class name + * @param string|Identifier|Expr $name Constant name * * @return Expr\ClassConstFetch */ public function classConstFetch($class, $name) : Expr\ClassConstFetch { - return new Expr\ClassConstFetch(\PhpParser\BuilderHelpers::normalizeNameOrExpr($class), \PhpParser\BuilderHelpers::normalizeIdentifier($name)); + return new Expr\ClassConstFetch(\PhpParser\BuilderHelpers::normalizeNameOrExpr($class), \PhpParser\BuilderHelpers::normalizeIdentifierOrExpr($name)); } /** * Creates nested Concat nodes from a list of expressions. diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php index 3e91a1476..d3005d599 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php @@ -69,7 +69,7 @@ public static function normalizeIdentifier($name) : Identifier if (\is_string($name)) { return new Identifier($name); } - throw new \LogicException('RectorPrefix202308\\Expected string or instance of Node\\Identifier'); + throw new \LogicException('RectorPrefix202309\\Expected string or instance of Node\\Identifier'); } /** * Normalizes strings to Identifier, also allowing expressions. @@ -86,7 +86,7 @@ public static function normalizeIdentifierOrExpr($name) if (\is_string($name)) { return new Identifier($name); } - throw new \LogicException('RectorPrefix202308\\Expected string or instance of Node\\Identifier or Node\\Expr'); + throw new \LogicException('RectorPrefix202309\\Expected string or instance of Node\\Identifier or Node\\Expr'); } /** * Normalizes a name: Converts string names to Name nodes. @@ -112,7 +112,7 @@ public static function normalizeName($name) : Name } return new Name($name); } - throw new \LogicException('RectorPrefix202308\\Name must be a string or an instance of Node\\Name'); + throw new \LogicException('RectorPrefix202309\\Name must be a string or an instance of Node\\Name'); } /** * Normalizes a name: Converts string names to Name nodes, while also allowing expressions. @@ -127,7 +127,7 @@ public static function normalizeNameOrExpr($name) return $name; } if (!\is_string($name) && !$name instanceof Name) { - throw new \LogicException('RectorPrefix202308\\Name must be a string or an instance of Node\\Name or Node\\Expr'); + throw new \LogicException('RectorPrefix202309\\Name must be a string or an instance of Node\\Name or Node\\Expr'); } return self::normalizeName($name); } @@ -226,7 +226,7 @@ public static function normalizeDocComment($docComment) : \PhpParser\Comment\Doc if (\is_string($docComment)) { return new \PhpParser\Comment\Doc($docComment); } - throw new \LogicException('RectorPrefix202308\\Doc comment must be a string or an instance of PhpParser\\Comment\\Doc'); + throw new \LogicException('RectorPrefix202309\\Doc comment must be a string or an instance of PhpParser\\Comment\\Doc'); } /** * Normalizes a attribute: Converts attribute to the Attribute Group if needed. @@ -241,7 +241,7 @@ public static function normalizeAttribute($attribute) : \PhpParser\Node\Attribut return $attribute; } if (!$attribute instanceof \PhpParser\Node\Attribute) { - throw new \LogicException('RectorPrefix202308\\Attribute must be an instance of PhpParser\\Node\\Attribute or PhpParser\\Node\\AttributeGroup'); + throw new \LogicException('RectorPrefix202309\\Attribute must be an instance of PhpParser\\Node\\Attribute or PhpParser\\Node\\AttributeGroup'); } return new \PhpParser\Node\AttributeGroup([$attribute]); } diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php index 8acf128e1..1906a159d 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Internal/PrintableNewAnonClassNode.php @@ -19,6 +19,8 @@ class PrintableNewAnonClassNode extends Expr { /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var int Modifiers */ + public $flags; /** @var Node\Arg[] Arguments */ public $args; /** @var null|Node\Name Name of extended class */ @@ -27,10 +29,11 @@ class PrintableNewAnonClassNode extends Expr public $implements; /** @var Node\Stmt[] Statements */ public $stmts; - public function __construct(array $attrGroups, array $args, Node\Name $extends = null, array $implements, array $stmts, array $attributes) + public function __construct(array $attrGroups, int $flags, array $args, Node\Name $extends = null, array $implements, array $stmts, array $attributes) { parent::__construct($attributes); $this->attrGroups = $attrGroups; + $this->flags = $flags; $this->args = $args; $this->extends = $extends; $this->implements = $implements; @@ -42,7 +45,7 @@ public static function fromNewNode(Expr\New_ $newNode) \assert($class instanceof Node\Stmt\Class_); // We don't assert that $class->name is null here, to allow consumers to assign unique names // to anonymous classes for their own purposes. We simplify ignore the name here. - return new self($class->attrGroups, $newNode->args, $class->extends, $class->implements, $class->stmts, $newNode->getAttributes()); + return new self($class->attrGroups, $class->flags, $newNode->args, $class->extends, $class->implements, $class->stmts, $newNode->getAttributes()); } public function getType() : string { @@ -50,6 +53,6 @@ public function getType() : string } public function getSubNodeNames() : array { - return ['attrGroups', 'args', 'extends', 'implements', 'stmts']; + return ['attrGroups', 'flags', 'args', 'extends', 'implements', 'stmts']; } } diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php index cdd3571b0..27637bbf7 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php @@ -435,12 +435,12 @@ protected function createTokenMap() : array } } // HHVM uses a special token for numbers that overflow to double - if (\defined('RectorPrefix202308\\T_ONUMBER')) { - $tokenMap[\RectorPrefix202308\T_ONUMBER] = Tokens::T_DNUMBER; + if (\defined('RectorPrefix202309\\T_ONUMBER')) { + $tokenMap[\RectorPrefix202309\T_ONUMBER] = Tokens::T_DNUMBER; } // HHVM also has a separate token for the __COMPILER_HALT_OFFSET__ constant - if (\defined('RectorPrefix202308\\T_COMPILER_HALT_OFFSET')) { - $tokenMap[\RectorPrefix202308\T_COMPILER_HALT_OFFSET] = Tokens::T_STRING; + if (\defined('RectorPrefix202309\\T_COMPILER_HALT_OFFSET')) { + $tokenMap[\RectorPrefix202309\T_COMPILER_HALT_OFFSET] = Tokens::T_STRING; } // Assign tokens for which we define compatibility constants, as token_name() does not know them. $tokenMap[\T_FN] = Tokens::T_FN; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php index 349bcdb84..b69262d16 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Expr/ClassConstFetch.php @@ -10,14 +10,14 @@ class ClassConstFetch extends Expr { /** @var Name|Expr Class name */ public $class; - /** @var Identifier|Error Constant name */ + /** @var Identifier|Expr|Error Constant name */ public $name; /** * Constructs a class const fetch node. * - * @param Name|Expr $class Class name - * @param string|Identifier|Error $name Constant name - * @param array $attributes Additional attributes + * @param Name|Expr $class Class name + * @param string|Identifier|Expr|Error $name Constant name + * @param array $attributes Additional attributes */ public function __construct($class, $name, array $attributes = []) { diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php index f3c566e26..b29972827 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassConst.php @@ -10,26 +10,30 @@ class ClassConst extends Node\Stmt public $flags; /** @var Node\Const_[] Constant declarations */ public $consts; - /** @var Node\AttributeGroup[] */ + /** @var Node\AttributeGroup[] PHP attribute groups */ public $attrGroups; + /** @var Node\Identifier|Node\Name|Node\ComplexType|null Type declaration */ + public $type; /** * Constructs a class const list node. * - * @param Node\Const_[] $consts Constant declarations - * @param int $flags Modifiers - * @param array $attributes Additional attributes - * @param Node\AttributeGroup[] $attrGroups PHP attribute groups + * @param Node\Const_[] $consts Constant declarations + * @param int $flags Modifiers + * @param array $attributes Additional attributes + * @param Node\AttributeGroup[] $attrGroups PHP attribute groups + * @param null|string|Node\Identifier|Node\Name|Node\ComplexType $type Type declaration */ - public function __construct(array $consts, int $flags = 0, array $attributes = [], array $attrGroups = []) + public function __construct(array $consts, int $flags = 0, array $attributes = [], array $attrGroups = [], $type = null) { $this->attributes = $attributes; $this->flags = $flags; $this->consts = $consts; $this->attrGroups = $attrGroups; + $this->type = \is_string($type) ? new Node\Identifier($type) : $type; } public function getSubNodeNames() : array { - return ['attrGroups', 'flags', 'consts']; + return ['attrGroups', 'flags', 'type', 'consts']; } /** * Whether constant is explicitly or implicitly public. diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index 9b9e708d5..fc13db96c 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -17,26 +17,26 @@ class Php7 extends \PhpParser\ParserAbstract { protected $tokenToSymbolMapSize = 396; - protected $actionTableSize = 1223; - protected $gotoTableSize = 626; + protected $actionTableSize = 1241; + protected $gotoTableSize = 629; protected $invalidSymbol = 168; protected $errorSymbol = 1; protected $defaultAction = -32766; protected $unexpectedTokenRule = 32767; - protected $YY2TBLSTATE = 429; - protected $numNonLeafStates = 726; + protected $YY2TBLSTATE = 434; + protected $numNonLeafStates = 736; protected $symbolToName = array("EOF", "error", "T_THROW", "T_INCLUDE", "T_INCLUDE_ONCE", "T_EVAL", "T_REQUIRE", "T_REQUIRE_ONCE", "','", "T_LOGICAL_OR", "T_LOGICAL_XOR", "T_LOGICAL_AND", "T_PRINT", "T_YIELD", "T_DOUBLE_ARROW", "T_YIELD_FROM", "'='", "T_PLUS_EQUAL", "T_MINUS_EQUAL", "T_MUL_EQUAL", "T_DIV_EQUAL", "T_CONCAT_EQUAL", "T_MOD_EQUAL", "T_AND_EQUAL", "T_OR_EQUAL", "T_XOR_EQUAL", "T_SL_EQUAL", "T_SR_EQUAL", "T_POW_EQUAL", "T_COALESCE_EQUAL", "'?'", "':'", "T_COALESCE", "T_BOOLEAN_OR", "T_BOOLEAN_AND", "'|'", "'^'", "T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG", "T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG", "T_IS_EQUAL", "T_IS_NOT_EQUAL", "T_IS_IDENTICAL", "T_IS_NOT_IDENTICAL", "T_SPACESHIP", "'<'", "T_IS_SMALLER_OR_EQUAL", "'>'", "T_IS_GREATER_OR_EQUAL", "T_SL", "T_SR", "'+'", "'-'", "'.'", "'*'", "'/'", "'%'", "'!'", "T_INSTANCEOF", "'~'", "T_INC", "T_DEC", "T_INT_CAST", "T_DOUBLE_CAST", "T_STRING_CAST", "T_ARRAY_CAST", "T_OBJECT_CAST", "T_BOOL_CAST", "T_UNSET_CAST", "'@'", "T_POW", "'['", "T_NEW", "T_CLONE", "T_EXIT", "T_IF", "T_ELSEIF", "T_ELSE", "T_ENDIF", "T_LNUMBER", "T_DNUMBER", "T_STRING", "T_STRING_VARNAME", "T_VARIABLE", "T_NUM_STRING", "T_INLINE_HTML", "T_ENCAPSED_AND_WHITESPACE", "T_CONSTANT_ENCAPSED_STRING", "T_ECHO", "T_DO", "T_WHILE", "T_ENDWHILE", "T_FOR", "T_ENDFOR", "T_FOREACH", "T_ENDFOREACH", "T_DECLARE", "T_ENDDECLARE", "T_AS", "T_SWITCH", "T_MATCH", "T_ENDSWITCH", "T_CASE", "T_DEFAULT", "T_BREAK", "T_CONTINUE", "T_GOTO", "T_FUNCTION", "T_FN", "T_CONST", "T_RETURN", "T_TRY", "T_CATCH", "T_FINALLY", "T_USE", "T_INSTEADOF", "T_GLOBAL", "T_STATIC", "T_ABSTRACT", "T_FINAL", "T_PRIVATE", "T_PROTECTED", "T_PUBLIC", "T_READONLY", "T_VAR", "T_UNSET", "T_ISSET", "T_EMPTY", "T_HALT_COMPILER", "T_CLASS", "T_TRAIT", "T_INTERFACE", "T_ENUM", "T_EXTENDS", "T_IMPLEMENTS", "T_OBJECT_OPERATOR", "T_NULLSAFE_OBJECT_OPERATOR", "T_LIST", "T_ARRAY", "T_CALLABLE", "T_CLASS_C", "T_TRAIT_C", "T_METHOD_C", "T_FUNC_C", "T_LINE", "T_FILE", "T_START_HEREDOC", "T_END_HEREDOC", "T_DOLLAR_OPEN_CURLY_BRACES", "T_CURLY_OPEN", "T_PAAMAYIM_NEKUDOTAYIM", "T_NAMESPACE", "T_NS_C", "T_DIR", "T_NS_SEPARATOR", "T_ELLIPSIS", "T_NAME_FULLY_QUALIFIED", "T_NAME_QUALIFIED", "T_NAME_RELATIVE", "T_ATTRIBUTE", "';'", "']'", "'{'", "'}'", "'('", "')'", "'`'", "'\"'", "'\$'"); protected $tokenToSymbol = array(0, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 56, 166, 168, 167, 55, 168, 168, 163, 164, 53, 50, 8, 51, 52, 54, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 31, 159, 44, 16, 46, 30, 68, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 70, 168, 160, 36, 168, 165, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 161, 35, 162, 58, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 45, 47, 48, 49, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158); - protected $action = array(132, 133, 134, 575, 135, 136, 0, 738, 739, 740, 137, 37, 850, 825, 851, 476, -32766, -32766, -32766, -32767, -32767, -32767, -32767, 101, 102, 103, 104, 105, 1097, 1098, 1099, 1096, 1095, 1094, 1100, 732, 731, -32766, 1289, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, 1022, 377, 376, 2, 741, -32766, -32766, -32766, -32766, -32766, 822, 417, -32766, -32766, -32766, -32766, -32766, -32766, 267, 138, 399, 745, 746, 747, 748, 287, -32766, 423, -32766, -32766, -32766, -32766, -32766, -32766, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 779, 576, 780, 781, 782, 783, 771, 772, 340, 341, 774, 775, 760, 761, 762, 764, 765, 766, 351, 806, 807, 808, 809, 810, 577, 767, 768, 578, 579, 800, 791, 789, 790, 803, 786, 787, -327, 423, 580, 581, 785, 582, 583, 584, 585, 586, 587, 605, -590, 477, -86, 814, 788, 588, 589, -590, 139, -32766, -32766, -32766, 132, 133, 134, 575, 135, 136, 1046, 738, 739, 740, 137, 37, 323, 1013, 823, 824, 1334, 1324, -32766, 1335, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 1097, 1098, 1099, 1096, 1095, 1094, 1100, -587, 732, 731, -32766, -32766, -32766, 12, -587, 81, -32766, -32766, -32766, 945, 946, 322, 927, 34, 947, 1224, 1223, 1225, 741, -86, 942, -32766, 1075, -32766, -32766, -32766, -32766, -32766, 239, -32766, -32766, -32766, 267, 138, 399, 745, 746, 747, 748, 461, 462, 423, 35, 247, 103, 104, 105, 128, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 779, 576, 780, 781, 782, 783, 771, 772, 340, 341, 774, 775, 760, 761, 762, 764, 765, 766, 351, 806, 807, 808, 809, 810, 577, 767, 768, 578, 579, 800, 791, 789, 790, 803, 786, 787, -327, 144, 580, 581, 785, 582, 583, 584, 585, 586, 587, 1222, 82, 83, 84, -590, 788, 588, 589, -590, 148, 763, 733, 734, 735, 736, 737, 1309, 738, 739, 740, 776, 777, 36, 1308, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 288, 271, -587, -193, 375, 376, -587, 976, -32766, 1021, 453, 454, 455, 109, 417, 945, 946, 741, 712, 819, 947, -32766, -32766, -32766, -271, 1073, 941, 1224, 1223, 1225, 288, 742, 743, 744, 745, 746, 747, 748, -192, -365, 812, -365, -32766, 599, -32766, -32766, 549, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 779, 802, 780, 781, 782, 783, 771, 772, 773, 801, 774, 775, 760, 761, 762, 764, 765, 766, 805, 806, 807, 808, 809, 810, 811, 767, 768, 769, 770, 800, 791, 789, 790, 803, 786, 787, 251, 820, 778, 784, 785, 792, 793, 795, 794, 796, 797, 732, 731, 1261, 1022, 1019, 788, 799, 798, 49, 50, 51, 507, 52, 53, 1009, 1008, 1007, 1010, 54, 55, -111, 56, 816, 1045, 14, -111, 1022, -111, 287, 1305, 977, 306, 302, 1022, 238, -111, -111, -111, -111, -111, -111, -111, -111, 106, 107, 108, 1089, 271, -32766, -32766, -32766, 280, 284, 126, -193, 929, 57, 58, 287, 109, 1019, -541, 59, 308, 60, 244, 245, 61, 62, 63, 64, 65, 66, 67, 68, 1229, 27, 269, 69, 439, 508, -341, 1022, 929, 1255, 1256, 509, 907, 823, -192, 150, 907, 1253, 41, 24, 510, 352, 511, 818, 512, 386, 513, 11, 699, 514, 515, 648, 25, 814, 43, 44, 440, 372, 371, 907, 45, 516, 702, 1220, 667, 668, 363, 334, -540, 357, -541, -541, 320, 1215, 1249, 518, 519, 520, -581, 1074, 335, 724, -581, 1019, -32766, -541, 336, 521, 522, 703, 1243, 1244, 1245, 1246, 1240, 1241, 294, -541, 850, -547, 851, 823, 1247, 1242, 365, 1022, 1224, 1223, 1225, 295, -153, -153, -153, 369, 70, 897, 318, 319, 322, 897, 384, 149, 402, 373, 374, -153, 435, -153, 436, -153, 280, -153, -540, -540, 141, 1220, 378, 379, 639, 640, 322, 370, 897, 907, 437, 438, 829, -540, -88, 151, 732, 731, 945, 946, 153, 823, -32766, 517, -51, -540, 154, -546, 883, 941, -111, -111, -111, 31, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 155, 74, 27, 157, 32, 322, -85, 123, 124, 909, 129, 697, 130, 909, 823, 697, -153, 143, 1253, 158, -32766, -544, 1229, -542, 159, 160, 1222, 161, -79, 1134, 1136, -75, 285, -32766, -32766, -32766, 909, -32766, 697, -32766, -539, -32766, -301, -73, -32766, 897, -72, -71, 1220, -32766, -32766, -32766, -16, 140, 1215, -32766, -32766, 732, 731, 322, -70, -32766, 414, -69, -4, 907, -68, -67, 521, 522, -32766, 1243, 1244, 1245, 1246, 1240, 1241, -66, -47, -18, 147, 270, 281, 1247, 1242, -544, -544, -542, -542, 732, 731, 713, 716, 906, -32766, 72, 146, 907, 319, 322, 1222, -297, -542, 823, -539, -539, 276, -32766, -32766, -32766, 277, -32766, -544, -32766, -542, -32766, 282, 283, -32766, -539, 909, 328, 697, -32766, -32766, -32766, -32766, 704, 286, -32766, -32766, -539, 1222, 923, 289, -32766, 414, 1220, 290, -32766, -32766, -32766, 271, -32766, -32766, -32766, 47, -32766, 897, -111, -32766, 677, 109, 814, 145, -32766, -32766, -32766, -32766, 823, 131, -32766, -32766, 1336, -32766, 654, 670, -32766, 414, 1104, 370, 637, 430, 551, 73, 13, -32766, 293, 555, 295, 897, 945, 946, 649, 74, 434, 517, 458, 322, 487, 690, 842, 941, -111, -111, -111, 301, 1022, 561, 655, 671, 1260, 300, -32766, -539, -32766, 907, 603, 303, 1222, 296, 297, 39, 1262, 9, 40, -32766, -32766, -32766, 0, -32766, 907, -32766, 909, -32766, 697, -4, -32766, 0, 1229, 907, 0, -32766, -32766, -32766, -32766, 307, 125, -32766, -32766, 0, 1222, 907, 0, -32766, 414, 0, 0, -32766, -32766, -32766, 707, -32766, -32766, -32766, 962, -32766, 697, -505, -32766, 714, -495, 7, 482, -32766, -32766, -32766, -32766, -539, -539, -32766, -32766, 16, 1222, 567, 367, -32766, 414, 925, 295, -32766, -32766, -32766, -539, -32766, -32766, -32766, 822, -32766, 897, 721, -32766, 722, -575, 888, -539, -32766, -32766, -32766, 986, 963, 970, -32766, -32766, 897, -249, -249, -249, -32766, 414, 823, 370, 960, 897, 971, 886, 958, -32766, 1078, 1081, 718, 1082, 945, 946, 1079, 897, 1080, 517, 1086, 33, 1250, 834, 883, 941, -111, -111, -111, 27, 1275, 1293, 1327, -248, -248, -248, 1220, 642, 884, 370, 317, 823, 366, 698, 701, 1253, 1331, 705, -111, 706, 945, 946, 708, 709, 710, 517, 909, -32766, 697, -249, 883, 941, -111, -111, -111, 711, 715, 700, -509, 1333, 845, 909, 48, 697, -573, 1220, 844, 853, 295, 935, 909, 1215, 697, 74, 978, 852, 1332, 322, 934, 932, 933, 936, 909, 1206, 697, -248, 522, 916, 1243, 1244, 1245, 1246, 1240, 1241, 926, 914, 968, 969, 1330, 1287, 1247, 1242, 1276, 1294, -32766, 1300, 1303, 1191, -547, -546, 1222, -545, 72, -489, 1, 319, 322, -32766, -32766, -32766, 28, -32766, 29, -32766, 38, -32766, 298, 299, -32766, 42, 46, 71, 75, -32766, -32766, -32766, 76, 77, 78, -32766, -32766, 368, 79, 80, 142, -32766, 414, 152, 156, 243, 324, 352, 353, 127, -32766, -274, 354, 355, 356, 357, 358, 359, 360, 361, 362, 364, 431, 0, -272, -271, 18, 19, 20, 21, 23, 401, 478, 479, 486, 489, 490, 491, 492, 496, 497, 498, 505, 684, 1233, 1174, 1251, 1048, 1047, 1028, 0, 1210, 1024, -276, -103, 17, 22, 26, 292, 400, 596, 600, 628, 689, 1178, 1228, 1175, 1306, 0, 0, 1254, 0, 322); - protected $actionCheck = array(2, 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 106, 1, 108, 31, 9, 10, 11, 44, 45, 46, 47, 48, 49, 50, 51, 52, 116, 117, 118, 119, 120, 121, 122, 37, 38, 30, 1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 138, 106, 107, 8, 57, 9, 10, 11, 9, 10, 155, 116, 9, 10, 11, 9, 10, 11, 71, 72, 73, 74, 75, 76, 77, 163, 30, 80, 32, 33, 34, 35, 36, 30, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 8, 80, 136, 137, 138, 139, 140, 141, 142, 143, 144, 51, 1, 161, 31, 80, 150, 151, 152, 8, 154, 9, 10, 11, 2, 3, 4, 5, 6, 7, 164, 9, 10, 11, 12, 13, 70, 1, 82, 159, 80, 85, 30, 83, 32, 33, 34, 35, 36, 37, 38, 116, 117, 118, 119, 120, 121, 122, 1, 37, 38, 9, 10, 11, 8, 8, 161, 9, 10, 11, 117, 118, 167, 1, 8, 122, 155, 156, 157, 57, 97, 128, 30, 162, 32, 33, 34, 35, 30, 14, 32, 33, 34, 71, 72, 73, 74, 75, 76, 77, 134, 135, 80, 147, 148, 50, 51, 52, 8, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 164, 8, 136, 137, 138, 139, 140, 141, 142, 143, 144, 80, 9, 10, 11, 160, 150, 151, 152, 164, 154, 2, 3, 4, 5, 6, 7, 1, 9, 10, 11, 12, 13, 30, 8, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 30, 57, 160, 8, 106, 107, 164, 31, 9, 137, 129, 130, 131, 69, 116, 117, 118, 57, 161, 80, 122, 9, 10, 11, 164, 1, 128, 155, 156, 157, 30, 71, 72, 73, 74, 75, 76, 77, 8, 106, 80, 108, 30, 1, 32, 33, 85, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 8, 156, 136, 137, 138, 139, 140, 141, 142, 143, 144, 37, 38, 146, 138, 116, 150, 151, 152, 2, 3, 4, 5, 6, 7, 119, 120, 121, 122, 12, 13, 101, 15, 80, 1, 101, 106, 138, 108, 163, 1, 159, 8, 113, 138, 97, 116, 117, 118, 119, 120, 121, 122, 123, 53, 54, 55, 123, 57, 9, 10, 11, 163, 30, 14, 164, 122, 50, 51, 163, 69, 116, 70, 56, 8, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 1, 70, 71, 72, 73, 74, 162, 138, 122, 78, 79, 80, 1, 82, 164, 14, 1, 86, 87, 88, 89, 163, 91, 156, 93, 106, 95, 108, 161, 98, 99, 75, 76, 80, 103, 104, 105, 106, 107, 1, 109, 110, 31, 116, 75, 76, 115, 116, 70, 163, 134, 135, 8, 122, 1, 124, 125, 126, 160, 159, 8, 161, 164, 116, 137, 149, 8, 136, 137, 31, 139, 140, 141, 142, 143, 144, 145, 161, 106, 163, 108, 82, 151, 152, 8, 138, 155, 156, 157, 158, 75, 76, 77, 8, 163, 84, 165, 166, 167, 84, 8, 101, 102, 106, 107, 90, 8, 92, 8, 94, 163, 96, 134, 135, 161, 116, 106, 107, 111, 112, 167, 106, 84, 1, 8, 8, 8, 149, 31, 14, 37, 38, 117, 118, 14, 82, 137, 122, 31, 161, 14, 163, 127, 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 14, 163, 70, 14, 14, 167, 31, 16, 16, 159, 16, 161, 16, 159, 82, 161, 162, 16, 86, 16, 74, 70, 1, 70, 16, 16, 80, 16, 31, 59, 60, 31, 37, 87, 88, 89, 159, 91, 161, 93, 70, 95, 35, 31, 98, 84, 31, 31, 116, 103, 104, 105, 31, 161, 122, 109, 110, 37, 38, 167, 31, 115, 116, 31, 0, 1, 31, 31, 136, 137, 124, 139, 140, 141, 142, 143, 144, 31, 31, 31, 31, 31, 31, 151, 152, 134, 135, 134, 135, 37, 38, 31, 31, 31, 74, 163, 31, 1, 166, 167, 80, 35, 149, 82, 134, 135, 35, 87, 88, 89, 35, 91, 161, 93, 161, 95, 35, 35, 98, 149, 159, 35, 161, 103, 104, 105, 74, 31, 37, 109, 110, 161, 80, 38, 37, 115, 116, 116, 37, 87, 88, 89, 57, 91, 124, 93, 70, 95, 84, 128, 98, 77, 69, 80, 70, 103, 104, 105, 137, 82, 31, 109, 110, 83, 85, 96, 94, 115, 116, 82, 106, 113, 108, 85, 154, 97, 124, 113, 89, 158, 84, 117, 118, 90, 163, 128, 122, 97, 167, 97, 92, 127, 128, 129, 130, 131, 133, 138, 153, 100, 100, 146, 132, 74, 70, 137, 1, 153, 114, 80, 134, 135, 159, 146, 150, 159, 87, 88, 89, -1, 91, 1, 93, 159, 95, 161, 162, 98, -1, 1, 1, -1, 103, 104, 105, 74, 132, 161, 109, 110, -1, 80, 1, -1, 115, 116, -1, -1, 87, 88, 89, 31, 91, 124, 93, 159, 95, 161, 149, 98, 31, 149, 149, 102, 103, 104, 105, 74, 134, 135, 109, 110, 149, 80, 81, 149, 115, 116, 154, 158, 87, 88, 89, 149, 91, 124, 93, 155, 95, 84, 159, 98, 159, 163, 159, 161, 103, 104, 105, 159, 159, 159, 109, 110, 84, 100, 101, 102, 115, 116, 82, 106, 159, 84, 159, 159, 159, 124, 159, 159, 162, 159, 117, 118, 159, 84, 159, 122, 159, 161, 160, 160, 127, 128, 129, 130, 131, 70, 160, 160, 160, 100, 101, 102, 116, 160, 162, 106, 161, 82, 161, 161, 161, 86, 162, 161, 128, 161, 117, 118, 161, 161, 161, 122, 159, 137, 161, 162, 127, 128, 129, 130, 131, 161, 161, 161, 165, 162, 162, 159, 70, 161, 163, 116, 162, 162, 158, 162, 159, 122, 161, 163, 162, 162, 162, 167, 162, 162, 162, 162, 159, 162, 161, 162, 137, 162, 139, 140, 141, 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, 152, 162, 162, 74, 162, 162, 165, 163, 163, 80, 163, 163, 163, 163, 166, 167, 87, 88, 89, 163, 91, 163, 93, 163, 95, 134, 135, 98, 163, 163, 163, 163, 103, 104, 105, 163, 163, 163, 109, 110, 149, 163, 163, 163, 115, 116, 163, 163, 163, 163, 163, 163, 161, 124, 164, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, -1, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, -1, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, -1, -1, 166, -1, 167); - protected $actionBase = array(0, -2, 154, 542, 752, 893, 929, 580, 53, 394, 855, 307, 307, 67, 307, 307, 307, 565, 908, 908, 917, 908, 538, 784, 649, 649, 649, 708, 708, 708, 708, 740, 740, 849, 849, 881, 817, 634, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 12, 323, 389, 678, 1044, 1050, 1046, 1051, 1042, 1041, 1045, 1047, 1052, 942, 943, 753, 946, 947, 949, 950, 1048, 873, 1043, 1049, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 346, 491, 50, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 54, 54, 54, 620, 620, 359, 190, 184, 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 658, 47, 144, 144, 7, 7, 7, 7, 7, 371, -25, -25, -25, -25, 709, 347, 916, 474, 526, 375, 280, 317, 245, 340, 340, 187, 187, 396, 396, -87, -87, 396, 396, 396, 747, 747, 747, 747, 443, 505, -94, 308, 454, 480, 480, 480, 480, 454, 454, 454, 454, 755, 1054, 454, 454, 454, 641, 822, 822, 998, 442, 442, 442, 822, 499, 776, 88, 499, 88, 37, 92, 756, 85, -54, 425, 756, 639, 764, 189, 143, 820, 524, 820, 1040, 385, 767, 413, 735, 688, 857, 902, 1053, 787, 940, 788, 941, 228, 98, 685, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1055, 415, 1040, 286, 1055, 1055, 1055, 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 534, 286, 483, 496, 286, 774, 415, 12, 800, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 736, -16, 12, 323, 204, 204, 427, 168, 204, 204, 204, 204, 12, 12, 12, 524, 773, 733, 537, 742, 377, 773, 773, 773, 115, 124, 207, 342, 695, 754, 446, 761, 761, 775, 957, 957, 761, 765, 761, 775, 973, 761, 761, 957, 957, 809, 232, 625, 579, 612, 627, 957, 475, 761, 761, 761, 761, 792, 643, 761, 433, 281, 761, 761, 792, 758, 739, 46, 751, 957, 957, 957, 792, 603, 751, 751, 751, 819, 821, 746, 738, 571, 507, 645, 198, 783, 738, 738, 761, 619, 746, 738, 746, 738, 812, 738, 738, 738, 746, 738, 765, 585, 738, 691, 644, 188, 738, 6, 974, 975, 624, 979, 967, 980, 1009, 981, 985, 878, 956, 992, 972, 986, 965, 963, 750, 679, 680, 801, 797, 954, 771, 771, 771, 951, 771, 771, 771, 771, 771, 771, 771, 771, 679, 858, 814, 745, 777, 995, 682, 684, 743, 872, 899, 948, 994, 1030, 987, 741, 689, 1016, 999, 846, 875, 1000, 1001, 1017, 1031, 1032, 880, 772, 903, 904, 859, 1003, 879, 771, 974, 985, 663, 972, 986, 965, 963, 734, 724, 720, 723, 717, 704, 700, 703, 737, 1033, 907, 818, 866, 1002, 952, 679, 867, 1012, 856, 1018, 1019, 877, 778, 768, 868, 910, 1004, 1005, 1006, 882, 1034, 884, 744, 1013, 997, 1020, 780, 911, 1021, 1022, 1023, 1024, 887, 913, 888, 889, 823, 781, 1010, 757, 918, 528, 769, 770, 789, 1008, 642, 993, 900, 919, 920, 1025, 1026, 1027, 922, 923, 990, 828, 1014, 760, 1015, 1011, 829, 830, 647, 785, 1035, 759, 763, 779, 653, 674, 924, 925, 927, 991, 748, 762, 841, 843, 1037, 683, 1038, 931, 677, 844, 696, 938, 1029, 697, 699, 786, 901, 811, 782, 766, 1007, 749, 845, 939, 847, 848, 850, 1028, 853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 458, 458, 458, 458, 458, 307, 307, 307, 307, 0, 0, 307, 0, 0, 0, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 219, 219, 291, 291, 291, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 0, 291, 291, 291, 291, 291, 291, 291, 291, 809, 442, 442, 442, 442, 219, 219, 219, 219, 219, -88, -88, 219, 809, 219, 219, 442, 442, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 0, 0, 286, 88, 219, 765, 765, 765, 765, 219, 219, 219, 219, 88, 88, 219, 219, 219, 0, 0, 0, 0, 0, 0, 0, 0, 286, 88, 0, 286, 0, 765, 765, 219, 0, 809, 314, 219, 0, 0, 0, 0, 286, 765, 286, 415, 761, 88, 761, 415, 415, 204, 12, 314, 527, 527, 527, 527, 0, 0, 524, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 765, 0, 809, 0, 765, 765, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, 0, 0, 0, 0, 0, 765, 0, 0, 0, 0, 0, 0, 0, 0, 771, 778, 0, 778, 0, 771, 771, 771, 0, 0, 0, 0, 785, 683); - protected $actionDefault = array(3, 32767, 103, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 101, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 593, 593, 593, 593, 32767, 32767, 253, 103, 32767, 32767, 467, 385, 385, 385, 32767, 32767, 537, 537, 537, 537, 537, 537, 32767, 32767, 32767, 32767, 32767, 32767, 467, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 101, 32767, 32767, 32767, 37, 7, 8, 10, 11, 50, 17, 323, 32767, 32767, 32767, 32767, 103, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 586, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 471, 450, 451, 453, 454, 384, 538, 592, 326, 589, 383, 146, 338, 328, 241, 329, 257, 472, 258, 473, 476, 477, 214, 286, 380, 150, 414, 468, 416, 466, 470, 415, 390, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 388, 389, 469, 447, 446, 445, 32767, 32767, 412, 413, 417, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 103, 32767, 387, 420, 418, 419, 436, 437, 434, 435, 438, 32767, 439, 440, 441, 442, 32767, 315, 32767, 32767, 32767, 364, 362, 315, 112, 32767, 32767, 427, 428, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 531, 444, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 103, 32767, 101, 533, 409, 411, 501, 422, 423, 421, 391, 32767, 508, 32767, 103, 510, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 532, 32767, 539, 539, 32767, 494, 101, 194, 32767, 32767, 32767, 194, 194, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 600, 494, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 32767, 194, 111, 32767, 32767, 32767, 101, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 189, 32767, 267, 269, 103, 554, 194, 32767, 513, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 506, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 494, 432, 139, 32767, 139, 539, 424, 425, 426, 496, 539, 539, 539, 311, 288, 32767, 32767, 32767, 32767, 511, 511, 101, 101, 101, 101, 506, 32767, 32767, 32767, 32767, 112, 100, 100, 100, 100, 100, 104, 102, 32767, 32767, 32767, 32767, 222, 100, 32767, 102, 102, 32767, 32767, 222, 224, 211, 102, 226, 32767, 558, 559, 222, 102, 226, 226, 226, 246, 246, 483, 317, 102, 100, 102, 102, 196, 317, 317, 32767, 102, 483, 317, 483, 317, 198, 317, 317, 317, 483, 317, 32767, 102, 317, 213, 100, 100, 317, 32767, 32767, 32767, 496, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 221, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 526, 32767, 543, 556, 430, 431, 433, 541, 455, 456, 457, 458, 459, 460, 461, 463, 588, 32767, 500, 32767, 32767, 32767, 32767, 337, 598, 32767, 598, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 599, 32767, 539, 32767, 32767, 32767, 32767, 429, 9, 76, 489, 43, 44, 52, 58, 517, 518, 519, 520, 514, 515, 521, 516, 32767, 32767, 522, 564, 32767, 32767, 540, 591, 32767, 32767, 32767, 32767, 32767, 32767, 139, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 526, 32767, 137, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 539, 32767, 32767, 32767, 32767, 313, 310, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 539, 32767, 32767, 32767, 32767, 32767, 290, 32767, 307, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 285, 32767, 32767, 379, 32767, 32767, 32767, 32767, 358, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 152, 152, 3, 3, 340, 152, 152, 152, 340, 340, 152, 340, 340, 340, 152, 152, 152, 152, 152, 152, 279, 184, 261, 264, 246, 246, 152, 350, 152); - protected $goto = array(194, 194, 685, 425, 653, 346, 614, 650, 419, 310, 311, 331, 569, 316, 424, 332, 426, 630, 1200, 930, 693, 1051, 1201, 1204, 931, 1205, 165, 165, 165, 165, 218, 195, 191, 191, 175, 177, 213, 191, 191, 191, 191, 191, 192, 192, 192, 192, 192, 192, 186, 187, 188, 189, 190, 215, 213, 216, 529, 530, 415, 531, 533, 534, 535, 536, 537, 538, 539, 540, 1120, 166, 167, 168, 193, 169, 170, 171, 164, 172, 173, 174, 176, 212, 214, 217, 235, 240, 241, 242, 254, 255, 256, 257, 258, 259, 260, 261, 263, 264, 265, 266, 278, 279, 313, 314, 315, 420, 421, 422, 574, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 178, 234, 179, 196, 197, 198, 236, 186, 187, 188, 189, 190, 215, 1120, 199, 180, 181, 182, 200, 196, 183, 237, 201, 199, 163, 202, 203, 184, 204, 205, 206, 185, 207, 208, 209, 210, 211, 275, 275, 275, 275, 843, 593, 646, 647, 560, 664, 665, 666, 720, 629, 631, 840, 418, 651, 604, 841, 350, 675, 679, 996, 683, 691, 992, 616, 616, 817, 350, 350, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1092, 1093, 350, 350, 874, 350, 848, 1337, 896, 891, 892, 905, 849, 893, 846, 894, 895, 847, 548, 900, 899, 901, 350, 391, 394, 554, 594, 598, 1270, 1270, 1072, 1068, 1069, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1268, 1268, 815, 347, 348, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1221, 1020, 1221, 1020, 1221, 836, 5, 1020, 6, 1020, 1020, 1281, 961, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 349, 349, 349, 349, 1221, 460, 460, 566, 678, 1221, 1221, 1221, 1221, 344, 460, 1221, 1221, 1221, 1302, 1302, 1302, 1302, 602, 617, 620, 621, 622, 623, 643, 644, 645, 695, 836, 912, 553, 546, 1310, 913, 548, 532, 532, 821, 856, 982, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 543, 473, 543, 868, 543, 928, 855, 928, 389, 475, 337, 546, 553, 562, 563, 339, 572, 595, 609, 610, 1320, 1320, 249, 249, 1026, 1025, 15, 821, 450, 821, 494, 565, 495, 955, 955, 955, 955, 1320, 501, 450, 949, 956, 839, 652, 1321, 1321, 1169, 1214, 246, 246, 246, 246, 248, 250, 1323, 985, 959, 959, 957, 959, 719, 1321, 545, 994, 989, 470, 1295, 1296, 953, 405, 692, 917, 1108, 432, 541, 541, 541, 541, 612, 597, 452, 444, 1029, 1030, 1001, 658, 444, 1292, 444, 1292, 674, 1292, 860, 833, 656, 980, 836, 861, 547, 557, 854, 321, 305, 547, 333, 557, 1297, 1298, 392, 456, 570, 607, 1211, 944, 398, 858, 1304, 1304, 1304, 1304, 463, 573, 464, 465, 608, 1004, 866, 403, 404, 1328, 1329, 1057, 662, 1212, 663, 471, 407, 408, 409, 723, 676, 870, 1288, 410, 624, 626, 627, 342, 427, 1216, 869, 857, 1056, 1060, 427, 864, 1061, 1103, 966, 0, 0, 964, 1027, 1027, 0, 0, 0, 657, 1038, 1034, 1035, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 0, 1059, 444, 954, 0, 1290, 1290, 1059, 592, 1085, 0, 696, 682, 682, 0, 502, 688, 1083, 0, 0, 0, 1217, 1218, 272, 428, 1101, 873, 0, 544, 831, 544, 0, 0, 0, 673, 938, 0, 0, 1015, 1031, 1032, 0, 0, 0, 0, 0, 0, 1219, 1278, 1279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252, 252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999, 999); - protected $gotoCheck = array(42, 42, 72, 65, 65, 96, 55, 55, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 78, 78, 9, 126, 78, 78, 78, 78, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 23, 23, 23, 23, 15, 129, 85, 85, 48, 85, 85, 85, 48, 48, 48, 26, 13, 48, 13, 27, 14, 48, 48, 48, 48, 48, 48, 107, 107, 7, 14, 14, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 143, 143, 14, 14, 45, 14, 15, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 64, 15, 64, 14, 58, 58, 58, 58, 58, 168, 168, 15, 15, 15, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 6, 96, 96, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 72, 72, 72, 72, 72, 22, 46, 72, 46, 72, 72, 14, 49, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 24, 24, 24, 24, 72, 148, 148, 170, 14, 72, 72, 72, 72, 177, 148, 72, 72, 72, 9, 9, 9, 9, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 22, 72, 75, 75, 179, 72, 14, 171, 171, 12, 35, 102, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 19, 83, 19, 35, 19, 9, 35, 9, 61, 83, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 180, 180, 5, 5, 117, 117, 75, 12, 19, 12, 154, 103, 154, 19, 19, 19, 19, 180, 154, 19, 19, 19, 25, 63, 181, 181, 150, 14, 5, 5, 5, 5, 5, 5, 180, 25, 25, 25, 25, 25, 25, 181, 25, 25, 25, 174, 174, 174, 92, 92, 92, 17, 17, 112, 106, 106, 106, 106, 17, 106, 82, 23, 118, 118, 17, 119, 23, 129, 23, 129, 115, 129, 17, 18, 17, 17, 22, 39, 9, 9, 17, 167, 167, 9, 29, 9, 176, 176, 9, 9, 2, 2, 17, 91, 28, 37, 129, 129, 129, 129, 9, 9, 9, 9, 79, 109, 9, 81, 81, 9, 9, 128, 81, 159, 81, 156, 81, 81, 81, 98, 81, 41, 129, 81, 84, 84, 84, 81, 116, 20, 16, 16, 16, 16, 116, 9, 131, 146, 95, -1, -1, 16, 116, 116, -1, -1, -1, 116, 116, 116, 116, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, -1, 129, 23, 16, -1, 129, 129, 129, 8, 8, -1, 8, 8, 8, -1, 8, 8, 8, -1, -1, -1, 20, 20, 24, 88, 16, 16, -1, 24, 20, 24, -1, -1, -1, 88, 88, -1, -1, 88, 88, 88, -1, -1, -1, -1, -1, -1, 20, 20, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, 106); - protected $gotoBase = array(0, 0, -250, 0, 0, 360, 235, 181, 522, 7, 0, 0, 33, -156, -113, -178, 43, -49, 126, 72, 100, 0, -9, 158, 282, 377, 172, 176, 120, 150, 0, 0, 0, 0, 0, -39, 0, 119, 0, 116, 0, 45, -1, 0, 0, 195, -456, 0, -529, 250, 0, 0, 0, 0, 0, -33, 0, 0, 182, 0, 0, 306, 0, 143, 203, -235, 0, 0, 0, 0, 0, 0, -6, 0, 0, -21, 0, 0, -385, 124, -46, -19, 144, -123, 10, -538, 0, 0, 275, 0, 0, 127, 106, 0, 0, 60, -472, 0, 76, 0, 0, 0, 294, 328, 0, 0, 386, -50, 0, 99, 0, 0, 138, 0, 0, 149, 219, 87, 139, 137, 0, 0, 0, 0, 0, 0, 19, 0, 101, 159, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -69, 0, 0, 58, 0, 257, 0, 114, 0, 0, 0, -120, 0, 40, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 122, -7, 8, 264, 86, 0, 0, 107, 0, 78, 269, 0, 291, 55, 79, 0, 0); - protected $gotoDefault = array(-32768, 506, 727, 4, 728, 921, 804, 813, 590, 523, 694, 343, 618, 416, 1286, 898, 1107, 571, 832, 1230, 1238, 451, 835, 326, 717, 880, 881, 882, 395, 381, 387, 393, 641, 619, 488, 867, 447, 859, 480, 862, 446, 871, 162, 413, 504, 875, 3, 877, 550, 908, 382, 885, 383, 669, 887, 556, 889, 890, 390, 396, 397, 1112, 564, 615, 902, 253, 558, 903, 380, 904, 911, 385, 388, 680, 459, 499, 493, 406, 1087, 559, 601, 638, 441, 467, 613, 625, 611, 474, 1023, 411, 325, 943, 951, 481, 457, 965, 345, 973, 725, 1119, 632, 483, 981, 633, 988, 991, 524, 525, 472, 1003, 268, 1006, 484, 1044, 659, 1017, 1018, 660, 634, 1040, 635, 661, 636, 1042, 466, 591, 1050, 448, 1058, 1274, 449, 1062, 262, 1065, 274, 412, 429, 1070, 1071, 8, 1077, 686, 687, 10, 273, 503, 1102, 681, 445, 1118, 433, 1188, 1190, 552, 485, 1208, 1207, 672, 500, 1213, 442, 1277, 443, 526, 468, 312, 527, 304, 329, 309, 542, 291, 330, 528, 469, 1283, 1291, 327, 30, 1311, 1322, 338, 568, 606); - protected $ruleToNonTerminal = array(0, 1, 3, 3, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 25, 25, 68, 68, 71, 71, 70, 69, 69, 62, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 26, 26, 27, 27, 27, 27, 27, 87, 87, 89, 89, 82, 82, 90, 90, 91, 91, 91, 83, 83, 86, 86, 84, 84, 92, 93, 93, 56, 56, 64, 64, 67, 67, 67, 66, 94, 94, 95, 57, 57, 57, 57, 96, 96, 97, 97, 98, 98, 99, 100, 100, 101, 101, 102, 102, 54, 54, 50, 50, 104, 52, 52, 105, 51, 51, 53, 53, 63, 63, 63, 63, 80, 80, 108, 108, 110, 110, 111, 111, 111, 111, 109, 109, 109, 113, 113, 113, 113, 88, 88, 116, 116, 116, 117, 117, 114, 114, 118, 118, 120, 120, 121, 121, 115, 122, 122, 119, 123, 123, 123, 123, 112, 112, 81, 81, 81, 20, 20, 20, 125, 124, 124, 126, 126, 126, 126, 59, 127, 127, 128, 60, 130, 130, 131, 131, 132, 132, 85, 133, 133, 133, 133, 133, 133, 138, 138, 139, 139, 140, 140, 140, 140, 140, 141, 142, 142, 137, 137, 134, 134, 136, 136, 144, 144, 143, 143, 143, 143, 143, 143, 143, 135, 145, 145, 147, 146, 146, 61, 103, 148, 148, 55, 55, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 155, 149, 149, 154, 154, 157, 158, 158, 159, 160, 161, 161, 161, 161, 19, 19, 72, 72, 72, 72, 150, 150, 150, 150, 163, 163, 151, 151, 153, 153, 153, 156, 156, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 107, 171, 171, 171, 171, 152, 152, 152, 152, 152, 152, 152, 152, 58, 58, 166, 166, 166, 166, 172, 172, 162, 162, 162, 173, 173, 173, 173, 173, 173, 73, 73, 65, 65, 65, 65, 129, 129, 129, 129, 176, 175, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 174, 174, 174, 174, 106, 170, 178, 178, 177, 177, 179, 179, 179, 179, 179, 179, 179, 179, 167, 167, 167, 167, 181, 182, 180, 180, 180, 180, 180, 180, 180, 180, 183, 183, 183, 183); - protected $ruleToLength = array(1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, 0, 1, 1, 1, 1, 1, 3, 5, 4, 3, 4, 2, 3, 1, 1, 7, 6, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 8, 9, 7, 8, 7, 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 6, 8, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, 2, 4, 3, 1, 1, 3, 1, 2, 2, 3, 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, 1, 5, 5, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, 4, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, 3, 2, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1); + protected $action = array(133, 134, 135, 579, 136, 137, 0, 748, 749, 750, 138, 38, 327, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, 102, 103, 104, 105, 106, 1109, 1110, 1111, 1108, 1107, 1106, 1112, 742, 741, -32766, 1232, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32767, -32767, -32767, -32767, -32767, 2, 107, 108, 109, 751, 274, 381, 380, -32766, -32766, -32766, -32766, 104, 105, 106, 1024, 422, 110, 265, 139, 403, 755, 756, 757, 758, 466, 467, 428, 938, 291, -32766, 287, -32766, -32766, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 789, 580, 790, 791, 792, 793, 781, 782, 344, 345, 784, 785, 770, 771, 772, 774, 775, 776, 355, 816, 817, 818, 819, 820, 581, 777, 778, 582, 583, 810, 801, 799, 800, 813, 796, 797, 687, -545, 584, 585, 795, 586, 587, 588, 589, 590, 591, -328, -593, -367, 1234, -367, 798, 592, 593, -593, 140, -32766, -32766, -32766, 133, 134, 135, 579, 136, 137, 1057, 748, 749, 750, 138, 38, 688, 1020, 1019, 1018, 1021, 390, -32766, 7, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, -32766, 379, 380, 1033, 689, 690, 742, 741, -32766, -32766, -32766, 422, -545, -545, -590, -32766, -32766, -32766, 1032, -32766, 127, -590, 1236, 1235, 1237, 1318, 751, -545, 290, -32766, 283, -32766, -32766, -32766, -32766, -32766, 1236, 1235, 1237, -545, 265, 139, 403, 755, 756, 757, 758, 16, 481, 428, 458, 459, 460, 298, 722, 35, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 789, 580, 790, 791, 792, 793, 781, 782, 344, 345, 784, 785, 770, 771, 772, 774, 775, 776, 355, 816, 817, 818, 819, 820, 581, 777, 778, 582, 583, 810, 801, 799, 800, 813, 796, 797, 129, 824, 584, 585, 795, 586, 587, 588, 589, 590, 591, -328, 83, 84, 85, -593, 798, 592, 593, -593, 149, 773, 743, 744, 745, 746, 747, 824, 748, 749, 750, 786, 787, 37, 145, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 291, 274, 835, 254, 1109, 1110, 1111, 1108, 1107, 1106, 1112, -590, 860, 110, 861, -590, 482, 751, -32766, -32766, -32766, -32766, -32766, 142, 603, 1085, 742, 741, 1262, 326, 987, 752, 753, 754, 755, 756, 757, 758, 309, -32766, 822, -32766, -32766, -32766, -32766, 242, 553, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 789, 812, 790, 791, 792, 793, 781, 782, 783, 811, 784, 785, 770, 771, 772, 774, 775, 776, 815, 816, 817, 818, 819, 820, 821, 777, 778, 779, 780, 810, 801, 799, 800, 813, 796, 797, 311, 940, 788, 794, 795, 802, 803, 805, 804, 806, 807, 323, 609, 1274, 1033, 833, 798, 809, 808, 50, 51, 52, 512, 53, 54, 860, 241, 861, 918, 55, 56, -111, 57, -32766, -32766, -32766, -111, 826, -111, 290, 1302, 1347, 356, 305, 1348, 339, -111, -111, -111, -111, -111, -111, -111, -111, -32766, -194, -32766, -32766, -32766, -193, 956, 957, 829, -86, 988, 958, 834, 58, 59, 340, 428, 952, -544, 60, 832, 61, 247, 248, 62, 63, 64, 65, 66, 67, 68, 69, 1241, 28, 267, 70, 444, 513, -342, -32766, 141, 1268, 1269, 514, 918, 833, 326, -272, 918, 1266, 42, 25, 515, 940, 516, 14, 517, 908, 518, 828, 369, 519, 520, 373, 709, 1033, 44, 45, 445, 376, 375, 388, 46, 521, 712, -86, 440, 1101, 367, 338, -543, 441, -544, -544, 830, 1227, 442, 523, 524, 525, 290, 1236, 1235, 1237, 361, 1030, 443, -544, 1087, 526, 527, 839, 1255, 1256, 1257, 1258, 1252, 1253, 297, -544, 151, -550, -584, 833, 1259, 1254, -584, 1033, 1236, 1235, 1237, 298, -154, -154, -154, 152, 71, 908, 321, 322, 326, 908, 920, 1030, 707, 833, 154, -154, 1337, -154, 155, -154, 283, -154, -543, -543, 82, 1232, 1086, 1322, 734, 156, 326, 374, 158, 1033, 1321, -194, -79, -543, -88, -193, 742, 741, 956, 957, 653, 26, -32766, 522, -51, -543, 33, -549, 894, 952, -111, -111, -111, 32, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, -59, 75, 28, 672, 673, 326, -58, 36, 250, 920, 124, 707, 125, 920, 833, 707, -154, 130, 1266, 131, -32766, -547, 144, -542, 150, 406, 1234, 377, 378, 1146, 1148, 382, 383, -32766, -32766, -32766, -85, -32766, 1056, -32766, -542, -32766, 644, 645, -32766, 159, 160, 161, 1232, -32766, -32766, -32766, 162, -79, 1227, -32766, -32766, 742, 741, 163, -302, -32766, 419, -75, -4, 918, -73, 287, 526, 527, -32766, 1255, 1256, 1257, 1258, 1252, 1253, -72, -71, -70, -69, -68, -67, 1259, 1254, -547, -547, -542, -542, 742, 741, -66, -47, -18, -32766, 73, 148, 918, 322, 326, 1234, 273, -542, 284, -542, -542, 723, -32766, -32766, -32766, 726, -32766, -547, -32766, -542, -32766, 917, 147, -32766, -542, 288, 289, -298, -32766, -32766, -32766, -32766, 713, 279, -32766, -32766, -542, 1234, 280, 285, -32766, 419, 48, 286, -32766, -32766, -32766, 332, -32766, -32766, -32766, 292, -32766, 908, 293, -32766, 934, 274, 1030, 918, -32766, -32766, -32766, 110, 682, 132, -32766, -32766, 833, 146, -32766, 559, -32766, 419, 659, 374, 824, 435, 1349, 74, 1033, -32766, 296, 654, 1116, 908, 956, 957, 306, 714, 698, 522, 555, 303, 13, 310, 852, 952, -111, -111, -111, 700, 463, 492, 953, 283, 299, 300, -32766, 49, 675, 918, 304, 660, 1234, 676, 936, 1273, -32766, 10, 1263, -32766, -32766, -32766, 642, -32766, 918, -32766, 920, -32766, 707, -4, -32766, 126, 34, 918, 565, -32766, -32766, -32766, -32766, 0, 908, -32766, -32766, 0, 1234, 918, 0, -32766, 419, 0, 0, -32766, -32766, -32766, 717, -32766, -32766, -32766, 920, -32766, 707, 1033, -32766, 724, 1275, 0, 487, -32766, -32766, -32766, -32766, 301, 302, -32766, -32766, -507, 1234, 571, -497, -32766, 419, 607, 8, -32766, -32766, -32766, 372, -32766, -32766, -32766, 17, -32766, 908, 371, -32766, 832, 298, 320, 128, -32766, -32766, -32766, 40, 370, 41, -32766, -32766, 908, -250, -250, -250, -32766, 419, 731, 374, 973, 908, 707, 732, 899, -32766, 997, 974, 728, 981, 956, 957, 971, 908, 982, 522, 897, 969, 1090, 1093, 894, 952, -111, -111, -111, 28, 1094, 1091, 1092, -249, -249, -249, 1241, 1098, 708, 374, 844, 833, 1288, 1306, 1340, 1266, 647, 1267, 711, 715, 956, 957, 716, 1241, 718, 522, 920, 719, 707, -250, 894, 952, -111, -111, -111, 720, -16, 721, 725, 710, -511, 920, 895, 707, -578, 1232, 1344, 1346, 855, 854, 920, 1227, 707, -577, 863, 946, 989, 862, 1345, 945, 943, 944, 920, 947, 707, -249, 527, 1218, 1255, 1256, 1257, 1258, 1252, 1253, 927, 937, 925, 979, 980, 631, 1259, 1254, 1343, 1300, -32766, 1289, 1307, 833, 1316, -275, 1234, -576, 73, -550, -549, 322, 326, -32766, -32766, -32766, -548, -32766, -491, -32766, 833, -32766, 1, 29, -32766, 30, 39, 43, 47, -32766, -32766, -32766, 72, 76, 77, -32766, -32766, 1232, -111, -111, 78, -32766, 419, -111, 79, 80, 81, 143, 153, -111, -32766, 157, 246, 328, 1232, -111, -111, 356, -32766, 357, -111, 358, 359, 360, 361, 362, -111, 363, 364, 365, 366, 368, 436, 0, -273, -32766, -272, 19, 20, 298, 21, 22, 24, 405, 75, 1203, 483, 484, 326, 491, 0, 494, 495, 496, 497, 501, 298, 502, 503, 510, 693, 75, 0, 1245, 1186, 326, 1264, 1059, 1058, 1039, 1222, 1035, -277, -103, 18, 23, 27, 295, 404, 600, 604, 633, 699, 1190, 1240, 1187, 1319, 0, 0, 0, 326); + protected $actionCheck = array(2, 3, 4, 5, 6, 7, 0, 9, 10, 11, 12, 13, 70, 9, 10, 11, 9, 10, 11, 44, 45, 46, 47, 48, 49, 50, 51, 52, 116, 117, 118, 119, 120, 121, 122, 37, 38, 30, 116, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 8, 53, 54, 55, 57, 57, 106, 107, 137, 9, 10, 11, 50, 51, 52, 1, 116, 69, 71, 72, 73, 74, 75, 76, 77, 134, 135, 80, 1, 30, 30, 30, 32, 33, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 80, 70, 136, 137, 138, 139, 140, 141, 142, 143, 144, 8, 1, 106, 80, 108, 150, 151, 152, 8, 154, 9, 10, 11, 2, 3, 4, 5, 6, 7, 164, 9, 10, 11, 12, 13, 116, 119, 120, 121, 122, 106, 30, 108, 32, 33, 34, 35, 36, 37, 38, 9, 10, 11, 106, 107, 138, 137, 138, 37, 38, 9, 10, 11, 116, 134, 135, 1, 9, 10, 11, 137, 30, 14, 8, 155, 156, 157, 1, 57, 149, 163, 30, 163, 32, 33, 34, 35, 36, 155, 156, 157, 161, 71, 72, 73, 74, 75, 76, 77, 8, 31, 80, 129, 130, 131, 158, 161, 8, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 8, 80, 136, 137, 138, 139, 140, 141, 142, 143, 144, 164, 9, 10, 11, 160, 150, 151, 152, 164, 154, 2, 3, 4, 5, 6, 7, 80, 9, 10, 11, 12, 13, 30, 8, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 30, 57, 1, 8, 116, 117, 118, 119, 120, 121, 122, 160, 106, 69, 108, 164, 161, 57, 9, 10, 11, 9, 10, 161, 1, 1, 37, 38, 1, 167, 31, 71, 72, 73, 74, 75, 76, 77, 8, 30, 80, 32, 33, 34, 35, 14, 85, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 8, 122, 136, 137, 138, 139, 140, 141, 142, 143, 144, 8, 51, 146, 138, 82, 150, 151, 152, 2, 3, 4, 5, 6, 7, 106, 97, 108, 1, 12, 13, 101, 15, 9, 10, 11, 106, 80, 108, 163, 1, 80, 163, 113, 83, 8, 116, 117, 118, 119, 120, 121, 122, 123, 30, 8, 32, 33, 34, 8, 117, 118, 80, 31, 159, 122, 159, 50, 51, 8, 80, 128, 70, 56, 155, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 1, 70, 71, 72, 73, 74, 162, 9, 161, 78, 79, 80, 1, 82, 167, 164, 1, 86, 87, 88, 89, 122, 91, 101, 93, 84, 95, 156, 8, 98, 99, 8, 161, 138, 103, 104, 105, 106, 107, 8, 109, 110, 31, 97, 8, 123, 115, 116, 70, 8, 134, 135, 156, 122, 8, 124, 125, 126, 163, 155, 156, 157, 163, 116, 8, 149, 162, 136, 137, 8, 139, 140, 141, 142, 143, 144, 145, 161, 14, 163, 160, 82, 151, 152, 164, 138, 155, 156, 157, 158, 75, 76, 77, 14, 163, 84, 165, 166, 167, 84, 159, 116, 161, 82, 14, 90, 85, 92, 14, 94, 163, 96, 134, 135, 161, 116, 159, 1, 161, 14, 167, 106, 14, 138, 8, 164, 16, 149, 31, 164, 37, 38, 117, 118, 75, 76, 137, 122, 31, 161, 14, 163, 127, 128, 129, 130, 131, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 16, 163, 70, 75, 76, 167, 16, 147, 148, 159, 16, 161, 16, 159, 82, 161, 162, 16, 86, 16, 74, 70, 16, 70, 101, 102, 80, 106, 107, 59, 60, 106, 107, 87, 88, 89, 31, 91, 1, 93, 70, 95, 111, 112, 98, 16, 16, 16, 116, 103, 104, 105, 16, 31, 122, 109, 110, 37, 38, 16, 35, 115, 116, 31, 0, 1, 31, 30, 136, 137, 124, 139, 140, 141, 142, 143, 144, 31, 31, 31, 31, 31, 31, 151, 152, 134, 135, 134, 135, 37, 38, 31, 31, 31, 74, 163, 31, 1, 166, 167, 80, 31, 149, 31, 134, 135, 31, 87, 88, 89, 31, 91, 161, 93, 161, 95, 31, 31, 98, 149, 37, 37, 35, 103, 104, 105, 74, 31, 35, 109, 110, 161, 80, 35, 35, 115, 116, 70, 35, 87, 88, 89, 35, 91, 124, 93, 37, 95, 84, 37, 98, 38, 57, 116, 1, 103, 104, 105, 69, 77, 31, 109, 110, 82, 70, 85, 89, 115, 116, 96, 106, 80, 108, 83, 154, 138, 124, 113, 90, 82, 84, 117, 118, 114, 31, 80, 122, 85, 132, 97, 132, 127, 128, 129, 130, 131, 92, 97, 97, 128, 163, 134, 135, 74, 70, 94, 1, 133, 100, 80, 100, 154, 146, 137, 150, 160, 87, 88, 89, 113, 91, 1, 93, 159, 95, 161, 162, 98, 161, 161, 1, 153, 103, 104, 105, 74, -1, 84, 109, 110, -1, 80, 1, -1, 115, 116, -1, -1, 87, 88, 89, 31, 91, 124, 93, 159, 95, 161, 138, 98, 31, 146, -1, 102, 103, 104, 105, 74, 134, 135, 109, 110, 149, 80, 81, 149, 115, 116, 153, 149, 87, 88, 89, 149, 91, 124, 93, 149, 95, 84, 149, 98, 155, 158, 161, 161, 103, 104, 105, 159, 161, 159, 109, 110, 84, 100, 101, 102, 115, 116, 159, 106, 159, 84, 161, 159, 159, 124, 159, 159, 162, 159, 117, 118, 159, 84, 159, 122, 159, 159, 159, 159, 127, 128, 129, 130, 131, 70, 159, 159, 159, 100, 101, 102, 1, 159, 161, 106, 160, 82, 160, 160, 160, 86, 160, 166, 161, 161, 117, 118, 161, 1, 161, 122, 159, 161, 161, 162, 127, 128, 129, 130, 131, 161, 31, 161, 161, 161, 165, 159, 162, 161, 163, 116, 162, 162, 162, 162, 159, 122, 161, 163, 162, 162, 162, 162, 162, 162, 162, 162, 159, 162, 161, 162, 137, 162, 139, 140, 141, 142, 143, 144, 162, 162, 162, 162, 162, 162, 151, 152, 162, 162, 74, 162, 162, 82, 162, 164, 80, 163, 163, 163, 163, 166, 167, 87, 88, 89, 163, 91, 163, 93, 82, 95, 163, 163, 98, 163, 163, 163, 163, 103, 104, 105, 163, 163, 163, 109, 110, 116, 117, 118, 163, 115, 116, 122, 163, 163, 163, 163, 163, 128, 124, 163, 163, 163, 116, 117, 118, 163, 137, 163, 122, 163, 163, 163, 163, 163, 128, 163, 163, 163, 163, 163, 163, -1, 164, 137, 164, 164, 164, 158, 164, 164, 164, 164, 163, 165, 164, 164, 167, 164, -1, 164, 164, 164, 164, 164, 158, 164, 164, 164, 164, 163, -1, 164, 164, 167, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, -1, -1, -1, 167); + protected $actionBase = array(0, -2, 154, 542, 752, 893, 929, 52, 374, 431, 398, 869, 793, 235, 307, 307, 793, 307, 784, 908, 908, 917, 908, 538, 841, 468, 468, 468, 708, 708, 708, 708, 740, 740, 849, 849, 881, 817, 634, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 348, 346, 370, 653, 1063, 1069, 1065, 1070, 1061, 1060, 1064, 1066, 1071, 946, 947, 774, 949, 950, 943, 952, 1067, 882, 1062, 1068, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 525, 191, 359, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 174, 174, 174, 620, 620, 51, 465, 356, 955, 955, 955, 955, 955, 955, 955, 955, 955, 955, 658, 184, 144, 144, 7, 7, 7, 7, 7, 1031, 371, 1048, -25, -25, -25, -25, 50, 725, 526, 449, 39, 317, 80, 474, 474, 13, 13, 512, 512, 422, 422, 512, 512, 512, 808, 808, 808, 808, 443, 505, 360, 308, -78, 209, 209, 209, 209, -78, -78, -78, -78, 803, 877, -78, -78, -78, 63, 641, 641, 822, -1, -1, -1, 641, 253, 790, 548, 253, 384, 548, 480, 402, 764, 759, -49, 447, 764, 639, 755, 198, 143, 825, 609, 825, 1059, 320, 768, 426, 749, 720, 874, 904, 1072, 796, 941, 798, 942, 106, -58, 710, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1073, 336, 1059, 423, 1073, 1073, 1073, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 619, 423, 586, 616, 423, 795, 336, 348, 814, 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, 750, 202, 348, 346, 78, 78, 484, 65, 78, 78, 78, 78, 348, 348, 348, 348, 609, 783, 766, 613, 813, 492, 783, 783, 783, 473, 135, 378, 488, 713, 775, 67, 779, 779, 785, 969, 969, 779, 769, 779, 785, 975, 779, 779, 969, 969, 823, 280, 563, 478, 550, 568, 969, 377, 779, 779, 779, 779, 746, 573, 779, 342, 314, 779, 779, 746, 744, 760, 43, 762, 969, 969, 969, 746, 547, 762, 762, 762, 839, 844, 794, 758, 444, 433, 588, 232, 801, 758, 758, 779, 558, 794, 758, 794, 758, 745, 758, 758, 758, 794, 758, 769, 502, 758, 717, 583, 224, 758, 6, 979, 980, 624, 981, 973, 987, 1019, 991, 992, 873, 965, 999, 974, 993, 972, 970, 773, 682, 684, 818, 811, 963, 777, 777, 777, 956, 777, 777, 777, 777, 777, 777, 777, 777, 682, 743, 829, 765, 1006, 689, 691, 754, 906, 901, 1030, 1004, 1049, 994, 828, 694, 1028, 1008, 846, 821, 1009, 1010, 1029, 1050, 1052, 910, 782, 911, 912, 876, 1012, 883, 777, 979, 992, 693, 974, 993, 972, 970, 748, 739, 737, 738, 736, 735, 723, 734, 753, 1053, 954, 907, 878, 1011, 957, 682, 879, 1023, 756, 1032, 1033, 827, 788, 778, 880, 913, 1014, 1015, 1016, 884, 1054, 887, 830, 1024, 951, 1035, 789, 918, 1037, 1038, 1039, 1040, 889, 919, 892, 916, 900, 845, 776, 1020, 761, 920, 591, 787, 791, 800, 1018, 606, 1000, 902, 921, 922, 1041, 1043, 1044, 923, 924, 995, 847, 1026, 799, 1027, 1022, 848, 850, 617, 797, 1055, 781, 786, 772, 621, 632, 925, 927, 931, 998, 763, 770, 853, 855, 1056, 771, 1057, 938, 635, 857, 718, 939, 1046, 719, 724, 637, 678, 672, 731, 792, 903, 826, 757, 780, 1017, 724, 767, 858, 940, 859, 860, 867, 1045, 868, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 458, 458, 458, 458, 458, 458, 307, 307, 307, 307, 307, 307, 307, 0, 0, 307, 0, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 291, 66, 66, 291, 291, 291, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, 291, 291, 291, 291, 291, 291, 291, 291, 66, 823, 66, -1, -1, -1, -1, 66, 66, 66, -88, -88, 66, 384, 66, 66, -1, -1, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, 423, 548, 66, 769, 769, 769, 769, 66, 66, 66, 66, 548, 548, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0, 423, 548, 0, 423, 0, 0, 769, 769, 66, 384, 823, 643, 66, 0, 0, 0, 0, 423, 769, 423, 336, 779, 548, 779, 336, 336, 78, 348, 643, 611, 611, 611, 611, 0, 0, 609, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 769, 0, 823, 0, 769, 769, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, 969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 975, 0, 0, 0, 0, 0, 0, 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 777, 788, 0, 788, 0, 777, 777, 777, 0, 0, 0, 0, 797, 771); + protected $actionDefault = array(3, 32767, 103, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 101, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 596, 596, 596, 596, 32767, 32767, 254, 103, 32767, 32767, 469, 387, 387, 387, 32767, 32767, 540, 540, 540, 540, 540, 540, 32767, 32767, 32767, 32767, 32767, 32767, 469, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 101, 32767, 32767, 32767, 37, 7, 8, 10, 11, 50, 17, 324, 32767, 32767, 32767, 32767, 103, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 589, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 473, 452, 453, 455, 456, 386, 541, 595, 327, 592, 385, 146, 339, 329, 242, 330, 258, 474, 259, 475, 478, 479, 215, 287, 382, 150, 151, 416, 470, 418, 468, 472, 417, 392, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 390, 391, 471, 449, 448, 447, 32767, 32767, 414, 415, 419, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 103, 32767, 389, 422, 420, 421, 438, 439, 436, 437, 440, 32767, 32767, 32767, 441, 442, 443, 444, 316, 32767, 32767, 366, 364, 316, 112, 32767, 32767, 429, 430, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 534, 446, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 103, 32767, 101, 536, 411, 413, 503, 424, 425, 423, 393, 32767, 510, 32767, 103, 32767, 512, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 535, 32767, 542, 542, 32767, 496, 101, 195, 32767, 32767, 32767, 195, 195, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 603, 496, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 32767, 195, 111, 32767, 32767, 32767, 101, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 190, 32767, 268, 270, 103, 557, 195, 32767, 515, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 508, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 496, 434, 139, 32767, 139, 542, 426, 427, 428, 498, 542, 542, 542, 312, 289, 32767, 32767, 32767, 32767, 513, 513, 101, 101, 101, 101, 508, 32767, 32767, 32767, 32767, 112, 100, 100, 100, 100, 100, 104, 102, 32767, 32767, 32767, 32767, 223, 100, 32767, 102, 102, 32767, 32767, 223, 225, 212, 102, 227, 32767, 561, 562, 223, 102, 227, 227, 227, 247, 247, 485, 318, 102, 100, 102, 102, 197, 318, 318, 32767, 102, 485, 318, 485, 318, 199, 318, 318, 318, 485, 318, 32767, 102, 318, 214, 100, 100, 318, 32767, 32767, 32767, 498, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 222, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 529, 32767, 546, 559, 432, 433, 435, 544, 457, 458, 459, 460, 461, 462, 463, 465, 591, 32767, 502, 32767, 32767, 32767, 338, 601, 32767, 601, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 602, 32767, 542, 32767, 32767, 32767, 32767, 431, 9, 76, 491, 43, 44, 52, 58, 519, 520, 521, 522, 516, 517, 523, 518, 32767, 32767, 524, 567, 32767, 32767, 543, 594, 32767, 32767, 32767, 32767, 32767, 32767, 139, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 529, 32767, 137, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 525, 32767, 32767, 32767, 542, 32767, 32767, 32767, 32767, 314, 311, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 542, 32767, 32767, 32767, 32767, 32767, 291, 32767, 308, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 286, 32767, 32767, 381, 498, 294, 296, 297, 32767, 32767, 32767, 32767, 360, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 32767, 153, 153, 3, 3, 341, 153, 153, 153, 341, 341, 153, 341, 341, 341, 153, 153, 153, 153, 153, 153, 280, 185, 262, 265, 247, 247, 153, 352, 153); + protected $goto = array(196, 196, 1031, 703, 694, 430, 658, 1062, 1334, 1334, 424, 313, 314, 335, 573, 319, 429, 336, 431, 635, 651, 652, 850, 669, 670, 671, 1334, 167, 167, 167, 167, 221, 197, 193, 193, 177, 179, 216, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 188, 189, 190, 191, 192, 218, 216, 219, 534, 535, 420, 536, 538, 539, 540, 541, 542, 543, 544, 545, 1132, 168, 169, 170, 195, 171, 172, 173, 166, 174, 175, 176, 178, 215, 217, 220, 238, 243, 244, 245, 257, 258, 259, 260, 261, 262, 263, 264, 268, 269, 270, 271, 281, 282, 316, 317, 318, 425, 426, 427, 578, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 180, 237, 181, 198, 199, 200, 239, 188, 189, 190, 191, 192, 218, 1132, 201, 182, 183, 184, 202, 198, 185, 240, 203, 201, 165, 204, 205, 186, 206, 207, 208, 187, 209, 210, 211, 212, 213, 214, 853, 851, 278, 278, 278, 278, 418, 620, 620, 350, 570, 597, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1283, 1283, 831, 618, 655, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 353, 353, 353, 353, 866, 557, 550, 858, 825, 907, 902, 903, 916, 859, 904, 856, 905, 906, 857, 878, 457, 910, 865, 884, 546, 546, 546, 546, 831, 601, 831, 1084, 1079, 1080, 1081, 341, 550, 557, 566, 567, 343, 576, 599, 613, 614, 407, 408, 972, 465, 465, 667, 15, 668, 1323, 411, 412, 413, 465, 681, 348, 1233, 414, 1233, 478, 569, 346, 439, 1031, 1031, 1233, 993, 480, 1031, 393, 1031, 1031, 1104, 1105, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1315, 1315, 1315, 1315, 1233, 657, 1333, 1333, 1055, 1233, 1233, 1233, 1233, 1037, 1036, 1233, 1233, 1233, 1034, 1034, 1181, 354, 678, 949, 1333, 437, 1026, 1042, 1043, 337, 691, 354, 354, 827, 923, 691, 1040, 1041, 924, 691, 663, 1336, 939, 871, 939, 354, 354, 1281, 1281, 354, 679, 1350, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 552, 537, 537, 911, 354, 912, 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, 548, 564, 548, 574, 611, 730, 634, 636, 849, 548, 656, 475, 1308, 1309, 680, 684, 1007, 692, 701, 1003, 252, 252, 996, 970, 970, 968, 970, 729, 843, 549, 1005, 1000, 423, 455, 608, 1294, 846, 955, 966, 966, 966, 966, 325, 308, 455, 960, 967, 249, 249, 249, 249, 251, 253, 402, 351, 352, 683, 868, 551, 561, 449, 449, 449, 551, 1305, 561, 1305, 612, 396, 461, 1010, 1010, 1224, 1305, 395, 398, 558, 598, 602, 1015, 468, 577, 469, 470, 1310, 1311, 876, 552, 846, 1341, 1342, 964, 409, 702, 733, 324, 275, 324, 1317, 1317, 1317, 1317, 606, 621, 624, 625, 626, 627, 648, 649, 650, 705, 1068, 596, 1097, 874, 706, 476, 1228, 507, 697, 880, 1095, 1115, 432, 1301, 628, 630, 632, 432, 879, 867, 1067, 1071, 5, 1072, 6, 1038, 1038, 977, 0, 975, 662, 1049, 1045, 1046, 0, 0, 0, 0, 1226, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 928, 1120, 449, 965, 1070, 0, 0, 616, 1303, 1303, 1070, 1229, 1230, 1012, 499, 0, 500, 0, 0, 841, 0, 870, 506, 661, 991, 1113, 883, 1212, 941, 864, 0, 1213, 1216, 942, 1217, 0, 0, 1231, 1291, 1292, 0, 1223, 0, 0, 0, 846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255); + protected $gotoCheck = array(42, 42, 72, 9, 72, 65, 65, 126, 181, 181, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 85, 85, 26, 85, 85, 85, 181, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 15, 27, 23, 23, 23, 23, 43, 107, 107, 96, 170, 129, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 168, 168, 12, 55, 55, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 24, 24, 24, 24, 35, 75, 75, 15, 6, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 35, 82, 15, 35, 45, 106, 106, 106, 106, 12, 106, 12, 15, 15, 15, 15, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 81, 81, 49, 148, 148, 81, 75, 81, 179, 81, 81, 81, 148, 81, 177, 72, 81, 72, 83, 103, 81, 82, 72, 72, 72, 102, 83, 72, 61, 72, 72, 143, 143, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 9, 9, 9, 9, 72, 63, 180, 180, 113, 72, 72, 72, 72, 117, 117, 72, 72, 72, 88, 88, 150, 14, 88, 88, 180, 112, 88, 88, 88, 29, 7, 14, 14, 7, 72, 7, 118, 118, 72, 7, 119, 180, 9, 39, 9, 14, 14, 169, 169, 14, 115, 14, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 14, 171, 171, 64, 14, 64, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 19, 48, 19, 2, 2, 48, 48, 48, 25, 19, 48, 174, 174, 174, 48, 48, 48, 48, 48, 48, 5, 5, 25, 25, 25, 25, 25, 25, 18, 25, 25, 25, 13, 19, 13, 14, 22, 91, 19, 19, 19, 19, 167, 167, 19, 19, 19, 5, 5, 5, 5, 5, 5, 28, 96, 96, 14, 37, 9, 9, 23, 23, 23, 9, 129, 9, 129, 79, 9, 9, 106, 106, 159, 129, 58, 58, 58, 58, 58, 109, 9, 9, 9, 9, 176, 176, 9, 14, 22, 9, 9, 92, 92, 92, 98, 24, 24, 24, 129, 129, 129, 129, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 128, 8, 8, 9, 8, 156, 20, 8, 8, 41, 8, 146, 116, 129, 84, 84, 84, 116, 16, 16, 16, 16, 46, 131, 46, 116, 116, 95, -1, 16, 116, 116, 116, 116, -1, -1, -1, -1, 14, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 17, 17, 23, 16, 129, -1, -1, 17, 129, 129, 129, 20, 20, 17, 154, -1, 154, -1, -1, 20, -1, 17, 154, 17, 17, 16, 16, 78, 78, 17, -1, 78, 78, 78, 78, -1, -1, 20, 20, 20, -1, 17, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 5); + protected $gotoBase = array(0, 0, -339, 0, 0, 386, 195, 312, 472, -10, 0, 0, -109, 62, 13, -184, 46, 65, 86, 102, 93, 0, 125, 162, 197, 371, 18, 160, 83, 22, 0, 0, 0, 0, 0, -166, 0, 85, 0, 9, 0, 48, -1, 157, 0, 207, -232, 0, -340, 223, 0, 0, 0, 0, 0, 148, 0, 0, 396, 0, 0, 231, 0, 52, 334, -236, 0, 0, 0, 0, 0, 0, -5, 0, 0, -139, 0, 0, 149, 91, 112, -245, -58, -205, 15, -695, 0, 0, 28, 0, 0, 75, 154, 0, 0, 64, -310, 0, 55, 0, 0, 0, 235, 221, 0, 0, 196, -71, 0, 77, 0, 0, 37, 24, 0, 56, 219, 23, 40, 39, 0, 0, 0, 0, 0, 0, 5, 0, 106, 166, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 47, 0, 214, 0, 35, 0, 0, 0, 49, 0, 45, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 88, -56, 95, 144, 111, 0, 0, 78, 0, 80, 229, 0, 222, -12, -299, 0, 0); + protected $gotoDefault = array(-32768, 511, 737, 4, 738, 932, 814, 823, 594, 528, 704, 347, 622, 421, 1299, 909, 1119, 575, 842, 1242, 1250, 456, 845, 330, 727, 891, 892, 893, 399, 385, 391, 397, 646, 623, 493, 877, 452, 869, 485, 872, 451, 881, 164, 417, 509, 885, 3, 888, 554, 919, 386, 896, 387, 674, 898, 560, 900, 901, 394, 400, 401, 1124, 568, 619, 913, 256, 562, 914, 384, 915, 922, 389, 392, 685, 464, 504, 498, 410, 1099, 563, 605, 643, 446, 472, 617, 629, 615, 479, 433, 415, 329, 954, 962, 486, 462, 976, 349, 984, 735, 1131, 637, 488, 992, 638, 999, 1002, 529, 530, 477, 1014, 272, 1017, 489, 12, 664, 1028, 1029, 665, 639, 1051, 640, 666, 641, 1053, 471, 595, 1061, 453, 1069, 1287, 454, 1073, 266, 1076, 277, 416, 434, 1082, 1083, 9, 1089, 695, 696, 11, 276, 508, 1114, 686, 450, 1130, 438, 1200, 1202, 556, 490, 1220, 1219, 677, 505, 1225, 447, 1290, 448, 531, 473, 315, 532, 307, 333, 312, 547, 294, 334, 533, 474, 1296, 1304, 331, 31, 1324, 1335, 342, 572, 610); + protected $ruleToNonTerminal = array(0, 1, 3, 3, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 10, 11, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 21, 21, 22, 23, 23, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 30, 30, 32, 34, 34, 28, 36, 36, 33, 38, 38, 35, 35, 37, 37, 39, 39, 31, 40, 40, 41, 43, 44, 44, 45, 45, 46, 46, 48, 47, 47, 47, 47, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 25, 25, 68, 68, 71, 71, 70, 69, 69, 62, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, 26, 26, 27, 27, 27, 27, 27, 87, 87, 89, 89, 82, 82, 90, 90, 91, 91, 91, 83, 83, 86, 86, 84, 84, 92, 93, 93, 56, 56, 64, 64, 67, 67, 67, 66, 94, 94, 95, 57, 57, 57, 57, 96, 96, 97, 97, 98, 98, 99, 100, 100, 101, 101, 102, 102, 54, 54, 50, 50, 104, 52, 52, 105, 51, 51, 53, 53, 63, 63, 63, 63, 80, 80, 108, 108, 110, 110, 111, 111, 111, 111, 109, 109, 109, 113, 113, 113, 113, 88, 88, 116, 116, 116, 117, 117, 114, 114, 118, 118, 120, 120, 121, 121, 115, 122, 122, 119, 123, 123, 123, 123, 112, 112, 81, 81, 81, 20, 20, 20, 125, 124, 124, 126, 126, 126, 126, 59, 127, 127, 128, 60, 130, 130, 131, 131, 132, 132, 85, 133, 133, 133, 133, 133, 133, 133, 138, 138, 139, 139, 140, 140, 140, 140, 140, 141, 142, 142, 137, 137, 134, 134, 136, 136, 144, 144, 143, 143, 143, 143, 143, 143, 143, 135, 145, 145, 147, 146, 146, 61, 103, 148, 148, 55, 55, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 155, 149, 149, 154, 154, 157, 158, 158, 159, 160, 161, 161, 161, 161, 19, 19, 72, 72, 72, 72, 150, 150, 150, 150, 163, 163, 151, 151, 153, 153, 153, 156, 156, 168, 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 169, 107, 171, 171, 171, 171, 152, 152, 152, 152, 152, 152, 152, 152, 58, 58, 166, 166, 166, 166, 172, 172, 162, 162, 162, 173, 173, 173, 173, 173, 173, 73, 73, 65, 65, 65, 65, 129, 129, 129, 129, 176, 175, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 174, 174, 174, 174, 106, 170, 178, 178, 177, 177, 179, 179, 179, 179, 179, 179, 179, 179, 167, 167, 167, 167, 181, 182, 180, 180, 180, 180, 180, 180, 180, 180, 183, 183, 183, 183); + protected $ruleToLength = array(1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 2, 1, 3, 4, 1, 2, 0, 1, 1, 1, 1, 1, 3, 5, 4, 3, 4, 2, 3, 1, 1, 7, 6, 2, 3, 1, 2, 3, 1, 2, 3, 1, 1, 3, 1, 3, 1, 2, 2, 3, 1, 3, 2, 3, 1, 3, 3, 2, 0, 1, 1, 1, 1, 1, 3, 7, 10, 5, 7, 9, 5, 3, 3, 3, 3, 3, 3, 1, 2, 5, 7, 9, 6, 5, 6, 3, 2, 1, 1, 1, 0, 2, 1, 3, 8, 0, 4, 2, 1, 3, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 8, 9, 7, 8, 7, 6, 8, 0, 2, 0, 2, 1, 2, 1, 2, 1, 1, 1, 0, 2, 0, 2, 0, 2, 2, 1, 3, 1, 4, 1, 4, 1, 1, 4, 2, 1, 3, 3, 3, 4, 4, 5, 0, 2, 4, 3, 1, 1, 7, 0, 2, 1, 3, 3, 4, 1, 4, 0, 2, 5, 0, 2, 6, 0, 2, 0, 3, 1, 2, 1, 1, 2, 0, 1, 3, 0, 2, 1, 1, 1, 1, 6, 8, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 2, 1, 1, 0, 1, 0, 2, 2, 2, 4, 3, 1, 1, 3, 1, 2, 2, 3, 2, 3, 1, 1, 2, 3, 1, 1, 3, 2, 0, 1, 5, 5, 6, 10, 3, 5, 1, 1, 3, 0, 2, 4, 5, 4, 4, 4, 3, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, 1, 3, 2, 2, 3, 1, 0, 1, 1, 3, 3, 3, 4, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 3, 4, 4, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 1, 2, 4, 2, 2, 8, 9, 8, 9, 9, 10, 9, 10, 8, 3, 2, 0, 4, 2, 1, 3, 2, 1, 2, 2, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 3, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 3, 3, 4, 1, 1, 3, 1, 1, 1, 1, 1, 3, 2, 3, 0, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 4, 4, 1, 4, 4, 0, 1, 1, 1, 3, 3, 1, 4, 2, 2, 1, 3, 1, 4, 4, 3, 3, 3, 3, 1, 3, 1, 1, 3, 1, 1, 4, 1, 1, 1, 3, 1, 1, 2, 1, 3, 4, 3, 2, 0, 2, 2, 1, 2, 1, 1, 1, 4, 3, 3, 3, 3, 6, 3, 1, 1, 2, 1); protected function initReduceCallbacks() { $this->reduceCallbacks = [0 => function ($stackPos) { @@ -373,17 +373,19 @@ protected function initReduceCallbacks() }, 149 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); }, 150 => function ($stackPos) { - $this->semValue = new Node\Const_($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos - (3 - 1)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributeStack[$stackPos - (3 - 1)]), $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 151 => function ($stackPos) { + $this->semValue = new Node\Const_(new Node\Identifier($this->semStack[$stackPos - (3 - 1)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributeStack[$stackPos - (3 - 1)]), $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + }, 152 => function ($stackPos) { if (\is_array($this->semStack[$stackPos - (2 - 2)])) { $this->semValue = \array_merge($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)]); } else { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; } - }, 152 => function ($stackPos) { - $this->semValue = array(); }, 153 => function ($stackPos) { + $this->semValue = array(); + }, 154 => function ($stackPos) { $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); @@ -394,15 +396,15 @@ protected function initReduceCallbacks() $this->semStack[$stackPos - (1 - 1)][] = $nop; } $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 154 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 155 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 156 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 157 => function ($stackPos) { - throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 158 => function ($stackPos) { + throw new Error('__HALT_COMPILER() can only be used from the outermost scope', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + }, 159 => function ($stackPos) { if ($this->semStack[$stackPos - (3 - 2)]) { $this->semValue = $this->semStack[$stackPos - (3 - 2)]; $attrs = $this->startAttributeStack[$stackPos - (3 - 1)]; @@ -421,33 +423,33 @@ protected function initReduceCallbacks() $this->semValue = array(); } } - }, 159 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos - (7 - 3)], ['stmts' => \is_array($this->semStack[$stackPos - (7 - 5)]) ? $this->semStack[$stackPos - (7 - 5)] : array($this->semStack[$stackPos - (7 - 5)]), 'elseifs' => $this->semStack[$stackPos - (7 - 6)], 'else' => $this->semStack[$stackPos - (7 - 7)]], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); }, 160 => function ($stackPos) { - $this->semValue = new Stmt\If_($this->semStack[$stackPos - (10 - 3)], ['stmts' => $this->semStack[$stackPos - (10 - 6)], 'elseifs' => $this->semStack[$stackPos - (10 - 7)], 'else' => $this->semStack[$stackPos - (10 - 8)]], $this->startAttributeStack[$stackPos - (10 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\If_($this->semStack[$stackPos - (7 - 3)], ['stmts' => \is_array($this->semStack[$stackPos - (7 - 5)]) ? $this->semStack[$stackPos - (7 - 5)] : array($this->semStack[$stackPos - (7 - 5)]), 'elseifs' => $this->semStack[$stackPos - (7 - 6)], 'else' => $this->semStack[$stackPos - (7 - 7)]], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); }, 161 => function ($stackPos) { - $this->semValue = new Stmt\While_($this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\If_($this->semStack[$stackPos - (10 - 3)], ['stmts' => $this->semStack[$stackPos - (10 - 6)], 'elseifs' => $this->semStack[$stackPos - (10 - 7)], 'else' => $this->semStack[$stackPos - (10 - 8)]], $this->startAttributeStack[$stackPos - (10 - 1)] + $this->endAttributes); }, 162 => function ($stackPos) { - $this->semValue = new Stmt\Do_($this->semStack[$stackPos - (7 - 5)], \is_array($this->semStack[$stackPos - (7 - 2)]) ? $this->semStack[$stackPos - (7 - 2)] : array($this->semStack[$stackPos - (7 - 2)]), $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\While_($this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); }, 163 => function ($stackPos) { - $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos - (9 - 3)], 'cond' => $this->semStack[$stackPos - (9 - 5)], 'loop' => $this->semStack[$stackPos - (9 - 7)], 'stmts' => $this->semStack[$stackPos - (9 - 9)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Do_($this->semStack[$stackPos - (7 - 5)], \is_array($this->semStack[$stackPos - (7 - 2)]) ? $this->semStack[$stackPos - (7 - 2)] : array($this->semStack[$stackPos - (7 - 2)]), $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); }, 164 => function ($stackPos) { - $this->semValue = new Stmt\Switch_($this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\For_(['init' => $this->semStack[$stackPos - (9 - 3)], 'cond' => $this->semStack[$stackPos - (9 - 5)], 'loop' => $this->semStack[$stackPos - (9 - 7)], 'stmts' => $this->semStack[$stackPos - (9 - 9)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); }, 165 => function ($stackPos) { - $this->semValue = new Stmt\Break_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Switch_($this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); }, 166 => function ($stackPos) { - $this->semValue = new Stmt\Continue_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Break_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 167 => function ($stackPos) { - $this->semValue = new Stmt\Return_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Continue_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 168 => function ($stackPos) { - $this->semValue = new Stmt\Global_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Return_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 169 => function ($stackPos) { - $this->semValue = new Stmt\Static_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Global_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 170 => function ($stackPos) { - $this->semValue = new Stmt\Echo_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Static_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 171 => function ($stackPos) { - $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Echo_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 172 => function ($stackPos) { + $this->semValue = new Stmt\InlineHTML($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + }, 173 => function ($stackPos) { $e = $this->semStack[$stackPos - (2 - 1)]; if ($e instanceof Expr\Throw_) { // For backwards-compatibility reasons, convert throw in statement position into @@ -456,29 +458,29 @@ protected function initReduceCallbacks() } else { $this->semValue = new Stmt\Expression($e, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); } - }, 173 => function ($stackPos) { - $this->semValue = new Stmt\Unset_($this->semStack[$stackPos - (5 - 3)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); }, 174 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos - (7 - 3)], $this->semStack[$stackPos - (7 - 5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos - (7 - 5)][1], 'stmts' => $this->semStack[$stackPos - (7 - 7)]], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Unset_($this->semStack[$stackPos - (5 - 3)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); }, 175 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos - (9 - 3)], $this->semStack[$stackPos - (9 - 7)][0], ['keyVar' => $this->semStack[$stackPos - (9 - 5)], 'byRef' => $this->semStack[$stackPos - (9 - 7)][1], 'stmts' => $this->semStack[$stackPos - (9 - 9)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos - (7 - 3)], $this->semStack[$stackPos - (7 - 5)][0], ['keyVar' => null, 'byRef' => $this->semStack[$stackPos - (7 - 5)][1], 'stmts' => $this->semStack[$stackPos - (7 - 7)]], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); }, 176 => function ($stackPos) { - $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos - (6 - 3)], new Expr\Error($this->startAttributeStack[$stackPos - (6 - 4)] + $this->endAttributeStack[$stackPos - (6 - 4)]), ['stmts' => $this->semStack[$stackPos - (6 - 6)]], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos - (9 - 3)], $this->semStack[$stackPos - (9 - 7)][0], ['keyVar' => $this->semStack[$stackPos - (9 - 5)], 'byRef' => $this->semStack[$stackPos - (9 - 7)][1], 'stmts' => $this->semStack[$stackPos - (9 - 9)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); }, 177 => function ($stackPos) { - $this->semValue = new Stmt\Declare_($this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Foreach_($this->semStack[$stackPos - (6 - 3)], new Expr\Error($this->startAttributeStack[$stackPos - (6 - 4)] + $this->endAttributeStack[$stackPos - (6 - 4)]), ['stmts' => $this->semStack[$stackPos - (6 - 6)]], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes); }, 178 => function ($stackPos) { + $this->semValue = new Stmt\Declare_($this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); + }, 179 => function ($stackPos) { $this->semValue = new Stmt\TryCatch($this->semStack[$stackPos - (6 - 3)], $this->semStack[$stackPos - (6 - 5)], $this->semStack[$stackPos - (6 - 6)], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes); $this->checkTryCatch($this->semValue); - }, 179 => function ($stackPos) { - $this->semValue = new Stmt\Goto_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 180 => function ($stackPos) { - $this->semValue = new Stmt\Label($this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Goto_($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 181 => function ($stackPos) { + $this->semValue = new Stmt\Label($this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + }, 182 => function ($stackPos) { $this->semValue = array(); /* means: no statement */ - }, 182 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 183 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + }, 184 => function ($stackPos) { $startAttributes = $this->startAttributeStack[$stackPos - (1 - 1)]; if (isset($startAttributes['comments'])) { $this->semValue = new Stmt\Nop($startAttributes + $this->endAttributes); @@ -489,351 +491,351 @@ protected function initReduceCallbacks() $this->semValue = array(); } /* means: no statement */ - }, 184 => function ($stackPos) { - $this->semValue = array(); }, 185 => function ($stackPos) { + $this->semValue = array(); + }, 186 => function ($stackPos) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 186 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); }, 187 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + }, 188 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 188 => function ($stackPos) { - $this->semValue = new Stmt\Catch_($this->semStack[$stackPos - (8 - 3)], $this->semStack[$stackPos - (8 - 4)], $this->semStack[$stackPos - (8 - 7)], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); }, 189 => function ($stackPos) { - $this->semValue = null; + $this->semValue = new Stmt\Catch_($this->semStack[$stackPos - (8 - 3)], $this->semStack[$stackPos - (8 - 4)], $this->semStack[$stackPos - (8 - 7)], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); }, 190 => function ($stackPos) { - $this->semValue = new Stmt\Finally_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = null; }, 191 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = new Stmt\Finally_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 192 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; }, 193 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + }, 194 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 194 => function ($stackPos) { - $this->semValue = \false; }, 195 => function ($stackPos) { - $this->semValue = \true; - }, 196 => function ($stackPos) { $this->semValue = \false; - }, 197 => function ($stackPos) { + }, 196 => function ($stackPos) { $this->semValue = \true; - }, 198 => function ($stackPos) { + }, 197 => function ($stackPos) { $this->semValue = \false; - }, 199 => function ($stackPos) { + }, 198 => function ($stackPos) { $this->semValue = \true; + }, 199 => function ($stackPos) { + $this->semValue = \false; }, 200 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = \true; }, 201 => function ($stackPos) { - $this->semValue = []; + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 202 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = []; }, 203 => function ($stackPos) { - $this->semValue = new Node\Identifier($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 204 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos - (8 - 3)], ['byRef' => $this->semStack[$stackPos - (8 - 2)], 'params' => $this->semStack[$stackPos - (8 - 5)], 'returnType' => $this->semStack[$stackPos - (8 - 7)], 'stmts' => $this->semStack[$stackPos - (8 - 8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); + $this->semValue = new Node\Identifier($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 205 => function ($stackPos) { - $this->semValue = new Stmt\Function_($this->semStack[$stackPos - (9 - 4)], ['byRef' => $this->semStack[$stackPos - (9 - 3)], 'params' => $this->semStack[$stackPos - (9 - 6)], 'returnType' => $this->semStack[$stackPos - (9 - 8)], 'stmts' => $this->semStack[$stackPos - (9 - 9)], 'attrGroups' => $this->semStack[$stackPos - (9 - 1)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Function_($this->semStack[$stackPos - (8 - 3)], ['byRef' => $this->semStack[$stackPos - (8 - 2)], 'params' => $this->semStack[$stackPos - (8 - 5)], 'returnType' => $this->semStack[$stackPos - (8 - 7)], 'stmts' => $this->semStack[$stackPos - (8 - 8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); }, 206 => function ($stackPos) { + $this->semValue = new Stmt\Function_($this->semStack[$stackPos - (9 - 4)], ['byRef' => $this->semStack[$stackPos - (9 - 3)], 'params' => $this->semStack[$stackPos - (9 - 6)], 'returnType' => $this->semStack[$stackPos - (9 - 8)], 'stmts' => $this->semStack[$stackPos - (9 - 9)], 'attrGroups' => $this->semStack[$stackPos - (9 - 1)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); + }, 207 => function ($stackPos) { $this->semValue = new Stmt\Class_($this->semStack[$stackPos - (7 - 2)], ['type' => $this->semStack[$stackPos - (7 - 1)], 'extends' => $this->semStack[$stackPos - (7 - 3)], 'implements' => $this->semStack[$stackPos - (7 - 4)], 'stmts' => $this->semStack[$stackPos - (7 - 6)], 'attrGroups' => []], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); $this->checkClass($this->semValue, $stackPos - (7 - 2)); - }, 207 => function ($stackPos) { + }, 208 => function ($stackPos) { $this->semValue = new Stmt\Class_($this->semStack[$stackPos - (8 - 3)], ['type' => $this->semStack[$stackPos - (8 - 2)], 'extends' => $this->semStack[$stackPos - (8 - 4)], 'implements' => $this->semStack[$stackPos - (8 - 5)], 'stmts' => $this->semStack[$stackPos - (8 - 7)], 'attrGroups' => $this->semStack[$stackPos - (8 - 1)]], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); $this->checkClass($this->semValue, $stackPos - (8 - 3)); - }, 208 => function ($stackPos) { + }, 209 => function ($stackPos) { $this->semValue = new Stmt\Interface_($this->semStack[$stackPos - (7 - 3)], ['extends' => $this->semStack[$stackPos - (7 - 4)], 'stmts' => $this->semStack[$stackPos - (7 - 6)], 'attrGroups' => $this->semStack[$stackPos - (7 - 1)]], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); $this->checkInterface($this->semValue, $stackPos - (7 - 3)); - }, 209 => function ($stackPos) { - $this->semValue = new Stmt\Trait_($this->semStack[$stackPos - (6 - 3)], ['stmts' => $this->semStack[$stackPos - (6 - 5)], 'attrGroups' => $this->semStack[$stackPos - (6 - 1)]], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes); }, 210 => function ($stackPos) { + $this->semValue = new Stmt\Trait_($this->semStack[$stackPos - (6 - 3)], ['stmts' => $this->semStack[$stackPos - (6 - 5)], 'attrGroups' => $this->semStack[$stackPos - (6 - 1)]], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes); + }, 211 => function ($stackPos) { $this->semValue = new Stmt\Enum_($this->semStack[$stackPos - (8 - 3)], ['scalarType' => $this->semStack[$stackPos - (8 - 4)], 'implements' => $this->semStack[$stackPos - (8 - 5)], 'stmts' => $this->semStack[$stackPos - (8 - 7)], 'attrGroups' => $this->semStack[$stackPos - (8 - 1)]], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); $this->checkEnum($this->semValue, $stackPos - (8 - 3)); - }, 211 => function ($stackPos) { - $this->semValue = null; }, 212 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 2)]; - }, 213 => function ($stackPos) { $this->semValue = null; - }, 214 => function ($stackPos) { + }, 213 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (2 - 2)]; + }, 214 => function ($stackPos) { + $this->semValue = null; }, 215 => function ($stackPos) { - $this->semValue = 0; + $this->semValue = $this->semStack[$stackPos - (2 - 2)]; }, 216 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = 0; }, 217 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; }, 218 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + }, 219 => function ($stackPos) { $this->checkClassModifier($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $stackPos - (2 - 2)); $this->semValue = $this->semStack[$stackPos - (2 - 1)] | $this->semStack[$stackPos - (2 - 2)]; - }, 219 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 220 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_FINAL; + $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; }, 221 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_READONLY; + $this->semValue = Stmt\Class_::MODIFIER_FINAL; }, 222 => function ($stackPos) { - $this->semValue = null; + $this->semValue = Stmt\Class_::MODIFIER_READONLY; }, 223 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 2)]; + $this->semValue = null; }, 224 => function ($stackPos) { - $this->semValue = array(); - }, 225 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (2 - 2)]; - }, 226 => function ($stackPos) { + }, 225 => function ($stackPos) { $this->semValue = array(); - }, 227 => function ($stackPos) { + }, 226 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (2 - 2)]; + }, 227 => function ($stackPos) { + $this->semValue = array(); }, 228 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = $this->semStack[$stackPos - (2 - 2)]; }, 229 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; }, 230 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + }, 231 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 231 => function ($stackPos) { - $this->semValue = \is_array($this->semStack[$stackPos - (1 - 1)]) ? $this->semStack[$stackPos - (1 - 1)] : array($this->semStack[$stackPos - (1 - 1)]); }, 232 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (4 - 2)]; - }, 233 => function ($stackPos) { $this->semValue = \is_array($this->semStack[$stackPos - (1 - 1)]) ? $this->semStack[$stackPos - (1 - 1)] : array($this->semStack[$stackPos - (1 - 1)]); - }, 234 => function ($stackPos) { + }, 233 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (4 - 2)]; - }, 235 => function ($stackPos) { + }, 234 => function ($stackPos) { $this->semValue = \is_array($this->semStack[$stackPos - (1 - 1)]) ? $this->semStack[$stackPos - (1 - 1)] : array($this->semStack[$stackPos - (1 - 1)]); + }, 235 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (4 - 2)]; }, 236 => function ($stackPos) { - $this->semValue = null; + $this->semValue = \is_array($this->semStack[$stackPos - (1 - 1)]) ? $this->semStack[$stackPos - (1 - 1)] : array($this->semStack[$stackPos - (1 - 1)]); }, 237 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (4 - 2)]; + $this->semValue = null; }, 238 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = $this->semStack[$stackPos - (4 - 2)]; }, 239 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; }, 240 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + }, 241 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 241 => function ($stackPos) { - $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 242 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = new Stmt\DeclareDeclare($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 243 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (4 - 3)]; + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 244 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (4 - 2)]; + $this->semValue = $this->semStack[$stackPos - (4 - 3)]; }, 245 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (5 - 3)]; + $this->semValue = $this->semStack[$stackPos - (4 - 2)]; }, 246 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos - (5 - 3)]; }, 247 => function ($stackPos) { + $this->semValue = array(); + }, 248 => function ($stackPos) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 248 => function ($stackPos) { - $this->semValue = new Stmt\Case_($this->semStack[$stackPos - (4 - 2)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 249 => function ($stackPos) { - $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\Case_($this->semStack[$stackPos - (4 - 2)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 250 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; + $this->semValue = new Stmt\Case_(null, $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 251 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; }, 252 => function ($stackPos) { - $this->semValue = new Expr\Match_($this->semStack[$stackPos - (7 - 3)], $this->semStack[$stackPos - (7 - 6)], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos]; }, 253 => function ($stackPos) { - $this->semValue = []; + $this->semValue = new Expr\Match_($this->semStack[$stackPos - (7 - 3)], $this->semStack[$stackPos - (7 - 6)], $this->startAttributeStack[$stackPos - (7 - 1)] + $this->endAttributes); }, 254 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = []; }, 255 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; }, 256 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + }, 257 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 257 => function ($stackPos) { - $this->semValue = new Node\MatchArm($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 258 => function ($stackPos) { - $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Node\MatchArm($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 259 => function ($stackPos) { - $this->semValue = \is_array($this->semStack[$stackPos - (1 - 1)]) ? $this->semStack[$stackPos - (1 - 1)] : array($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = new Node\MatchArm(null, $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 260 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (4 - 2)]; + $this->semValue = \is_array($this->semStack[$stackPos - (1 - 1)]) ? $this->semStack[$stackPos - (1 - 1)] : array($this->semStack[$stackPos - (1 - 1)]); }, 261 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos - (4 - 2)]; }, 262 => function ($stackPos) { + $this->semValue = array(); + }, 263 => function ($stackPos) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 263 => function ($stackPos) { - $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos - (5 - 3)], \is_array($this->semStack[$stackPos - (5 - 5)]) ? $this->semStack[$stackPos - (5 - 5)] : array($this->semStack[$stackPos - (5 - 5)]), $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); }, 264 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos - (5 - 3)], \is_array($this->semStack[$stackPos - (5 - 5)]) ? $this->semStack[$stackPos - (5 - 5)] : array($this->semStack[$stackPos - (5 - 5)]), $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); }, 265 => function ($stackPos) { + $this->semValue = array(); + }, 266 => function ($stackPos) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 266 => function ($stackPos) { + }, 267 => function ($stackPos) { $this->semValue = new Stmt\ElseIf_($this->semStack[$stackPos - (6 - 3)], $this->semStack[$stackPos - (6 - 6)], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); - }, 267 => function ($stackPos) { - $this->semValue = null; }, 268 => function ($stackPos) { - $this->semValue = new Stmt\Else_(\is_array($this->semStack[$stackPos - (2 - 2)]) ? $this->semStack[$stackPos - (2 - 2)] : array($this->semStack[$stackPos - (2 - 2)]), $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 269 => function ($stackPos) { $this->semValue = null; + }, 269 => function ($stackPos) { + $this->semValue = new Stmt\Else_(\is_array($this->semStack[$stackPos - (2 - 2)]) ? $this->semStack[$stackPos - (2 - 2)] : array($this->semStack[$stackPos - (2 - 2)]), $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 270 => function ($stackPos) { + $this->semValue = null; + }, 271 => function ($stackPos) { $this->semValue = new Stmt\Else_($this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); $this->fixupAlternativeElse($this->semValue); - }, 271 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)], \false); }, 272 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (2 - 2)], \true); - }, 273 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (1 - 1)], \false); + }, 273 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (2 - 2)], \true); }, 274 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (1 - 1)], \false); }, 275 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = array($this->semStack[$stackPos - (1 - 1)], \false); }, 276 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; }, 277 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = array(); }, 278 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + }, 279 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 279 => function ($stackPos) { - $this->semValue = 0; }, 280 => function ($stackPos) { + $this->semValue = 0; + }, 281 => function ($stackPos) { $this->checkModifier($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $stackPos - (2 - 2)); $this->semValue = $this->semStack[$stackPos - (2 - 1)] | $this->semStack[$stackPos - (2 - 2)]; - }, 281 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 282 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; + $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; }, 283 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; + $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; }, 284 => function ($stackPos) { - $this->semValue = Stmt\Class_::MODIFIER_READONLY; + $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; }, 285 => function ($stackPos) { + $this->semValue = Stmt\Class_::MODIFIER_READONLY; + }, 286 => function ($stackPos) { $this->semValue = new Node\Param($this->semStack[$stackPos - (6 - 6)], null, $this->semStack[$stackPos - (6 - 3)], $this->semStack[$stackPos - (6 - 4)], $this->semStack[$stackPos - (6 - 5)], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (6 - 2)], $this->semStack[$stackPos - (6 - 1)]); $this->checkParam($this->semValue); - }, 286 => function ($stackPos) { + }, 287 => function ($stackPos) { $this->semValue = new Node\Param($this->semStack[$stackPos - (8 - 6)], $this->semStack[$stackPos - (8 - 8)], $this->semStack[$stackPos - (8 - 3)], $this->semStack[$stackPos - (8 - 4)], $this->semStack[$stackPos - (8 - 5)], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (8 - 2)], $this->semStack[$stackPos - (8 - 1)]); $this->checkParam($this->semValue); - }, 287 => function ($stackPos) { - $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes), null, $this->semStack[$stackPos - (6 - 3)], $this->semStack[$stackPos - (6 - 4)], $this->semStack[$stackPos - (6 - 5)], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (6 - 2)], $this->semStack[$stackPos - (6 - 1)]); }, 288 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Node\Param(new Expr\Error($this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes), null, $this->semStack[$stackPos - (6 - 3)], $this->semStack[$stackPos - (6 - 4)], $this->semStack[$stackPos - (6 - 5)], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (6 - 2)], $this->semStack[$stackPos - (6 - 1)]); }, 289 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 290 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = new Node\NullableType($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 291 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Node\UnionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 292 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 293 => function ($stackPos) { - $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 294 => function ($stackPos) { - $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = new Node\Name('static', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 295 => function ($stackPos) { - $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = $this->handleBuiltinTypes($this->semStack[$stackPos - (1 - 1)]); }, 296 => function ($stackPos) { - $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = new Node\Identifier('array', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 297 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Node\Identifier('callable', $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 298 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 299 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 300 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); + }, 301 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 301 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 302 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 303 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 304 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); + }, 305 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 305 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); }, 306 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); + }, 307 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 307 => function ($stackPos) { - $this->semValue = new Node\IntersectionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 308 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 309 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); + }, 310 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 310 => function ($stackPos) { - $this->semValue = new Node\IntersectionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 311 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Node\IntersectionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 312 => function ($stackPos) { - $this->semValue = new Node\NullableType($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 313 => function ($stackPos) { - $this->semValue = new Node\UnionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = new Node\NullableType($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 314 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Node\UnionType($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 315 => function ($stackPos) { - $this->semValue = null; - }, 316 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 317 => function ($stackPos) { + }, 316 => function ($stackPos) { $this->semValue = null; + }, 317 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 318 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 2)]; - }, 319 => function ($stackPos) { $this->semValue = null; + }, 319 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (2 - 2)]; }, 320 => function ($stackPos) { - $this->semValue = array(); + $this->semValue = null; }, 321 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (4 - 2)]; + $this->semValue = array(); }, 322 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (3 - 2)]); + $this->semValue = $this->semStack[$stackPos - (4 - 2)]; }, 323 => function ($stackPos) { - $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos - (3 - 2)]); }, 324 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + $this->semValue = new Node\VariadicPlaceholder($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 325 => function ($stackPos) { + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); + }, 326 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 326 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos - (1 - 1)], \false, \false, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 327 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos - (2 - 2)], \true, \false, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Node\Arg($this->semStack[$stackPos - (1 - 1)], \false, \false, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 328 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos - (2 - 2)], \false, \true, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Node\Arg($this->semStack[$stackPos - (2 - 2)], \true, \false, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 329 => function ($stackPos) { - $this->semValue = new Node\Arg($this->semStack[$stackPos - (3 - 3)], \false, \false, $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (3 - 1)]); + $this->semValue = new Node\Arg($this->semStack[$stackPos - (2 - 2)], \false, \true, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 330 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = new Node\Arg($this->semStack[$stackPos - (3 - 3)], \false, \false, $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (3 - 1)]); }, 331 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + }, 332 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 332 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); }, 333 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); }, 334 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 335 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + }, 336 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 336 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); }, 337 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos - (1 - 1)], null, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); }, 338 => function ($stackPos) { - $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos - (1 - 1)], null, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 339 => function ($stackPos) { + $this->semValue = new Stmt\StaticVar($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + }, 340 => function ($stackPos) { if ($this->semStack[$stackPos - (2 - 2)] !== null) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; } - }, 340 => function ($stackPos) { - $this->semValue = array(); }, 341 => function ($stackPos) { + $this->semValue = array(); + }, 342 => function ($stackPos) { $startAttributes = $this->lookaheadStartAttributes; if (isset($startAttributes['comments'])) { $nop = new Stmt\Nop($this->createCommentNopAttributes($startAttributes['comments'])); @@ -844,405 +846,410 @@ protected function initReduceCallbacks() $this->semStack[$stackPos - (1 - 1)][] = $nop; } $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 342 => function ($stackPos) { + }, 343 => function ($stackPos) { $this->semValue = new Stmt\Property($this->semStack[$stackPos - (5 - 2)], $this->semStack[$stackPos - (5 - 4)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 1)]); $this->checkProperty($this->semValue, $stackPos - (5 - 2)); - }, 343 => function ($stackPos) { + }, 344 => function ($stackPos) { $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos - (5 - 4)], $this->semStack[$stackPos - (5 - 2)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (5 - 1)]); $this->checkClassConst($this->semValue, $stackPos - (5 - 2)); - }, 344 => function ($stackPos) { + }, 345 => function ($stackPos) { + $this->semValue = new Stmt\ClassConst($this->semStack[$stackPos - (6 - 5)], $this->semStack[$stackPos - (6 - 2)], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes, $this->semStack[$stackPos - (6 - 1)], $this->semStack[$stackPos - (6 - 4)]); + $this->checkClassConst($this->semValue, $stackPos - (6 - 2)); + }, 346 => function ($stackPos) { $this->semValue = new Stmt\ClassMethod($this->semStack[$stackPos - (10 - 5)], ['type' => $this->semStack[$stackPos - (10 - 2)], 'byRef' => $this->semStack[$stackPos - (10 - 4)], 'params' => $this->semStack[$stackPos - (10 - 7)], 'returnType' => $this->semStack[$stackPos - (10 - 9)], 'stmts' => $this->semStack[$stackPos - (10 - 10)], 'attrGroups' => $this->semStack[$stackPos - (10 - 1)]], $this->startAttributeStack[$stackPos - (10 - 1)] + $this->endAttributes); $this->checkClassMethod($this->semValue, $stackPos - (10 - 2)); - }, 345 => function ($stackPos) { + }, 347 => function ($stackPos) { $this->semValue = new Stmt\TraitUse($this->semStack[$stackPos - (3 - 2)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 346 => function ($stackPos) { + }, 348 => function ($stackPos) { $this->semValue = new Stmt\EnumCase($this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 4)], $this->semStack[$stackPos - (5 - 1)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); - }, 347 => function ($stackPos) { + }, 349 => function ($stackPos) { $this->semValue = null; /* will be skipped */ - }, 348 => function ($stackPos) { - $this->semValue = array(); - }, 349 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 350 => function ($stackPos) { $this->semValue = array(); }, 351 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + }, 352 => function ($stackPos) { + $this->semValue = array(); + }, 353 => function ($stackPos) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 352 => function ($stackPos) { + }, 354 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Precedence($this->semStack[$stackPos - (4 - 1)][0], $this->semStack[$stackPos - (4 - 1)][1], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 353 => function ($stackPos) { + }, 355 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos - (5 - 1)][0], $this->semStack[$stackPos - (5 - 1)][1], $this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 4)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); - }, 354 => function ($stackPos) { + }, 356 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos - (4 - 1)][0], $this->semStack[$stackPos - (4 - 1)][1], $this->semStack[$stackPos - (4 - 3)], null, $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 355 => function ($stackPos) { + }, 357 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos - (4 - 1)][0], $this->semStack[$stackPos - (4 - 1)][1], null, $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 356 => function ($stackPos) { + }, 358 => function ($stackPos) { $this->semValue = new Stmt\TraitUseAdaptation\Alias($this->semStack[$stackPos - (4 - 1)][0], $this->semStack[$stackPos - (4 - 1)][1], null, $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 357 => function ($stackPos) { + }, 359 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)]); - }, 358 => function ($stackPos) { + }, 360 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 359 => function ($stackPos) { + }, 361 => function ($stackPos) { $this->semValue = array(null, $this->semStack[$stackPos - (1 - 1)]); - }, 360 => function ($stackPos) { + }, 362 => function ($stackPos) { $this->semValue = null; - }, 361 => function ($stackPos) { + }, 363 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 362 => function ($stackPos) { + }, 364 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 363 => function ($stackPos) { + }, 365 => function ($stackPos) { $this->semValue = 0; - }, 364 => function ($stackPos) { + }, 366 => function ($stackPos) { $this->semValue = 0; - }, 365 => function ($stackPos) { + }, 367 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 366 => function ($stackPos) { + }, 368 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 367 => function ($stackPos) { + }, 369 => function ($stackPos) { $this->checkModifier($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $stackPos - (2 - 2)); $this->semValue = $this->semStack[$stackPos - (2 - 1)] | $this->semStack[$stackPos - (2 - 2)]; - }, 368 => function ($stackPos) { + }, 370 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PUBLIC; - }, 369 => function ($stackPos) { + }, 371 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PROTECTED; - }, 370 => function ($stackPos) { + }, 372 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_PRIVATE; - }, 371 => function ($stackPos) { + }, 373 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_STATIC; - }, 372 => function ($stackPos) { + }, 374 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_ABSTRACT; - }, 373 => function ($stackPos) { + }, 375 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_FINAL; - }, 374 => function ($stackPos) { + }, 376 => function ($stackPos) { $this->semValue = Stmt\Class_::MODIFIER_READONLY; - }, 375 => function ($stackPos) { + }, 377 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 376 => function ($stackPos) { + }, 378 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); - }, 377 => function ($stackPos) { + }, 379 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 378 => function ($stackPos) { + }, 380 => function ($stackPos) { $this->semValue = new Node\VarLikeIdentifier(\substr($this->semStack[$stackPos - (1 - 1)], 1), $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 379 => function ($stackPos) { + }, 381 => function ($stackPos) { $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos - (1 - 1)], null, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 380 => function ($stackPos) { + }, 382 => function ($stackPos) { $this->semValue = new Stmt\PropertyProperty($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 381 => function ($stackPos) { + }, 383 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 382 => function ($stackPos) { + }, 384 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 383 => function ($stackPos) { + }, 385 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 384 => function ($stackPos) { - $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); - }, 385 => function ($stackPos) { - $this->semValue = array(); }, 386 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); }, 387 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = array(); }, 388 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 389 => function ($stackPos) { - $this->semValue = new Expr\Assign($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 390 => function ($stackPos) { $this->semValue = new Expr\Assign($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 391 => function ($stackPos) { - $this->semValue = new Expr\AssignRef($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Assign($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 392 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Expr\Assign($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 393 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Expr\AssignRef($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 394 => function ($stackPos) { - $this->semValue = new Expr\Clone_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 395 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 396 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Clone_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 397 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Plus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 398 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Minus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 399 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mul($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 400 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Div($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 401 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Concat($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 402 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Mod($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 403 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 404 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 405 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\BitwiseXor($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 406 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftLeft($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 407 => function ($stackPos) { - $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\ShiftRight($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 408 => function ($stackPos) { - $this->semValue = new Expr\PostInc($this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Pow($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 409 => function ($stackPos) { - $this->semValue = new Expr\PreInc($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\AssignOp\Coalesce($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 410 => function ($stackPos) { - $this->semValue = new Expr\PostDec($this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\PostInc($this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 411 => function ($stackPos) { - $this->semValue = new Expr\PreDec($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\PreInc($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 412 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\PostDec($this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 413 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\PreDec($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 414 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 415 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BooleanAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 416 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 417 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 418 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\LogicalXor($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 419 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseOr($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 420 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 421 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseAnd($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 422 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\BitwiseXor($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 423 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Concat($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 424 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Plus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 425 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Minus($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 426 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mul($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 427 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Div($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 428 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Mod($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 429 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftLeft($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 430 => function ($stackPos) { - $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\ShiftRight($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 431 => function ($stackPos) { - $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Pow($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 432 => function ($stackPos) { - $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryPlus($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 433 => function ($stackPos) { - $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\UnaryMinus($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 434 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BooleanNot($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 435 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BitwiseNot($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 436 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Identical($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 437 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotIdentical($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 438 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Equal($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 439 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\NotEqual($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 440 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Spaceship($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 441 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Smaller($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 442 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\SmallerOrEqual($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 443 => function ($stackPos) { - $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Greater($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 444 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = new Expr\BinaryOp\GreaterOrEqual($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 445 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos - (5 - 1)], $this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Instanceof_($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 446 => function ($stackPos) { - $this->semValue = new Expr\Ternary($this->semStack[$stackPos - (4 - 1)], null, $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 447 => function ($stackPos) { - $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos - (5 - 1)], $this->semStack[$stackPos - (5 - 3)], $this->semStack[$stackPos - (5 - 5)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); }, 448 => function ($stackPos) { - $this->semValue = new Expr\Isset_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Ternary($this->semStack[$stackPos - (4 - 1)], null, $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 449 => function ($stackPos) { - $this->semValue = new Expr\Empty_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\BinaryOp\Coalesce($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 450 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Isset_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 451 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Empty_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 452 => function ($stackPos) { - $this->semValue = new Expr\Eval_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_INCLUDE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 453 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_INCLUDE_ONCE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 454 => function ($stackPos) { - $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Eval_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 455 => function ($stackPos) { - $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_REQUIRE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 456 => function ($stackPos) { + $this->semValue = new Expr\Include_($this->semStack[$stackPos - (2 - 2)], Expr\Include_::TYPE_REQUIRE_ONCE, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + }, 457 => function ($stackPos) { + $this->semValue = new Expr\Cast\Int_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + }, 458 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes; $attrs['kind'] = $this->getFloatCastKind($this->semStack[$stackPos - (2 - 1)]); $this->semValue = new Expr\Cast\Double($this->semStack[$stackPos - (2 - 2)], $attrs); - }, 457 => function ($stackPos) { + }, 459 => function ($stackPos) { $this->semValue = new Expr\Cast\String_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 458 => function ($stackPos) { + }, 460 => function ($stackPos) { $this->semValue = new Expr\Cast\Array_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 459 => function ($stackPos) { + }, 461 => function ($stackPos) { $this->semValue = new Expr\Cast\Object_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 460 => function ($stackPos) { + }, 462 => function ($stackPos) { $this->semValue = new Expr\Cast\Bool_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 461 => function ($stackPos) { + }, 463 => function ($stackPos) { $this->semValue = new Expr\Cast\Unset_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 462 => function ($stackPos) { + }, 464 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes; $attrs['kind'] = \strtolower($this->semStack[$stackPos - (2 - 1)]) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; $this->semValue = new Expr\Exit_($this->semStack[$stackPos - (2 - 2)], $attrs); - }, 463 => function ($stackPos) { + }, 465 => function ($stackPos) { $this->semValue = new Expr\ErrorSuppress($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 464 => function ($stackPos) { + }, 466 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 465 => function ($stackPos) { + }, 467 => function ($stackPos) { $this->semValue = new Expr\ShellExec($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 466 => function ($stackPos) { + }, 468 => function ($stackPos) { $this->semValue = new Expr\Print_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 467 => function ($stackPos) { + }, 469 => function ($stackPos) { $this->semValue = new Expr\Yield_(null, null, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 468 => function ($stackPos) { + }, 470 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos - (2 - 2)], null, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 469 => function ($stackPos) { + }, 471 => function ($stackPos) { $this->semValue = new Expr\Yield_($this->semStack[$stackPos - (4 - 4)], $this->semStack[$stackPos - (4 - 2)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 470 => function ($stackPos) { + }, 472 => function ($stackPos) { $this->semValue = new Expr\YieldFrom($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 471 => function ($stackPos) { + }, 473 => function ($stackPos) { $this->semValue = new Expr\Throw_($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 472 => function ($stackPos) { + }, 474 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => \false, 'byRef' => $this->semStack[$stackPos - (8 - 2)], 'params' => $this->semStack[$stackPos - (8 - 4)], 'returnType' => $this->semStack[$stackPos - (8 - 6)], 'expr' => $this->semStack[$stackPos - (8 - 8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); - }, 473 => function ($stackPos) { + }, 475 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => \true, 'byRef' => $this->semStack[$stackPos - (9 - 3)], 'params' => $this->semStack[$stackPos - (9 - 5)], 'returnType' => $this->semStack[$stackPos - (9 - 7)], 'expr' => $this->semStack[$stackPos - (9 - 9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); - }, 474 => function ($stackPos) { + }, 476 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => \false, 'byRef' => $this->semStack[$stackPos - (8 - 2)], 'params' => $this->semStack[$stackPos - (8 - 4)], 'uses' => $this->semStack[$stackPos - (8 - 6)], 'returnType' => $this->semStack[$stackPos - (8 - 7)], 'stmts' => $this->semStack[$stackPos - (8 - 8)], 'attrGroups' => []], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes); - }, 475 => function ($stackPos) { + }, 477 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => \true, 'byRef' => $this->semStack[$stackPos - (9 - 3)], 'params' => $this->semStack[$stackPos - (9 - 5)], 'uses' => $this->semStack[$stackPos - (9 - 7)], 'returnType' => $this->semStack[$stackPos - (9 - 8)], 'stmts' => $this->semStack[$stackPos - (9 - 9)], 'attrGroups' => []], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); - }, 476 => function ($stackPos) { + }, 478 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => \false, 'byRef' => $this->semStack[$stackPos - (9 - 3)], 'params' => $this->semStack[$stackPos - (9 - 5)], 'returnType' => $this->semStack[$stackPos - (9 - 7)], 'expr' => $this->semStack[$stackPos - (9 - 9)], 'attrGroups' => $this->semStack[$stackPos - (9 - 1)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); - }, 477 => function ($stackPos) { + }, 479 => function ($stackPos) { $this->semValue = new Expr\ArrowFunction(['static' => \true, 'byRef' => $this->semStack[$stackPos - (10 - 4)], 'params' => $this->semStack[$stackPos - (10 - 6)], 'returnType' => $this->semStack[$stackPos - (10 - 8)], 'expr' => $this->semStack[$stackPos - (10 - 10)], 'attrGroups' => $this->semStack[$stackPos - (10 - 1)]], $this->startAttributeStack[$stackPos - (10 - 1)] + $this->endAttributes); - }, 478 => function ($stackPos) { + }, 480 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => \false, 'byRef' => $this->semStack[$stackPos - (9 - 3)], 'params' => $this->semStack[$stackPos - (9 - 5)], 'uses' => $this->semStack[$stackPos - (9 - 7)], 'returnType' => $this->semStack[$stackPos - (9 - 8)], 'stmts' => $this->semStack[$stackPos - (9 - 9)], 'attrGroups' => $this->semStack[$stackPos - (9 - 1)]], $this->startAttributeStack[$stackPos - (9 - 1)] + $this->endAttributes); - }, 479 => function ($stackPos) { + }, 481 => function ($stackPos) { $this->semValue = new Expr\Closure(['static' => \true, 'byRef' => $this->semStack[$stackPos - (10 - 4)], 'params' => $this->semStack[$stackPos - (10 - 6)], 'uses' => $this->semStack[$stackPos - (10 - 8)], 'returnType' => $this->semStack[$stackPos - (10 - 9)], 'stmts' => $this->semStack[$stackPos - (10 - 10)], 'attrGroups' => $this->semStack[$stackPos - (10 - 1)]], $this->startAttributeStack[$stackPos - (10 - 1)] + $this->endAttributes); - }, 480 => function ($stackPos) { - $this->semValue = array(new Stmt\Class_(null, ['type' => 0, 'extends' => $this->semStack[$stackPos - (8 - 4)], 'implements' => $this->semStack[$stackPos - (8 - 5)], 'stmts' => $this->semStack[$stackPos - (8 - 7)], 'attrGroups' => $this->semStack[$stackPos - (8 - 1)]], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes), $this->semStack[$stackPos - (8 - 3)]); + }, 482 => function ($stackPos) { + $this->semValue = array(new Stmt\Class_(null, ['type' => $this->semStack[$stackPos - (8 - 2)], 'extends' => $this->semStack[$stackPos - (8 - 4)], 'implements' => $this->semStack[$stackPos - (8 - 5)], 'stmts' => $this->semStack[$stackPos - (8 - 7)], 'attrGroups' => $this->semStack[$stackPos - (8 - 1)]], $this->startAttributeStack[$stackPos - (8 - 1)] + $this->endAttributes), $this->semStack[$stackPos - (8 - 3)]); $this->checkClass($this->semValue[0], -1); - }, 481 => function ($stackPos) { + }, 483 => function ($stackPos) { $this->semValue = new Expr\New_($this->semStack[$stackPos - (3 - 2)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 482 => function ($stackPos) { + }, 484 => function ($stackPos) { list($class, $ctorArgs) = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = new Expr\New_($class, $ctorArgs, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 483 => function ($stackPos) { + }, 485 => function ($stackPos) { $this->semValue = array(); - }, 484 => function ($stackPos) { + }, 486 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (4 - 3)]; - }, 485 => function ($stackPos) { + }, 487 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 486 => function ($stackPos) { + }, 488 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); - }, 487 => function ($stackPos) { + }, 489 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 488 => function ($stackPos) { - $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos - (2 - 2)], $this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 489 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 490 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\ClosureUse($this->semStack[$stackPos - (2 - 2)], $this->semStack[$stackPos - (2 - 1)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 491 => function ($stackPos) { - $this->semValue = new Expr\FuncCall($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 492 => function ($stackPos) { $this->semValue = new Expr\FuncCall($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 493 => function ($stackPos) { - $this->semValue = new Expr\StaticCall($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 494 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = new Expr\FuncCall($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 495 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Expr\StaticCall($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 496 => function ($stackPos) { $this->semValue = new Name($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 497 => function ($stackPos) { - $this->semValue = new Name($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 498 => function ($stackPos) { - $this->semValue = new Name\FullyQualified(\substr($this->semStack[$stackPos - (1 - 1)], 1), $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 499 => function ($stackPos) { - $this->semValue = new Name\Relative(\substr($this->semStack[$stackPos - (1 - 1)], 10), $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); + $this->semValue = new Name($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 500 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Name\FullyQualified(\substr($this->semStack[$stackPos - (1 - 1)], 1), $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 501 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Name\Relative(\substr($this->semStack[$stackPos - (1 - 1)], 10), $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 502 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 503 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + }, 504 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + }, 505 => function ($stackPos) { $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); $this->errorState = 2; - }, 504 => function ($stackPos) { + }, 506 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 505 => function ($stackPos) { + }, 507 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 506 => function ($stackPos) { + }, 508 => function ($stackPos) { $this->semValue = null; - }, 507 => function ($stackPos) { + }, 509 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (3 - 2)]; - }, 508 => function ($stackPos) { + }, 510 => function ($stackPos) { $this->semValue = array(); - }, 509 => function ($stackPos) { + }, 511 => function ($stackPos) { $this->semValue = array(new Scalar\EncapsedStringPart(Scalar\String_::parseEscapeSequences($this->semStack[$stackPos - (1 - 1)], '`'), $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes)); - }, 510 => function ($stackPos) { + }, 512 => function ($stackPos) { foreach ($this->semStack[$stackPos - (1 - 1)] as $s) { if ($s instanceof Node\Scalar\EncapsedStringPart) { $s->value = Node\Scalar\String_::parseEscapeSequences($s->value, '`', \true); } } $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 511 => function ($stackPos) { + }, 513 => function ($stackPos) { $this->semValue = array(); - }, 512 => function ($stackPos) { + }, 514 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 513 => function ($stackPos) { + }, 515 => function ($stackPos) { $this->semValue = new Expr\ConstFetch($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 514 => function ($stackPos) { + }, 516 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Line($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 515 => function ($stackPos) { + }, 517 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\File($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 516 => function ($stackPos) { + }, 518 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Dir($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 517 => function ($stackPos) { + }, 519 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Class_($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 518 => function ($stackPos) { + }, 520 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Trait_($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 519 => function ($stackPos) { + }, 521 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Method($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 520 => function ($stackPos) { + }, 522 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Function_($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 521 => function ($stackPos) { + }, 523 => function ($stackPos) { $this->semValue = new Scalar\MagicConst\Namespace_($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 522 => function ($stackPos) { + }, 524 => function ($stackPos) { $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 523 => function ($stackPos) { + }, 525 => function ($stackPos) { + $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos - (5 - 1)], $this->semStack[$stackPos - (5 - 4)], $this->startAttributeStack[$stackPos - (5 - 1)] + $this->endAttributes); + }, 526 => function ($stackPos) { $this->semValue = new Expr\ClassConstFetch($this->semStack[$stackPos - (3 - 1)], new Expr\Error($this->startAttributeStack[$stackPos - (3 - 3)] + $this->endAttributeStack[$stackPos - (3 - 3)]), $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); $this->errorState = 2; - }, 524 => function ($stackPos) { + }, 527 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_SHORT; $this->semValue = new Expr\Array_($this->semStack[$stackPos - (3 - 2)], $attrs); - }, 525 => function ($stackPos) { + }, 528 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes; $attrs['kind'] = Expr\Array_::KIND_LONG; $this->semValue = new Expr\Array_($this->semStack[$stackPos - (4 - 3)], $attrs); - }, 526 => function ($stackPos) { + }, 529 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 527 => function ($stackPos) { + }, 530 => function ($stackPos) { $this->semValue = Scalar\String_::fromString($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 528 => function ($stackPos) { + }, 531 => function ($stackPos) { $attrs = $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes; $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; foreach ($this->semStack[$stackPos - (3 - 2)] as $s) { @@ -1251,102 +1258,96 @@ protected function initReduceCallbacks() } } $this->semValue = new Scalar\Encapsed($this->semStack[$stackPos - (3 - 2)], $attrs); - }, 529 => function ($stackPos) { - $this->semValue = $this->parseLNumber($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 530 => function ($stackPos) { - $this->semValue = Scalar\DNumber::fromString($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 531 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 532 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = $this->parseLNumber($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 533 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = Scalar\DNumber::fromString($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); }, 534 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 2)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes, $this->startAttributeStack[$stackPos - (3 - 3)] + $this->endAttributeStack[$stackPos - (3 - 3)], \true); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 535 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos - (2 - 1)], '', $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes, $this->startAttributeStack[$stackPos - (2 - 2)] + $this->endAttributeStack[$stackPos - (2 - 2)], \true); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 536 => function ($stackPos) { - $this->semValue = $this->parseDocString($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 2)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes, $this->startAttributeStack[$stackPos - (3 - 3)] + $this->endAttributeStack[$stackPos - (3 - 3)], \true); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 537 => function ($stackPos) { - $this->semValue = null; + $this->semValue = $this->parseDocString($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 2)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes, $this->startAttributeStack[$stackPos - (3 - 3)] + $this->endAttributeStack[$stackPos - (3 - 3)], \true); }, 538 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos - (2 - 1)], '', $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes, $this->startAttributeStack[$stackPos - (2 - 2)] + $this->endAttributeStack[$stackPos - (2 - 2)], \true); }, 539 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = $this->parseDocString($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 2)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes, $this->startAttributeStack[$stackPos - (3 - 3)] + $this->endAttributeStack[$stackPos - (3 - 3)], \true); }, 540 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = null; }, 541 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 542 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 543 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 544 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 545 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 546 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 547 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 548 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 549 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; }, 550 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 551 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 552 => function ($stackPos) { - $this->semValue = new Expr\MethodCall($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 553 => function ($stackPos) { - $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 554 => function ($stackPos) { - $this->semValue = null; - }, 555 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + }, 555 => function ($stackPos) { + $this->semValue = new Expr\MethodCall($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 556 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Expr\NullsafeMethodCall($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->semStack[$stackPos - (4 - 4)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 557 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = null; }, 558 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 559 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 560 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 561 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 562 => function ($stackPos) { - $this->semValue = new Expr\Variable($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 563 => function ($stackPos) { - $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes), $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - $this->errorState = 2; + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 564 => function ($stackPos) { - $var = $this->semStack[$stackPos - (1 - 1)]->name; - $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes) : $var; + $this->semValue = new Expr\Variable($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 565 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\Variable($this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); }, 566 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Expr\Variable(new Expr\Error($this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes), $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); + $this->errorState = 2; }, 567 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $var = $this->semStack[$stackPos - (1 - 1)]->name; + $this->semValue = \is_string($var) ? new Node\VarLikeIdentifier($var, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes) : $var; }, 568 => function ($stackPos) { - $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 569 => function ($stackPos) { - $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 570 => function ($stackPos) { - $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 571 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); }, 572 => function ($stackPos) { - $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); + $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 573 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 574 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 575 => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + $this->semValue = new Expr\StaticPropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); }, 576 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 577 => function ($stackPos) { @@ -1354,78 +1355,84 @@ protected function initReduceCallbacks() }, 578 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }, 579 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + }, 580 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (3 - 2)]; + }, 581 => function ($stackPos) { + $this->semValue = $this->semStack[$stackPos - (1 - 1)]; + }, 582 => function ($stackPos) { $this->semValue = new Expr\Error($this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); $this->errorState = 2; - }, 580 => function ($stackPos) { + }, 583 => function ($stackPos) { $this->semValue = new Expr\List_($this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 581 => function ($stackPos) { + }, 584 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; $end = \count($this->semValue) - 1; if ($this->semValue[$end] === null) { \array_pop($this->semValue); } - }, 582 => function ($stackPos) { + }, 585 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos]; - }, 583 => function ($stackPos) { + }, 586 => function ($stackPos) { /* do nothing -- prevent default action of $$=$this->semStack[$1]. See $551. */ - }, 584 => function ($stackPos) { + }, 587 => function ($stackPos) { $this->semStack[$stackPos - (3 - 1)][] = $this->semStack[$stackPos - (3 - 3)]; $this->semValue = $this->semStack[$stackPos - (3 - 1)]; - }, 585 => function ($stackPos) { + }, 588 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); - }, 586 => function ($stackPos) { + }, 589 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos - (1 - 1)], null, \false, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 587 => function ($stackPos) { + }, 590 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos - (2 - 2)], null, \true, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 588 => function ($stackPos) { + }, 591 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos - (1 - 1)], null, \false, $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 589 => function ($stackPos) { + }, 592 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos - (3 - 3)], $this->semStack[$stackPos - (3 - 1)], \false, $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 590 => function ($stackPos) { + }, 593 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos - (4 - 4)], $this->semStack[$stackPos - (4 - 1)], \true, $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 591 => function ($stackPos) { + }, 594 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos - (3 - 3)], $this->semStack[$stackPos - (3 - 1)], \false, $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 592 => function ($stackPos) { + }, 595 => function ($stackPos) { $this->semValue = new Expr\ArrayItem($this->semStack[$stackPos - (2 - 2)], null, \false, $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes, \true); - }, 593 => function ($stackPos) { + }, 596 => function ($stackPos) { $this->semValue = null; - }, 594 => function ($stackPos) { + }, 597 => function ($stackPos) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 595 => function ($stackPos) { + }, 598 => function ($stackPos) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; - }, 596 => function ($stackPos) { + }, 599 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (1 - 1)]); - }, 597 => function ($stackPos) { + }, 600 => function ($stackPos) { $this->semValue = array($this->semStack[$stackPos - (2 - 1)], $this->semStack[$stackPos - (2 - 2)]); - }, 598 => function ($stackPos) { + }, 601 => function ($stackPos) { $this->semValue = new Scalar\EncapsedStringPart($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 599 => function ($stackPos) { + }, 602 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 600 => function ($stackPos) { + }, 603 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; - }, 601 => function ($stackPos) { + }, 604 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (4 - 1)], $this->semStack[$stackPos - (4 - 3)], $this->startAttributeStack[$stackPos - (4 - 1)] + $this->endAttributes); - }, 602 => function ($stackPos) { + }, 605 => function ($stackPos) { $this->semValue = new Expr\PropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 603 => function ($stackPos) { + }, 606 => function ($stackPos) { $this->semValue = new Expr\NullsafePropertyFetch($this->semStack[$stackPos - (3 - 1)], $this->semStack[$stackPos - (3 - 3)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 604 => function ($stackPos) { + }, 607 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 605 => function ($stackPos) { + }, 608 => function ($stackPos) { $this->semValue = new Expr\Variable($this->semStack[$stackPos - (3 - 2)], $this->startAttributeStack[$stackPos - (3 - 1)] + $this->endAttributes); - }, 606 => function ($stackPos) { + }, 609 => function ($stackPos) { $this->semValue = new Expr\ArrayDimFetch($this->semStack[$stackPos - (6 - 2)], $this->semStack[$stackPos - (6 - 4)], $this->startAttributeStack[$stackPos - (6 - 1)] + $this->endAttributes); - }, 607 => function ($stackPos) { + }, 610 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (3 - 2)]; - }, 608 => function ($stackPos) { + }, 611 => function ($stackPos) { $this->semValue = new Scalar\String_($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 609 => function ($stackPos) { + }, 612 => function ($stackPos) { $this->semValue = $this->parseNumString($this->semStack[$stackPos - (1 - 1)], $this->startAttributeStack[$stackPos - (1 - 1)] + $this->endAttributes); - }, 610 => function ($stackPos) { + }, 613 => function ($stackPos) { $this->semValue = $this->parseNumString('-' . $this->semStack[$stackPos - (2 - 2)], $this->startAttributeStack[$stackPos - (2 - 1)] + $this->endAttributes); - }, 611 => function ($stackPos) { + }, 614 => function ($stackPos) { $this->semValue = $this->semStack[$stackPos - (1 - 1)]; }]; } diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php index 1da467c43..b42931af3 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php @@ -493,7 +493,7 @@ protected function pExpr_NullsafeMethodCall(Expr\NullsafeMethodCall $node) } protected function pExpr_StaticCall(Expr\StaticCall $node) { - return $this->pDereferenceLhs($node->class) . '::' . ($node->name instanceof Expr ? $node->name instanceof Expr\Variable ? $this->p($node->name) : '{' . $this->p($node->name) . '}' : $node->name) . '(' . $this->pMaybeMultiline($node->args) . ')'; + return $this->pStaticDereferenceLhs($node->class) . '::' . ($node->name instanceof Expr ? $node->name instanceof Expr\Variable ? $this->p($node->name) : '{' . $this->p($node->name) . '}' : $node->name) . '(' . $this->pMaybeMultiline($node->args) . ')'; } protected function pExpr_Empty(Expr\Empty_ $node) { @@ -552,7 +552,7 @@ protected function pExpr_ConstFetch(Expr\ConstFetch $node) } protected function pExpr_ClassConstFetch(Expr\ClassConstFetch $node) { - return $this->pDereferenceLhs($node->class) . '::' . $this->p($node->name); + return $this->pStaticDereferenceLhs($node->class) . '::' . $this->pObjectProperty($node->name); } protected function pExpr_PropertyFetch(Expr\PropertyFetch $node) { @@ -564,7 +564,7 @@ protected function pExpr_NullsafePropertyFetch(Expr\NullsafePropertyFetch $node) } protected function pExpr_StaticPropertyFetch(Expr\StaticPropertyFetch $node) { - return $this->pDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); + return $this->pStaticDereferenceLhs($node->class) . '::$' . $this->pObjectProperty($node->name); } protected function pExpr_ShellExec(Expr\ShellExec $node) { @@ -697,7 +697,7 @@ protected function pStmt_ClassMethod(Stmt\ClassMethod $node) } protected function pStmt_ClassConst(Stmt\ClassConst $node) { - return $this->pAttrGroups($node->attrGroups) . $this->pModifiers($node->flags) . 'const ' . $this->pCommaSeparated($node->consts) . ';'; + return $this->pAttrGroups($node->attrGroups) . $this->pModifiers($node->flags) . 'const ' . (null !== $node->type ? $this->p($node->type) . ' ' : '') . $this->pCommaSeparated($node->consts) . ';'; } protected function pStmt_Function(Stmt\Function_ $node) { @@ -911,6 +911,14 @@ protected function pDereferenceLhs(Node $node) return '(' . $this->p($node) . ')'; } } + protected function pStaticDereferenceLhs(Node $node) + { + if (!$this->staticDereferenceLhsRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } + } protected function pCallLhs(Node $node) { if (!$this->callLhsRequiresParens($node)) { @@ -919,10 +927,13 @@ protected function pCallLhs(Node $node) return '(' . $this->p($node) . ')'; } } - protected function pNewVariable(Node $node) + protected function pNewVariable(Node $node) : string { - // TODO: This is not fully accurate. - return $this->pDereferenceLhs($node); + if (!$this->newOperandRequiresParens($node)) { + return $this->p($node); + } else { + return '(' . $this->p($node) . ')'; + } } /** * @param Node[] $nodes diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php index 89152a257..14da496f8 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php @@ -28,6 +28,10 @@ abstract class PrettyPrinterAbstract // Name operand that may require ${} bracing const FIXUP_ENCAPSED = 6; // Encapsed string part + const FIXUP_NEW = 7; + // New/instanceof operand + const FIXUP_STATIC_DEREF_LHS = 8; + // LHS of static dereferencing operation protected $precedenceMap = [ // [precedence, associativity] // where for precedence -1 is %left, 0 is %nonassoc and 1 is %right @@ -869,6 +873,16 @@ protected function pFixup(int $fixup, \PhpParser\Node $subNode, $parentClass, in return '(' . $this->p($subNode) . ')'; } break; + case self::FIXUP_STATIC_DEREF_LHS: + if ($this->staticDereferenceLhsRequiresParens($subNode) && !$this->origTokens->haveParens($subStartPos, $subEndPos)) { + return '(' . $this->p($subNode) . ')'; + } + break; + case self::FIXUP_NEW: + if ($this->newOperandRequiresParens($subNode) && !$this->origTokens->haveParens($subStartPos, $subEndPos)) { + return '(' . $this->p($subNode) . ')'; + } + break; case self::FIXUP_BRACED_NAME: case self::FIXUP_VAR_BRACED_NAME: if ($subNode instanceof Expr && !$this->origTokens->haveBraces($subStartPos, $subEndPos)) { @@ -922,7 +936,7 @@ protected function callLhsRequiresParens(\PhpParser\Node $node) : bool return !($node instanceof \PhpParser\Node\Name || $node instanceof Expr\Variable || $node instanceof Expr\ArrayDimFetch || $node instanceof Expr\FuncCall || $node instanceof Expr\MethodCall || $node instanceof Expr\NullsafeMethodCall || $node instanceof Expr\StaticCall || $node instanceof Expr\Array_); } /** - * Determines whether the LHS of a dereferencing operation must be wrapped in parenthesis. + * Determines whether the LHS of an array/object operation must be wrapped in parentheses. * * @param Node $node LHS of dereferencing operation * @@ -930,7 +944,39 @@ protected function callLhsRequiresParens(\PhpParser\Node $node) : bool */ protected function dereferenceLhsRequiresParens(\PhpParser\Node $node) : bool { - return !($node instanceof Expr\Variable || $node instanceof \PhpParser\Node\Name || $node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || $node instanceof Expr\NullsafePropertyFetch || $node instanceof Expr\StaticPropertyFetch || $node instanceof Expr\FuncCall || $node instanceof Expr\MethodCall || $node instanceof Expr\NullsafeMethodCall || $node instanceof Expr\StaticCall || $node instanceof Expr\Array_ || $node instanceof Scalar\String_ || $node instanceof Expr\ConstFetch || $node instanceof Expr\ClassConstFetch); + // A constant can occur on the LHS of an array/object deref, but not a static deref. + return $this->staticDereferenceLhsRequiresParens($node) && !$node instanceof Expr\ConstFetch; + } + /** + * Determines whether the LHS of a static operation must be wrapped in parentheses. + * + * @param Node $node LHS of dereferencing operation + * + * @return bool Whether parentheses are required + */ + protected function staticDereferenceLhsRequiresParens(\PhpParser\Node $node) : bool + { + return !($node instanceof Expr\Variable || $node instanceof \PhpParser\Node\Name || $node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || $node instanceof Expr\NullsafePropertyFetch || $node instanceof Expr\StaticPropertyFetch || $node instanceof Expr\FuncCall || $node instanceof Expr\MethodCall || $node instanceof Expr\NullsafeMethodCall || $node instanceof Expr\StaticCall || $node instanceof Expr\Array_ || $node instanceof Scalar\String_ || $node instanceof Expr\ClassConstFetch); + } + /** + * Determines whether an expression used in "new" or "instanceof" requires parentheses. + * + * @param Node $node New or instanceof operand + * + * @return bool Whether parentheses are required + */ + protected function newOperandRequiresParens(\PhpParser\Node $node) : bool + { + if ($node instanceof \PhpParser\Node\Name || $node instanceof Expr\Variable) { + return \false; + } + if ($node instanceof Expr\ArrayDimFetch || $node instanceof Expr\PropertyFetch || $node instanceof Expr\NullsafePropertyFetch) { + return $this->newOperandRequiresParens($node->var); + } + if ($node instanceof Expr\StaticPropertyFetch) { + return $this->newOperandRequiresParens($node->class); + } + return \true; } /** * Print modifiers, including trailing whitespace. @@ -1021,26 +1067,7 @@ protected function initializeFixupMap() if ($this->fixupMap) { return; } - $this->fixupMap = [ - Expr\PreInc::class => ['var' => self::FIXUP_PREC_RIGHT], - Expr\PreDec::class => ['var' => self::FIXUP_PREC_RIGHT], - Expr\PostInc::class => ['var' => self::FIXUP_PREC_LEFT], - Expr\PostDec::class => ['var' => self::FIXUP_PREC_LEFT], - Expr\Instanceof_::class => ['expr' => self::FIXUP_PREC_LEFT, 'class' => self::FIXUP_PREC_RIGHT], - Expr\Ternary::class => ['cond' => self::FIXUP_PREC_LEFT, 'else' => self::FIXUP_PREC_RIGHT], - Expr\FuncCall::class => ['name' => self::FIXUP_CALL_LHS], - Expr\StaticCall::class => ['class' => self::FIXUP_DEREF_LHS], - Expr\ArrayDimFetch::class => ['var' => self::FIXUP_DEREF_LHS], - Expr\ClassConstFetch::class => ['var' => self::FIXUP_DEREF_LHS], - Expr\New_::class => ['class' => self::FIXUP_DEREF_LHS], - // TODO: FIXUP_NEW_VARIABLE - Expr\MethodCall::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], - Expr\NullsafeMethodCall::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], - Expr\StaticPropertyFetch::class => ['class' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_VAR_BRACED_NAME], - Expr\PropertyFetch::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], - Expr\NullsafePropertyFetch::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], - Scalar\Encapsed::class => ['parts' => self::FIXUP_ENCAPSED], - ]; + $this->fixupMap = [Expr\PreInc::class => ['var' => self::FIXUP_PREC_RIGHT], Expr\PreDec::class => ['var' => self::FIXUP_PREC_RIGHT], Expr\PostInc::class => ['var' => self::FIXUP_PREC_LEFT], Expr\PostDec::class => ['var' => self::FIXUP_PREC_LEFT], Expr\Instanceof_::class => ['expr' => self::FIXUP_PREC_LEFT, 'class' => self::FIXUP_NEW], Expr\Ternary::class => ['cond' => self::FIXUP_PREC_LEFT, 'else' => self::FIXUP_PREC_RIGHT], Expr\FuncCall::class => ['name' => self::FIXUP_CALL_LHS], Expr\StaticCall::class => ['class' => self::FIXUP_STATIC_DEREF_LHS], Expr\ArrayDimFetch::class => ['var' => self::FIXUP_DEREF_LHS], Expr\ClassConstFetch::class => ['class' => self::FIXUP_STATIC_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], Expr\New_::class => ['class' => self::FIXUP_NEW], Expr\MethodCall::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], Expr\NullsafeMethodCall::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], Expr\StaticPropertyFetch::class => ['class' => self::FIXUP_STATIC_DEREF_LHS, 'name' => self::FIXUP_VAR_BRACED_NAME], Expr\PropertyFetch::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], Expr\NullsafePropertyFetch::class => ['var' => self::FIXUP_DEREF_LHS, 'name' => self::FIXUP_BRACED_NAME], Scalar\Encapsed::class => ['parts' => self::FIXUP_ENCAPSED]]; $binaryOps = [BinaryOp\Pow::class, BinaryOp\Mul::class, BinaryOp\Div::class, BinaryOp\Mod::class, BinaryOp\Plus::class, BinaryOp\Minus::class, BinaryOp\Concat::class, BinaryOp\ShiftLeft::class, BinaryOp\ShiftRight::class, BinaryOp\Smaller::class, BinaryOp\SmallerOrEqual::class, BinaryOp\Greater::class, BinaryOp\GreaterOrEqual::class, BinaryOp\Equal::class, BinaryOp\NotEqual::class, BinaryOp\Identical::class, BinaryOp\NotIdentical::class, BinaryOp\Spaceship::class, BinaryOp\BitwiseAnd::class, BinaryOp\BitwiseXor::class, BinaryOp\BitwiseOr::class, BinaryOp\BooleanAnd::class, BinaryOp\BooleanOr::class, BinaryOp\Coalesce::class, BinaryOp\LogicalAnd::class, BinaryOp\LogicalXor::class, BinaryOp\LogicalOr::class]; foreach ($binaryOps as $binaryOp) { $this->fixupMap[$binaryOp] = ['left' => self::FIXUP_PREC_LEFT, 'right' => self::FIXUP_PREC_RIGHT]; @@ -1071,7 +1098,7 @@ protected function initializeRemovalMap() $stripDoubleArrow = ['right' => \T_DOUBLE_ARROW]; $stripColon = ['left' => ':']; $stripEquals = ['left' => '=']; - $this->removalMap = ['Expr_ArrayDimFetch->dim' => $stripBoth, 'Expr_ArrayItem->key' => $stripDoubleArrow, 'Expr_ArrowFunction->returnType' => $stripColon, 'Expr_Closure->returnType' => $stripColon, 'Expr_Exit->expr' => $stripBoth, 'Expr_Ternary->if' => $stripBoth, 'Expr_Yield->key' => $stripDoubleArrow, 'Expr_Yield->value' => $stripBoth, 'Param->type' => $stripRight, 'Param->default' => $stripEquals, 'Stmt_Break->num' => $stripBoth, 'Stmt_Catch->var' => $stripLeft, 'Stmt_ClassMethod->returnType' => $stripColon, 'Stmt_Class->extends' => ['left' => \T_EXTENDS], 'Stmt_Enum->scalarType' => $stripColon, 'Stmt_EnumCase->expr' => $stripEquals, 'Expr_PrintableNewAnonClass->extends' => ['left' => \T_EXTENDS], 'Stmt_Continue->num' => $stripBoth, 'Stmt_Foreach->keyVar' => $stripDoubleArrow, 'Stmt_Function->returnType' => $stripColon, 'Stmt_If->else' => $stripLeft, 'Stmt_Namespace->name' => $stripLeft, 'Stmt_Property->type' => $stripRight, 'Stmt_PropertyProperty->default' => $stripEquals, 'Stmt_Return->expr' => $stripBoth, 'Stmt_StaticVar->default' => $stripEquals, 'Stmt_TraitUseAdaptation_Alias->newName' => $stripLeft, 'Stmt_TryCatch->finally' => $stripLeft]; + $this->removalMap = ['Expr_ArrayDimFetch->dim' => $stripBoth, 'Expr_ArrayItem->key' => $stripDoubleArrow, 'Expr_ArrowFunction->returnType' => $stripColon, 'Expr_Closure->returnType' => $stripColon, 'Expr_Exit->expr' => $stripBoth, 'Expr_Ternary->if' => $stripBoth, 'Expr_Yield->key' => $stripDoubleArrow, 'Expr_Yield->value' => $stripBoth, 'Param->type' => $stripRight, 'Param->default' => $stripEquals, 'Stmt_Break->num' => $stripBoth, 'Stmt_Catch->var' => $stripLeft, 'Stmt_ClassConst->type' => $stripRight, 'Stmt_ClassMethod->returnType' => $stripColon, 'Stmt_Class->extends' => ['left' => \T_EXTENDS], 'Stmt_Enum->scalarType' => $stripColon, 'Stmt_EnumCase->expr' => $stripEquals, 'Expr_PrintableNewAnonClass->extends' => ['left' => \T_EXTENDS], 'Stmt_Continue->num' => $stripBoth, 'Stmt_Foreach->keyVar' => $stripDoubleArrow, 'Stmt_Function->returnType' => $stripColon, 'Stmt_If->else' => $stripLeft, 'Stmt_Namespace->name' => $stripLeft, 'Stmt_Property->type' => $stripRight, 'Stmt_PropertyProperty->default' => $stripEquals, 'Stmt_Return->expr' => $stripBoth, 'Stmt_StaticVar->default' => $stripEquals, 'Stmt_TraitUseAdaptation_Alias->newName' => $stripLeft, 'Stmt_TryCatch->finally' => $stripLeft]; } protected function initializeInsertionMap() { @@ -1093,6 +1120,7 @@ protected function initializeInsertionMap() 'Stmt_Break->num' => [\T_BREAK, \false, ' ', null], 'Stmt_Catch->var' => [null, \false, ' ', null], 'Stmt_ClassMethod->returnType' => [')', \false, ' : ', null], + 'Stmt_ClassConst->type' => [\T_CONST, \false, ' ', null], 'Stmt_Class->extends' => [null, \false, ' extends ', null], 'Stmt_Enum->scalarType' => [null, \false, ' : ', null], 'Stmt_EnumCase->expr' => [null, \false, ' = ', null], @@ -1216,7 +1244,7 @@ protected function initializeModifierChangeMap() if ($this->modifierChangeMap) { return; } - $this->modifierChangeMap = ['Stmt_ClassConst->flags' => \T_CONST, 'Stmt_ClassMethod->flags' => \T_FUNCTION, 'Stmt_Class->flags' => \T_CLASS, 'Stmt_Property->flags' => \T_VARIABLE, 'Param->flags' => \T_VARIABLE]; + $this->modifierChangeMap = ['Stmt_ClassConst->flags' => \T_CONST, 'Stmt_ClassMethod->flags' => \T_FUNCTION, 'Stmt_Class->flags' => \T_CLASS, 'Stmt_Property->flags' => \T_VARIABLE, 'Expr_PrintableNewAnonClass->flags' => \T_CLASS, 'Param->flags' => \T_VARIABLE]; // List of integer subnodes that are not modifiers: // Expr_Include->type // Stmt_GroupUse->type diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json index adedf288c..8f32d5d9f 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json +++ b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json @@ -55,12 +55,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202309\\OndraM\\CiDetector\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\OndraM\\CiDetector\\Ci\\": "tests\/" + "RectorPrefix202309\\OndraM\\CiDetector\\Ci\\": "tests\/" } }, "scripts": { diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php b/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php index 9ee7cf14c..c7d54516f 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php +++ b/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php @@ -1,9 +1,9 @@ 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 z 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 T;w#ZL>-n#|@=ElZv2XqllatxN delta 366727 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ÇRz?3ayIGBJlML$?jEuNho5;NQ!C$Kqfixb?rDhXgf-K z4eTky^E5muY@70=(*pD6?T@#WUJH#?kGay34-Jc8zqr(vCPd_v8%idqi89CZQ89vU zEe_`qPR+%wPAoe#QCn9$cUF{@!>rbXzlJs$c`rVUZlrv0az>25LMdofVawWMny6*x z);jXE1o9meTKB&^YZ*g!nIxaJxVamQs$K9}PU!<{nf&|tY^Ro0v3U&^jS#dzh!d>7 z=X(A5gb;%x1EM9Ds2Z_4B~u(B@e_e`mbi_)1G;w4+`u}DYDN* z7%P$2o)_$m$jd8zvZkCP$Ncq?4SCFhzMb>nu-gCQi(UQxK@HPT?Mm`(7&2UFFa%px z$eN+}J2FVa--G(+xtT1EGSU(vekd22Emn-64IZt2q^*Tb2%{K-{O(~>yfmi?IMcBd zFZ=RqG6PWH%imS;cocbuFtJ6%{*9o0BGL&Rf~|jc(T;yBzh6 zwynBmJ{I?5e28CqbuEDyIMM-fEU%leTBN)`pErorEDu;r5g@n&%c9n#iAkB4ZPIC0 zB?l|polqij5Pa4sFHvJ#LH_V*zEx<3h)snEo(QZ_S1rtL0c=?=L2~&?1IBAmh}jJ` zp3T(=R-WnNV$uw@;&Hx;qK!eES(De=VfW_v$1T0}&0L1Ygb$XSrqwf@2Cdy~T3W0` zi{4B`ddFr-hn?C{TxiV}A~D3Tj=S;xsV^^ZyO7eRQs`zAi>SqsOll`%6f$Yd1cUY* zM=&m3Rv}Jw3mr5lB1#!R+U3V1^N5XxW3~n}$B;Sbdf#leiTKtfl&MFn33WlRQl}xu zrMNlA4_48@BmtC5uzr)t6;yTCkMWL$j?{vqtP#UF9QL*`4Ex@rT#Mk#ygy4QFKA{s zzEK@BKyNf^EumGfHhNQ4ei%1WA0UnmftRHhw?XjE;BMPAZ7dICv7Lpyw@xXK=`NxA zRtjyIeh7+)QCvVhmX1n@433RXQhoqhjA%RrFLk|@K|8!!0_D{0p;#oBtCurOjU{a$ z6OWSD&+^B{?g1QHA%iiFtT1f+h^W*W!Kw3umlfcc7RxA-QZ_rdn2!-82|5nO>y90V z;AzsBLA*fFI=aej~b)d`6)N?*!#L_&1D;t%a^{iocf*XU{rS_y+uk&Xt0U;a4B%`oiyE?oN}5tqmw z9;{a{d!(UNm84x{52iJ25=5 zm{HG*Fu^G;x?vAOjFT0EQ^ef-@hn8$n~|rcnJBKlA47s#bWw7=Y1(WAsA(yJhqEFg zThxALaH^^&``kZ>_(5lHTKvI(2M zRIRjp2>t)ay6%81Z|7ge`!W=G5f?+jJrQs#sJInWaBqf!f+9KUKmOn#d6HZ%cbCg0xr`X8R01C-kQWQ;WS;10BwjJ$ z6v4Wa)^uT~2D%%kFO9*lLh+tcXKChHVT=u(Mc#?(11eGr$;~{gtk&rp< zyxru+Pp04bnaHen8i|c2#ZojmQQZXJB_|dt#YA;GhNpxpn@l^&-7V9K169lR-G||v z25}VCK`=RC>w8UWvJ<iqyh&g-EHA@l5F%sIC-|7<+3D&OY;ftARJ6LPm5%gujrptjoAvzb5_)ZxEA1v{?i34R-q^t0*8b1n)Mlq)8V zJz@oxjl4M(zd0G}g#FhCjByO<)D42$ZssN^D-2~VHBTgv`AQ!VoOm`k*w}!bc=nVL zqXlZ)NA2EyuRz=k#=Nqa%M#4U?Ja$oOz7F&fj}?LC%CCc@_W^>f@|3IXmN%o9x{`j z-7fxIsSZgnk6sug&nL`b$@t*)1;54=zCi_?zJio%L6t4ku*q?4af#_qYwfG+93L2m z)KcURM3|AxyFBJo@j>{m;(4l{vhbb1aK0(y0*gZ&J~(Cb@RUO6)nz_KmWbpTuGjH+ zfjsF;15o2M_kjk^+P@bb-lka^by|z%zeBxEJIZ~aPIjpG_?)T}BWoqBx_~QukWR!W zSjo+9IZX#mglAv)-1BZT@k#y7-*19Q_}s9i_+tRdl2?Gr5-fHsJViAQCbbc^x6IXx z6djS*q`^~B;Q<&*W`%UaxM?*;>Bhsq@H&zN1hh~aCZueh*S~LL?30z)dxEtIY3epd zvacv@N(?3ZL*R^mfOJBM;ODhR5Z{qPvB`EL1EEO?9m*%z{dnI(rKx0j_rG`me?y*K z)}rY|il!pFBMx2Cgot9o_nJ8(t6asx17^?q}FDPoKl7FvPq7Zb&=;{Qg7|QRyjc`ySebaZ(d3&ELtj*cn7D%GSIbX zymi8+Gc*(ND|M1!=B4)VEYo6HR{O0Tn)Tv*g7&4BK2ir-Wd3hGlAH`$w14ShjYrVF zqLCt@u@tTyKxvw4s1bq}TOLVMDvs2GW7LRHWigNDZwPMu=kMA?QFSD)K2qA$UXPmz z(oDa}L*5O^|Ev0rtvA_X>>VZqSr41vI%TRMlh}e)^rGM~iwzCZ-M9|9>RJ*o(TSjM z3B@dYY}DX+-^1V)1i>gcjxPy!f@?OV+baS|HM*q;74oG9w((@mOdRBr5T6)5IFwCA zQtea+!9Pl-ik3OpC(94TZAyvSfnG_aexOn9ak@c99iS%0nm-cu_vwKLdJOUZ+s$8wwjNkzZkd2DH(tQOSenP!qre$48r z8S);Mp0drzftI520L-D}&Y=+^Sk^r8sYX5B=>iUJ%lQO%UYzSgbvF^tkJ%EX4T&n- zUpOd&5Cb?3iAv;02DN2ZOgy&ANHv{sN5mq7oldn)@NQh6fkr)JD~k0)+uC{Sl%{d>7JnLzYZeC&X=?L4%6WZ|cjM;^i_rXAumW|$zcXYafh!?cD_;yZ%7iBF$};|j;HKXWHdX!)sUA|> z!z9lCgNKMZzirBb=ZbieAIF_yAJ8o1_3G67tY$z`F}y$6d`}!2+*15lL?J{$xXhzQ ztD6l=tDH0%2Ug7Nub1 zZ9Nrvz({;6@#{lYnKVF#))f(uyJ(H*I5IRzIS8~WclW3^h%95HYbrL_@C98miH0;= zu~S?qrfZ55_PjkEh-BhYf(e%{+sIO7M{=-LDnz*id-?zZsQ0h}qaZRy%lWelpCPHSkX$jFKicgJrpvjx%Up-TvZO>@aO48o-L~^yc z>&2W6I#-eDhcIX7hvS^^`Y4V{LDY}En^;S6HHzU`=uZg-ixx;nPlW3Tesh*o^^oQ9 z@<}WeABXrOdPO1!NJLRvkvlJi;A09Kqja$UtYP4tgv6dO_V++%5oYR9~!N^`=60VWGA?N(X;ut$2}Pm(F*H(g?q ziyJTd3~vs+EgJJ>9GcJ%jPI5#jcWPv{w91hn(Jj7)a<;nMM=WtSt>UV+Td_Qo)zHf7{#QnoEj?o0QB)jhf-q&S4$HE3=^pq!_i zCMyD8lW4^AllKRZTuQhPPcCMseF)(9HBhMrOoK9e{4kth%r{ZpCFtsK@}7}P%BzpA z3`;I+_-d*?A~9*7B4;9N)pp2hRewzulX8?f z9_Ad&W(!Sr&v#yC$DJ%!&KF03$e~R*6P)UH=GphgMZ`GPtfR)^u^mGaaP=I8Wn5+} zY!Q#)as-QYoQ;dSw0sX7i#GGxA}R?l6~wLaWLu6B z!q$oQ7Q`(;N4!ckA1Jk0V4Ar)M7t@?yuZ{ht?^Qp`VEqC0_p0qS zNyGdko>L|xZ{zK&Z;V9^ct455dI|0by1*y?Ip{_?>wP{Ct zv4SC{>@$%$o`&+}=eMS6k5YDOU`uQzYbV8eb9cR0ZA#|)Hkz58h}rK>hm(r&P}U&6 zOkmT4n9t@z#7i|Z$-GJ_yo&FDywtn4jlXwRoF^V>iFE2G!9?+_lLn`2Ddy@HJ`rk1 za691@Zc;Mq9`21wluH%yz)WOYroSAfVQRNF*zp|7RTF%hHSRQT*U}huDMGmy@&JM)wqhP?a3mR?j< z=6B~QfYzeNOZCI!Ht4bl%0f${sTLqfaBADArNXPbX+zPuEv^rA=@%vzl=~<95vZV-nf*%|k;_MMHbPkUm922Ij zT`e1IZPR4@cQnN4Kt5DVw%q-+%Y%txYO_1FJ9ss}2M^pJ4tE}DWhVIm*cBJ! z{kV@bWpy4IU`ZpZPM1zW$_qP(Fgeza#yF3(79w;B{!zAkLzO);Jbbu3!!Uuf3AWoO z5O0RO>#{++9?W<&7S}pnd7#D-d20Waj3d35Pd)VtvBIB60@v-R^9Bd~_-%WO*YKn;$?auoHZ12*l&mM z6|X*2`lqY_ap(ft$_(cK=#`LMzGX}73YlZ#L@_(z62d4%An#}u+p)$xJaQGxG@zO1 zdX=cjq)gQfK^nB+Z)5st>@V5dvJs~C!gu*K3o&9C<3fcq9?oB=D)tP=2eyA9`h3n1 zHVL`w#s z`Io*Tc<;-8+@_|lBwFR}!&ji4N8fDzs#nC30}(Qmxs_a^&U>1_;YcbpfQCEpBWOis zTE{7{JBK6cXLgXOdD)^3a}oq~4*Y5e-|4&v%nh^H8P$ z%^DNj7DTCQ%o5{1fxXL!;lWHpV)^XAq;;CX@q7r6(p02Vn*sL6fA^pHRILn|_hvPf6-%S;?bcskz2#ZNp z#2&&e6P&YhONM%ntS}U#`}HB7qzD9Qq~$?tx|?`ajVPv0qlO^m#=NO`F_l6Z7qN}H z4M;1PFD{mgG-CrItN0j$k=Lb8|N4^lE`wvDql+%%1|f&YK(N1kV0ExWf)fN^^`(6{|*+R^|TNIt0xwAaBvEw~nevi)~zl%oQ7lF*q1P*R;3&22p9c;bn2**$FQ& z4M!&7OR)3)zKP0a#Yfhn%5I+NNt&-kR<%=R7Vy=H%v_#u59wf{#a~R&l=JM22{)DN zB^bZwrZ3^!NkkvynU3^($lnKX{f2ISdTs^7-`vNyn_utaFz#*fQ3=0||ELfEvfZ@p z(4HQ-z~Dyhm;AbMA~!{_R>;~1s?LHO9$=bOw|C6GppGW}P>b^qhx#%CUro{M2*`1H ze7&d@t!pT7b;BlVW-6-ATomqLa!& z?9~T3zkyi}ZerdhW2F0<@ls<*uCNvuICHUJKYJT!wNmB59lqo$5!N5%E5uijcRKsb z2f7^FP~>;Q%S@R&_(rotd)z}jUPY@PS#DOR|CnG^Ydn9dA>e?WEU47x_`ieW6bFCo z1QYBJBoTuW44EH?0~QqD?K|C<=hOAhIdAMlY+|zR2Y+nB@bqM*4&+#l$um_KjOwAP zP_N%Lm+-z@Jp-EF>RZX!%wx zXJot1c`Pg8$ZPs*-eI*2l9XxUk9GYBq*E6O-ujRnr5W%X43|i24?*q79}(Q~d*21r zt_nJNr8t(1M=tV>AXzQcg}vlsO;iL=}P-Z{os~T`CcmjM_e*8I^R2$C^-trO!2OAx{6DU}IPe zl2BQK*&nvz$@TKEFeJ`WLclcY0h+NW8*}J{(1=jsHm)}Yd6kk@l%#qa3XHz3aNozH zKM;A_GJdPBR?4zNRiVP|$cUzf34SYUBeD(9{t{;hyH%Dy7@8&=`h;K^!~Qmkfvk2i z1JT5KaLM`vQkd%DvBpTT>99$f(W(>9Lq~)atpK&gQuw3yIOxgPs{76~5B+w!*jTk9 zkQA`l%u-Co!@wS~K1vdSr82U~gsSpoAs@mnB3dcAyj{2*B$gzcxP@&On(be=zcfI} zd(r3SV)4jiTceLCWwU9dv@+)5>otG<9--t?QpWC(rr|3a`p=^-1WM!msu>nMJ1>aW z=U^t}I3vDcqajcwH&6+Ykl7Y7pR8c^+=;xhf^(?X%kXQEdPA|3Al(^j)3HH=h zd3Q%J-#3x@zROM3Gq2B4Hs-^!;oy2E`Z_9|)E1r{Z^*RF6BsPXFZ+;J zwwjZ;yA~JpZ4=;opcHD8;D&vM}i3{7qsiNwrRYyi;t`*-h_&eqhDvysb@3%=rkym{aA97h(p3ACvG;b{Jk zs@t&M)XFI~Hk>yzJQ!7i6CNkqk?b}R&z7-B`yzRoNiZ&LQ1Z?VoE(Q_z4^rFMs%&5 z!i~>D5GPRY39byfxAZ%S#MqJG*2SDp@c7TmaM6?Mewhfz1l3DL3I3bcs;$xik{rKe z^PK)WiuIn_vjP?CDB02lUx&Evj8k71E@$gM2_JgLZkn#C#CxTwgOu5>D{*Q3(MqOp ze^e0Gx>65?DJY~av{BThn)6^Ue&-DDRZMsyuCL?epOvbR82V;2&#pn<;KMe*E7KyU zGU9RhF5(v$$b`CDCa$XJdd#f3jXK0n^Ei5qH#yB(i`3Q#jafsbgc1Dm<&L$1$ze4Xw?r#gQW% zAc-v8RwubL0=2UH9ysK195ZLUqCY6CHjCeihpPNn_#F3R!P!!nH>h74?8% z-wFwPi6l)ON5;gfh&Nj}n_%^FNqtqN&90iMMO7Ol_w;f)Bj)r*$gZ?09FT1nRko^$ zPW9-VC$7c0c|px}<=P0=D!n&ZHYN_1h03VSSp;npt{$MF_ZGHp9LnrxBv-p^6EEg; z2j;iR!CnmJ5(F>k@`q5o#-`$c595%D68DRN)SB$6k(es?jK#@8hF)-hyD)os;yso zPu!gWN;F=}aV{q!`OM1z74}Gq&5LT>WwOZzhT31HokSdA>1bvrc}_gf>tieO3}880 zmQlL|Pn>CVOR{XA$v8eV9}+ z*`ShNCNNFok$hz7Av_}6ivtJJrgz%659P(2SXBFW2*>^-xjP)Qq7Kod(ot0-`XLYsXOhr2$WfOoAve@U>HD44Fgv^)_J7ab39fY6%AGjV>7 z_J8b~c4fxl1wEnn(aSW4WC!8idaQ*wdzquo5lf`*Z{w=U z=B#9vqVnY{Iaj29G!bRbzG=+=Z&$mof1|v6O5VJlaH<0C_dzH9&I2{VSo0df8Rr zJBY4=Die@SNDy>&d5R#XQ2(Ov7f^TXA3Punkhf^zAO1gf4oowVQKd<$;gLZT6j6rZ z!4Ny@G}TMcX>%iWfy_6{th(@dl2{Be`dBK7*7LGgmJ(hE(D|JMxkf7X_Zk0NiU(%8 zgIro!8{Wr^djd>#!Y+u5(V{JA{npwF)3mB)c3Bm08fmcF5Cyi6wssk~`hfWS;7Dnmd@>&=O44q6G`p3RF;bl6APM z_s?-$??@!u3|tJeoyPypP);U+uH})|Mx#&zoe*{O+h#N62`Ag<$?p0slxB(!XU#MV z$-=GUAW5jQMdmv(KXsd6>bgI}l@`4^gs08^Nd9}$VeF~WfE7-H!K78LyKcM~BgrT} z?`6UhdmbM%-b!P;X4XqC_rrOC*(Jt6lasY#u*D_ELL0oaM}k6#5Ik3_AXOPT9?O_U z6_ITBYEoN8jD{IZj7TI0Y#6oVN&VL8pM$py<{~Nu|WA z9b9xUiWc9wwTw}V+X=UF@6Cm837i#5K_+#RVBx;WE6DuC?UPi@h)pNMa3_P8@(DIF zIfQ5{G&Qwo&rwpRBY8sEE!D~JX(`^7Mo=W}cyugL{el!C$B_wq(LaDIBv?By#7<63 zqDl@=4_}a6^>#d%m)eOUIU$>jP#{<^{B4Y^uxxC6xO$6{)I4Pq{IqZm1=#ZzzjkE= z$u6)-h-U9?kV7yZ9<#TZy@S%?EpJi*XvtKxerzE zX>cn@F;gM8ry_6X($u!1WjtGzi;(j5&RpC-BctGaTMn*F=4aBnnGKa7O|6t%><1hz zo_P#Y?HAUC>Px`a)HK2KPck2=Y0R}I>@Th67~L|*UQ`$e>-Two4tv}gB`hws5-qFh z>M4say&f;lh;v@d?;58DizZa~97d~y1KN3f&9T?76<=mQ#YRBXQy@gs7$HQkzyDOc z0K6L!sf}y0ZJbTetN8%L{*qCtsyhVid#u#{H6Xu8}?#dsyTdVA{qWi>^H)P;SbU3>p^%yqZQD)hnZ zsg=>6d!`4fVQX3($3q{XA|fEcB)2Yjg;KrET4TD3wRm7NV^tkJfg}QMGvcXkjo8Ro?zFDwL2(9e|{zt zHVVnPQx z6X^(^$$zgWs(Oo<0_J#H24-%1FATpU_0>gibyN&1VX{1_B*BH#PAw*Ls-s*f&&+`p zm0u$fCnIZMQ-xZl4+)-K**QkMt^yS8s<7nvAvvtU*{PC8og>0i!uV>rR%}}K(Bn`X zG4afzv8;!3uQyKnpA!06^LU8IA^Ft2!Q<8FU=gV+TeMmUMiwDLu+1pHbYb5Cy-H1o z@#0bmY!uD;1kaUl?w~kq*J##+i;?_#mkEwCkn$ODl4Xqc{ExT~`=Dx@c@;!W=86ce zwOH(<6nk2cVtc3dAO zVhoZSU0iHXh|A?c_HT?P$;g$lA9ZR%z%V=fa2{k_-m@_EqPJ%gynlMW3=YT<7ZKqJ z+Er_Zb9OY6u5sKNN%p{k&;rHeSTVu*9>Z4*nsZTtpT_O{sF+8tfdUV)CaRA->)7Vq zlyQQkVkJ2lWniMsx*BQt(Pk;8JOEl=m~nOUp9-bI$w|d5*rpaf6~M+@2Q!&1QJdBM z{SOsMu0DVtXawU%@QcT+nu;;9za|>&)^Qd=`?Wj7g=6s0NP@t6qZ{N&{G_5gTLlD% z?)|H;sy^~}gm4W}bqN1RTDC{PlFK~C14)ED^Xu>k^>yxf#*wU>_y5+!YfQANTQ`B# zPkSUc`#eIZ5tB>lpy_Peklg?4Rke*OQllRi*^1_?pI-;9s*nO=;RxmTNnttZa=NaR1TBTTfu~(U*%6JbkT6(J^f-c-Eh+G=$2On;c&>*&--OdO(i|i2Yt}^`R+6~-wTp+SL3ovKrYo(EWs=|$dIYDn@06i* z{j38?b{5Pj!tab(YiI1&Ma8JlGfTM$!B5%G5voAiF0@7~){+Ua4|&B8P>>2*fJ!&x z2*LWgHuCoDt{kDd@GXr;osw&Pa>mwUcdQokvv}?F3zF@u%1u$sfEiysI^~JvoS7}z z!51=yS#&#+XAbgzT_g}Ce&EpKSNsB0Jv4)44TGUYE_3QX!GAW?o2v}$5j7d9Zb*J> zzU?$k-s*bld!*O}{1ilT0}JFC)^b{rdOBzaZmp5ECzWeJsbqVLpH&-T&MAy@@t?V4 zWLX~SIn!0y1s$W|QYCds$Pj$=sqQB=ANw@JVK}XzdG}6e#nXd7_uHK+n^g{LJW{lu zqW|Npb4{&?jeW9m2KwNsj#O@kV7~@KGnKSF*<+?|n||H{Jj*X+N)u0ing6p+d8b~5 z@+huCa+{-*_bYndu47h0?!|ty@yO-X z0`dK-<$8o8BTJ^>f|IAs^i+B$@`QX#kPg0o?FTeei9Rt zdR9C$#MVYs`=6JYsYk1tA@B0;cws-GNW!~h@>r94a<;0SMTBmK7k@B3WLyz$1Z_Kf zLu7lBBDZ$zFYSor5*yQZaBri{%8JZ3B(|s_E(&Fd2 zKRxi};r%tBHCLN;6sbN-t;NkMjMz@(r8mBKLpfd6B$=sqwP?!fUGiGEX83k4;Nd3& z=l$N-*eu@1s|Ql`k)?*0R2Eoj%|r`qT^kR+6LE-k1PdH5i8<{+anDU=*3OCX@kL%J ztyEs^5`T~IQ5Ti=dz!UT>oCh++@U1Y^r+*&)k+wpzS=uRvn{f_bWD9ITUbO#tJk7Q zUl9@nxBahH9VL;=DlwsHhRB&!@_$M`_U~tDqAAb)?FJU@fy@81#y6c(y}s(RB>1&v zj323|`Ejq^jrghO;3zq>e*0pyy*xnLm}K9SI&LvaEt{TO;5czXIL~FIB%&8RIH_5$ zdzQl%EHOOwgkb#Ie&IBGsW`Z#{&sxL#sv}*9PFby7|6P(j|t|Se)7+EeJaY}+uRnxie$y=C)@sD(!@D`NK$o%4pMaS<$?s;1P=kD)0Sw@HK2=js>rzddtXI> zPF~O~G&K?d2zGNVL~K}^6YPq^g3|Krg6uhXbA-+Xd}+Z7aV<(rdD_BXomR+)g86aYD-}SReK=PAu%kCRJ#g<~DGnTfQ zTpPjPP7K8}8Dz9b=VbGIR<`9amvl?}d5qe{cN+%-!~b%7_z9-4s`-GzZwBk}CJ!CF zFdL{beP?dYn5b0afWuJIA(OH0&)_x*p1d~|drf3NW)6YjMPf;vBY1Ij_0Ebbp%3#I{Y+)e!}a%^ZYx5w8zI*5bD({FQOJcQUs`!(8|8 zP!G*=Th3V}cJTvf;rQV3oxyWucb(%QcSZgO@)S_l2rfU~L{#{ObBog1eqwb}nIG($ z?ViP56(gOt1WT{yk_3kgezAy*YCq{~8Git?#eqpY{2s_(8WsTKgA~a4bY`@zNbcW% zT?r-4*L|P`N!1W81lwOeQclU=DL+=Hq}M{dpWaoScb%*0{6+iv(KOV)qF@_;O`0t9 z_)n3l{=!_=7G%ndy!6IWS*7LM@RE+qgE_+oj3e=CCS3pE&dfhFSeA=ixj=777 zb*0e+_JCpGgpqYgEM}*jcux#Qlo@*CyWomhHK~_rs;cqgE4Io|88!vYorXll^Q%tU zg=~lTQ@bVBPKic;>k5=5(h!`mYsnLh%3T5**7(fWnHreaQrfUU=Hcru+@ zH1%~D!2?o?T8@v@k{If6c$=X_HN14>Ihj7Iu# z#+p$()tH|OVkRVJi&%i=8hPeL`4bSyK3oyO1g{)<^rfk&9)o8&(&89zl8fA*E)7!1 z!K^A_r&a3>N=JzmBT(TWFBVktc8vKmOwCJT<|Y=qT1YQW^4-|IpbY?Ib_lTwU+NuTCj7pfOx+96YPB3UInkC~v4r`h%21;wd{nTjKM5V4z zy5dMn;VJGAku|NUV`-)8`|V_dlGwK4ii}dK$g5avY*O zA~P5X$MMmJ{}7>@&D1e$qS&;PzRCiUxOv#&?AJsj6Y2zSCXaJg8im%?PEj$*>`K$l z`v(^-#36h#ewv2xnw*w&?-rbdUZ(lkHaI5ty$ir^E>&cq+By0^TbT59wP z>&_%35fTJ_Yph{^$oV#`dud{*biSpTDzSG8O0?n<1YM#^gen>smca-d2(nOR1iNKM zj#opQz7lWbwd7I+mwwtaK~%V`@z$P5r;Cnsav`LlnK~&v79Tci1mo_RbDHD$1%Pr5(rHl)EL3#<#r)H*l%X)CaW7#f}>*2Dt`6siHZ2$CKlMi z$b0NyIaQ6$ffybgVq@#uw!g{g$$4Z#d~A%e)%qfXS|K>+0iInb^1>KIGe>aDYR)H^ z8+k3Ab|jmLMiDH~#Ia@eUJ=vc4%F3&m*t?!w7!PIW~Q|i-_n^K$B4)w zYLCAmDxmHX+~wJQnIe-<9^*v{a`xlU8cIQCR>s)_(iv2OV9n;O`YC^ep}?%Hv>R#_ zKnv$N^Wc)$+3julT9LydjH~U8nm|{~?){5Wu1S7e$u=bSoc3{u zs>CKf(dvhr8WD~D6=_%;)1y|#6LnfU3xYSmo3?H!CekaV^x(ENP zOe}dIEMzh4<5;9q&j>aOTA8o%N6ln@BA$sId-5mdLplyq%^7AQ`4*`d!Ja1RHECeg z8GtVk$U#qhhpUQa=W#`$`0(htx>ky>QX9a(+o=Jz$h8W8&6v5hmEjd!gI!BBG%MyK ztQ&>tBrDY^F(Eu!otNmqI1oHqYeFx@cki#U&ZouMnC&;S)o2*VElidvVNI}g3EYUo z!csjbO%v#eW8Us^rg9vDH*(~y3&NTT5VWoGc(xjl(&dv&{NRq?)+M-)vU@gp!=S;3SsS%Kju@>N8fT>~MRt4Mjh=?QD(`F&4b`}LJpNGrdw%v@L#K63|y^Xz4aDT!zD?JGe!Hn_f(HA+oBwx-@!6 zIyBv{gg)j7YmOC2uHjx4myBsU8WxLAbiTya!eQk7abY3e|E6W+Un5!ah~MALU-K8u z7fs8ADfy;u5Ge_|_Z*Lq5;Uh5Z-y^irlCJqL~!c!frW}E7e7k; zktba`6vQgl|LOz7%9l$Kd=o_5zT~9;(+dUy@gsGQVBx3bCURnTijEB(thNh?>GO}(WIl&=qApfuoO1oJ<>7^#HJt~E|ORN*Xwop)WpMU3)hgXOY|NU00i zw2>&R&H^-Z2Of4cd5po9h*+p(zcNNN0p-klwM*ki!~GHqk@GvR5sAj` z(f`8Eq!~&|{j;Kj(E-RCyR6Y*HCPQjxJVX~@8oTBqPf#s{J92!cAFvzloA_4Fg~_h zc?u^za3iG2OV#*H4_+0Kj_TCDaR;LfZzU|(v97O8wK2=FB|Apt$$4nn(m&|6o*%nCQuMay%3MMnKRJKkya^KXEqCnh{7T6&y8?-0*51 zC3||++C%HKlYK|@>uDq}uEOwv$?1|W)$9T{3ykfG$;ItvAe|5(c)b9Q{i}GBRcg@@ zK8Q>@j9QUqAVsI6{d(I)+BeNwIhXdP>j8O#II6?un$P4A>g;`gV9B;Wcb z;Jy>isW~QxMk%%NfEyxspx+!Rj?x{3gD$OjScsYj+g2*0YLrfcg8%N&nH~s;pfUd* z8E{+b$9<%Pl=nLxb*xU<&faymYf092#6d&?g4gRI4o-E8l3BaWYKY((Fm<6fM!_?P`bXF$N0N-T5-vsQ{NPO-N@WY&#p$S?cGEjxO~D#o#A?7+jHwLktuJ?p;K$~D{~>kN zObnX@p3-_Aoi~(SqR37MrL$J@KoQ%OEMNMnnlW-*L5T84@RU%<5jxBl&037c?aDeA z9N49Cx#rFTKuqxX{&;8Qrt)mgB0%cOD&I0ncGVdcXi})Mu9_o*s88@--+$FATjaWO zb!3q(ZgnY>?%&rHBWp0KezVSoVvnGKColfM?FXs~c_Pj?4U3Y0&kgAEWtYNS2 zt>Q~7G5%A6?GGC>fgh^D6panI&-l-=rcx98{h~t8pngkX z{xgTkq-nx6y%HY&nuI+?n|+-7rLGV=Pb?ThHqT$P1*F^!-9AQSC!%Sha^r1*V=U6~l=%Oz`v`cJS+ z{jv|gmo7UZMunxN!t@Ej)WB2yM3;1(yLdGPUGz)m27DmRwkJ>H(7LhlX45fQY0DmJ zSUOJ)>%h4@tkI})bhiV~L}-S&x^hjc;n0AMeH3d+I&PZ=ZAvsGBnU2>a(0-ep)oTx zy7Ocmb8J>v`Kk1MhX+Mvqg}zP z4!M4H4YYrcl-F5O$xmnu?Q<0M3Nvpe9< z8TG$l1_tm>Mxw!P1$V_iDSw0jafoq$`-T`uiv1 z)l@LTOcbT@Blxy?xp7JsmQIH(kkLU|1U+k9sc7t?r5HC2B1()+`2?e4nqY^;ht&h%*VJcYp5>2RiM zXS!;K^Zbm=W+`Tq>gk3mi7o{9yb&!Rhjr8}?qy3<;5xUly@ojD zi};T4wm6wNf;2}P+4=cM*)^lhCDq*Rrsiejn+ z@Cg|*R5iiv)81ODqTi$5YV)rQI0V17H$Ogp2PH~f{5D68C%U8;eoZ*EYY6gkoG15E zd1<%daL>KVMgh62^R_-cCF07^yJ0tRGHLfiKU=YFBRnRa$RujEJRsLi;qCC>-m9hwyN=k=A63^B6)-*%3S?ZCv&(2;_zl(E+BVzky zg{-|Yt7+n)@&qUCFa>G{5bs2mwY`U>+vbLci-}ve*tYA1ucocqP=&+u-o~-c4tIFD zMXRugC6f+{3wO=bYg%MYG_B}7Uqj*HH<`kO&(dipFRE7-(4N|2Byo@ZIy==^#72D1 zK#YKSNGCK2CQMq{Sy8}a8Yt+?Sp+ASD37P7|A!uCKQJpN**E_IIRb9O`QUPkO}BOU zvZd*}m#UKJsi;J&PA+94Ab8O*sDMOKC{g^A6^wwQ(GfBC*eE4l@e-fzC^j$<8*G^d zHt8G+-XLc}I@)Xk5z8=JujlUefna`!C*@M@U8Cj}POznJ$+xtyCTV@|z6JkhSjDrK602=9D9p z4tJh7(x{T;E?L6uFz!AQ%MghOR&MmZKukzOSbah&B|phVF{qaJE8l-PLE2&X#$M#? zd8hl~0h%hy*Z=vwisAq8ejT%aOs!woll50c(>Q<5;&dQutwvzZ*Okhu89 zf$|9Dl7GfhKeW2oiklD3pa=E)WnE*Beo=zel5Npp7 zNT+@fEW55$d1HP_VVA+tZU!LlppSb4#iG%PFGRu5z@jh%A?aSNPr)*35*Hz7+wy6}9;x__-_Z!1&au!0K5(d$ zd`Z=b8kC)|0LjmuRVu5YilnxFB1dkc{*_<($i`Sswv01llXxU9;Ddy)TBm4CI}118 zeip*F9mbsWBGH|om0yR^nidR`neJpsZmRt;O!0&4R_089cEg8r1q8R}=bYy=t}{8d z>>wmN-s-j8NO-5R@uA6*C%bb=f{TXdo>smX5XDKL`r@M51je1l=FstHy)<=%C8#CE zQm%vG)cr9}RK(AsaWXGk^qnt%N3iGZKgJr{l44>fUQA{_7>^HT&!7IC4mIUilf@r4 zrDS;{3MCc0=d{6jKJAM1(7(NXH8NN*o(DDp70expYsKG1WjPH(Aq@hF2@QhOmH$lL zMx*FYf{94=pKt4wVj9995&T7j?IBJL5M2Vm<-}H0o?yiY@jnfFNj52Li(o2g8&lYo zPD>Q}oM6=vRa}jplky~x+_Q1h81uIHs@?F!hcx=?Kr8V|U%xt!)!Z$MKwzvDnp#b> z#Ci~(Ju;Zp7uo5i_9D1Fh}DN1C+Hl#{uuQ&NYa?Bl}*1dYOVrSp;~J!5ShQ7%VGa> zz=zL@e5Bcgj~{B&Qm*UG>9C!&dJUcS2YIwjmfLALk3w136=m)+d+$cOtskU$k{hqC z=zED}ZkYkcqMd$Dr_j6&M2k-erG(pMjvQRu43k>Kqn#?~@r_3uPdx)QEnOLrq~<}- z0_el&yBvR;79DxfOUEc*lG_!;q^)C(BbKBPX)p*5ww{_vnx?L>yJ1>U`efFa!booT zTm|$?dxXflt#5Ofu@Uw-|8TJG-{gkF@zGmoZFgVn$kI$hH4^Mu@X?#%{HhCJv?057 zYzN%U>xmMx|Ds9a8V~adON8Rgyt9f#F#8&UnKmuZ1dD6^ z?X;bu>wv#;e(ToXShQc`E)i_nuG?P-wD2PNFY`Dr#LHWf4R>*w*tv! za>`s$)fU{~YJHJ>G1|^sApx?K79sbU6-nl&9y#=0)#OnE8*e!nN*XtUhwdy7R*Vg5 z=@+EI@wpi#D4Srj^35DsV-vS#6qr_!vPe3)QR+B^k{SrUFeo?_HA!cOt?PexrGK|^4|R3suK`PZ0;4q;q*pa1Ht|__3TvTdG@IM7aP@o zg4V7{cq2(($|3sYT-VU=N$;~yRkcz!-LA68>;t}=PrUkz8j^n+*MLs z3tiSmC<s{>*z5QU_06`CcMw7U$%i315fJW)eTaKsDuudd@If#-j* zmY`M6+_W226_K_*U_^Y7oHBmTRMl9M$INpxL7-hL2Q*Ova-)B8=^sMsKWjAftg2{i zUt9sxo=d6wZbl15zkP*FzW}r$uC|<@Dg#;dqTd4!oR|-cS5H5-N73iTc}8n6l5JM( zS*4uwkTex2hvve{<&ITU>PYJRal=>eL|Gr1LP>Em7_a%sKTQ-C zIhR=RG$I6!jKEn{5~JjPxP7ZtexD}ZKCXBUGHWTm7@#~4GIJ5E)6XwKHB|W?H#8kJ zCS2-uP}L}rd|SXFQ)#_8=Gf$lH0^qcJ4vPnF)M}pJP3K`%e%}`#zs+|rFb;}I)*l- zsB;AM?Y*xmQvo00!K)=HY&vTFN{*3!B{X)3{PNWxoGe+$H4%)*g$*xvFs96Q9nG8_ zhO9|nkAFW8R^EuJh3LGzs5z~@x!C*BC1uOWs>YAySulw3ZTvG{OiR^t7!L5DM2;C9 z!}t(zCA1Eq4gdvbeq=O=m6ToU8RlBw|`k;S)JN7UE10BFzz5 zFb3l3NYkz&e-ux#RCLzcanH%_(iXWr5Su57sz?~Yl*?AbH6*&ZI0f&vB(mC!zz6F} z4jZQ=8x5-qAyjV5rw{dwJW)z49fW$d>Se>FvptlV{vF@cAh`Q{QJ8p!pxu<0O^q0q z5*TU=5i^npi5!QYr=G&`ksrI@8G^IU9w}@xj=@(CFT4&=n^0&=jzWnaj_g&)#vzoV zJ!~!4WF~PfLr}|at~=fS%MfVG{)a{Dx_@*}jq$^^Re^OZMPR2cmcnMFsg*S9Qc&rb znh5=L8vGIBqEl{5i8?OnQ?rfKsVNG|H@W;W@VkNu(3%rSj<8>lEqL$XUQ3q=&VxYeqpptv$;k#MEFXg@$`bE zQieM)6=-+}2Jc*cNg3`k|71m-+PNXGedoauWoYP>ACx#Fe$lS33P~WrZ%}T7VL-JJ zoORU1)mYp2+g#amdp)9aAXraS)+xtT0oq<%)uIMXxjeq(+;r+-+e|lIoTN)FOd_-X zZH1SRjZFCBJebgrdr7d4!-{@tB5`vBT~hbql+kC-C#X-)OjFL({1Q4_=ft5y!}*es z8EPlQ368yPSf^$aUngBDkyBEqF2(Oh4TsCN!!q^0N!_ecc-ZsB!JfR}tU#_FxWel1CbnNbOLW+CiIzVELO@fK0H<(JvhkU5G?krJ3=^Kmo&5$9*#Qo!VOuE%icCVPt~^*fqQWB z@Hm%}(6iVLiL1yjt5eo#KC(kjb}vqQ8Y<$)SR()I*sdDg8Y6YSqWbzITjh#qhji*X!M(R@ zU{CIUCbF!eSYsqN_@n!Fa+GtGi`V_SCff*ZE5lSJxbQKRH|o zCxUU_owe{|Yjua;oBw^IG5wB@-4FNR1@2Yf9>w z5RnGw%~MxsZS9V?G$BFfaAMYiI*oi0lC0|~%8k~kR~u<|Sh%p!MKWRJ*Un;WicUF- z$)ar&(V;0d+d+(TN-SnEkSqB(TIVgACquuzbjF6T|0q@@{YUABNycx053|sl$w zfj4#Hb}G)q*i7ILXk#kt^bH$fpQcl8a3f+!X(}G3>XdJ!CqC>Je`pVBZaJW`COk-% zrc>uDKc;|wGaPXs<*`+oo$wrowlY(AqBT}3*#-FP#Z1S<@;|tk_Dm}#U9_?fG9Td! z;&sZ+{Qo+s7o&^vjMRtG72#1RPGP@5 z>C_Gp3Ci{7!`2J?YI+Be<7cA!Gs+yNtOMr73j0z>F5zcVTk=>%B-_MpUPxQ$B}I^* zNj;fN`uKv|spYgET@oRLP3jv}@vbwqN{iTzCLS`S8OmQT{RrmXUR1ldgGniI@W{TB z!n1>kvUn_B9Vyi1f@K+$w>y84Kq5D8x{MLM#)>DRX0tn8!dS?nf5+U>9zdOFq(J=t!NJ0q4Z=ZU4H54uVc!@b3FwKu^&-C!L z#;nrE(?^8<3H_-MKfcdkXyc{I6Ku9V)m2n#Z=zm*rLM+qpA{hP?lEx?H`baj8 zZB0BSJx2o7?$h5rP}D%N+NG#BbQEZ)_c_O+-c%BI+nJOT&TUQ9l++3NyXvp)DC`+G zgE+W2zl6bsTO*iSWhDHc`+&PkI}iW7Q(uZF1n{+)cN}hbRQVmzL6?%k0UyomrF1f`GQ#+VT zWC?Z}`e?2amQ5@5wng1_;qDTQ7=74O7huK_NzpD0a31sk=6e^Ptgl5hzmD zV9~`)wn6Y-sWWek{Gr6z4vgehcjGa!rKY}&nB73{T*MI#(F7q!uy^vspUCod5FR7+ zl|)E~1G=oC`f`%4V?dxo>;ClX3SB?A4J#ZTDb=;Er$lZ=gakesk_ zkUmjXP!DqLpH+SpS!)hr%V52)Og@G-yCwSnZ7kMU&FiRQ1bZ9~xlp8q z0>p|=dOy)TDi>k0{na-FPhNVCFl^<4ZFV5)$p3eLal?5Rl~3@_+xZAF69f`d8(DF= z)`oa&DiUS{H)Vt`7M7j$!Lpz8(EVPrtPvBF6X8x5O47l+m&gxdy`&3;?xF@czpGd5Y~F zz>Ko2?Th^-4CA3eDW9Ony8Q@@+g0CPe2va6Y4AdoltnOOOmdo$FDj|>ub%C))t+rp6H6gdS#l14>~%dhy7WJ864~t?c;x&#s;U^lF7D|W zntabe%(qQ|c2vu?(WDOi#kYrVtQ}$_V&}1$LaJm(iwpf5w32`LW@E18f^)6Bd&-c{# z5I%ibJCuaPo&5dw7wWLTxHBr(Le%V~SEtUeBk!N#N8gFG9{LzLJpUr4pI02BAkfz@ zzwNgap*{3!*+I`TrLOoB?}8awHLVwP!l!rpOBr?|le$7Me`z%KdwS{BB4-Ciyza6_ zIBeTXA>jPOrreRluvX;TbP%>Z_3D<^X4LT_ZHdW$8`_eXTgpK1rBOo!T}#_lG>%9e zQ8*^IwBZ+?VF=#)^7Rf8XQ=EO1w8O*6xsj#NKlF5qShCPi!)bC(C($j3=)@?l#h2a zzwLK1q;NjL;sbuKDl&m}vIMO%wI)6uivSQrS#Zq8dRmbQjO=Gz>oB4SUj zfWJCwwRN#Nz+sx2$Hbfg`cbmyewZP)PV$(msquCYn<6E_`RR3ozKJ^h^wIL`QQ%mY zS?6mBxBmKG;_q3xWenlmG(oGHM-gD9zh3#mdLt!b{n_5)f;0N*Q3p!9V1V9DeC@}R zPg8sl<#m3tk`9{_rqD7K}0E!)) zv~m@3C)8(SJ$!Zb^lCkjfU(xk907ND2Ynk=TR;Q00o*{gn|DWlA@<^O!PO498tOBj z5F8V4K8#vwBMy4&mGSWuBQf-X6>fbp@?K&|R<50)I(LrXq5DrmX*3#&z^3}fQlzIh z)yLBxS>8NGiB5ERGvfg5Ynllq6k=6sCaD!1v^kg#TKwJ z!D}}bYl~OCUK2YA0lUR+#co9f3*-IH?s7c({{E2hbN1QU+1Z)d+1c4$@trjbUcBG^ zx9zVMPir64jW|quO*lwdH5746pEbPog1z3e1pUc1rB6K(-TD!Kek*%XLmAGcq1*_( zS#pkbry=JZbzvv|gZlm@6dJD9fLMg5Gg2{XZ(VR%N2^WQ&Eak3@VsEz;+6%)MQBCMAv z_Gqe@v(0s-YkdJ&n;B1b)>T!Qk6(s^TGv?AC3vd>-fD1bgjQoKXOv`jx9)dSCrFD= zaP{F9J)~&VMbGbM>~~V{N^4JWvQOef7G?{Tnd=8h1$_$J;-67QZG<%w5lHZ)W2;d* z(})4Ai|pgr=F)aogpxPB`?IcIE7A4k;5wlPiOo`yq)-zDt^dk!RR?1=NXQ93D;u#< zXJEs)ajFdA46L_Kw_d|L=z;Krg6e1Bphm5XvZ}^T)F(K9eQ-q@@-D1??FA2^o|A`2zl!L6{yC%fc^Q;qR_pszwS${h+!ATB2GUkdTd>M5mSm_} ze%a(%ZBUW5#N!z{f?^vfjx4@LhN|Y_E9w=&v+W{Iv9!j@Y>qL;1IZGrZ@m@Tl-mdj z;M-LC;5RUeovIn&mI;y_^igH=>Sf>xr3O;2o5EJSDEBE!ZGF?RVC06tfhY8Kg|%qz;27%>S@^1v^t$iQ>PE zhg%U+CM$=qipN!}z^T0Y?dVH3$X|)#D~4FK{N}QTMXo>)XFQac_3*`_DcLQfq}lv9ffzDxyy&%-X2W^TRU8JChOOfcox^>4a0msn8Whf%@vB#kNdX~V|0 zP%5zGMexOKq&*_obJ6Izx)n+VmSvk!f<=_fu+@GSmWjmHNlXHyX)}YY0-kG0(&(;iZ5Y{%&2*hqL4N$ZII&6A_k*!>nG`!sz(*U zLV{DqSR&RW7qX3c!-vuPh>V2^VrS@A-MLS(NCj)f1GzV!~VG&u7sq{)K5?hSzx>(9yRV9uLN>WU`f0T_k4t> z5c|P7MrPBm&yZ#MJnU{(sp!p>EL4Azk)=Te^AWiZ= zcap^UH@vbJTb|>lBMKN5)pJz;5q;`S(8zcnmJ#tVrLKR&S$Z&05l^_*|66IuDf~Q9 z5gr*N)L>ZWr8V@v-v75;OX$jY47*N(V(ju)|7gF4k%M~CG`+W^7%74&WhYIbSW*p+ zeRF~m!v9m4AO~p{My=R^M+>N#N^C|0tlH=&G9d&rY!6kSqPm>*^vkUwpVtc3a~^w7 zR;;*XN`kGn{CA~p`g35FDT0+eQHDG^gXo*Rx|y@gC5ne@ocHmgD4N(082T$IL44H&+Ww2|@_2 z{`+M<@zkE-Lrd0eoK(CI2p0HnuT_GrA%W**E5|BkoIQgvAAP)2)w;-VJ2K5U#m2GY zP@TCD_T^`w1x+CmOp%6BMygzRv-V zOjtKH&~?a=<&H=DE&afe>yje`KOZhQOBB0^@}Itl8H9>>L~nu{I|T;l%0*&GF6{lW*RpTmtM2_$&1!!lPLvklq#F%;H3hAp$?1jUH6wg6(&{_#JH zi&*Q+SxaAvRl^*Vw>;E;Dl;Ed)We$Nr6v`FPCjjei}1M};LHslE16pjn`9k}hx-Z6 z{G0$ocXomzaz*Yx$O#fx>RY zN&Zel$c?3aDwEOZcEvH0vU9LrIi>A!-6UDBH>0IL z(g==ewGsC#h@UySjL|YA838h`yj%8JND9!2y~^V7HJhFraYk@BVid^VHcUjC{I>Q9-%&5DIjLaV&+o=BKg&Yu!xN*KM@lfn%Oa*OGRaY)yt%u9CR~kCM;rQxv zVp`&@`i}s$sUs8g93 z;bmJckaKW9P<8HR#j`rJxL|2M?D?HC`z_S_(oG>~+pcn1A=JPv5|k-;mC^eC(m(5t zrn)T=Mkl%nrd6qgGnTZ^ioV&g(4xjmVP?D5uP?5TOH=~5!LOaD{KZwX6fEt}{J17m z1)^9nG3S zzj&}$YtmJ=~#f+;n4mzqH>D)jtN zR#-=0rkFT1?=6h;3z!6wErNdM875P5rRWp9&m+x77ogwP=U^E@+PvuqMpc|4Cx93W znCVrgM~ThZu`}fYb~bvmDe>konv}5BIvrB*bB3gre470qE>00y1S@7pUvV9NUisO5 zg%G-&=}H++`$^1G0TY|xk+Orx!SI=>h-8X4;CB3=s|c0TM2)X)aKVkV=g)zu%TN=f zJd-BRnl62*arimZzEf>6%Vy4!!ciUO_u`PVkJ-H`5UO)CB@%MzchC7z$jh9n!TS9JK2cqQcLT1h7H9`-g(!|h z6)GZVd+jM6BBFV~Y>Hy;5E6q+88HiVlAjQ?iy!AHT27fGyO4^X7nU;25`!lioi4fE z7iIm`i)m~PbuVSAbl<9>*RSSOs3v$c7LBn1)ey*gD(NIx+v9Xay*`ecBm0<%nMd>W zqK95{xzl8G*RgKP2^oHh-JLDRwF?MH@{B93$C1FP(kxwsE~F=%t|BCh6TWJioarZ^ z-i}}#yxM`7{)Z>wygdmPnlxv#1EHh0 zJq1YwyEh-PLN|gUR?z{~b{$V!PCS8x?S?g^cBvBtXT8hVNiKy*&*}$ilVg71(VrW<|U} z!HVJN&)K_3b;i1RQ&+9X+)V4LtE_tq5$CtBQEbvqdg!{!1m0tMkPO9F%Sx)WjwkaZA@!U4x^(dzmDL(6eqKmGTy;$}c)cp~p zg^L@c6}c>pYikUqd<;2F4B=&n+cnS{st0XE*9hK=yNye}h!3bM7PEsfAwOtc`!H3j z#9WUn;$b@jf7qx;3cK(DzpkvH71`?l^PYbqSMV#Pjydq6M|IAM=SP?0*n>4ZuyI)T0!=_c#3aM_6pF`vFA_S?| zD{3uN|Bphd2@XHpj~^qqVL3Yxg$i}h8nRGFt#ElOBB-}v`48OY?F%Wgbkd4g-z02( z_%;843#lGKzdT&DZdApB-E)%i%@g%9dAn|XtdD$fo7qx;#1&2xq*Z2FpSqB=_=2)db=gyZr& zG#TWk_2F_F_T$O(GCuXdmLyGq;}G>AP-ik{3g9@=2u!EJ~(m5;yNh*?E~{aIg&n3vE)pEK z@7H`)wXY;7C1}*#a}^CtWu`c2tvOGe9ke2OX<-N)p>bQY_0)FZ5q-6N+bx{D5g!(P zO-@Q@aBd@POG=nf+qwCQwdI$yq9+6k|0~VnuRw(!ypwjvaTx-B1J~e|Yf^uIPpyc? zP)5b5=bj~m-dqdS)0-xf>+ctuP%cbsVHx;CbcUc&t=?>6GK`UW864$yrs*Z=@%Did z-4CpBLXYJ?55b>U_C^}1tP2{0-v5ok1HHRI2`_8(Ms8Pj#Hu8+M5TJhT42(K5ivd3#$07E*Qa;* z#d@=2U)q2BRmDbai{FW@1j8Ti`9O`d5!mJx1V=D^( zXPtD^;Z$t|=A0$(RW`A$7z0~2Z|z45^{ebY!M{#~;VRHn4BendGVECj)6}{jQ4S)% zFsBeYwLL{HJ4{gJ?6cEYL#)%-B>BO}B<@$-)iK=!LkXIGoQlgdDK)XEYDvo6vQT3s zGYFP*zv=!92hf*fF^|Ep$#UcfRwEa67!FPe z5;TqZGxP}+1T_T16Uy_`RYffkb6)M1hI1XdI=giB-$1b!nH zcMp77%r0r~RwKsY)N^c)|Hs*B$j1uZuNZM2+$aZn8Yd!OpVXJrI^juv$=_aR4w%;q zhdFiQlekB6Tx`9ht%QC;H``QLY&jwjvO$gyuxSMBisB6x#;*AC(F3F z@-~qODEPA;PCIEVLHnK?`TnY;3n@+|)%E3NIpEipDQ!g(5FDc*wTTQC5$tq*o12){ zv~9E^VYn2=-`Mr;av?jIiAu1WS#sG&$s7xtpBgOeW2Y0+J}$xvX#DadJSI&}|GGTM z*+)SdgV(`$v1{TXxqnus4I*{Ru2*21E?SXE?g5PDT6Dsj2IPLW+9F3a9<<$UzaIAv z2(@xz9a5x6yd0jX5`7+z6;or=4#>v-gD3E|*xn_4B6ey#(yy_2#3N45iv&;DU&gbv zRPBL>wBb|0zYpCDa8&~RoL6MplQAqGl1jD~GgR;XF@E^RXQ*Vk6GZT6xiw`4;m5O! z#1YF9OQ(kJf_QuD6P`S>vNYUiv$R%_1g-G(95N<&Dnu;JGm!a?O9x!=imP)|x5PB85HecXAV^T+u| zejT*Ntb0eT*a}<%tI<4cM4La`<6jkakc*(@Xv@W6t-Vm{ypCFL#y?omK`T<%OX7oX zC+&Ob5rYqe9=%7|j$qpY;dyWxV(y_M=g~Crj^LbY{qSOSTWuR|V=G;z7;!vRNIb}viT_=S5G!~e?3?GYYOUT-R zF+scop6I~&tXgn-8l=J;f*0_lg0`fZix4Um z5e$EFAO6)P6s9JW9eB9-J!mX(ud=^T#SDg~8}^ zOB#%q>ktfd`Z7ysZ{MhxVSe<7Q*;<3M$Hmj?S87gP_wD&Qq7toqBeiia!XOQU*xcU ze)NY|ozX~CC0IYHRG83kZq4U;^97GMcm*)e)z|0KWHy%6AUwGxt3Vr z!)l(DdAzA*u>;X34yQTDXqudmCOD-IHhZdE-6DFJTV%_f$XUqhgg7%D{rUa_!&2!O zqP??@Nw@4f+?TRX?4}cqjZ{Oq*GVuV?S813H5+Bh=xjcGaTc{yBN}OSU9#~iNUCI4 z`afZ<&UBITI}Xc|#m6hRmBFJM(#1T2uT6?Q)rfu-Pm%q)=YbRX--;vrLUD)O%35qs z7X?JlU<`tCMlYj9VkM?llFHKwJe;=nK5qN>)z)T1>u5!MW>y_3+lI!N$nx?p{91$p zttGn~DC;kVCiSgph^G!n=TTF?KGHS?v zMq(j-GUPvGLH&UJOt6Oj|N5$4fL2K|DzMZJL1U07*1eWiTlVq)_)1}}+5%J6QEDu~$D<43G~9*K{b~^S%-HH`vei+b&E0h`o=DZ% zeO=S8ehp)ybvIgW6I|eXvpY}SD)?VD*ubhnB>j?x*M2>F~PvwH-Zdc$8SW zX26V+vJz~Y*MOhe=OHD1CanmN!G#?G+7MPhK+Yq9P?0TV=a>mkPlum<50LZKr@=6h zUhQBsi$OAfeE8N>90H2NccJF*K9jZQ+_Ye< zvR1tP)dgj2odp}x6^FtSzd=#CKn|)TrEC?(tY+ZNS%OSnmRv<^!h);FfNr-c+Hh|A z(yM4i>fL6bT;jECov=T=O6|I`*NY)2mqx8vBjz(+cF(jxRePWgagv}*=P&n*oInxJ zO+&4HdEM}ko3B=M=^lKpeOvK5F4v)ix>{SYv>pO2Cp-lIzSj7NUOUh+Reg(Tg~|z@ zcA0@ZaGinT#GI~4RT+xc7LkV^Wp^#ETOhklt(ZCePWIt(_s+qMLzu9V}Fmjq9>QJ zfm(4;u^$l6IrstB+6nKu92>{!#XQUD1q`m{X)X8xemSy%^`*I40A56O2^^sdB0_rW z;3=9-^|U3q-mU{~!;!BV>1hoxlw^Y}3M^SpeM$61eD$C2?5&dJb+vX5G4f`d15&LC zMvQ%d_m7H*>`@=WY*t@#XA4k#w>pdcBAr5`A(8yFxvsV|r-s_8_{}YegrOd*;V&Jx zd-(bAyJnStv$_`Ss-Fzn+M$>IotxcuTQ^0m^8lUK18`nc$Zk#M`aAC#_uF9bH=QhuD6!|<~) zbHyL7Io=1A`gY7v)ZZxw43 z>RnZgRS%>-Zc=>N!b_5nC!Mi2-PZDkXy({W$+*I^@Q_!IX)YY0Xdmgw{D(UbJBP0_ z6_`sDIUaP>&DFa?1M=2{gSrH~sS~~Jh43kQAD2GGRQTfE-+tIGoQEY_KiYiso<(T9h*BFdV9oJHf z$$>CA`45_nm|$rS_>JU8?Xs6YpFl!}WnZs10!i^SiNwaZghADxw=Rp$uRbg(d9eYJ zp|w{x>RGSu<+Y|R4F`?D+$7!*$$ub*fZ(WB8y^YG_)Lh*X)LMF*Gqa#eve4o4u;us z?{g@a4Y`eB=}{i@dj|e+p`JIhxWR%CKkf={cgd4O7B&ofIa^Nm5JT3!q*f%24l1b? z$s)I6GzR@VW9N&>V~Mxin4yKsv7vV`rw|Voc@?n+Dr|0q7rk>!YwPi5heErmOsVZ5 zn$63U&AKAM`!je&2T^}Z8Cm~1zOJx18_XhcPi!D}%G{tzcU+yu=7BT42nM zHP(uRi6Dq%?JdXuWgZG<+g~44Z6dc8>fwVY-Pe87vrR=`$t!YN;tP^)f@>2$e`d8C zNuMhQzm!gyhlh;s3d(rvb}Xu~oa+bSgEAjJ&S4GA^;)-NgPRxNKJmY#g^j{jsWooR z7l(Gv6sO3e?1?1{Y$y#O%>?ZOo8c1E-*J6vq_yPfpoAtnHugzTI%r20*#xVW(8e(7 zxlJ)iN}sVe!7jU-W{MbaQB$Q=SPb4#g7YSNEdN!W)V$#L;z>?jaYH_iGw{tAj^cbP zY|^c2QDCZVCh)Mjt+nC^B~ez-Y?MZCqoSyaSbWo+p4IlX*`zlE@(&Uk7sxB;TS(dn zKAG5akqF)uePrR>vj3n#QNl=t%TEd33N$fbnh;DV7R|IG%O88l1}DzBtn_SHaSTPaMT2u7ZH(EU(#OB*98_STlH`#B5d5@v^x;2834Igc zhj}mnXA;tCijybv)FMH~2SzNYrB>b`h5#1FN3j0KYd9lb6?+2XTgt6cm}-OmTX$hE zhK@dC(?F_25f%}*ASZchMva*NL5wlW4c3+rj-$TZTswLYkHph00KbuD&bI%BHHtn} zvu?HdC{{B?gJ+)9u)sw1MF)u!1kbPPQcsVmppLgI0^^^9wSBm$>jN_9w0YU{e~`&p zVra|fWPd|}nBa$c_Uv61ghzPnhZ6vsW+eJ^prrVap#Stcr-iNjcu=m}7ngx4sqdM> z)?9|C2$Py55vm;_J7E<=1^N^F?g9mMNy8tLfO9tM**nfZ$F7(7s|}o%agKCce$c}9G&}V z=|0Rv*`|~0a|8u-iYO=zzj9v7P1VVp6R*d1J1I9>J|OMQY*gYDsv#Vf3a}b=ZhEAM zY3zC_IgOQqdsHIZ|AlBau0RgW8h$)Y4GvRZIV6d2fk;G{ds~| zS&3D;DLt14m@qwCp8q5wC8IJF8`bQ)7%75>KGeG^Te~S+oAD0IruW5;i`I5uldYY+ zhSqM`NY`vN__lFq&y%9=%aT&*E5T1X_BJ>{cwGC6SQdzt)FRVExFv!%aXkj5+o}tf zoA6;K_@mxtxPCOD-#RKoHV?*Q4S9Y4R1uLI_(Aq&Ts(Fx{fmzk%}&@VN#2WSP4lU~ zCj`kqA4!&Ij({aCrZa)tew)P2FeiPlS8Jc}mPTKelGRMbOclDirQ*{ zC?e(E6{okJc0_)YXa`I2N!A_39@dXN5`LLO1W$>#hhGf>iPM(7I zH_l3NEja*z^``I32qd-aiadzvuv+<%h`x{$9P|WRiFq#z6t&%AK@vfO?4HP*L=TTdF(R8)wVyD?bcq8E58bJWMG2# z%YQi#SWXfM2;Od5Elr0&TzC=jL}|*BpJPmBB4dMEA~;WV?<|A|h>Te?>u(m8Zlbsx z;J(($BXoFh!PC-@TFYcv3~1VHdP5ObocCNYa_Sj5tbZ?V;P3c|j|fgYwN!r${26FH zJXw?zbl+`WP3SHmVJ+6=o2ru_z(gX!+O-2MXlQGzqY}ig1Ydpaw^;~Nk1OE3+ZA-I z)HG2}utBSbD|O`}IcsBSL^L+dOBRj&yaq$@GD_4SSbcDb=|X+|zbZy9ZKH+_ql0V1 zhL7mk4(5%>A$W6tjTPkSRAcpxrBmGp%buFYchnL(OSM@Y6B!JkP3xtX_a0{#E>H~c z6HeZ^eUvu1jwvMM@j@dZ=848yd%h!52-8`-_*3@oV$o&*N9k*-RU8_~*L$A9;uA## z`{v$6(`0w}cQIyClbe*F;Llz-0d1j0yllIwHDj%?nJx2BxbIAEX#2(FKt=b(!(H|Gt|4J@7CcSN*EhMlXix8}0f4^Snl+RjvRcSPFQ zE`0r^X00#ehIirhN8+0=0W+)6FOBgMvaCvh!8@_Ghz*Oyf>;2Kz(6R+GWya|>JOfn zu%C_EN~gcQjaaxUcT$}&BJCERw$mGL_oDHBS^*c;>~gac28Z*5 zWQLVFjg+y?TEP#3zDuXWI&eSS7-9R48Q5xDE;&nZ-&Mt&i~^TeBX-9`D>7H!naJ$7 zx#e)0w9Xb>Zbq3HyroPtxg_5P>KFTHTy(2?Pd39uhPr!z5fKqBrRn1J78%Lq_GTk( zJI>nLh}Hh}>U3LSckq!pb4-Oz@RL0t*yi)f&AR1PS$6KHoDYXU9L@VKYo=?wEUWcJ zI#3Jo*) zpR{BBV8T?JxgS6tk~buT#EsyV`@KdM34rHf53RTlZ4N4Z^sk4*FFYng-8%76I;?+# zXKv>EXAA$0ciDb#zPY*({35IbKfcN?s~cH7CHF}h5mS_v{qXU*9y{iJmF%Ds8@bO8 z;w+A?O|$QMZN5EtvE%Q$ZBC5ALFmtNvZ3tLDn11W3z4{R%FOoVo3MnRl5?rxTFq3lM^(hEIyn zqhj_K=`dM+xOkr#1M~{@co# zx`n5>OztSiX>58kR`eq5NnC{39V^>f_pJ;`8bsRVY}9w(RvFh8 zJrcROvd@ElNJp$D`tx^i-B_KH;b|)f1edv429#Iws*-LACH(0xsM0W^#B#l%9Qmne zy#uMgY5yhUcNQ$ZE zU}y=1+DOry#i@b~7CZt}=S&?@jx|odA)4_qJs}uVYesSF$y?3)QWN`lP z8pp@MgmpNSZ>yb!FQ5;swV~XEG6j;BUq4q6`?~NDaO<~`%#R-h<7AawyS|W!TqDfv zKBw}{)M6$=sR&M=Fmk<^Do__sa+}I1$bLxZ-GeiF>kNt!c_n6SrB=Ev8d#N#4p(F% zyZuX!V8J)an(d~1RdI~N6r*^A`g*f%;n<85iBk$Y?Xrl<}Pww z*S{($JoqO0(u4mr0vXrKjgmzg!p~dM-|vN?9eVzlC&hBBu(!9RA*UNVCziP6Cfu#< zx8xFOJ9u^SRyt-jS~TEig|)jab1wVcRvN2kaS;qz8-lZw-rI=?ctu+|IgRna^?ALH zh0-QSB{u!2JS18UA=4d`f_8{5zdi#mc?1pSZH8&0f*3#;;|+hG4Nc zwVLT_;fMyjkgJ{z?XmQ$*BiHCQ`W^~JLyI?w1w;RbY3O_i#At6rZ_M80#n3rLneXjAJ05lks>dZTF0{mHtyt4077ip19|m zX2kb-k`}9X(sa|!hj$;Inj?Dt_BGMo!HCJTAj%b3w7^ zbq8Hg#D*qa06lr2DL5;3MI8yh>fR_Sc4$2-vM)KZ>?!C?3Tg3O7&fASJw7LA`$rJZ zoXBz;XelOE0keRq&e3H%a8evoT>b4DLl%1s*JIcGC(TS$T z_I*&6sk#sts6PbL=KM8}ZbQbLu(1f!mQ`scEaI z9!*LMd<2vHKCCB)RO~{vg?&BXS7$nF&=)Pl9MO2OdPg)O)uRyO=Gi%@3U>fl+F^}Y zcRU6Y+f=c`?wF2p>R!?*P-ihBORKKM2Sh!=TKldc?eUaGoNw7w2G@idbetpZz5zxr zHv6bX#JyjFkB{z^OV&{mz=!MrSg%a0q7ccoSnVOWzj`@zlkgMVT(GJ*71d<7j%!3N zqcNH-nQ^f<-K2w^>QkCBEOTj^xf)YjR3o@ zZS}utM(TCA($pkDm-WL-GtVU8PB^I%IT&=8-tODiy9s&jc0%LBw5K#8K5!OeIPcu9 zbef-SncGQ?IGxlOqUw9;vWKpUaL6iQB^DJiezx$c(oe{*DLLTWyvhHGuGU?aW~v^P zBoXXbHSC2bN;xCB5Q!A;wy#YZ>h;olb(%TLIxVH9A_TC4N$tJ555$!u5ojscx7GOH zM_1gNaR_C7Yj|&wO|1YGldB5G5L`2Q*mfN@L)P(MdF}f4Ao$YfOPbM1S4Z3vuFMF>Iu=Issu+4n-;Ds_fow|iXwuWX0F9GG`q-;gPL z(8^>WX0XT4Um3Nk4&e`-*g1fx@+crAc<*6&=_7)-!+YG(HB^b4#mg`sM*`p6WZ4;z`69tG=EA9Xi>d_QxHwNC z+4WP$bQZr7oWDK6i>@k=HJ5JIn5ySWi*ka~d;I0h5_b!k!SQRzgZe^pmteeD~EKV9h6 zwpYKX!I5;}-q1tTAvm>>b`_oY<|2&d;$V1;WOD=;H5qTAD|b<8p-s&ZZ1~J)w@&X> zQeZqcE60$a>$GDR^^{lLtP#t}0Ms2aH`7wr3o|_9pb=+h4?&Qxt?pVy7*~|3 z%xi!u`(i_&p1gBe>k$_T@aSg#59~S-!0JvVKTnlKdu}porwR?`AflLaf>tq}1$X1+PWgsONi^`j zU~#nI6UxM>`GBxBR$l|jL~z0^SWus=65Nb<${`>a6ZXbc*Q7|2T7{qM4tmi**P0`* zbxGDD*z{rN`?@Y$u$B9yZ<30#g?=CG*_J)ESA$H^OiwH1B ze_Q6-g44(%mBNgRarVmw>HY4rCdHPL=PK5cc~J6mOV%2{8Nqr>{;MZMuVorc)ZDG`sar`ECFs5!Pa*uOeFNrxy@$byepAp{ID_9a-~o6fWErxEZE1$;lFFi8f}TC_i3>pMa+GiFQEtFAH*M!k~<^}sUdyWBQ8OFA>t$nxwB7 z=3A03g8qM(e9nd()Cfi$g9z9L8GYAjgmAtosdTyj?#`l(@rN}c`D}Itco=rLc9458 z12!tQY}O`un%9GvIJS9Rwqv6rPLa`S{9)|}yTqCkUyFm5x6#{Y-QohsleA&@*_VZG zk_SzPqTNi_>?g!d8#cxV_Zzu;%Lb04tZu&*24YOJ%G05M1<;1;auf-!Yqt!Kgp*@f zse-(N=N)wZ+jK`i!CatpV!87$&rOs*FTq>$KHSqoyWLxciF{FJU*#>*)5z}K^H#)a ztUrF%E;^5J4jN(I5AKaxN`_+|l*J&ldyX3^Sro!K)2W)6e z2r8%Z5xOPeNm!N&HiU)GmXA^5&grC4_=KJy=L~|OpF6anhqc56vj-;R)5wF%X#G-!<%M9jOz8yQ z>k6DFBAnnl1M}kYxiuiA-iiIF?O4`$+4L;?t1PLlEb{7#?c9S_m}`?w<;-Sj?d5q%jes>mo!q z6=QwzRQ^TXhviGwAX%8-N+i({Y?<+OtB!?k;D<1rZiqUKK8AaSaYbGL9wKb#ygE1Nrk)&H!=QTXg=(mOx)}k5&ptBTA zf+ycb^kXT@G~!m84=}C|Vmsl67D`m8ze-b;%}Lg{a!r2#S&U;o1>$z{ZB*tuG2BK= zS5SaHRxer88ZT6a8?iB~WS6=E-QtLHtJr~+nkMYqzD!ruNeU;y#~sR!p{HK(s$w$O zUVD7Fm3FX@3f6fAu>D-A5nF!a$=h$W##q;O3$6!l(7vs)JA;e#0JjEoz&ypV9at^j z4E%_eD(tPQvY?fk!MrC?Fww1|>^tbNRb>M|rrM}4Bwq+Vp4YsXcn^kzmZMDilxpXA zRE`G0w15d-zc-yUA>5n!uar_l?x@$&-gbK2T%MomsBV`$Ah;{A&tD`yoCgYflPo=k z>!mOqxE;YoyE=)?9TRTK--7vpksywr@1PNnJa~E`$LiUo>qW%)vLTUpOz_uUFbWpv^3K1pfX%~juZik2>V`erf+(8{KJ52EE!1*`Hea0T`I*o`q z>_enzW&dsO1s_@mgd4N%Z&OP!_qk&j+MX^iLa&bTp`wpd?v!|3oT z%d3aGs%FynBN*RoKo;$HR1xJsX{P!K@#;-*_2!fOJ|k|kJk*ZT91}D>T}ok*OEuzj z(X&<1v%xu95wGqsUDz8#_A?;dPQ|HwuAT&csuPhIy$&sMYm0ItHn4+6T;3H8M(*#@ zAVk-B+*3=YEoVb!3H6$6oS?F?xc#qTPa1~cT*y+55%2skl*f+g_qRQsSpySm4h|Gd>4HR8hG7! zI16%z_ft4b<7GFrFB!0!atH~|yMTRDeraR!NV#~YYPG+tMc#g2ppG6Xtx!Ysd5-BO zMC!xwb5^@>D|IWxhs+tlBO8{qATg@JdVI^YX9>e(Pqw4X^WY`C?>!b}K7*yxeg}Ga zXmBFzT_k?a9VnM?uhEBWpVp3Ihdwb0arvMz;R*|iK>+1z8<_bJg<&#Z{{8Z5JYxV1W877=V8db*8H_R5e*iJ*ciSC|A_ zZ0%Y{sG&zI$brWQ8QDIM`jM86wvt$h>6*x|pv-R0-c8U1vX}+Z_|jSME9J_&>3ZeO zW{;La7zhQZnf&t^3!8;1gT1iz<}XE>piiH+k95_Ina@*aIY>VB@mf<}fLvgeC5=3IQfEYgVdkvI5q)Zx_ULci6xaJ_2prY$&6@FwcaixllC%*e?MwGKsnZd$&-DsFE7~wu@paBZy{}8$9JgKM z*O;xPX>547mVJANdFqC=)dY7te>$QYC~p@2BGW=0CCdrM9=?YlEj^_Hsjk4xU9iU$ zG+G)clHZC|_Cmo(2;AOenyCw9U4pIOwb&>uVL}%O;P<5Kn-@RDWOc0YZ3L%M#aZ(y5pz5tXR}tnRA?-dS+*lne zu@ao{N4?p(0&tvOu_HPOPO&Y- z1(j6Qzv3TN4_R)s(d%N&=}arNAACZpN-%g(_oIRsD2&3oo2O~jnvz8X=P&bi)uG0# zdLJ^iNlPUUh{WL0{*vmvIjG<2Q>L*c^@i{h{B~s*OYRL8V)FOKed?H1H_z3Gi+T>u z)ih@Qv!u(LiPo%dHfpNZ(H`AlFgHqU1Wl(6G7)naI*M515;+?X$3Im2gt?Vmi0y88 zI9sMz^(Hv5b?LJt?J!gk;i`HA3PAJ`9K3chrYb3{-c)Yr_*YEKpa`-OSLBBTdl%2x zE6}SGG?py(S*FQvzDE#CcOXWF@G0ODYHYk3Q&-ojA#+DHUPjIKICvQ64T#vB9^pvC zjF&7WFQ%qniDaMj!pQ=xQkW=sBS=79fmyJDJ;m)Hni>3;^d@spnbIW%H}=gZL5WXyko8~mzs zsZR33jsd;8Oy~(l_kTP@$Vp-}6gN30yaYQqPh-q`TpmMPtLpA@`ix!xNjME@QOP0@ z7J{|rewj*UEs(t|pJr#-R?0ZRM+h}U?#9+#UKFNEwNJP?3%v~gFGBW_;9i?*4fMq$ z99<*PAoK(iA3ttE6Q_8c*JmNR&!s+ij&u^WAhgi5uDxJXLY#C!iGPn`&5&TT0HodP z5^khcmS_oPzsVe^Gc#3~TOTw_fih~AU@4cAJl7zQB|0O(qwkp9K4xG|j!6ybkp&Bx zA!B*XQEmAT)>5ym$3(ci@eeXhRVpOh1WRw*I$Q{ue{YDkeuSd(*WI|4lgYbzyP0Wjsn3+Xj=n6iK6Zk! zma4+gZ=pAoklNBYB~5e}RYf)jb@|MK%@Kc6v%0SyHK|iIt=RWT(i5Q$+!z|{FNg?@ z3Rmq~^Cx!nsqFo^PMjW2d}Xixg^I)hf~%YEiT%A?WtP)4rhGDYordF%7Cg&~VpLY`D?- z2N(@moq@6%d6T0W-u*0i#LG^ZWLc|IWnF@+udT04Xoa`A9wyJ`u%8*(lt6Z;B_cqz z;ZLC@>}pMA4z%Q0BL$D+}tbK5zop}{TJQkxUEJNyVaeK3GzZ(VzKfsej*wO z#;q#&NASU;uSRi*86LwYwa@Ysg1!3hn=X*%g}~P5I%Jjj?RMltHen$Gdq(4MQ%f(| zd4l&g;&zrVWREAp9&>JXZvh;4TVOcO$`1*ioL=W&o#B^Xx;KaC8yX15$OdaABA8&* zjWWf>x`w06bHRQ}xSRqA?vD4_rZ=#e4bqH%bJtE(JkP@V;w%-W2)TiRb?+_fehDI$ z7djk1El?}WB}(d51)5pn-+rexQ%#l}sWD6vJTORm@vks5LHb#Ic* z>ua#mp^$D7YC{&(0G85UiUPr2!5&$H$IE)if%8V)cuU76qSaXYEED??Zx3RiH=n^yni!F2wYf;{6x;`f@_v3B59R+bm=CqU;O7Q@Nx2k)lcg zi|;3G=qHq&_3&0jb80V*xc%OJ}Q7_y~J69lKW4d9^9Pfhlek7Wsfg@PU>11`$ z#Y`(~AyDE06%ow5a{(_iNamJcS-qskYYWx7J^4q!KiQXIigZQ&H||%wu8;G7#07|` zAxn;sK7|oA5_`k%PtnS4hz&aZK38<^xY9|-^z`$?s9 zH^U}rc0mo%c-Oj^)XDHr#|T=#av3LzwufO`q`JgN@J@HUrdSkX69=ekcGnExu22h* zUAxDIXMd7CpebBkx@?p16a4q_^Jl_C%++RDvb+XpKTc+$5L{QHu)2yU3jjBbK-kF7`}BoQWj_Z@+lALEz4Pl4^@<)RS8D=)G1AaT!kf9#XPQ`k5u1bEYf)-#VYF-D#JPbLNyIpa)`!4tuAwP2(GVn z>!;Wj3T-8oXCH=C=^q!Y8&cjaBbNR&Rnv>|14cwQ88A1fL-*qiXq!16bwq*xkAthMW^MCDX7ZH{#i{?*!-F3b;ihRhz{= zPqk3JNHKt)Ae)-DTQ8`YxJ<5@`(c?efAog+EUTqVZkY&uOl~+~0BsJ#fCg*aRJ;2E z5kc+J{O@8T6hVEfq!5a%hDgIh*#@=;UNzQj98tM3>)SEXLbZ}hO@ft9E(_D4cebhS zJNozu(E`D5ADl4HQi_Re!HA6wmgH7|8C^6Z;wrr%;={$IFFLo{smTLDQ-T%FfOwR~ zxt6V^<&lz&m`_gCJ(0v>EwLZW%Vw3qk&aj|xrIyjs~#BXxswHYiVtwXQ(2i@ZVIjr zvH!xEfeZ4Si?9QO$ise6)xe6Gr=KnN4i;N6P8Ra8^2E<6z!q$%e$l5Q2Jm6=X%eIo@ zH?1YE^6~%Mj^shC+bROnEEC5=^howxb>f3 zED$Mz-*KF&oX0A>zDL;>xhCj1xMs~xTga1H2TSA5MBjnfEB@nyE$|Fx*^7n=X0Okk zEi!ZJSmMfab4z)Wk*<>*+9|`4(n~6E$?FbM97eZu)$vhb#am~)t0_`<2zFX?X|o=$ zP;SEoOu--)kV+}AM;8}c5CQuGoBF%SG%<14U-V6Ks;&H<+dnm05 znt1RKwo{~3UBXqbl)zdZp(Hl=G-u{q2_wu0+{=^dW8RC`l89P+_F!F?o;IYj^~25ro!W}DgeSHF&z;F-$ITaBf-Gsr(kGPZtuTVH#y$SvdSk;IPG*g6C)9EZ1*5wK;dB))^ z6G#0M$VcP&~-{-xy9jJ6f=}3(B|S4 z=A2euR>FAa8o@Kkdx%M6sU(hI$gK%ygiP@AJCAS98DFGNM(|pXA=q!Byf{p6)-1wA z&OSA(;BJP@D%bS{00anEeWxWdKnv&I6Oza2YLSjpC3ezHCb+Tuu>hSwOX9aGiaAd{ z`HsmdWtiprB1V@cM!T?=un>GI7zQ0m9fK#Yei>KZO3ofkYhhAt2rADSTIdM@|LDg4 zEE~0%WC6iDSy8ytk8Sz76cmM?>pn29%Qll?(rB2^x1EbU|f$a`BW4$E#i0wSxU zsu$wAV+x1pW^9o&^#VfSeEeZY-FOO(--F?}@y6*Nz2QhUf^2uo#a2!w=>!n$F+S2( z%*9;xm)(IiTPYnlf{7ZNe`&>uEo;(^H`!UH?DoqvHTD^dr};8 zo<~*|QrNOEF>0h&LD2l}_@g>5STgslEE85K6S0orQnU%S{O5TaVVvJMV0wmva&(rQ ztiQYkSp>~p+D#XeW6?J*YN42-dK2vZe8NpVS@w02j;+p~@RMY`5tLc5&}6v$?HY>) z2&R8D%Vx`+rPHUY_Dd#JC#hO};N+A^xOkJu5zmJ$$LQ{^o$^uF6OnGM!utDqO!Coj z0eQ?$xQ^)H<}BR4;~<6e4j8&?hv8+Ne95n3ouzmWM0@|Viy0}To@0n`!lUz{kwc}) zqhl8|egyqDRjw{9R?(Ltzby>DNXXr>Z*>M+*ohZVl|kOWv;zEPOQKxELoS1 zqjQdmCj$aON^f{^VXkE=>oiI-g0~QCFV%4*xUv1tk{cocImAv8iS{ODz}b1(w?Dba zE7!X~2lu48Avo<_ki8z0k}suMIz{ywF+7IH_jX{JLLDLa(5zXEo?-gc<#Xp@rKd=1 zN^t4L8B6|b-NT{CQGjNBZ#y|bbQ$ew*$Z1~##dBFR^o%TgNWDVn8#(rw^A-4OgsQR zB{B&5&#!w}k6_*_^K~$y?IqI**0>mb=}%ePz6R6nN$HLd9JjW{1KnU-FqCUqy)y`o zwUkDd;JVgbpRll#hQ3@Fe4t;GH>R~0qT_$g&=`lP4UJgJNkg&Hz5z|X7?z$V4A<+k zMIW^4k`B-2grPY{6An*1*=&QYXuXio^f+NCgIT~}eJg6YP~qDr4BdHjWx*LN;g_o{ zdp-ij5yhZ8c}EPb8SW*qRX<3pNpNO|hP^4yX2Uqz&5k978DMP;}Bvt3xuQNt4agJQ6`Ym!QO=ss{{v)iSY{4GOaMcCY_ zx^fX@7zb?`KHdBktNcdbbz~K*WZS6CAqO<31dA0qxCwSU)vKjmyZocu#|=dq?>9J|9R@T*uw5cYwC19r zgS~vekAmhzKSB3};hRM4g+?yv3uw$bY-q^T97Ayw>I!&UI(9Q&Z=;cGnPce5oO29~ z?P~hdzW#YR>k)kAbHZB0PFmeH{2i4k+u8}iG2&5J~JkwjR>{Lb$H-|zhZ`n>vD@`QhIUJ+^W9`l3qO9Kj@n?Wx_63+3n0*GA0Yqe2 zRB!=Y!6m^ga~Jm=NUiMA5=~ny6G4$Y%fzW%gR!J?{nV+ zjDGw)-{<@KegE;u-1mK!>s;sBuj|yw^p-sFTi$B*Ij33%DL*TfmABf33}3%BfVV&X zID8JdFG$7u28Un^`*u$Ij#Pa?Dmr3^W0*d-3SSeCPp7l~v$-Fi4p@xXmAcc?R($0e z{XqYsdHZNFGGK&5GUc39EQXc~fDMkA79!%>mNQZj*CtJeiRq!NYTl6;p4Sc7H#2o0 zJS1FvZGmi~3XmP^hYW9@S<^bE88Tw3%vDgKvp>%G7oUGCnw_vKLSO19P`rI|7_!=% zW-O&bRUPhVy5J|AMo{}W-vFZsu!3t+6rK83Dn{>DW4M2v-@8SGg00aHg?vnP>ocEs z7Wd%8oLwgU`AiY~ynXqHEl*M1RX=R|g5j_CObX>}O5F7(8pPQZ-|iN+#m%ILPD+tB z{d29H3a?2;k%;Gr{}>jE(2O6k=XmDTf9!`kZ*T3vh1fWPxSCqGORMkZ=a0O-bR+(W zW`O#;P0;TO)5rL&O1ypQVMk3feTJ9i8YXZ-y-TIvRUl4~w|g)3bMiq%3!xE<>Rfvz zod1$o{;MBc4*Ys>arwv1yW<~mf(9ERbBmqvHqP2^JpVL?bl)H?v7evH@btJ*7mu00e|*{8?X`qdxckDku|0;S`21Yok; z4=&zb@4W9HF^KKfZJhe1{^ImT|9A=s0di= zR&$;8u0wYE>UE(=jDJ({TuF~uz#RjNy|M(&VlJ!35S}aOs-;e?pW`P&yj2;i(nT^S zQVbVfI_Ro%=|AvKm$%b;CG`*m&1x=uG`*>%VO=4C^aYdWh{oI37LWKSfabYebu#+6 z3j~Fifz=`?;AapzMLGE=u3qf7p0?$m6+A2X8e| zxY|ak7&6tFAad4Vd8CfMd?;R z+2o7n?cu*`QJoI<{t*pQ6CG-|OQ)~%!-ThUZ?0<)_X%IB=*b4DXkSQxF?0CIyiKAu z&>6++sX$+6C)YQA0@D{bH`P|>&+-=#Q|O^89fy z>4F=Ox|-jl+TZ+3TLvv@L)hHQJPrq4{U#N)K<+2{E4s@p(T#fGZ+_6xLwQi0R-fSC zRo;GWNcu`V=K|7H1=S_r6#_q?)1j@+J1bgF2#%chhAk;*UIrpA?;vu%J66qciMPWq zF5l3+dObC*)hbx5it)mQS#8@jS*&0hDr^qfda)DU?w@}HB@6hn1gxqy1MT)- zuMO8}Q^l8f`(HzL(Zzod_0)3kg%?Lg?uyj+_me%|o{kx~JK*5sC7V7ePV9)cziVHy z1+a>yPLwqAXQ`OnXhD=caI{U?pLpPo(53Ru1CdaYYO#ZS_B8}`X3 zo4Ah|PSRRzj6kh~@iKprimE{@3>CXKue=sOXbRc```-71hqssh@pWyM&h+&6Z*Uy|OHT$zV!4>hP6R z^qv&~abNCy6SgDHvV`6~=(tO-{}2b0?>KLV&bkpeTmDkHu`XN(qQzf{Lpx(mfwoyJ z6FK{M(4B;{>-Pq%L-;Zi6RtY#S7qMDVxNBZNg>T#l-DvqXERei%MaKuVOCQOb>aFk zes0R!SqrK&0(QdRw?&`ge}}jF*2C9vToz-E58~j2b~K;jJUE69xppbbZ$k6l;sgti z^rI7R-~F@mkD{6W{14Lh0<-=v{CvPTB02z$Wj{gYc0_{*)j}QNfZ*+S3l4lKiitzN zgLGc++NGfUpZr?zPP`B|YR#)6uJR7bfATBAJjHR8u?UsFev~F*S~h*XzgOPAF{xjx zW@@DurcPD=)HPhB{NY0ZT;#kQY`{=0&Yicf zpWWMvvqsS!vmZzK;c>@M{-pVsj`*WiL$kh*II3NQS(6~y1|r=`68 zc}m{sZ{pwN?nuk(X7UbM>E3<=bdAFF9C=xea!vD zubO=akuBur*C8!faMw#sTJr=y5$5fR-92VEtEonFTJn9A^!E$L`M41RaVuOgBTHG}hBI>z1zmyQ2kNBCb znTWOHwnm`?O-Jyev+(Wk4tV?NkI!@#2_9@A;8*@$%=!_N#Fuz`J>8PU>5!G`_h1%T zqdZ zn)gaxUgx*4>;orz{r3@*@10#y=Q@XezWcsnA@Tb8|Mh; zhi_0AO`ZlFxWo?>-hP%6U&+~ym6o1_9J#a)`nWtkVV4DBQ-Xa=Q$79RA=!k^*Ui`B8#X8T7R zJ$*7QoLU0BI!`=RRrFeGmb9mF~3$!z} zHGj91t3hH~Tn7O9`T5y7A{W7NQlJndc0=D4D7p>+;DhqE`J<6| z5H9$0-kv&DxP_yzP5eH;8yM(c{@vtl;ZC0r0V$|(a#WL(n(0zE7$Oz^PIz1JR-bL0 zCt*wZ^L+dxK;;7Vbx_962?6_Ba{Qis?VImb@_mh`+8HvP{vW>($=g4J+kDy#Py^le z)*^=u-wS>J1({<^-mVXtl>+gYzW`twhL6A2jJPf+&nE^qGk^aGx|mvr?g{@0yzSinAzIcC z`qZ7H(hPytavJnNpR=7>Xl=or`_o#%iZ6u2!6d7r+8(={dZ(Xb@RltOL+vhZCO`C# zRE!>Z2@v~o;~t|(LFfGAx7Bbj%EzZ)o7t>Zih|d>gHVLx`Vt-2R7K042hy!&z?MVJ z8iRP!P@?(2zI)*n*v)wz83@_ZLaMEuxx8_fGaB8XZYhU3q9yZh^LL&RwhyX~L$I~<2)5t8O%Meh+0v6?kj^O=Cs zuZ;}#2|HDZrC(hCSa8683Ij#<-DTJB@?#Wl$G35ODS{2p!w{Vcp>DDtk$D?>d!buA zQbX=Yqv)W-9}kxX0cFmkhgB_mj{o#y7ymS2ShJ`h`ZVhB zbLm$FxSI~O{c!=e-)8kJ@MhndY93>xHhvkWdkzJEc)FpZ(qH!I6#CAazHF=rE_5P_=HFnE?Mjb)%D-<*BPJnntP48e z2*}%8m;QNBM4rZ#p(3l}xi9YykT2o^#Sye}WoR_L)E@HYIKRxw+o4O-pAyIKx7t5G zkNv-#^7ULgT!o5D4HbU3A~!%N=JrVxw?tQg-bSwUBNsQa7N3ITDnyA^uJT8Tda;Wg ziy!-``4iFdxD{`!zkRtz3=a_IRXqiv{P|N+A8r=D;cMb;^stu-n`a@TB^CZ?q&t{l ztM&Sn=7~pBaS7b6wSIW;_VVDkr6Q=%w@Lqi{}FGuyq$g}VC^d3WFx=KVZ>}Blr-hlPn>xl0JxKVK34qs zmu&yfJfUF82mQXG&vN|bCfyh<>I=t2{-Vh6lJU;&?!Dv0Pc2P7?uth0_{Fpy;?I4$ z_3*4yovxKF$tXnZ%B`gWIyj+IWB?{A-2qp7~DMD&pG+@GFr zXovA%yj0T7pPlmr`u*maWz&V9Exxhirp^=!r#?GM?3%a5G1H@IMR$oupMyJ=`Q&)3 zy}DXQ`fidog7Vh||DkQ&Bs$@*x^9w=Q47<>E_iF{65(iCNzJi4`I5IXYLcfFNa}+s z-|ko-39p%$iPVMA%7s%4P|BvHV`&_&G`K9Sv>eMv*#7*H=7`Epf9FfoHQ8edByR;( zF8Lx~Vyo1n2PYK_c|$>M?CTJSI8F)g{bRYB%B>j%l1-JDCl^T0)p*cH4@IT#a=s+K zX4{YXlHI{{VVq1}Q;1)>NotaQ$(O`QXx~V=zLL)6qn2dB=zZ~(3cUF=^0F7nD%;~l zdri%E`I0>nD*5fvkec!5^Cg32l}qsYuF5Z`6rdDm&f0aMmFtj!kyW$qO1`9%q~^Ws z0?93RW#Z5t5=+g7)#yW3S++i3BCq-3YQE&OwC2ry`I0C(ZJ9DnR#}^xflf-ScjR>D zkKrb2c&u{>6?9x9qv5NbP*sM$kuUkAl7FDD)W4rE@zGDkxoWB`zO1UbfIhdy2(T-z zsUB4znI#d%G1R;TFx`>V{4}mW@fk7`1HZ z6xnt|z>~EHjn?uuOH?eoRCY6%8oxD$l5?_AN3JtbR;rz#l+%TdDx~m!lq#c<^W%Kf zD38HCB5mTs*_C%p?@MTDx<)~buE?)idS!>*k%n+~EiJM!g!95ZZEw?G%RM=UC(CMM!S}K_~Pe-SF<+kS2L2`GL z)lSvlWTmpg6Q&>ZWFKxaQvb`QCup-HQeM7K9YdwdEs*d1^9rK_ODxcDbd_Oj`()!L zDaT+9B@bkw^l6FlQ7ZgoI<6*N;0s|(9yKB}8r|rqczddm^!vk9RR3mT1e@}Qsf#vX zuD6dF5?cObzT*aLV+*{WKVk3%{8@MRpEpkgeoXHinwcK(vioE?YRjH9Xaas)d!a0* z{Od)gfS;EAP!>nE^OpqvR(En~R=_LR1us&AmKpwg@+mf_RHqH0k!Qn-S>5-B2q?#gO*Z=a&+JIb*)>Z_OY4omsKX|c z@Mn3@mJl{vYD|!b(9_S0L%!0xCUyCrhE9Q_|NA=rw{t%GaHNK+k}N7V<1d3HgcZ&) z{w1O9yG&2MHqAH_iRvbKd5Td^>aPtYbn>FXL#jfDo~k^`3@RKl4{`4`rd}aKaeH1Zu&;5NK7+!RB_ zrz;czOKLh=)_Z>|2#s_E{C3Yeg?$+L)!n;{vq+`Kj4~?9dPzgNpUVOVzouMbXOm=+ z*^vx;LBUix+;rDOviC&Nwos!zV9-Y!rnv(Cyd7$6r)J-RGwSp$KlU3p zbLO~V3YYh`JY_i8j|H{-P4|N0 zi5GJNp5BF_IaF^pM}cpuP&T&S+J^Gg#xZng;p@o08W@?xWE$fvJAJbv6MuKL$=Q}x z#>a5Y`p2azvWy0j7eF+noYBUiRIm}it)65|p(>v|gk00&6)drjakq&Ude%nK$X^vw z_RnZzE7?78W!Ur;fwTXAcNTFz-L%}BX1RCu|Be^Ybk3U=&f-R!Do~s4Qxob@V~s3( zzR8u$a(^&=AZ0HeHVg@-HAjt^cXubCl!0lF8E4C=;;1o}s^U#r%1*^USEN9;7Y`Z( z@QeZe|Af%oP&~=GYzm{);iks}di2eYb5MSv#vvd^z=Qk1<(`fHkMyYJY=88GF;WqX zL&|VS8v?*yzA!A3z4VT$OAu8?nZcvl#CXW{zNzp3JcIu~R8p8#!yQ*7?lmZulFwuh zr~HADupH#P;ijtIrcmbFVan6MUTMr@gFZFA9!x3I?Jg>OQzd0dpPQnB?_quf=I7qA z-!wr=t_~(sx%;jIjKdm9vy7&3)Trbeyf6;;$e2tPDtKLCB>Rvzkofm(oRTFam_CyS zEc>2Ajtw$VU*la};{>)M-SZ~Y+~{Y@r|gqa$wL1O{WmD7UvE<CVauGo721uI9)jZ|>jAhMYBa4`qvbo65rZLLF52IFP0!-h^8f8jTwR z=6?8FT(DM|YSK~l$Sf~a^{O<{HZ@2OD18(aciw0yziu}(?XSjbQB<`c&df>lExgw`nF~8~Mrk{Icm^EfXMMeil_1Y7BI{jz@P4MloasiJ;Ki6=Zw(- zPs4ge1`?#K=Z)o6n;imk!*8&I--6JjGPa`e3P!Sf$gsS_mF_Ct3ZYZsO=(RwY zK$uFT$6qiy0|vPti@t|6ai+r{7Cjdz#a({U*eal#lo!@Sv5c3Di(-`pc?Bc8_UhN= z!NGL4+IWYmIw(R&+Z_T`$h+V*CGQ${(1iDlpHu(USB-4+`^LH;%3#Lbk zl2CegbCHo6ew(LcAM7>`3!)8$>PUE#jNRBPbw(BqbO&+FN*&!l!?x z(czP2<>rXHRUkWCqK_z&vr!L*`+}f&8xm<`K4wtZFT9-psbuSa3$se7^s_E;tSr~? zNf7xaxZ+7~j!?6MzlS*oQg~8!1ZBKqO<~6$3QrHBUX#On2ONtFuX^LDq)SgVtDhWR zucDm3sPdTeTc=2>$+3c2_KhEc<;xP-6HkQOu*U;{8y94m2C8}~9C_1K;cEJ#DtzSK z59I8jwc+0v@fp@p!=n)vR$Ua)JDAVSE6kM&R^zU{#@XRg_V%I(PcR!eKBB9Hsz>S6 zX$ZJ!X4A)(3z5gy849VKPgmqxr0-168sA_DH0x%p9Qt^a|cJg(}M6zCXvX;u~M#j*H%iX->R6{}i zyQ3=Un7DjB$!&CQnhv!=w#UfG*DF4e%BFNj$W^p_7?mwFnNsu04Knvqnm%VK*D zDcz_66Ry{?h7XlvZfr z;O}#W%+5Ef(k#r0(d*UjA}|J zMhhz^to%62Z*5HC!0$}10acj4uWAsLtXT`fx4J5vbTOLH@aMrZeKrVWCot^FeOS4nT8rEoj3*`Wlk@l=wLCMcRz6F$E!C9&Cu;O#-cnOtd zX!5D{9L}#k1&Q#%4eD0ZxI!CAwWm_sQuQUU+16uHEp+)4j|v6`S2{QvbkvV7svin~ zNL5rP6_u5$3{;z;$)Y=#)K-cON;1>2F_7-YeXTarcMBtN46+xZCh$+{C;rdhMg)(a zG?gyCZ^)s>R+`pq>>nD3gq?py6C27`7KW|=8xV4-p=H)?(m2_m7!Ar>HypCYv6^`8 zO*_Xdtg6HuK{=dTR_9lxPO0M+VN`WSEhUVh zqrw4EYHGOiMmzS!E%miv_F+%$)@c3+6;!uZ>dS}Wpcg&^`6GX%2}P$yt7TN?=>*fx zd4-ya#~5_fYPdu7KahP%u8*T!OuJF0mb0Hek;UsMd#?N~s-31Q5Gm>T4`r|t-Z>&0$L4O6 zWh?GSLK=^&izUoAT>VIpC_ChIlZVsNiwZeahiD;RERkc8oDH8lohX0hEe$GhztcW~ zN)9Pov7BICNe~-xMm9mhNtI_2Wf?~;U?^FweTp@_qMQPyJzZs_)yb;XbfcXLB7*-< zO^boE>cc1}o0Ft^Fo?BIRdowuyP{N&WAhDi1l1p~7}#s+s!>7g^JEo-C{T2;%Qdn@ zDsb3PeDGwVg84?P3&sm1oa3p5J$X|7LJ%E#754o#K`M*5#r5IpP24sTN}O9 zxKZw@l-qgSDQhLdH*IQaN1Vr@I}%;t%zif3dQm)T;YKe$)46oftpIj$irWm8XCneE961YGXAgk zq5gD5C@Xzhu}Mn}W;rB@z!{adO4hQU-j??QH}L~TMoFD}go_AUU8a&z_I#C{wr$>k zdbeZL@zgLzohgtJDrn{Ez#xuJ@=vQpeaV@uP@zmR5KNz_97v5{D+g0`cX@j%n{IXs z>ta|}7U;!-TwI6tzPuxAoTNxpF;$u3VL9Pn6tsUXDw7I(=*)B{Ty13^E>=7UI^~i> z&-f5W!O8!GOooe^VAVGeQ#m#+H z>7|Cz>LiX2V;S&aDw5K1gg9BUaigAveLPZ~6vQA8_JObsSy+&s*_Z8Avx6xoNEu1` zF={Qj($#ayw_9_B36*!T0!VE#98_?^8%wSSy`k*(E!`g6XEPFfNI<}53+v-+G2Gu$RKv;1JCRV~izV6Qw4a}87Xk+7`pY7@@&=V}wp>!+Sa z^>J!we18}etTbFb1lhrlxE!S46dtOX5ue~1HNzEKGHUv`B3jlz5vRVh4ubI7?oujh zt5Z;MH)SXdv#Hxs)w`&11l=>9a;~|QRQ3H-R1H{yR|hZ?f>f3B$s1Z~wO5Bd;*+WUP#Nxrs9$c*pwg!z!r20!`iWo$3A_lbh}+y703OhJXr%ktGjMe~aYE;p&d8WVLJ-{H#-TPAd6BmP#dy6?Xj77S^fG z@SBvJ@Pb?Mt;~8v_mq;#=E~z~?gCvHZL8KjL$2Y`8SqEOsMy*X-DnNNlb^$=wkPC3 z*K|;<{oZUPQ~j+Q{l6K4LPqN#6~cc_aW?gyvzGci!d$AE5*rH z{z)=5evVuC@{Mx1bhFJ_q#mSG(wWh^^GtVM_p_WWovK4I?WRfV==?+%0Q9n1#j1bS z^~d%;qH{3J;zcC~hPP!6gf%Ex)(^V%5@9MFeOdKd-LHs<;sOwC2py?*NBc;T3ku2= z*Q*G66|Nc>Uy2nRnIFog_S6jly}s+1qnl#F0|oo&fG!nE*n(UYHClB7<2^!PkJy?+ z$_H76P6r+6f5appcn3sFW7YlRbPq${R>JoYoC+t>xb+%Zk*!NC|KUwU)<{~1(!Ok6 z7JoOAD&uuYRNFZZDU_X|@tlmu1D6?oKc82dPWADi8GRFUZKyFR9NL;m0jo$WLu)GR zs{>v2f?H!wP(o557nF3-4QBvGHr8T&=1D~3C2u6!^nNz?IL z)&Hln1&DN|V_CWZ|3_dv{r?683?S$TuUzvk-oqZ70m0g|)_o$#E0IUnWLTMON|y&sDe8v+A~C=epl}?sNWxNkgE_IWrtGmeeSlA@;=}-StC8?C;n= zXy{hju{J84EzDJejc_$xRJZT>eA@fU8E{6-a)dI+X>}nK^)s?i%71GEZn{Xy*0b32 z$_~NIrB`mSL1Zm8pcZ`FG|q$ICAe*}xu}XkwB&j? zD>@l9IhakmomvJaH(ae{PhCv?=5A-xJ&JP@HEz|qS;M!fi_PU})1lb?k(NZR?Krl* z7jaab93ID#g3>y~l&53R`Y1@lwO64GT)Aw5^7;;Z=iF{duv@kh&6xR%@(k=3bfA_F zn>qclajesx)Uit1^HGwKeY`*QY%uj&1h+drh4dWgUU87~ccYX_Cz>?$xhHKyfGO@j zI25B9oQKgGwxT}ukbXyc8cfjo8pCTK>d#I}DW6=GK&2h4^z8cqhOUSJS!qb)Dk<`| zTfqz}I4z2gLT<@ho26#O9~gcQ=HE$~ewbk?!g*slpnk}DO(;FG!UFr{DOeOQy=sUE zEjPrdsgO+yP*AzD&wl#Ca6W_;Z#E=jhl>sH?dHU5Sk8-v1}LU&I!Dn{^IlWafL8Zy}4gNB44!kW6!({Pcq zvu_wOVXnh03A2O@{H?DO3SLyf4$D#l6=k4=g$>wdXhcv*6c-zhrvQ&i4ZkU&9vC87 zezD=F5YjZ3A_u8kB?8l*oup!YA2HN`Hx?Tbn&H%j!wD*P=XPqAQDImU%D(S!D2Gh| zFEIdfMKFIAVjq92%ApQrgEks&K?h`$LRrEp!^=VCPhqly9|;em>iuD1Y|>1_%wU$h z-Ov~$zVym2ZlteH$%_eegSZNdETpZ>)de6y!>dIx0e^PsI^6_|Rc;8&&(13jg6@_Z zLWRkBZjmwFS)O}a!ghDbTPC6Nb-DV0FC_!>Ig14>8c4Qc6?d7|#Kk?T?Ugs4fr?%Y zr>hU=-4%Lpzvb4hoEi{oK=)ZatE|k`O6ZG?xpxIW+^@5ojy)0srV8DEuDRuJ($Z9< z1f0nYblBfB{<3yO2Kx9+Zr~OOzrFcXk%k;+?%Jw*Jh$OzbK3@tR&X{qU^0Y1BWcyy z+^D->iKL@vb0Y$Ny9WZ+bGhDtr%mV(=y2oq5-K~F8)!pu{x#LkYR=^z3LuNrrUd)|S>Fbp%2_gML1XonQ<_)7Y zrL%FizRtZVA^mp>7d0%;k+Tus=H`V0y_Q|djiQ1-bKhjMFXg@)%yO>g{umT8any{7 zEeL_nc{mw?lc29u^7 zS`|M_El>E~Mv-pMUHjvFwJ6XHimf(L<;tmnJ8;kT^9Y-OPQS}5b_brXk^O^9+dB(8pgRFLi2a-b}i4P9dYE%i(W_gRjLgsGys6t{Oh; z#2t!hc|iO^4HAw%ogK=aO3ynQL@V3pJ;YXJ6WLauk-Q_-{rf+$N71^LYgVSQ1X2smy$g`2Ny+l&r?!y?>r?l z^~kFT4)}3dx4iGTbq!Yryq}RS4pJ7{K9p@8kkl(GIG^a zg|e&vjT6dAnT$bJ3IgeFh>}v4(Qc#CL@#*X(GE_*ibAlWWKqMH>!ehD+l4iB2OH3D zwnC-$+a6lc)-?(gCH`hTWb|ZrCi%{0W>Lv=JzG=N61lHDEFJe(4v9%)h1phJF8KzI zLOjIu$VhI8ODMkptt+QTJjA?(IyuWpv?vDiX~@`>Cmi5H_^)xt8x9!oN@jP3yu96v z+jmx2jBNJ?hgqj68ux_j;i5^!MdW_Z5lKg4+9J;Fd>hymKhdKg$FpiR%h};DA;$G} zkCqZwLd&n76a%ig$BHEN(oBr~^ov@msBt_*KA#+5_}GEam7R`CI9rF?Jf!zUw`Ptx zwh8bEzw4gO4YSjzdIT(pb3e$_(TCk_4tD4ds~-Bm59WB9@@k}kmUOons3OIpp+}B} zA%x{kS68-cw{0;TJU8HGDm8LXf(w>2-*#Ih1dh(}QS_C}`WRKY92Tlw>VYqTn^gqugp_%;?I z7pBWF-Ah354`TJMz-LVT}T=|0;9CHF)C8j-e6RDaWAq_PKHNtBarGcc9Y)*4rr z#MmCE3*T9z*@!1?uLg-&f-fsr*=_57S@{T?kxD~tt?2fLu^w*eOy?-jmI@xQ*;v6Q z+YWWP(%gk|?zjf=P!|}IH+IsnXTxm2LJElRj-$d#Sn3^gpXt$-d_8qZh>kI_xBJ-;C0??}G7fRJW?1YBUI%yI>Vi=k z3!t2lwh&gjz;-;ec@^+Be;zBPitU(n(iFtaWom8k(pCM2L-5Nbje=hPmjxbKRX12$ z)vj*k%0qY{&TVOEsv+oaNCNDfIH6zoS1)Jo=oY9JSo!6%f4(#Qq#ea4>6hqtoYJND7R zEI7_y5X_G}j7@j!ndL9Lq^va9kqsrOz>Zwfz_^gXtm;?06qajEG?3}Gql*}qUC=$t zTOJbagiXz15}-$4e!5#niXab^zB>+F){z?hMESG!R;22n(6K1H<9mp;{Cn5QuoNo& z01g@Kfq|0BJXU)9{S0uWJVz_aJ7tfcC$EMX*_IdW;WFkrY5yEy<-tyPkU24JIByPv z?I&4EtGdMd0ao^HBuZWs*r8+Wu_ROVO#q_yeQWFTJV!b;lz4qqu+I+T@EsQnfjpeg z*xIfzkbPn#jM>~8Tpw&5)?yL{CC9odVta^ZP>4e>j5o(n!9=AQ2QiW@-DiJR#WeYL z_$v^;0or%c{va|Q!O1?ZQ-xDiwHCoK+>+L0XYNg9hY^$_>}APjD}40tn^Q$}MAw7J z)g6Ya+K25@QZ2Wt*#Wu3jL0z_5F?mXOO|&;v@4%d$@|tp zce;8rOv4U#v1cPH#_9MQmX<|4o`?4%u+I`jOjm076Y&OuP49*0?8k!cC)DF;BXE#Y zdi}3AoY+v0F;Xqa1A!{*&Qm z#VL*zA#fQvs;KCMS0-~zRFdHOK(zHC3Mi3O?P8Ou;EqGj z7DT&lg|g>0t{DLA*PeJ-*Idu5sG+B43ai>1`*Jun_Vf&GCJiBU<#>dVF2o^RTJTSn z)x;ueZS>zeU|{^s}H+U z2wW7NvA~m@gCVV)ZY!wQ*eujyxVj$JwBgZ;^7lQy<^%`qXl`;MRb6kJPWnkMh(H9B zJzEs3Wjd|r8g8Jx?N;xQd%lE{{$XrCRw(hz0=W;QyCL*TMV6V>Kj3*Afnq&9dU|V= z6YG4@+KW?^Qa%U6f0_)H{0vj6euD$r2|tldVXWB#sD;@u{ZFwIpa4y9$=TEnp6}HR zWceD542>2g)srQYiq}NKa`238HUk;^6$aanEQoHnAp>obSpm;KlMoPA(+-5}fCYST zpV`Fan6`W?q-B^*0Ph@|qPF)lW2p#`xi=&+n+p0ivF=L5!*CObKt zT@JVY5e3_BW-s_cVmtFL#Sf`|E8Hd8JuxQMW}9WYik@C#0k86?R18G(Xz+cA$G=CT zxG8(<8-lSchFe~wFjo+1vxuS0ez^OyT@`{SPNk-#vKal=a9k&yN57+ zYwLU&!|0D83F+)a8C}S$!hK~3;9-S(ET_OCMw(l(!kw10sFQ#XsKjVVxqBTRwq>1V z3^HCg)yU}^1>4UKxK0{AgP#soAb`CTL6eh4!|w&AZ=;gp6uhz@?3Tw_FlbJ^cHQz` zq2`WCkj4BWEI2Lu4P*yw5F$AGBSEJ5rS$RWLAIN7(G5xrdw2ZG57OH{XcBJp@jbk|pF&~GB zLR6Dj4)Hn13a{xb2jF3V2NMkhouDr@+;*V;!_06(a$E>Kx6Zcu%HyM0Gy%V(}&7vI6R+oxylFig1cc;dox>gH0CuJKy`6nu=?m&6;{?P zf(U^X=rw^#evL$;I2SCNY|hD4@(Fw!|MY^xFK2j+qI||~15I0KX-6mrjS zl;wODvlYG||1@6|z=`=IG&C{xGgQC*Uydm#MsMG04{jA2qiGqPrd19_si1!wei>p^ zZ^(4z=}1th%}sQ(LE*7bjRf(mX*>L?Lw37ZRMnaUyYQL8y|lyzyW0au;jG^yv9=&V zkzl`6#B9gG2<(v1;b69Sd(1c$)S&@X{X7_Cg)Vks5am2%9xLoQ!=4*bsccoure<79 zXBZFB%>Rx9(F~~eF?ZXE?h`5HU2u#9DM(DGX6)cwPeV4oq9)70UeQ#N7lYD6Yhp5~ z;(!efr-6=8+F^+GQO@+(r`gd5WAHauyiqlHf`%>l%el&L8fbxgz1{}b_^b{QwCkc- zNw1Y<>nP_5_*&}^`y8U}qTxMHfhd6svSrLH_kaW{=zyq&!n2-iLH1{fUwi(Na!9a} zb)F|+5PxC3l}bKCXj)G3L@6o0OoSv_G%K}l_%%uV<=$rwM z3s(x^PeeTMuow{R*Y{}5OcV&R&&kMkHb2O79R81m}|EO5m--FWh0xSN)aXo zcT^X27{act^{j>ij|&K={`5=^qWnKS9)=OYvddz;sAGC81unTCJ<05r+&fIky8Z20 zuAv{FvtntpI;5c3G8AaRbOUJxDIc@Dc15}oygq8BcM8kd2UnkRL}U$TJ#OeFiQW_$9hlck&W0#m_F#4> zBIYNM>M7<3rVleC>dKWF1w)6-f^elcvx@RNm^-ngiRQ(y4-|Nzi!QLhUQ>=ln7d-W zV|fh1gRCLT+!YdYkvUgFjiDAnAXPE+@e&lIF!L_@V!%)xA|pQvWgjcei{O_0%nMW3 zQ84NAF3ZR4vwh~;5K0S~3J=c9Hb_dP>2kUhYY8J=h6i%wLGufg^Dkgd;bHTmbYu>g zdCqb38we^hV>g#~Ok|k!L}(zlqlR)_x{^va_JXi(cOw9k(|N(kT-n)y;*>=m3v*h` zh-`x>Q6reuOJjwlc4V=FAsoC;pY(zYUcbC}%XWpmb< zH=%m*59T~_O}338Y|;=0*#lvT!jk^4yJhHhzgq0Ev=>Z}j<4*aseY5Kgo^=@+pT6q zP22_a{dDFz5TMf|%?tgIFB}P5k#8`<3(LluZ#6?1VICPK#D`8uQjkp^C1=*F@kMgW*!Ap$#py;CJ{s1XvLrpJOcsjh}l)XU7pH=;mo8DMVLlu zU5p?3FC`+}x$H-CA;JXxLM)D^(mb1sOklv7Q5tr^Xqhe*mvD8E8Mc~ro;x;~omf#91c)N6-*JGce$@qDYvRq7p2%!a?KM*(u;@lLLmTS;b)U0{}|AO-*HMK>U0o z+Cx<7p4FP33VTD&j#w?9gs^?>%n0BYxDv7pV90Ee0;p6O4a9xZt6{c>&2xiAk!sQh zMJgouBO18u#&{h~{30=uexB)5m)l~H5!xxbkehL$siFwH84=oErf;zQW#`h_c0uA{ zeT&?yG;WYQScfBwaLvYnNDSdQx zI_Th~@#vyty_;5V)Wxt7XT1v`s$TN05=Y4S#S1m_!W!rgbJl~D{tQcpJ|+#gc-d>E zzkc?{Q0eH^(d@}9-opwy^tKm9rytBoNas#OdE`T3AfxlJ*6Osp&Qu#5JxCC|*_^%J z2Bao@>1~G%TA2#xXJHs}0N3Gyu!83*5e;}V6NT*Ry=hdKj!?LUc@`Nvc-U)0s>LRo zjKweUz@03}wAE)VP}BTUw3+q2Z5tw^E(&{K3N<9;PCT?Z_TCt2-9T>)yREQ~LZs>Q zj_v{6gsUV>y1+37PK(L5T@0qG85S8W5Kp?Jd;m;~On=ewftG=U zEJAX_Nyke7p_+!g2AVyM!-l9csC7>O9)|Xpu#&289i6g zD}v5{<$$P?mpmGD+cp%jd=nsBANLq2bcy3AHzkHp=hNo7<=;5u?3?S3g-YhS<6Ire z6rnD7Q|jN(!~VYLtrD~#a>hXJ@r6W(GTn3D5ZG2zy(73V4Xr_`ie`ha&+X@K?6fx z**~xvrFzF86OIcE%`YLU+$)V>L;HK5g<8UmD{%*`8(HzQ)&UZM3a~9w`>O&$0KG@B zb1?KfXjWI}Js~CKQLBx@C2A0em(q|(zIsjw4LE8YLmwQqI_RsT){cg_sgsJvpy&?t;oGUX3Y$Vn>ne3YL8k?6nfm6OZmrP)0=+W+Kt$8tCPMu zZtWXZ^w`v?tz9ku4ySj%$cklsPFM{nkm8GjSYm?VvT>{qJ9yHnpsgplw`L2hh?~E% zYMJ*d>vlOk(6g7GUL5b~&Y=8VfM<1@r$*ik5Wf~zd)txXw?}1XK)#*e0Xq7Xx}?{# zYM|>+fMGUg1dKK%KOwDJG2au#&dl@Z5c$=!R~W+pg^(FC-8}^>3F(i;BKx}oY)rn6 zo=En7zN?R)Qz2@}L=e*iPBoTcC+oo$2fH64{l%ymqD4YT34}Q}kv<;bcCudGU03~T z_obOWRSP|?Hb-=z+QF__Ew**h4N`x=(u+Y78R`<0BL;2jTbv{R0PVTCG=ZHR;qHx) z=i%;O#T-OFAlv<{>u2Ot`wfGz+{2^C;L#g~>_}g9GG7>6XAM#Fxp_xUSx3SUDZj}U zFUVaCa@WJiN9t_W)5y&^)48D|jaym(&1QSlhs!!z*ocX)9Q!>ypH<7;P$sJ9S9z)6 z*jj{Wwcm(1+(eC~IXDR+G#YmwQL;l_4$!5MS$S0QQEViP@J8e}yFnyi1bc_7k3g|* zf@5pCvK7;A^CA3kx8_0(TfEcKjwL_m3JPM`!?9r2*u}jR3I_~a<#G@9u+9UE>ZuM; z;$UNEPcC!4iAiv`)icKvJ%R|r99gc<;0hYsmMpaD*3L?d4W)%=+AApeAk}PPLsJKH92u^f!DITo3XxhzY$Rle`|?lbaM1sPD-{uLwi#Y=jpjx~q(% zAo!C%#1_R3Ue89}Pq+9s)RcXJEG(X=3P9Qj{#JyNw?`t$=Iicdf`*NoMGht+E%b(U zA{CcMx#-U6MEFtu%}?HWRkH5;qu+<>FgqI9!kwj!TcWernAOpU-VzkkdpT{1w;PWKRNN&b z;V^I&v(pB5sG2MOhsdFdRx(mXr-CjYg(hCVDjFAw!?DH|Z;0*&?{Y3&M||@b0{F&4 zh2sZVFeR1jjfHfT>p?hjlOK+JoulF4iGdrn*-R;VLF4|8zN{4Xf%V%S%~NxDpq?;s zK`U)?KBLgoP8@Db&_-`;-R+?RuSUZF{grJP9lGdPFFH!+ZgNkfS}B48+KickN;Bor zDt1{F^R*0?$LMciQGF#EK4Cu5(vAq_h0rVL0FSb&kE25&L(K-+aShKJLWL(%USoyB zq91Z{#DD`YFk&A%Ix=t=GH|xJ$^2~^u1mP?&f?!p<~V^IqmSG+I78NX9wct+VKDU| zo4g@Pg~X|DJh}PZHxRwJ7u>SG%=LgM2?)d+8pOL&hG`^e?|XJ^ue%Xx2|hlq*)y-> z{)u!EE=K7`tr*~9lL_EwWxnXss%8@fT+zQqCSaPjbdg3Du6Oqp9kSer%u0Jj?}0FJ z_XG>`UFK%`lEyYIiuNg3{pM&L%xv?V&%+G0^N(OEOmwD` zYm2jl{dm#2Q9?N{J0}GE_}xrrHq^Vp&Pu4f&c0L_>&#~*XPs@}fNlDc?sRtkOtqt( zkmvB28jGFq3h#E#Ml8QIj=#5ndYyM(qk_H8S>h`g8`9?tXC3Z{a1N!$Iy~(-$Y5f% z6P;27v~AdfM3^4Vy?i=d#U92ib^c0!NsapQJm)eht$|Auqh-*Lk1QQG7MPtORMO}~ z>8qw$G3`!gB0R=?TFp~$o*Qi0jn36<`dlZ%Lom&?+#X)gw~Yy)8%dWz5jG)mdGL!EyJ-2`sS z&4-=oK|2mR-);fJJyRYc46?B}%IO~yklRNKqn-bVkQZ=J06K^1z8%Y*V-a9&cWz`i z;+?R&2|IOgkh7lv_(|fPsINIuV592H_=s)=(z^+cv3X+t{P4oQNCw4^t8j z&opuFWm}w`T3*axK$;Ys-z&}+B>aUrU0__tFVDQ8(~U@Q`kSY?P< zZHMrg^{EDy^=9hN66&-p_21%OkuNONEP<_-$G!VHR<-77`AIZ44p|Ci!SgI!UyrBi ziO3KvD?lU`VrulXc=E;!sxQ*H*s+&Wk<9(oas;v>{xpo8nVkBZgvLJJ)kJx7QY$EX z0lFyhbcD@h3`%d++LW=ZdPHgss&dRpMSxjqI}IyZn0in}y*8!(&c2_MIv;FrK5}be zaK+VhsD*@d5hSzLFN_NjqG<`yw6IQoU)7OM!^Xxq_XeVMkUtHQdr6 zfM8BqCpKVB>N%(pDF~-*d?Z!Q&K9Ib%2>{kl)XTNBM71B^NnvexOs635{QdaP?jJw zMb6-=e<@7(FZbFPv7A>^j4GI^QXUci-XD~5N=~i&q?pRrz7CDGI0gCu;@rzSq-a^` z-@X%}3=flGG38(HAC&SKJfG-T_?rfQfwvZ3@_mAmi%mZ=t2*T=1OGdL%^8q#8ae-c zQexRISIRY6^FRy(4N$X~gp|H|!dnScu{lLUBVHS+rk@AlKHBP?J}>DWg0J?UU)LiW zqo*#Kw%yQ%GS~Q&a^wIuj}|j0We{q7J%WOd@U|MoY6wlPXR(&d-D$WfbZBh~avj>I zXqdMu#ga;cDpO!PegNLE$}bYT@DMk+m3UEw!XN~jZa(^1@Uoi3X5ooCH{B!`E(9u18tM6hvvFT<6`zV!*0T9{%Ax9t9d!B5D799 zbHmsJkLFHQF#H#mgvNTqDv~acrIkMu8NzxFOe;sI=%`#B4a!yP*!p3)y`+I*#JtK9 zLzN}eX%XIve*{_9zEZ@A-md`MJ!PS;y|EnT-je00T+%x?@VNbldY6c{`3mVEwWvcW zR{uKCE7C-@V@&PY+&;PULt8*0l&oT&2Xm(>*|(nD?SUcc|BJF&p$WOi13J5>d=;-g zbuSF=TWJc(Hf{Nok*E2zKST**hB;OsWSLfCx+41 z&hZZR)8~nk-k|)11P%Q(v9*EPzK{&(w<#VmsOwrIH0!@xBWrzA>(=Gb)1V4gPm{6P zMXhVDktDfIM9_?QmOn3PQ4rIPN&3xBPrv31j#J}Mt)}V$WZnpQ z-#?Z4iec_;?pUbcBBYe@02r#zL83B3j$jTyf$B~mI%Znc6^3^KQJY9AFX@I{;RQWl z%3PGHr23L{I}3d#@d^?JisNAK3vG{z3p~yImL)DT;;w=R2$HXnTUknjFBnmY9N5Si zd4P0{Fq5`e@nJ^Lh;iP3`Vv>lXwvCY9oz7suLyT|4D%sK4AqKI*D4%A9*9^$VlV>V zO1-K~LP-U21Ul8JJpx1{+Iy&WPnRdLl&~Y}{jP zki=-BMoIGG2ntJLV(gMUlbE8CW?~YNBripc^83zQ7R>wQ_j~UT`0TxR%9%4~&YU@I za;78V*=M3E%8@;m89Nrf5Hn^5Q$_s@C$?#ks#h=r!6S+dBx=jB&}!YgQc*D&i(*D} z=9z*ytknxP#QlNJ=6WAjI%wJe zV!w7|O7Eyw(8$=yj%-&%?0g&As#gWG^3beia8HGJ2>NtDLE- zvtd~3+wIwyU8>&j8`7(MxcxPbs+%HvgPc;6N&8p?60~NoHXtW z*Njj)^0W$TVtI@`X`X~^Q52+hp-GV{T)J6|nDC;{cH7Y@UsVGAUE!J`5#5>2PgR&J zBV6S53U`a_LCxPqq>|fVqYHE2t5Vo^0v6RF6mX@nZg=b&H<^zJb|sRPxb}&k4Vwip zFUK4}(%#y6ObVw@UVNb=dGV0Bs@H7Ed0sRa&`>1~{KHG(S@b7nH*$fh7fu{0>8{A~ zl?PGb7*cLDUx$x?;Z`!V_{F`#&2idz`ms_M!z}ORMRsEahZ1VxR5(8i2|3HWkU)T| zrA4Nmt;uF65!q!R2jMPBK-W(?zi&&&1W^SorBIlM8G5IPZZI!QB}? zSX_^W?1Avq%XakKUj9-rONrF{U~exHEUzNfBu#gw>8ly#L?54W>TaG38`UdG8Ym*B znc{rSrSA4rqSJV>2g#ZRilBwl9xt1_WLnY8@|?1%qZTckHGjtFGW;wkdyGA$)*xNd zULQC3i+VvT-Wum^@A20%2&TyI-<=jt@Ct#6+R10T2P{1g3N_xeMU8*?ufGg--&cvS z@=Q$(l{J?-urD;4CD4t&ztxsbXf;Eq@4qng^A{puGFTW6`BSI4K}m^y13MulKNIk}n)_RJK`B{Vw%b!}+7)1!wzi z7&F!$^tn8+-;k@br%~maN%k@-=vcW%67@^f8u$MXp#+2mQp+8*tvsIL$+|DlR3aSA zZ$9*eD*)Ke{+dwQG))siFK^NK(w=gSE5(^&;hlTR3F3t*I)I)!;S%R^ML1(p(P!ASW|LBKcJUI_CNeqhY+@W-3HlaBaaVx}MaVxC9e?=hy zh2ikNNRDBJGjiVlfNH-PxQ8be!XfISH>@dq>>L=L2@|>cCicW8xzr2J5CDk*B$x@n zo3?OEQHc3~19DqJK6Ko}Cf8(0GNlPxjjv~=HKrV7mndyUIOqo{38 zBBExTUA$OeT2c>t0{>c1%497(nos1$@|++2snkn%i=o5auq^$aoI+?=&jI)u{&DG$ zOWw~gv)S8oL9NY6d65)0&5%k(SxH(ddf>r*--FHf5+Jo5PADSff-HDwaUt}po?3sF zb|G&)q)ae%*7jqzi#u!EnoAI0XN3E(v->oNQndzigb5(&NOGQVML{qJ5BRJ4r@sSp z-Jl!gK}R2Cf+8LU!CMkd54;kTtbKc?5{3rhs-V!O zveF{&v^T`lxAo)TtD?F9?4;xncbfyi2bnanTtJL-; zhaMT;%x+L7Y)3pR6!uWW84>Bl#{8Vo4&+*rT&T~4%y9PGgUnktkF<~M z5Qs|oB+ZtF_-5v?kCfWs@SKD1B2ozTW*?r&R5(!4-3-{+xQ_&ybYQD@vEH zwBZa6I^a0rPFiGSNm|#JaJGC`=1j~;Xa?|pdSGxTCY+ePn-(F30xGdefcJb_z7Tlt z5vCo}jeX~pX#?!@1zxU996=uT*;<*FTjJDuRu-IjE{fAq97D~a@JA7uXn*&#XSere ze(%Schi3K!AAK{(iveeFe1MuHlxM9%X4}*7o)jwrXDXQZx+eyS0Wu75S2CMqr$vfO z(R0%o-F&{neFaf7Se0@US=;E$Xj_`G1UYyv{|)5gK*rrnulapA}dZ)?sN)H)xx&`IALvf^KdN%mt*MS z%tTM-b|QDnJQ*>%sRqP%Y=@%m`V<4=e@4_ z4(#1Sw)gWifjlA{_lOmGAt6j)z+>$CjD$r>D!r8rk7^z;&kFEIb;b z_(2wqZd;N-AG5&y;Y^*zO5M{Z!#QhaJ+_2VgT28`q8LIF8^I}RQqy_H<}9wLaA6)3 zQWs#8K92lT21V*9*`pfXVc9HbL+Vf)v!6PFs+34kEe%7q{4ZRv^EbVV2&XOY2dmBV zkuOVE2641GPl?mo&q_Zxco~VX?!38WlNZrXUnqU4aS*~iH@+W?Ny|k;Dkpb)*T0l{ zWmsY`sjK=yhp->2zVM_04m9Vi+L?~proi3qaFVO*qs`J6ZCQc;){$u9<+G8{9Ii@q zG>=x|$5;T|Izs1aql&@u$?!!~2NE&1y_*zhek%<#flo?ROyBT`M;Zse^Mu4SA2@3J z8r~44+Gr8Tg#-2NY+thEB87EPho`MOTeU9bGwd4XwCytf+m5RT%4n^1Pk9R7aF5o` z;S)8AD{7#2;3)zoMyiweT(71hQ|j$$e!3DtJeWpI7Q(%5#QI?SO@(&3?U0`nd%Rf< zD~~X;^ZDmddPxL#Pe@BQ-8`AY=+p!xN9pJf3YzIDLwL0DXmcv|(eR8EtZ85Dy@rgG zwVht`h33mi2sZl#9-AV)i%0_V>9FKOft+Vf1?8w=r~Ey+9N~{i$PVyJQXZ+AQsdaP z1F3hrdK0+GA%F#kfKSqJ;`C1TWp78MnQd5T-!wP)q4TtWRo|w<{h=#7Sd67+dlCc! zPWer3Df49Tgs&lXtaKjklT0;BB5{9GIGTKTFj)(F(5Q*Zuc(V;cSf?)_+8QBUoxF$?C7bS0ZeX#v;)&1vsYtx3I}ca8L+JZz!-3=#*xr#+3zduAZn4!__< z)lY|L@tMxHY{`+-p$-(B4V{Y!R}J?KN+8vVgb-?rPL4oeaxX~VUuI5`Q&1v=6)_H$ zq@GBx#c>bGeJj;m@J^K1roc&?Tl!>3^8pY?e!*=|Sm?dkEv5QR1krI148aVn^`?q? zT=8elNQPh96?HmmdRZL^H~KeI{g`EVYCae~AKw9U%4Ot<;O?zxW{@nUwmGGiu&No! zAL&?AXmU542r|?W)UqrslH#w!_p&)4IfDK3wUm+Ak-buuaN^Z+0>Qa}=TFsysmI{R zBcOUly+)Rr%U?;ha02WFo{<)AR;mMK5vlwakfI0;s92Q{&qLoc%x&rzc4%K(6tZM# z)RS0Sgc>{zkULga{~n`&>VG?$0nHEK9x5^wGUPX$*Nv6_kOnv4s%G^R+_e#uU=B(h z$+f$f6mEA2+mPbM25(H7Yh|F%s8D4oS%9?UK7v>T!7mGR3)tT zV%h`5F7?%pB;@*q+3JeA7ggD(fc6piEvF}Q8C>m5tJ=IM!tJLy;t*m~!jRZ!urFJ@CvBuHE4`Ui4(82w z4bHU~HUpqgkiIzG{M|fVQ4iymM9AfX(wykZg?dD}1*N{jruI&+2Q^@~Gux-=;Lw%S zo7w_X6A6p0ew3h))bgJ z7CJ*53pox4^R)5cMjaE~ot0im>)pW+!9;MAK!!SnN?%G5Ti956D+IwKApocEpUBFFs(Y!-KG1W zamEbcK7_Pj$49)k!jA;bkary`7hJ}4s+2+u>lt;4%xFrz5+}*Mo^obJDk-5 zaQfXdDRlv|{Mn_?5Xj+EyNtpdQlM4lODfYLC7RmSSpdi$P+_eK<_G20Brj4b57^Vu zpOTB%VfW-fERW7Da>s%44rR8hyb_Dyi6Wg7U=HSS{!jW4QTMFEsaaSHoypr-Q^sd@yZ`!2@ zb7qCxlV%_i?-})rawI>;D#IL|K+yHqaFmUok%J}6GfH4%0a?d7<3fOADX|P<0W>v& zw(;`-RozTl&v*a9kL*n%TMP_K0j$9#6>2gxt{37F9n)EQaNhA28}w^xG5GbxG(UjZ zKiyXrejnLmI_Guqb@d-$|D)7HI(Icrq<&0wEp-qMzg{Umq&y!RddwynT#|2agbl7| zrxXrx$u0Q_s@akRA4$I3r~Q-+1_MTjn6OUfVLed7^@xkzyJw`q%~nuCZKV2Xc~$Vd zFoNuv`?$25=!+{|xNhPReOQ;o#C=G)BLrA{O3DUY($_Z)Co`}bR&*>SQ}Eo!ggk>i z8gj_6K$q`ddgYMHz@qF5kBwX#@HqcL^T*uwNUK2f?e}7z{rNKI>rU zk(@;&G6<64;asTOhqD+L5w+h@nL{-~dp_BtzXPldr2a{)JgZr(aN452DrunAAn z=FsG?F$Ps%D!ij{VSCF{mm*~_=e>qqY2*1^AU!M3x+Qi$t2BtyB)>jWkeFlN7d=?h zmXya4tnyOo8}h>Dq${g0nggTa*!B5o13<*Xai+nU&bhNp`6E(u;D_ofB6K5)m4~Ok zh#66*9u~q3EW#a!H{>MzNM%Vyc zh%b0UoP+o-7Cd5J3*|GybI+>1;q+6Jial?uI*SF>C#%6C7pc^8=7pkPAp1Zn>P5<- z$%}*})P-E|4ea61d&II+Kc+4Pp?BK3@~pAXKEz12b3@>z_jE+u`B^rnKbZckE^<+gfd$6*PQ-m#2ir1ZApWs?xg z7zp!MdxmLKL+#&zGLd$n!?PP_enB=E5ZClIZ%;uoCoala3Fxm!kPcqc?Z=dOTP}m6 zE?;&+D`K5{90B;z4dg#fcG7B_k@6eP%A95L6M~pnF`a_?H^-)IL$E&=fV+4bbo7X| z?wB*tDf|{X#8()l&m;v|#r09@Spo$NIswF#{GB)g#bBmKACXDj} zhmO@mCx3uARt}2TGl7G0nF0SRAh`iCYMm?p-;jl|3LrgL^TQM+^o9JKEvCCXCkf$S z{2az-nqj8TIm;ISAS}8sTfR1BGxn6e>T|I5;0(xc226%>N?>+7gj2AwzFku+$Dj+` zS-b4Qi#;nzOj~5nPA^Vbj95&*QHsMm*x_mh)EopuR&)rV=2ZKkJ8fOR+t zDgAy)T|uRav_SUN>C|M%lA+0W`Khc2`}tnlNvw!>)q6TmI}WVHI~jKwD?^c;qEi&% zGc#U3#90Zz{>{|%-*7GvJFyU#{^b({#d_y~6+JAVqq*_iKLz3hug99hlbJnhQK;8; zDLaJnVOFP#1Bcvys3j3eA&cVmdr}7Ckj-}oafOdnr2lvA3g5Zz$x@*ZxVvNm;Z-OO zahs~rw!_-@$jKwJbB!${2)NGFZ*a9Es~V7e3cKDP39vOQJ!OWz?(IaKshdNFzAC9S19 zXR^H5?t2OII#ij;bLz)QwLT@0K`TAH8?B@oqye+um!|9KHd?-$uD0HJfVg6Xt@<)A z1i7=3@R??X!;HzJ7}<<~K~roPOk_hxLgnkg%HPd{J24j8h)!*{BZId3whejs1=+Ee z_vMcEWknxm`8>}s>W@;97(M%AD%}?fq@C1eu;!ZsSB0|DtZYXF0bKM(&;w7-fYU}U z)fPqeVz5>9uwfsa$=(poRCd{=K9qlJ;6Z|YEtq|ulkF2h$~ieX=9$T(Wz$Hf!;#g< zg#>($rI*s0pVG5%MoskR^=sL%&Dlp_JDidZJUnVa2ocRu+w_z%oq|>BU%|Pb-ywJH zA6U(KV<;?HPONrz_Ls<1X&o0~TyGsaGq4tilaa1+hJSKdI`Fn^@!&(}u2Q&QjN5bm zBhaiWAiFsVS*&w*^J@h}%u_$v5C=bl6sq`LJA`VpllnttfMZ&xO-3Nox-&tI#VrA) z0of|{XKnVou#tETa$@6`C2X;g_5Z>o1H+$~aagJL`Ps1_XXO3v$Y3cr+Wc4R3EX@S zCqPkqHE%JMzOJ!ne+Cb_2Fq-~Ac%C_EY;)_ltQX7T;c`3{SGy2bDe3|$NhWpfIRpO zr$_Z-Cs!pjAt%GM3?K8un||!e-3fD{>wFs?8mQcd^X|huoEryyh~%uBM@A11wyZ7V zAk;z}^jE3MNHV>Ih`RwupmcjiiN%1~14zEGH=`OP4YST>;Cn4KNVDJ6mF z($e#y8T9}6fUpONPV`xGijpjk!)RR73#ZGX8;PE@rYLWy?77GtNN8(v9$Z-YH7uG* z3Db~G6xhGrzLlqq}187TUFX>1*@^u4TbWN*M4+BJy=b!4sP{b-in=OTL!c3 zH75ojG_WIw>Z0k=9{^)j58X~=0Plb=j~RZ}z6}*o$5kFZc_>*TL&sR^h8ishV}&+} zZm-n-Q|_D(htQ`J8~dwv9hAqN&k4@D(=c~T#072WEfmrLU)^2bA3mYQUL)>P!R0Ku z+(y;k4366{#(^V)iU2H2*;>ztkYXs~kDj+VvYf!8M0@$+7ATJcptjpzH_?dW_*&q8gOThlQ6%ML~ zP5kBZE(1A(f!xlG8?_Oxb5V8ZzVF*V#?7Z0`L<%!NfP$hrW}uhgWj%TEs=&xs9d+mICsN0?5# zTqlW;mEMpuAv+0nvU9p*s`Ap+QTcn>L|{Y{xOo_RZx9ght10V9oM>MjKX_UpYmLtP z#+8pHlq#1Dl$h>v#&ZgW6@L?{6jpjFSy`p$#z)+c|LXk4aP!`7XSQvn=MCIfyTbDq z{tu4Y$1)K!y3O-j8^VQ;4lMKyPop0-Oh(!<~U;HCq{_aBGfAh`u{OhH>Kb7x+!^;rANBhJ@y$CuT12ru7$YyZHe%Xc2O-5=W zzcGGFdev_|F3Fkbn?)xl`x*E@5aVD!Xb1V_;<)7*S-@{pJ=);=J^aSg_HPD+Fx=e! zoFgBz7ri(p;YHG&_Upsb3xlB)^~TLVxUZA#c*8%#h60R!yQu11EYdT?ruJrSi~LU5 znhytI?G^g>gPXvIGvI?!j=1%DBXVVY^K(xhYDw~kQDwJ3#5}I$Z2bokUYC~n!x-}$ zLLjUD<>zmH9I&c({piO{iTx+%cc#DVh(Tz78K9^( zz#57xcKjGxB&En0#gH*-0z%sP6;mQt=tWofBDaOtII+Nee#a0!`>anO4@w9k(T47B zf*tdS^S{-N_P*?&Lv2-nt!2G`n+v(Wgd|Tj(|MBcg?=uCJ3(B{##noHw9K!{Mto)X z`Ux}*Q;_0Jw01NDF4QeoV;!0E*M84*lV5JDjEbfk3dC!#Y!CD18B$#d_mP-LSB=~` zPrZQYnfys8)M>M#U_<=VH;mGmGj`c>u4#{hpF&#?Z)awD(f=5nKR(FBIAdnUQ0)Q# zR<6tT;hjWNOCs`BgjD!F>}K8tTEaUO^*!d_v5;?#^KWu6SAi~sK?c5&!BkQR4DTN0 z|2qOC`5m7Zr}uVcjm!P|K}V34=fFTliEw}T6uB7D8a&wF@W=H@dL+aw+T@4WZ*i|$ z^~?T9IA)FZ0AiDrNLPLl@$=z({07kF5?mK1GSS}nXKWnL$bhZn6CiW=tz;~UD0l@~ z)4NRNvAmwxocxZvFx^AHuaJ#-QWUHzKK@JLO!$-^xXbbx_UxId{;TcSE0g@2x^>QF z4+0z+9Lz-4Zt}Z@q$kTl;WuVoK^$ycy}Zy5A?Y{H#(I+fCchYVC)rf>vUP+I(VVXtm(utKThtL3BPKJ@t_>toCL<48$&;ker)?~Wu(sige)xC_lt zOHoujsv(%JYw)Y|(s4UFohg5{ry&_qf6}Mm5v@3wN{749HI0PT`QhST$`8@fHjSjA<`gN9oHNh}T8GP}MoOl#OMrWBnv{>YV~OaRT7sk9 zga-H^X`~fqsR4oY#SP$5ysU@RfZ%ujt9zPMNcwcts!Nk}93})o^KM0FzG?~SE#jqc zI$40*9Ilo~5!4hZInc>?X(nAhhg`|=u6TzcE~YIhUgQ>yszuit?CH|rI$YooBO$xO zCk;py7^{arT%?puhJMmOD*U9ui~0>f!^&6*<^o=$d~lsJZH$rnnu@F~wGKfec-5Qw z<<_^i+a)de(j^6EmUH6F!Eq9jDkj;Vuw_WK4qYPSJCQN)Fg46Q@D zqj(Aaf$>r-@6fNSIof-@0f!Y1B1Ymz`MpsDt@PtHqRcn(aZaoR{o#l@Pk6jYeN6XY z%nayKlxbFO`26wvc!$%k=4X2W#I&X67gJL^DcZGeWSW{UV_KH~i(BPo!*attJ z%kZR6_?sg*s*5*eus>Q_0JW$Z4x#(-w+&A8DS9?F!Ow98s!`2X4Q`?UEgxCuN)3Gh zmTNyrO&R%h5RB0&2gzNowJ{Zb>wPdIC7(4wRm#Wr`sn%)PS{Z3*+>C&?&sooQ&m7D z(k20vZ8o^2AXXnvrT2@mN3N?wnysEvj;R*eiB`Eu8vO93*!NNSF9i^_5!Q%1WPUF0 zLzaNXn9lZH=(<~DZ}Gv@>gh{IZ7_nSRdu+q#0G#C1xRpW`L)57uDeS^OtX7OP^(fJ zYHI0)d7T0E_CYVHfG#Pe+2U1o4sdfviIOe2EJEcW`Op$?X$~pV-5g9cNWBDt7)qrx z>%u6syEM*pqelcC@xrU>DRl`n$5R?YWq&jTiYCn6rMaejBu3{Q;u?Skkc5Y5IhHpA z;r2ej!ivXjcOHNe6&-0?DIn(n(2ZA*Bb%Zxe#QGpdQ)qt2gPjCBiKMG^)tEm_M-E? zXm-zIb=_&@8IYjTRdO{ohx)SJ{*o)sV*wKOq&4n7bU7NUr|8#W7|;Gy>|!bdepSB~ z14(!ym1kpj8LN0y(!(VnVS!{kjv<3bql@XOZpc)4U#}CW zx2$?tY;Vf2>*%a%cb%K5FRu7o9e@cfszyuN_F{+aTIpGn!Nbk;1MbGIZZC!~xVO%i z?msL}F*W0=!rvYinKJAqxgu-zXv&*-K2Qb_k!OsZuv+6-JNs=E!_!ibTeJ|?f{TK(YeYxKN%Z% zRCWGBCT84N`v}Q4PN;(`!rkJ2=3b3B90Mh$Cfo&F6V=$q`ecinokJ*wlds{axn2*}0fkJ`HKZ+epN=P zWBs6Kgf~2cIuliTq{I8Y*xOWU4=c0_mM8xf7txr|*&dyX?wD|MRAZP7!NX!$>whaA zXUa#^)TN(68Y)#IGEz6;9_R2si}UE{Gj$PNE#RrUsSFPG9S{d})`{!_fdd&vA$`C< z05cM(^lp@C#|jb_`n}?Tw6Z7Oi|MHHZ;aqr>O*l}jbax13L2t{9ukzjzZN@E$nK8m zF_rU-*^wYMgEP3Ns|#qg-Ct=cM(`h?!T{FRd73-|5Ie>x9ZxQ%SN(g--=55D45f39 z*fb1YcGNcj-CDUD*s8PKH%>DCjj-6S#%>}e?E970St*Lgn6lA^m?Nbs2$xvGY#%Nq zn&RWY-h-t9rY1x*#r42~R)tE7Nf|CpFo#P@3f_n1-BAs0O~KMLrpEXv{zE0c$G?CZ zRm)vLu1X#V6)H`n@DRy~PULhfYg2h&casP5bnzu`s_NrQ584_!nyl)RAqFU3@BRt9 zmFTIekDtjS7B($CD30S7-}##mdD_5RK~cQ`fQ^Lo(LLm)LOKO_KzolyU)rISsmjAt z>KQ5s8ay3&WZfD)WXyn5IMAy8plq}bh1EJNV4$}Tl_{h_rj|h5{uUq&=4>9}9)VVD zt9~hV#z)*7$eEWwcHkO-!eQpz#H>~XJ+dRm7od~sVGS;{!w=k1JT~Vy;3_>XapBR` zR5YQ32TaBv4t2 zA0U`L08+uK7a@TROUKa56CtSVM)c*Z0g$;KCSl`TnFxVO^+JOWSyb36SMJ9Yh*}S8 zAi^E#kNUMf5GX$5EgkWL1aNJm+!73Io^?vO@RnDw!-^uV`?1F~@wHN$Amx&?KQ;}t zj8>|#f9>v%E;We|wU#FU#sVL-2RTUoY8ss5MX&Y;6et_W`-W=sl;mul160lX@;KCV zvHAo$5~bI}HTt+8)$qsN(;!P-kHoKGQy|l(ag=t{%A0i}||&^~jd>pwWdk zE|L0}ACuskJyXKLXNEM&6u!cq&emZksG2IN=)vyBAUZM|()W?)P`zpns@G0O4^Ms% zK`)r3NK_9Y?G%XCh9B#2Gssk|8r^JZB+dI4F#NDflyD|TQzMd8PLr14B1G`J0^WGj zRImrlPRKsjUO~HUd$2O}Bjg@NQTPv7t)jy!bE6l9m>a!$wRls-q6o^=OT7i)w|B|y zicX;mHV%QozO~Mdj?4rgpYMbuB^pN?z3BRLR`54Ykq%M$ci2Ug`SrG@qmM&S;UEPQ z*go&nij`Tk^9NAd{T74T23CPm2wM!Q zNA}Fl>Ys(w2gr+8IUmx6hi`p%`LT4qw3|0X4R2$%4whlILgr&-H?76mE5qrm{0!cQ ze*`M#HBCALMjKe~OLHU{v^YL(k!1J;7}x6Yt7Q^sB6uZuU&thkvZ_>inZKJuHIp!9 zu9KvvkY>i>Y$}Da@7i;KTxW0TN!J#lY{)2hnhT(L3CbUdA)T1S+qAWW(dN1GFX*kh zSpwwQ7Uc}19x3Mxmux)FE@oWBl?0RUo9|i0K1G=*xv(x@Oh)%pK<&Sag;P+x>2}n@HfkOA= zz;@~Ycy8;xx}Ng5n~Nn|dZ3q(^?V{0WXU1$!CDD);#v%Ddh)fpD31L(wCyltL!dB* zs`D`g{UrP{6rjtAX`I7M#PU0+$3YdXK% zOmZ*4`qga)`T@pZQq|Uh_wZS7Qq@PB-^7oU1}scqI+C{7fH=f2^<|}o*>C#>-JLeDTVgxaWQij(-pBEr@e6|Fu4)v&fL1Q$>gZxy~4B69AEv1;W zuLaBP;W7ZC(hut*<@O#f!SWGF{l|@vyQWw6;(&6n257^_Nb0jkQke{|hsol4+iuCz z)cm?1y;=*t!h3x9yi`rQE`nkNfW>>H@l@Ra@+jJfQH3e$J!tqd_!a&}9rn>zv9OB{ z;be2?5cp{Os~BO)QS8Hay7z`wj$tAMGuDlP%v5+7E3*BdluKKVfS^$Bd8&OKM1~p1 z-36m?KqzM~ zF~CE`ytR>FHh^geogaf`G-E89llwmkiaWX%)dUUPc?C5>!Kf6FvZqt`4sj+BeXBS6o;EfV?lTHg*7@x+D1DsH}>l+k9#?gZ5mk#eAE~sOD(k{CHP8kV5M<53OyXh;T#RU$=>mx1l}#x zT*acQFXYhi4;TvaQa_EP!yfOWO93{z#0^Be^Mm6g#A=O}pc}f}=+p^hM+4{=3gwR= z5jsymVe!}+jYT2wE3mrv3TFQfpO#~Du%Loo!B!&{SETJ53iT@NE6Zmr^&GiJn`C_5gIZ`sso-4s`|0Fgy zfhPR2ql(4g*l47Lavkm-ne-1pQ}kt> zEnVKw*tcVsUk7U5vmX1hAlSBbAP}Tx_9Ca(Ksno9!-z9qlSa^|*XnxlwFi=1*O(}; zAN+DLDNo^kv|3PJ_>-W9UH`xtn7`+bJ@^U{6?idc+WZw5f-GC`5-pV|A$A~Z1t^bS z!&EdK#KIO+(OiQ4#3~L?rZ$9uZiy8cD(<|Wp z_<-n)S(v-HSwMx5Yw+l3-Xy_K#Uf7~k`8QvMn-q4E|?0oO67F93gZvojNR&bNe?9* zk|3A!TKt`xsb!}v1;4{ZyUzEGTcr^uZM7RUZo?KeZ!>1zW1I8>H8p{f43jYvVnesK zf!vvmV62_cAc;D}s?aTv%T{hh4@Enb@`jEIy&ox-c^bQndzBPtD%%AO@D3ot+N1~N zpFz%$Z>xYg4kb080-4U=B*kHhMtO%2Cfs%a7P~kgH&u!Z!M^oV|!5lm!kg$ie#f3}po|-(c(u54di_t?9cDSNf z8*$suVc;IDP%el1O3JTqbf)v$LA)z#u^>gQBK!JGF3rZ#+2atEu(xzH{5@gUt38CJ z09fOAn}MCpL0|X}OfQ7W{`B%rkZkyK(4&fOukL{O)%F5%kZ*_b^v1J%J-XCG+vfs8 zX;(l@Z!<~mrj}Q5RYx^O2&kP*;rkIg`7C&Kkz2hR&295Uu7#c83^D<4$F5)T48-i) zW=SuKn40#%h&)NI?oJKcp=%7^A4LZ_i)nMJ?=NE&)ZCq1S7EDhT_fpClg#$?@p>?q zj3kJpzE4PLbYZ2WHHG0lt;f@)Cs1_rTKp>*h!Ta%p)fDx?>xT3dK(AdmwGsl^rTZA0+<{RFr7cFh ztN9k4iqSanA{SdxL_BJ~z=9ONCJqCH9|I*+wGIutqCNSTYT<2h2V z-@;b`OTH2O)9;`J->VB?G3Do_6gv0IaZlMkVtoheQ3X^2F=tWk{8{j+=hniip}K%a z)Uc&p7r=443g0}B#U?%k{tJgt<$09bT8Zs8s$l>@7z*X!zwu6V73wZ9a?Tp}&B!iLbizP#EGU?m{=)aQIF=1AqqqgkM|U z#%{9lZD~DRRj}ITw_zaeH_g$ddru7?SFx5 z+yqU}2PZL4v6G-d@jnEx&>|8-k2((hj)V2F_REt2k35E7ISFsF3D&PDtRyF{tw-G; z^Sj;cscbwn7$Ayh`jLTrQQwU&eQ^>&n9bH&9;1(k(G6cPNzr53)srEekKL(y92($V zU?5uBQwlXm>IpP==gP_Mq`^q&Wb;XX+RO)V)B?(Cxq8xz&NWCgL}w=DMHkw_hmH!) zw3=bj1hky=l^gkNENJSLL`-;j9iZ-O6YWMR^*~DLL=gGI;}9Wt)k)h-&1ax;a)5vj z2nW-_8|eB0Lx+<-1Uf9o@$1v;Cp|l%h9esv=P(OeQoY4bj3vjNt!VETgvYjPSi?tp=<}%P5>69yKCE}86?S?kNaoZdl%pNc9SQ}CaIrXI8#>K)qS}qi zQX*weM7fi^#t+X}JmtD^J)tkEX_r#WA$s`4^iv>x)>IU`pM?>J`#@_|KCK?{g41!j zDG1a@bQNn3)~8b2wE7;j(zWZoBYhrVaTjf)D3Y1*+Ir`X0!1PEVU!V!F593 z#w7^3w)i7M5IV#MC42}hkPL$5N96Ic(PxssBb0Zu`e1;q5732ZK!HlIMTxMl>Vst-Xb9K4lDjW(r0tS3Gu0su6PuprKX zzl$xfKy%4|eSaIgKYFHR0F~dzLan_j?V++a>*M)Iqv`s$5cqUI;)G~hT|Yp6_iZcA zzRF)v?fOm-T*VkDvP4t)AK_s6`9DxsJf=Te4^7`aD0Euy9_9& zP<(8%Jw?3_D5|#9qi+sRewGD$FR#`7V!bU*+*gmYFb5_46`aLD-N?1Hr``?fQD9Dh zj1TtIc(A^wTyE8IG$m^2S6h$+iZ`YEfuGcW!3MGW9=5;Pi!gdoWXmQL5x+hkXZ_{; zH8#hv<(A&!gZUc_e*Rr3*J_$DkxgqYv2umMb1cxYbC5OPf)QpsK&{eB;88R;|92oR zbaO`|gw`GD!d)qW@}7|Uj-iX+LFrNR7>3JhpdVY>c^lA4h1R*b|8#wn+}w}n>ak`y z8Uz$2p91^9nZ0S^L%0-N!`zm>3uYq+noh%e8(iT-$hfRxAxnE;myznnGdEt!Df;D zZw}~HK+yOzrc(JY%v0g#_*eE7swszId#e~~CB*h!G8w4o&L%J@0qLgddYB437?d3i zzYhWv6F6zQ%nM?u^(D~1z}Mb7EN}4(;5t&v7w8iF3W<;($K6Mwy~f`$Xt7S(uV9Wh zR@4XbQ)UE#NBdAv5B$=*=+kM&0gD^7S775u<^mQp8bOv)YzS5MC^Ebk*s$1*OTG0; zVplk~4_!RP>sxn_aNc7CMTKGGTkEGEK$g|@p4%s)#N}dei|SYf3U-U>JqU>f zA7D-LunHlfT!kL{n2=7y<83{Fus*u+y7m<8(IHwq(z440RD)#FkKzOM`MftM;{5Te z(aqx2*_!~vi9E*Fdr?CG3V%|JUjmjb&tPx4cM&7F9FCn_h$7|b*19W`(WTf<-_{`Ez^ZdmDiCO+OJF5UZrIRN z&w~h$D)qRr$W@;Q-*$x^H9cp6R}X(D9<@8=$9|;V1JMT``cdp&%v*S8k)t0&z0t-W zRbD`?XnDowSi_=l(WgL)Xz%Pt^+EExcRcjX)VK>Ri)y+X*22}FSqo2cM^l%>AhKL` zgUE5mU9Y8@8cV3$R6h?0HGN*f^a}~>nzw$q7+U%l*#956V940!eFfn_^mC+QKTNj} z#WW@0%UqNawqXwJ-@)6n2=-%d}9w&2EJ~TO4umh?L6p zs4!^+y!>ulkb2SZeCVws@-fGQ-0PI`5wd9@z^Pc@;4MG44FV*tdFW#G?uL*@imV(2 zX+A$+QseYyM@jZj(rR--j@3DMZ2t4O16_C$p1B!0@;jaU;Y7BSOdsXqpJfmf)df2m z0_b8kiqz`B654c-_wh?jH*#>e$bX2V-r?c+dT$f@ewc+{OWSdP7H3@m>Q5HOI!_v^ zlVCI&4DqmG15DbYT=Q_WSNb%Ly=4PYt&AG{sew0u54oK{dh;_bjIb_sIQb8e%X!f4 z!I+jG9vlysK@%fd`X?qx6h>1X6hGM?h;+n3SIZmC&jWG~JOg)2D`-yqohx|^!j=&> z6ezj8r2%H6Vr(VD;Ms(y5V|-N{S6p-24kq*q;_8@-W-M_?09w!H8URZwaOlxm+r%b1hiRIbAr<>5UXhr7VT6g$x2 zd(ef%z5wwY*u{nKR2%+taU@m$R16b7d^-3qJ5yhU3l00Z zcs#-n_0T522!?Pc4XfbJawGf>_d&Sby8`D9JO)zhIxLF(31D)6xWK_s)Cjqa<@NOw z`XTVVKjF;%C~!!~(qk)6$El<(AL$2=jz=Fjo+1TcM;}gf?r}6)bPN{Rn5Xm*9JBSk z5GRWo-zVxvn8%}5TX>TbS3n`Z%IFhrRGO;K67P?y^#~$ep`S=C>-BJKO~z@Xb_|m4 z98cB{L9FFv3DP*mF7JuhREB4~7Dc=3bz+#lE^kXP( zwSES*?@@%%?Ftl*vw-KdR^UTjwF2ij{;pz;emTwgjUQ<6!TdW|fv6g^2PH&vyZ(i} z4j%_m<1w&|rQ`Iuq-w`$ry&J?6{_{%Y_;w6u5|4*P6F^K0kSH=Zff4aKG5~pY}D6@ za@#Xc;Cka26w?{u1LA7b7vrK(U}sV-WXza+d=NM-OvVAa_D;Pmg|(qG_hkJp67O~; z>E}}6XmHh{Bw!q~)q^tjg#n z;}kbiKb_{6V{89-{9kI-rlN?)2=vpGb^?75lIz-|TV$E|u@ErsOg`aCC8Izgx^&QM zav^}PPCDU8Zlf{P0)V|qC*0}yD8TsV$P@nbN;-Zuhcp3NKYjw{W3i0UPv8TB{bL-o z3So;uY<F4jvFx(w9bb^)jlnIji=qDf2j7Sb)j2KBuw#_{7~ z{V|Gf#(HXUwn*T!l`tuH^{A@0;QKiDyTf9b5Z~S^M2k#6$PGHe~haI}C zgcmLY%&qhF zG?i`#VyarCPo@$#K!2Je`_6Lx2x{Acgz z(h{r~!_OAPFZHoDP&SEg>yv=kJKtJxANC}mJ#8{Tt0;xmru8PoudCzHs3;e<2Fwd& z27q|A8>N^O^wu$i`V!CqpoiOT+zEioQPR2@V0@ejcBd-Qt7xl)8nd59EAtoXhnpiY zS)z3TGAqYeKqPi_o{z<4DeC_aeZo(s58ZmcZm(b&HZ8yh48xTU>G3PXgb$&M02F4{ zo^t171cqhkR;(h`WH5uTit!E&I8o?yjOx+`d|fv|pKsoPs`*bUylDJv47qeIm`TN# zXt-)R9@8Gvm(W84hIbmk%JrLW03lJ!&~5D$sHWm)fn?n0=pQ51M)ch@1$eyiDR|v` zoJNYKfW;oYio^EM8G1$!jG+1-7Ne=6X{cK{6@^Qmz`GgKc;`=`bB_)D-%LEN4#2uA zSb|nmk3skM<2pckn?tpC21M72r_kG)IcQ3Jz0RAuvk~JHkMm zHD=>o$xwWSH*XdKMM0p~hJmiz@-a^*HTW7f1eCFIF#6c)*5pQ$60GIohJ)Ftd81Xc zF__bNU^_pQfE4a%(R}`}6Ru`nzl!&GItQ=NCXQ78O?GD9YeO!&LD!CSo%dhL--*78 zG{8z*Fg8eK2Hsh+KvXCAuRggb7d8mLeDXkc*N5U?{$zAGV*!|x80emXc&Ez(+iMsG zd=Jr~+op+D0LmV-{tEMHa;D5-XsTi+`18ggC|6ztoINMWID=PHCf=I)RGM@O^%#N4CCWN=Cnz`_g>y_OEwrF)Xjpcs;D6k!@>Y3 zkdy%+Ye%5BkX*SMlHY0dr)c&dtY?9Pwk+V=a39QR`51j6t$^nv7bD=_kl|rM7UXcTO^bKs8$ti> z*>zrY?MWy!QN;g|8u&VnO848@(w!IWJn2stSbtD0k}3{Da=iRDuqz&+3U?&SyO3_1 z%^-$C6S&05mk?hZ{xl})=obAH`m`@3NAXoxYiCDgmIin)^1^sTIuTxO%R6Y)+5iId zkJ=%=f2J1)j4)mM~=b62m(ZJ?|cDNPyY2d0Y0dDA`f%2{TNpx-i zH?s3S%AeJLMJG)9(==i`Cg4yN7Wm~&dUp!DQVHVk3n?AuH67Kwg)olht@;N36;_nD z5ML9t8z0cQ1I>R00S>$)^Lsdyh=xOsp@cF5Xtq?LAMvP*tb-Rn@Ag3quql4EpOl9N zMt8^#39&h}hJKg{h}$}(;{Y;_96{f4J2A(ZyI|BZ?1ZRM@unRDK?r2Jd58XSx)X$! zVUQCwa6&tZbH?Ev`cYK93#424njQA;=fIKMci^ApIsG*L&yME)1Bh(h37Sbg1|so0 zWJT$ZJ#nV%n#Jp{V=w}sxxIi$Au|H?edv50P``Q))?t$tZZ&K6K=Ld&X$Ot@3wRf% z0h;6Y>R+X}dUSNO2JbGv2%AM?MxC3v24&lh*?G(L-P3_8Q6D8nQ&9s*A!ILzY|9Bd z9DEk!+0ybokP({q>Zc+{ll~l?P3~wUHlq#+$ar(*F90=L(m=ClNk{zxft3mZ^;W-V z=V23-Zi(AbsF;LpdEQgrU15UN??)FXdUQS0h^p;yGaj(pp}Jyffx^r3W_+Qd#-*!3 z^{Reort6v3e$v#v`YvAPcfI_-Tea|3ZEXLmqBc&2ioovwO;MUOXq$s&%e+Fx6_5W= z-cs{jf#UoBR7%D`>8S#R3v!eeD)u~zfqzF?``+#0)oX$Z6b?sw#uO;h{sRPE*!8t+ z3oTT9{oet@5$9{Uvbsl8LYT^H`V0k^gP%+j2zbd+AR-t0|BXIp~ ztCp5O3KZ}Df3pl+_qCWd6)JYQQuxQE2sSJJ?-r@$x33EnqyG~Cg5oTknk)W4DEQK^ z=F7v$vTjnL;%O(kKI!dHHuwzg*`uqD##B1`k-?cw`_!--Jm({W6D=M70=(U3AnvR7 z!z@p7-e81nX^xjSyHRXdT>(ZGf~*8%Dplrwm1>^&5EnT=u{MBo6LCXf>Fr9~=_MI$ z*@bRvm#m@Bm-@iVZN3o+G%DA^lY2~MAeCOLL8hJn7bjNIukvhf=GJDI;Y9V>)j0g~ z8~o6#8$-!;z07R}oUk7Kpk!!g^&z(CuHjiH0AR*%J?PZ|>m1piYmMD- zoz$JmRqT$v5jTPA-Z8q;z)vdoQuyu4;jHeP$_+NucBis0OYk% z26yXvA`1631q2{8n6~c0B17e0IKf=)R#T6wimnaXB>?rBun7iA1WCJ zlJa&XeC)60`7o4u2#k$2=CZjDE0ImAt5DTgqlPWNTltGE3vR1ijeK`*#(qeUgGO*6 zRS0YPpmGUR4Q@ubvilm5jV%<=Z@swIm0k8WG8?A+t?~+z-HbJkVHntbq&~#F$T<0Q zKXyUjsOzKV5=}9wKkt*+>wbSnd^%t{QPXAv8o%NW~5E!2&>xZjRgGD5ha3I<5{h6J;}3g7-vxIb4EnNUaGV`_L^~% z4GVhOSfgNoWP~ki+G7j^fVV4QL;bGOpMAE`*t44qbck7KJnJn8S|jt8;|Gkc%)?|X z>!6EGZy0+x@F_>S_>S8shOvqljQ6{-ZkvrQSZaJNUadFo@777z$PxXx(T^>D+xP;e zY@#t4VaQ{^NL&T%z4h1Hufs)wQ*Q6?SZ+k6{>8YB`2;biL3J zL!XT|1W;{{WlnTvumLfc{>!|ev^Pwkkn78F!&$oFagr1(Tv>3c;Tr`Ne}Nlub9)#f zNxONOD|1gYWZBS>A%;SV8*PZ98kON5)%>~|SHFxmK#@Mb6<*NgtseBlm{r}$sjAhN zUM(`f%)A51RBuNbV(DUkbQS(0y8mam0XH+&ECXTaD!^`s8G0g&5g%GxSK5=-Z?F@s zOltL_t2qF3c;6SD=;089KZP$?6H9k;4bv!m*D9pD)EK6BqsLW-Xk?tm0CLh>d%;%< zy%#1M5D4MB3Lf60!8zi48l0<#A1K6uaP>HYnJy(563H!L8GLBf*goRM7-o^~vz74a zA7xlb^PgVh#9OeZ)dLL3D7g#p->@tPQBE-YA$q21|G4c(r5l$cDB?XhWE;jBexTSr zYv7SmWGJG0;f4XE>ahyU#~b6+Em-41MY9*VSMQi&4}D?yRo4Nu`Q6)tk-)@|Slu?d zx5Ac5QHC%DWz25{8!a+~(Gh!)y`grwKT`Ltg0vh1a1M>c9Co6!nsh}tWPZ@!prO?o zgP#~Bom_SsTh*xLgQ^V=h9hos|8RpRvmb8QrJ&8DE1YQNKHQ!cT8v9vF2-Q!2l5RG zbTS&#H0jK8SfqGgn+kyRqBoX@lFMMjI%=#~fs`?oOM$2HhGCRB0;m;}xJQEqJ{)A| zPHoSxv8Tbq4E^ZOXhSw#st#gMNeMNnWBdnw7f8w+faO+I}Gnqdm3IKZH!?uB$H+K^hv$}?gaW3QOuBMz?}h; zbOv=NHNwSyNVOB$k21u`rN0@CAx#`=7)(0HWp>oEZ6!P&D^}RkIUVk_;q43Z@MJ3o z8vanw!y`+f&0K=HXiCS5$yZ?(%acJ@)^|u2Xq{PhIoa?w_#z0BHrCz_BCXEgYc9Zw z=qy5wBMhf;d!9T-PnvswnImiOY4{FXeFxR`fdf%%BuNDZR~k0f;KDwOG2FGI&k79@ z6tphNlWvXzO|5wV8dW`wby7XpfFux{DCP|@WYMk2RxRBcipr%|Rtl<~M%wRJc2H1N z4wkF?SOby@{)w6CqN@9=TjQzFWm$I$%)pJYRpU_(lpeq*9{P`;Z@bdyTtf)LtqgOk zFCBDL*wekut%daC&{eMgPN5)O#G-K!1m!nZFSX~Zek)znuYe)E?6wQ#Twm^qwDdsK z?lFcXWC?49v@sSn%4cIpuf(AD@b=Zv%|G4hM*->h;E{lvbMENyYe(B{#0NAjM>(Gm ztf7kz=;%s@J1i3`ya=R-^iti?N@_1RB{>XfMaqDjl~|*+G>M(PwzNOk>YGbp0JdCRKSh}#9mN}9V^BbE2yy-u+AK&VHZ@y#xfQL zYm61^*hN!R6eY$KJBd-FQNeZ_jmq=eduYk~f4^{X&Y9U|wY~a&&=mX0x-C>N3O@*| z(HicR;7R$qP=oT9FcRDm*z&*ql@aOq_0p%Fa1+-v3BS5oE6L6vAcEO)|ZN`6i zZV_d?6vB;N-wV;Wq2wxP@Wf&PF!`Ubo3awbnk4QJ{zyA4bfWk|0h#>&GlyzM>Hi3g z*mtAL?BU%SA(i4!K7c~FQm9K)|H76k{w3^B%M}{a@_nF#UN7(`B_CTT%n%&YGyxaD z$?B|<-(i))3Z6!uhbp=Lu1p?#(Z4cJF8)M}w4`5#jqY20qWZ^9zM zmp<$g@+fSd=0MLb2v+t;!y>pOo)#SR#0`}#4%F?w;I01?*$f`TSUZTXkaVHEapHGj zEKtK9Fe37W5xA}@T|gGfW8n__&yR-95$YHp-!X)KeNbqPdNg5ADfB68p^7_azn2gm z2$Rvw_60zcZhViMDYgjPD7D>rgen*~oZbre&5wD@1mu!r31F;U_;Yrr@IBjnd+PC< zu-N2!&wWBe$|b?p*!hcq4j_z@439sAcYJjy?z$j&QM>EHJHAuew*=Dg%vS=+<}L`n zM)+4k1q*zTB0`?u2)Q)zTOhXhzS&fUYg+b7Xl0b2PE*5q%abMne zcTMoM7+BQ}3(yxt9;bn{Tc?DXCVlq)AS6@t0#IQ1JCGBbmC>vnIldG2QAo7xObyS0 zU^or~vV}&*^@~CWPGarZzTkHx;V^x(Rgn3BX(_@a2Ghord=G?LI$rcWA*+PMuF%k1 zLLhZ`D4?GGst``6zZD+v*g*kk6#*(jv#ul1zMA*(*k0alB zuL+%?wZ8d!8CS*(B0^{ zNWlFBj8Y6x%4mz8QM(REG&f!NRE7cvUlO3Ya@x#H28}H-iUE~nVD(=ZLb}O(oV+GH z7uK>RMHsYSsEJm#WhKa91|>g3P#9?e-RQ4$4MUW>COlvhlz|M|;R?=BkQuqPd1+!A zNvto0%_eG3qzSkQ^56R*?57InPvgXT;Y$!NBj&w3K(Q3iV zz0*=bfl$o=`|njtkO%HjkdU;9LC! z$lBd<-a$X+QU}^k)?T3*^}Hg~qKSKffyCYTS%0SalG`fCJN6(|S_sC7JC2v*_Xxoh zb3{gd?_ObpiM>jviaDmwDG0ZRCxug{TnM=e(c5vEaF(=m$gE{^szPRcNX9cG(gj3T zA*o5-Bsdx`GlZ{g82dd>TLw|+xT?^NhO{|fk%X&)l}+;BgP}4-+{STm>IR*x;_E{|L-H5Obe3U>;9R7)QO=2xH4oYsWjn(2_IBmcDr^jQlT_ika8L zNL?;;<7w%<9h%MIPsnwgi3=|Xh%a0awga;GK1cB( zWu6scovrf9&hMelpB1)3`3Hj-YfzUxML^C9VX$Ej$3 z+!q>gk7+7A{lg_^J-dE=B(yrjtNrNrcr}z#zs4~&C|-@w<;L}4nrx0&1N1!n3x#^C zREbu{tKBJY2$ULanAn1HJ6}QTwxQx=cCxxs)v=;GU7aNMrD2u?7b9Sh=wd_3?XS4e zjKN|E`A-sC(Ubo8_;9e;ko3V&dxuUEo6*yOVtw3*0^JZp+fn%;Vm+?E8xMwy{m?72 zo3$n-=D-57P83}zvpFUe2f?!0_p9WM4jg!T*-$Z%4H!x(lkgE{7OItpiMEu|?}|Gm z565&^t1HzTBjGHL6^GKPA^7g)FtL4^hi?wX0=rBUTbpY;HcV_oZH9@>DfhmH>*R;y zVRfRokqV=+f~;L!wW%9_l`;5=PXi>U2Bc^V}i2QET8DubE1=dLGC_duv}&t%1g z#>C27%rR0e$}q|r1M$%^QV|iAm(Nh*2g#Oxc`DB^e|XYD83}SssAF8ZBd>F#_zc)n zRhubL1!_qF`tYt^76(0GjF$yT{k^;_4QOZ~L~G1d%rm8v(u_`Rm4{RMe%V#Od&SFw zfZ|NC5=Gc5E_zn77f57d611=8cpib>);dGE1bJatQ5>R3=dVZfwJ)wGu`TH_Jf5Qn?qY7Nvr&RrZ2b zTyLw4YfqL!7mvOT?C$>{*M{*Sd(yL5Wip@8zsefr6x_^Cd$j1@?lXsiz zFZjXB63y1{ZO*lLp^QrDmq3(LKU`aIc9s&wKnD2!jV7mFjGaG+pk;riHzjBqRH+2=}(stJN$=`fHPn z81+k-EOK9bJeMzbW+a1Imi^C@z8ou~bVirGXzAU)&SbGs!l~ykv#Li;lS^hZ|K3<;gZh)EHfa1X!Jn$WlJaNULBtNZgB$AtMxLJvzY~blJbP z(uos<6Lr$$>be%ra5g+tfsYfkkTy$l)gyc>;=2}IfNKaJII^%|eMduYY z_TewN0>viEf%?S_o)!-y)GINtxMJdUBEB7Iy0 za^+aheE}(erMOU=Ju(XNEs6s*ydekRYI{(}qAl`b>it}8R?v^}|!_o(JM?DyX@u6Qdq}*bAedUMx4Jb+_e3jQyPWlYUe$ z88itZ>5hKUat!5_gOlRfL{RLi;ZMA1%t3iMTdE6P+XxQGyDFl=$0w`3acrA>1(Eq~ z)3SWuz@r_NZu;9b-Z)(9CCZ`nJVVw@F#fm@J1^z+lk`6iJ#VEq zk{vkrX1tMmGT6p3l$O_HL2Gujc?s|gj|fT_Ba|;Gcb{CBA{NP;(5*p3oAX2nz=(G; zoO8J?ab{o5l$%rh76~7KTsTAm~FxaHqC{5_1oidsN5=1xJ z@DjBC{Jxi^Cf$B1Pc|v8_e?xf@E*dot>|Ux2cNNKO9khlrg1TB87GGz#fgy%r=x+- z095u-j~T&`+i5fAW$r7Z(=u6s8y9q_U+}49@u&C=@=6X&J^4>>B!`~yU+rV~r^lp54?ql})gjF)fJw8g#KHcBdGbWlDwN#MIZa$C;x zdX*?IOMN;y)0Eb(dVX^@RdQRU8-z0M9V!u~oLxuk#i)!)^%G0IVB$fR4&|R|)LX2B zi?NvfGVX~wD{-Q(Wo(U7Brj?>OPR-@6Jwq}m+yCXr?)MjRRpx~f>y!VhHpQ!36ATl zopIEKyun^#7lZnXWj~xrhh%hjYX!N)nE`8ZqRuurl2enQf;?Tq)|7oiE>D*o@?EJ@ z3nh(dy6|n59QB9Z${S57DvwmAz?WZw%ffE(qc^<+O@O1e{6ab26x*>$-j;T7Yl>(P z-cqSe9b18bIe#SV0W07?G<1C}qsWadg6l!)KLuhXmu|{Q95?!i!;Eu+k92p?^&{TM zio3K}g%7WYza8m`qf&w9jgi}zo@+S1w#g&8h~vv3`L|il)TjfPg3$!UkCX?S|0zGs za-gKPN;?Cm!*+xS8LM#;xwnY%OxsWeWobH&Q~qLvjbf*3k={u9y7w0p8OR$X6urcu znW14^D1h(;F}Yj&EfC3+1^sD=7uMYS4fe>-tjgtPyVK@Bp((D+mvK>~17Z;nr;f&# zp~_=hTHYbbT!KK?GoUZYGn9Pl{Q*iMt zI~f|~0JknlP=PpI{Ivw?R*xGvzJ7d)v*~mfCI0{9d42daZ{)BqIe>F7uNjyM#Dn&2 zT|xPr5>DNa(@p&6^|h{Yp`fgUKqEQI8VtXlEl$zsC@WIODvFh9-~G2xs(s)?gkbWd zL;qyAAeTB~aN4r$FK}4}6#D2ngIq~jpN(#8J7Id^v6>X}=UWF_+dxD(pfS{Q?v0Ho zFAissqe!Y=NoIF(Oz+!JRj5o2F zxQu^E%a3Q@>n#YZ;Z zwS$l5>Cf5KP+E-P^VUOQThvfoKp_DluCucfoJhHz?MwSwA!5dWN{{P`gH0@4{Q}y5 z&w1GuDWxilr{!e3(e82rRP~%}Cz=ufh{N4f9$jiNWoktrKfbArZQ3Fb0Pv3Cf<>eh zKYfen{+aB$l+C`oGGh=ry3`P(k+dgHGD+s=-?Hm7l0h|VJsUq-^mleYGjw2rAPCeM z-pIy*8Z^dsbKhbWnHRE=9bUB4N_4os*r@~^hz(AE1AD<&98v}yZT;|wM+2J*bf!5l z%W;?36qaSs+u0uEn~{y&GjHs^ZC%)j8=JuX+w39UH4W(iH*pZ78KkVeo9#e%TVWY| zfW433x>8nod<1%@l&k>#d0(1%uT3E@W}`KfJJtdK+0)&YFg}Y3M>fSjf;n}`{nu=F zaEwP2&%&86A+ko1~ zY&3^$gL#&6B_0lr52u46wMBZDpkbRNe+eD)K z?{8h$Y++RR^eytwTZlNM8Ka+W05d(a3Yhmc*10{%=yKj!)u|ms4@@_lp%|#zKs*LXdw30 zyZ4HQS~~0#BAuKcz@&)z9?1^SGbedkY}4vN(sAN==LNvTtwoS7-Vbx`o15L1Zk9Ls z&_69047BXqVm1UXqvcU^fCLzfAZ-jbGb9M8#kMLN>6$j$M(7SCcPn7F|B!KYQnw_zHtCkFX zkj0(yW@+_k`T^}+=}QRiozUv*S^Yb}Q~qW%#*ZEhC9>XH?FK^2Y|^PqG<)O6G_8rn zNL;T;Hn;&$t8AQ`rQ!0nGix*#WBeh_k2~DG2#beWxm&xGrov!2k*MKd-L1Va<05~p z)UH$fw>X7(m;@gO>F@VM;&9z;kFe+DV_HjEwp#lIek!2~-;s~uxlR)h!egFlwi)WP zPs8mR$2E}bW5Jm})Ibl2>tJy(rX16LSn2dmjm95oS>Xz46En zP!ZDSYe&-7!I$i^NV{i-vp%1t0gnr@SyOSDsDtZ^80-HW$s*xY& zXpPcZz!>m+2nDV{(CSn9t=c#y8(ipAs^(@4+NUMp{wxIi^|$^rR}6}hM^fVwY#RhKn$wPon{m! zYi>3)?V$D>g=9W)H0~Q(MN9Gi1F5p8jVVK=d6G80^rK$ACN@Yxi?v(KCGW)Ih1DRY zG<31usqLV=Bn?O5d_b%ChduxOE@OsfS48G5Q-FBv9yf-`SPetB5wJsBQ52nJT%z~s z00uKMHfaMabY(xNyy<=|!a~6kNW){9_Kva5bq+$#CC0J^ngu9jE^E$Z&yRqRi-olHzNr zo_gkvKrl&IIKISZZ+hNA#hJ)LI6P_KZjjoGnTXD56I2&H|6m~K{i_KoGV8{xjd6h! z4lB<%)j@yMJKBypC!E;3+T!7qaCJnP)CR25L64gq z2sgv;wUF;~w}M)pTGvpU)9L;R_Qu`Dsy}q;0dN>X(eySKk~39ZOnDPn5PFQ-O<%r% zSuCBWs2xddug=gte+h&TJTO*mM^o#o188F<)tNqr1o+tn|^vo~V+VWdqCmm`4Jb{f>l$x#AJm`3B)nAVv9B8rE z!$#pR<%D8u3{-mi?*if1tUN(&%Ri@$RU`FV_X6P_^SO#$Ff{AY_t`S-C#$Brn8L&G zB_EDH4+hE^>ev$O^%0!{LFFk^ROH8nA>wVFs-jmg`)_<(6+O*B4Af?l+JJwj@17e7 zZ%+62Aec(^fUL|g;7JR_`d?R2(c62p>aB;s$aAI&ZB;)y(-_0@WD2axv1q%SJFszc zac(gZp?MRragQ(nyuG2hq0AjVvEm=lx2=ej94R75RmnR@J!aZ3iBr@Hs6oQ`44jM% zsi2+OovMbaO-OG5dMWw-OfU#+ay`HTMBainZinHY*B10pOgOda?*?i-?sA1`#ehN| zBGmeZo0sbAMh%1UURWm;X;>b}qhgeyyX+6d@z}nW+EHJ+oYBXp_8?6Ts@AojUdB#P zYnmUMj8kJdFCk=7N4;#4f=Q79V^kE9Oa%~mn1a!&NrCAT)F^5<8Y{<#b*N)HmoB z_5~;otkI{0>&U6C8l#V$69_*+DxTI){lQqa(gd{%J?p5V7Y5_wo2}TFA4jR-Ch^=c z81al{@ZlLeu-tw0kXh^@EXZDu5g3_{2!mdSyfGB)EE4SWIARz*J6RPNu3OWce9Z}s zmqi!7_qBR(1EzLT(VdN%*8q!@8hX}ZvbifZRFqcF?EngoM!;`sdD&MVF@>>1$QKY( z#ni#YO1&cP8COy5V&*F`$WcTXU{)}k!R+=F$WHe*kc*s4<8LtQWehgre-ND?-ay%$`@8m|5%GiO167CVZhQe*i?*3^A8BpU z`$R!C?Ri~Gp^#s-21d6_S}%)!?=3Q6Dd)X*qhxLMbfsPtkk97``AJJ4|8JlpPCnla zV)E&EEAB`+s5Gbb4o}dXa21Xz@pC@`7#Ybb+!=K)W( zSNvx^b#s)(&S>z2sl1~Kv>Xb!sk!SpEut)7auyb2aMpY7kFqqR=$l$M-93m6HSw+% zS@f^#?^;^}^c)2(>mstvGS6xb`r$fJmS$Yv$HfF%pt16$77BIZS1riclB1O~AJrRu z5oLjeQ8LZbmTX!!jk)Z*9~st$pVHn?W}bG5uZ@B)YOPtGS%7i%Crz;!0UtGY=rln% zOY-hRcZ{7HWeFyaOL)pTANtk*g+T)ttjZTrULQI+$`X*~4~HU5(IUE<^G0h%A-`yT zdO&VB3zFooX}$3{KtqLhwHjuw0W<}7dU{8j&Vgu4XYOf-nY=Azi+^Z>H!&&-BJ}z> zZH8|CJLZhmgY<8-z|zk{%|nM1^qm{p3Ee$23Pm6PxvjO+V;^*b#B#{O z_<&=5{VV+LX83)tRfE2J7U6`O4?v%r9%!>n#K+`n+Zaa5lkty+xI9RYJ%|2&XSE;r zkQAM*T`5}UuiY@&wu{;>8gO5eN@y_9xPOJ|i2?VpjF>yx4ECQlH9n`UrT72S5L!gO zsR6#bWTCd_wUg#FYj0{ucfcYI{|itf4e-WvAt|5-WG8d#kts~v6hmXila6xV` z7R`T1tEaW%DGhqVn=Qd83)Uc!Ahs3~3Bp1pQ$wUE%Ik#Z@NgfxochWcmyOSMCA|)Q;7)u#@)=jrHBD zA;p#q(3Z*XM$~K8Y-hR`ECuoX>Jja$Ll)&VlYTZ6wu^Uz=FHn(p#bBp4XS`=&vvBn zV5uWD*z&3!J&TrI(;{)=WZirfPWCM%T#}an$LeSGB!O=q$B{klZNRd6Bk&kt2&!!< zHK*!_UZGQJCkeK0d+7k>)x|bA5-csG704xg=|I8l01W=!kgE8OrvL+Y!1-momf8+* zn9@e7XP&mj&`o>H{IAlZQ2w7M1x3?x{fA!laZE@WWyK;1wizN9j*9 z;JYtW8dZj^-hJO6O>JCX!-qB#jw+UmM73JHu1u@HR&bYlXUWl6-$WV-w@-1xJSBFQ zP<6(tLV!DD($z!?&6Sr}Tawr7F~+XWQd?&2yAWmyq@%vCThi?)s5Qu-38c8Xps_rM zM91`{&5%Unw6Yl_QLhfbPJA_~7Co&mO)RrGMSj)9JO%S=XimC6wM6BAcufr_FrzMf ziQWwUaC7kghE~=hDK7wWk$-$#S?f$&YG}>r-f%c6^(t^-tg8e)NS_Y*#vf_rk4J*5 zXr0Kv78@l1hsC5CI3KrG#%n1(5P{k^9A2O6mGJBIDtI@)15$k&`Dt_Lr5_$yK1^$< z-&xrbN5q#tT37O_ts#7hW$9TPT0(%d^wC1f%$MhbcZ#QX(*4p}!hWn%S*v3%aY9WT zOgw=rd>U+!9aXitaKhEldeQA#7>6xSAH1|B^hmD&4XI^p`}URCFYLcPe%MU!sv0uM zOMoN$PvXEL5xf8~jNBW@`_R_%5c{)olA5>#QXFa4^7LNILOoyI8BP(0 zt=`Cc#mC&Wco_fTy6Y2nJ~IQNTq^EeBTnWjHQ_&Gt8BOvTIRLJJMW-@P|+y%H2(0N zLH~Xiv6wYt2g+KD1H^6h9fXOP5{8K+I{gLcCUcC`%%o6!%wuOqP4XNI!S28GPKz?x z3z-qngx$x2Q+Relay@IXy%B1$M%85)?w^(oSID6tYdbV_VwETUd8mIneZd;1H=Ys= zNg&y5L&)|ID-!bUV7;~8HF|p%Pp)>3|E+4z_<~cws;uT91~D@^R%nuZ z3AcuSvIesK@l6>)7p?nHNs@BOhdtN~3Css$fbcD_apL_GuImvW?2sFFrmYpA-jGn& z`1HFKT5FGM)0~Z66%q`%SBqvxF59R}=nQee+KWX;E77fgE;$(qmV|y5x_8aGI4$(D zEoB&+oQ;8nR$TO4x~quGmyl^H<7t~))~e+UY;Yr*3>L$^2;}h>H#r(lezYPk$?d3A z1p>O4>yHsEOje1OiXzlomW%Jw)!m7%I{gT~`&Dv69_xnr3n1?c`rAxG7kRZKU3y*N6#3dwCzAcIs? z1YlUL-KRDQ2!FImsBKc=$F>P=>2AMdd+Iel*%dN30kXMmLNm$@Eq-LYQ~-Ba+k{vO z?~Ui;Llc5%#23jG*vL4l*vb2i4FuD=AJnGC&EM2;i|*aD1w0Io-@$bDystVLhi<8# zEQZg0b(f7X;gPz_!#Hq9t!-;;e5(fA@ajWj$4B)_IUa4NI*-&&dYzya5bf6=sKbm_ z@6}G_2+yKw%0~Mis+I4n2y#9IVW0T{(#Gqpnncn^HAJ_KZGntOF%OOv&ljCw;uLsk zo)r8^MN-9P#w!0NHr*PGAy
ofju+E_!ToB#x8fUs}_=Sgjurw90{c#b_hQfBdT6RPQp9 z@^FyBC7pnji#roExZj4uq#QOuTTDHtA)HWsj23QsJ=_tMail9VS2d<(qqQouY&y&f zIK&W_f4Q;(1V5~#+@GNJ<&M^-u^&8izXp+({**al6+0^aq0~*(P=_=Q6GV^2(N$}-Hc$U{aik@bJV(Hu zsoqfXp~NAW=E{mlOPw-XO`it)fJWeOcs>osB97(&{pjRK)EmlQXt*1A9PEzX|E$D~ zGE-s7oS&pAG^IA2s;p{CPu>}6nagM&%N+r`(xX-+@+YwebTEut1s@d?ulU85J`L4+ zQ~nrjBm=kytsDX_iT@K$(2$|pKsq@bM>SyNpg$cIX+f3eSRCvQ!?hmz;%bo=oLm1M zaY;M|D;NW3_|$@xkT(;x3Fh9XJXztSr?!u@0ORbH#9;s&&p4Yj36ZDjTiM?K4Pv@7 z9$tp%$-o>3-^MsCQCAZpEmJ9fFXC35H~HqqL_}J;AjuRy46V^Bw9FX+Re&cH@rd&A zVL0#^_-Nfks1ewvs~(*eiKLH&V~Q&+?+5F7@OW*2Ni@~tS?B}FZnQ2A_{seONBgu< zpoQ%*_yK@|ES{nb;-o?DvDz&CeNd$3^OD7*{FxzJu8D;_8K;dl4LkpV5HvwAavbQ~ z00gpm*7}qF_%G#AP8(V|0A}8c0V4cataOqaO4>l=qx%g+q6I8_T#UsAa2|kIvVR|F zuuuBq)Z#is)@Z1vp3Q8a$rvN0FX?Iw{KpYjaGcB8tXd-mD%;~2sk(7_xMYXY5!j!4 zV0#;unLS#P**Rm67LQO5SN4?})1C;eAr0v-Ez$FP+2D*@5-ojX$*pcQt+%w5ry_@4 zL&Y72b<$%R*jQZCVx+Om2Y@B^k?Q^X2?`#7Dfo|mBc)Y(aCsXr-p zwT-;bq(0`laQC1zpJmngQtBwFE=?IF4L0A7?gN$ln_HcOX|L|r(gtRMXRI`vGN-{)$bacF8m8CK8?uw0 z)7S>O){@Z@?q(VQ_%53V)tPy$DE~Z8!4v0IH0R8Lk6xQNbBHEnnVq$4~Xhlq>*!w7J&a!kzm9U9oTo%R8ccu z<4e4ti5=4h;@oi`;%R9`;e(N@R&YqFr3cUOgo|Osa5;+E47gKcEu#0khsi2GbJ#1W zHI+rO8z^^SiBJB9LyQb(2wMUlFmo(|<}`eu+}})}cr!>wjH#L2QV*Z)2}3d6>Iwgy z>ICkHo&ZkJhTwOQPwCr3OvTIPbL4XlPw_->K4O^^Y)ru#EqnpT2FWexZi@K|%^!hm zVP5GS&{_^InuVN9kvz-moMv&lwV06l{Swb(;o~dDj7Dksfgn3he2Uk0Cs}S=WX@ z9n@2sxq!G+CQBD}ZIlC&Su>_dN0{FT0fZ?M+QLqh+M2JsPQ)0+(?CrbhmV|>J!eav zdc*<;xXKcy!|>(OfXlFiad2VetQB02%#yq;q>hu^^pKtoI5jgI5Syu7f;5QQ&6K`nGq-|wN@{1$jQ@Z`zQNg2H?~V#YByF2GxNz}r-JfN&w!_;b|$1o z@kdqPH`W2EdF>|^L#yO7?&e@FspxnqoLWy|=U%+jfhNslrsM|mhjSDihm9B12ML{w zwT9EM7;Ci22ni#scj(hdD=JCeJchwE%G!a}kFqu}fiZBDHHxY{d+bkbH(*KOvDP*; zZltvn)&JvhGuk=Aij1S;QtLHKo;0QUI;;TegU7X4vWGVbv3PdZNa(DkVEiS<+RYpt z(;^%46G-aUNe{-d8W9vrvn2lbLRcVHRhjuv}u24W*xFIkts3OjAE;Zija#dcY|H*D!|> z)(Nci9hS6xu;NOdqkERbz7$-johTiUFrbSOVw0H31ugm^equH-cv(MGzb6zdY{}I? zSj*wxgE1jmW(jLNP_drX1BZdu3+}y~9&iOAFoL-4G=!ob+ZB3HVo!iDJPv{^Fq01Ez5krECr+aE_V7O!!w|`&PRI!3&T8!5mL6M> zBU`)=v<$ZeNcoceQWY;sbAlU$*94At7Dt=fWHC~43NV-VFV139bY_Q3f&UO>0is#@ z4;9*q(?sC%iIEiwRgGFQxEXjhKTC03J{DzRvps`ydJPJr$C5|BH_ zuZ129%07C(90d$~k9>Piwxg!tCq{!A0E7GEDjBK4a(jU>iL{T?E;ZxHb!n>@xJZJ zZH>9OvFyJuObBpc3hG2K4doQHu?zH}iAl;-%Giu0{JdR>H~+)>(Vt)~Q1`hlz;}&m7=6|**Xs^na1Z+WCA61%^tP8ou4Ci|{E1`UB>b^-C z!2a_hdqWv!QYUYZgrGU>RL15VHY=0$-1%&hoOQr5C-Oc+u?9W(C6g3Ww_%3bo0Ph2 zLVLYhH6OSR7H(DospobjS^pHyUTt&;;)RdbD;ap;{X`}%fEfB~n=+DqNKs<-M%{fa z;mp5=Zr&xim`zfZWLBG3Q@{I{57gCm%dwh`9T;oc?p7l8-Lu)~eKRpS$4~MBWg$bC zqw#dFGSs5G*YJT`{V!x_n4Au7bR%Q2vY`|&ZuDds_WsibWejaSg8zPBq~JF0R47H2 z36i8(^FTv^RMaP?Ovj;@dqQcVr}nFgWdxm9rr|OdoWOUFDUB%oJD}|D(5gUL%i{{l zv03?A^l2P`1xw-MI(|*Aj^F1Z*d;@(3W*RPR0W;5u7g`FCkxo% z$-sCA7i4{h^5l{s_&)4u*v|gW^zd7y6;;bYsS9`U@Zf!e6L5PC{Z6TCOgN$VTS(ag z!q3k@xG;iLlocIe$#KEe3gI1C=mx47_*)a$bNV@@XX(21dr4J+r%Ui$^vP-L@%G;+BmTQ<|7r05)W3wK7DKBo zEy;lx<1jdL6^L=qQocs39nb*!<{%RJ19n)74!>+jfPZhnF712BDNuOzwBryI?q`)C zvd>kJPLu<3`TaD6aKsuYhS>8A%De)?E|?B|B6Gf4kuI<`nn98iN;7?EdR4H*qaSeQ zI(hz zgdkYFh3Iia*@sns_DfSrIH{)S0pB8TtSIq2akXHVmW3MYJHA2i_nlHIJCPRRngqN2yw1un1oi&P`5IYXiRY_c-nuH zI_=**RVwOBs|7)XPTq=^6(EHG8u|q)dQPVzgAnV_rp#32pr+q$1a(VOun2(CP1gnm z;Yf5{qry2-v{P^Dwo#S;%cV49nVMtTrW`NN*CAnU<3VgI{(u^!r($k9ny_Cb`lzaK zS=WM#HfN4{i-q6ZboaqQAdJxq)y^OzfTGJP;I5c{ zs*rXZHc;`${(L(6upjBGfJO_7T>~O>xYP@gty>ni)vVhFif&AE!1#-uS-FkRc#ZJJL?6uEw5O>JR9_ z^^MYi3X;^#`k5&~5T}J}fiw<~>u1!K+*}P2iXKyIvVvB%V?GQ}$8N1!sGQBz36y-)|ehidt7-`pIdmm5Ypx2ULi*lYrl4 z#(N+gxBw&-S@#TSV>cjZRSNPi>jfdAbW_96oQHyLG{Wak7a)eilfgK}P(%He0>QvV z1U6ru`X2<;u(%L?`RhhNfi_P?b@~+aoP=1eOkZ!ph@}{4wH`8wGr-d=;DU0;!CRas z<4-|QOiO}fC|MJYSgZ~tc?F((nTB0p0~M&ta->mj>&zN@c7%WZ=`;`yC+XDH>SXFT z6Px1a5%#E-{O3cDrUNP^BXfy>OjQC%`C@jT08f|voVE_aZHfX=V-z?&(K<-a?a4}I zrY^!_7JP|BXSj_V81JK5-6HjPnVCLcsU~0mXI;6^q)-Nd8A^dSbge18-AG!2rIx@A z@*x}Q?c6y?)5Si^)6Ert%)eHo=ie+6Yu>bLEsg}h4b}fe!g;3on#+E03KJ4+d=~;x zkezh^Y5yfVVXdiP;jX~egCh{7<$Gv&O#Rj*qrhb70Wm-L;9|*-zt+({qyDw=XImW&&NUWFVM>kuMP^G2GDlc2EU>ON z2#M8NC;iuREfIrbU+PY|EiFB%ptk0(?>tfbEd{Se&~@%gBvo*S-KSM3Dq{&jaJRwR zZgxkuN?v+C6K?nG1xa0rtbjgEubViB;p197++4%e2D5Mj-6$4tyxHz5d zuun%+-mTk{1AgrUhYh|%-FOF7uEw^&pm?}Ft0^v;d+@fL3gp}gsyyNtD2wRKN=^HS zuEx2}VkTPQb`rm2e_ToHkD(L0!x8ncA3QF_Pq(12qQn$(JClP3r&$Q&@E_hqi8GAt z(IT1v<8NKo!?h(n?<0ORD)$yQS*Y+l(h@ReA^{^W8mqf?I479e^oA!idL6oCNAwl< z8v#AV15jZ*!B8rmx|7+;H2MXMm)?_VLls>95H=Zi^?iJz*p;I@&+$3yB`oSP(fbZh zlvSo%EusKA_dhdh;my$xU}zLRgEq$-YVhj*kN{KMAv7xPc;E9FdK;cwNr}%Py#gL7 z>nQzCr8^CI4Eru%GNcCE4;_D`1hX1U56XX`bf$pEP&WAhEuUk6l(|rEGt0w~|LKvU zQ*6HCp!;8_jo7L3Lh;qF?5z#yzWV`eep7b8K)%!SKcV?yQr5Z%T4cmSD6@zs!P&M4 zibBB)m=|uZpdRtmOP+-D;Gt5_?5%Y14@~;oeVEK#SYqRDG(I05D0;zG&05VYn2F?? zp#9fcmC3|$nF^oz@hPYv=a0;dM=;A{3X+5%fg4ce8Df;Vr{~k)pPL&8_Zs~5=(QUM z0h&Eq3}d3H9?hAG5@<*bD0hdiH8Ueh7zJq^Q&8Q_{iCNQ!#g>ChIo~F%?1QRCW8U? zO#@jLk5``DW{VMQa$K-F4FNd5f_*ZCje8tIrs!qhLVae#?>Ryc$D4yrohJbE zSEm6~EZ#*0@!}xLTLAbM%ok^{89k{-5*&n_QhC6La(_ui%0jZZhn~$7N7Aw+_%|V7 zP%W?&Cm7OWBkBDTIGjVW;Z8r3gt4A1ghMla1NgJYQrI4-&PECULP(593s{yG>vhJT zTTeG!X~hcE;5OE8_>jX2@LI6~hE7Y%up;g+y*d}mTK3Pc=--r#YVWu+VA1%+__a9M z5`I-Qph5N{vYUsnRwVUP#F=#R?_b?%$3m=c?|>VQv|u?_<;kpy)XP!@TD}-?{^kB` zH;P_@h&FflEngKb`P)A`(%l8=4^&hp#H53*Yh3R^xOfc-9s zQA81N?CJJ$pl13~P#v&RfjTY+VQx&pW;j>F+N((^ivjFH?;E%tCkb)cW~t%?it2cy z2Ay&R>~Yw*P*xIlIbp7d0@+M!4N3??htXMQt#c{)%Y1|~4_lkku7wbg9L~efBF42b z%{q-@51|u``@VcQN4Hv0QOI&dvFTIOR_o|y^dH97KOR_dzThk z6G{3G5vJqktaF%Y$eU(2q0jdtuEt%@m$z95vi8DF$o2^G^THb-#Rcj@UHbE8z84+N zv_d6it(||WnqP@NHeKyQI~qbY%R3}DF#g_Y^(#Bw<>UFdTJjq#J?Cp{BXj9j?&jm9 zx|83KzR$9v{3{EqMv+HlGyH*xW2pNgtCidjfEE)MThUhFe7-vk`UZ>UdpPwdzc0P{ z*1CYY?zDEHlr@NFaR7vGw?chlebd7aSO=I7w|br*%^nsQ+Z64!+663V`9W(a6`r#? zrJc9p-XB!-+I=>1>NuEfS%|ke9K^_}Y~k4lt;@=wV5bGG+E0IvKq6nu+HcYG<@!Qv z6$(wlc>E3gU`xK+tnFyocB`||n5;KlX~Hl5Py`X$QO4x7pO{=Uq z(U7gyPHD-qbJ{mnH#&0|73{kXSO@VHQ|0XZD&)J<8c1gkS-)iPai)Xkts%VCv;o9# zbTu)EosOo{Tdl(=`6ys$dk!$f8siB_@T78Qt!)`8I@7cL*3a06>=|u%>fv9q?opM# zwN|H?Z4B&8H{$DFaumqBmx&N4KL8$4J{p?GSdkPQgF=haZs;5z$M#zra9S}|ZMRk_ zN0$x*Z2OY%Wv_$yulHi>i4yW{eB`9{UOAS$jS9uXs0e-$uAM2-5nZWvB+7GH6jblo zsI{f8Ddg9OYY4c^w6>zgO`h11I1yySJ{qg$TYFfHoOmm$r67pVBzumv4t+b$`UF># zTJ4Mx3Dy=i(6&&6H^;hKC zFifTQZ0?E(vfm`Dx5XGW#ai29;A^z>Jv|lAE*lG`7(UiIlC(mk2*ifSji~Zr3GKIW z0PD#$UE!4N>4|tFR8aKyC?`LsOS@5Tf&P<&VDHbQgas0MK~6#B%&oiJM9;nE4$tD$ z8}3l06T8cm&6su4KB=Z2?&6M|(TFstty#{{KTq9uEl-mar1fxu49G%8&&FV6gv2~T zf(1@;cQcRTE06P1QS7kXPf`!FXAf_8p$TMu9VXzX$*bXi|iuSXdv@@IVAhk==BwPKEn=>+CkTif+z_sK+ ziam*ATlq_hq)L0GJEr0l8;1nd=Z*1hkh|R5^!6NDfaHmoeUjB&6RUtQAwgnWIf>yY zknWz6nxxg1?e&H8+>rB8d9wt|6S9(hM+HAi$TCYtP~pr`sV+A|_$jvNtb~MZcF{uq z4=703*AQuG9FP&809PcYc&8nPl#V}u{12}G9LYikSf-2Ilfuth{q*^@TrA!6n4w)D zP6~1pDzC``O}Ms^p_|r#*a=&Jtdb=wkqr=W5@}RS2h`gvbiwlO{Q^sC@j|IK#co71 zsDufw$Q<+w#PnQIynF?XT0cMSh+-*^t9UZxm1IlajbwPtPD5jh4FoDOH%i0lcLjML z$N!X;n!Ct($VNO1mwlgG$kWO{`?-t$_^LY`N26Aty4v?^7u1#eErCJz>vI=Nbv@%- zM`$cVSD`}#lieIv8Ot3Vbl-)pc%SZzq+k!NT{`VPPI$kEUCvY-C# z_mP2{N=my*#q5_F>bXZ)LSe*yX(;u14szvm(=}6ST9yIv zxr1q}M4%IuKIwNim?*o(pu`HoS&y5>@}bKg@i5XigTO!OQUXu4p|-zC11TdLEQt;`zWT=fj6m*rV{Ee` zt(5hkn>$g%3z9_ZY9fbi@A#VLHZ891-$Y|FY zl&dp+7~+yUFuUNZ~(T zB2SPXro63S89F1-Sp_{aCK|5#!dsHUj%tMQtWa~@8_WJCX20BE4jDD&G7=CGAHzM|8>I5o{f;!n9D7T1c|5HpX)=9tL&`T#i-j-18rQZ;4gM{R zrclNiDU_cDLw=T`OS*CbyiH{fbTh(tm8#gGV=`WW2uW9umWBW#494UV%Cw6RoClL1;D>buIGNDS&Y2dTkhYR> zN9tsAfn;$bOCj zgj@d(2$$L#do9pv-2dkYX~>cgnP_*Rn{D7h~_uqFg9W7A}h@E z1a+QO7-3bU=NG|PP*6Kj(+?1dL8ByJJ*=H8s{O;dK!4=Gu)`aNg)jjuewt$x(N=@vyX{yemis$`v5tg8zi# z*uI(El-8%>5aoia;~u7!F&ne@R+QbjsSqu^U43p%wBqF6AG?oIYrf(Cl9oZKwoqFj0Tvl7QrHT_;K4+xLwLvY0gZGo68 zac}D9+c{f0(~z||I*L5>p2Uri5Lb7Yn=nGqF}60A$Q|(Q%b{g>dO0XdTv)FgYtoB5 zozd_J)Q`5zTjWX|zmmG>J-pq4_q{pz9DNw7)!2W)4M?kmNqrP2+N~rkq*O!)w8h$U z=ST-kxisuoD0ke)16pW8A$7neslP#_EVwPfb;Wv@Fd~72jtMpcb`S^Tp}RP1&OHa( zp%9sh4*jjc2H`iiov0%(B8TTvsGgeZhQsSrCf1hu3&;wB%7aeT`5T(%|JZ3#30+Zl zUcfLJ1LS7<)$8o!=-(Ptm%1K2h-R`7q^@YL?w{%i^(^%&#xWhrE3rECA^M@jgx^T< zk@CV4h97IW(Qj}iR zU@8zV)ts^&B1`swGM(uK*~;@lm#;_VRk=-4l1cS2Ln_jlxLIgLY5}JBx+4F9+CRLG z+^0k=mM^gus_J)MyQ3;Vs0rPjCC?dt4P;w1mtbw4x%L|SSVBL&(^5B6{F*-4K8>K= z^&%jV!H6o@%Y*(e^RW&+uh$T@TovW1rFK{Q|4GQSDY-7JePd{R+>!0`2FO5wz6O1| z49=<<-`9W;=Y&7uYe!U+pp!E)rCGfbE~Xn=BHmHk3w47o{m4whVoUSy`CHsz4}dz- z4})woZg@G<`p$?%u``jMsnO$|Z7Eh@hUaRGYXbg~gmP~b9Wd!cA&a3vYulvLdi}A^ zkO8L)po+1D4oh`I*W}p088tIEpy(^Nfj(zTQ?Fo;wXaIexO5Axza!2!n_ zgMW(kx$+wi!EDmgEzZyvZzn@>Px=b@=BNLjXJAHV0u~wSprVCz>kJf*g5%(B-rth9 zxNY?#%vip-x_&bHAC=_KrLT~RtiTj6)9~Sq2KWI~UhkFXjB33Rg_1vWBGUB&oNY^v zNJI3hUED3T_}PZaL}yyN2jM&(_T$TXR$UG$Hmkg-MFc{ZpYo+~bTD6f#Pt+CwyrDe z^HSnM>M#uM(~z5fxu8A0yest9J>GBtmFj;TUc(Q<$A7=Z88O=&=)^<5st;THV-^4o zofQg8u~Md=&vAy^$MqZzDDHBPZw7k}u?(E-?B1ywFW^9Fza52QCFNNNR+cBPJT_Os~sKRDu~&v=eHNgll8m7b^?L_SV{3vhF#10>A&HO$6iFwqZ# znO%ZFz-RdTX z(N}XoRBTClx25iAtK@eABAG``pl9Lq{{wn1bNuNo+Pm{EN*?q^l6tZt8-Kd+8YU@% zX2m=XXIw3^{TghGv=(2=6A--Rp1h?KcOt6$jnt1iy@kYyPJmT{?)Atp?<$Yb<5;hQkeNU4du=MO@BGynuGiGd2@X^@5~nee_IPch1G)c*+oUJ7Oik}?G9*mYMNt&v zs=14lz`8b2!8+g!Faye30bO-%6jyiGwE(WY0RP{6CqwR?;J4rZ+vi!#oO|xM?c8(E zE$8=k;pwiR$iLpZv2d_5J7tfJAqfvaXRh0OtZ<`AlpQhzH^2XdnS$xXW_eQoLsH>H zXWbFhmpW}}Z($=#uNbKd`-2SYQ16kB$-ajYU);Pgx_`&Zp>W?0&&64r|G;g`fKzfg zICKQrxe*#ew-dV`*|^Ag*XXX&p#JqMas}w!dtqbVThbNfn|5^P^3{nSBl_JvqmUdm zA6Hny`)9Iws~|%Nan)=djb)E|8?6dB)q^%UKF=OZK0UGVnBY{1$b*k>^!D2^N`RF+ z2&?5^%KAG`kHhi=?}{!@1=tEbO*lPW*hC9^%}dg* zY&z)=*oC8qqxa!}UU$#NKHmZ!=k>2^aPa2(Tts|q)#%%at_j2WGqsbr&0Rn+g7{#M zQ*b^9&dlbJ%}G!c*mrt|Jzh}aX5XS1^DLB@9<99NhHraoDm<;ODP8TtSq~s{ah^Al z+!u_!F}$dG1bc-px@?fep_q`PUd7bJj{O#&85g32`={SD7IA~vG%f6p#-9K?6O?}p*Qq|*aMTb9yQ=nG|lzXsECVdHE4)$2op#KKwVNRsmvG*Wo9 zLw$jd#|t~1x{ZkX4^*i$31dR~@7W}rmX|JvOV~5EtBwReEbLW;EmzDhtR1Ak(I-Nz zCb~^ZF2C%nPgvhsm<*vy`o7%QN}@i%x=**-Bi;c5lD`kf2$v!Ek!$~it4$q1&x?r3 z-mpMu@%iU4ML>kNv=fK2csGUUinCCTsFNG-^qo}T480hk@|}pg_w8=?`1TB^p4ph; zb6cXi)>E_A|BolfpuwhLaOSq%k4=r>ZuKwzWE@URmQNC)w zHsdSLqn&fI?2q7cG{P5ormwK$!VX|0xY1thI8B4a$->3Jh5o@VBL9eyAXITQ?4W1l zHvp1d73 zWFPwp0Uyi(6lL;B>#d4nS;YOsrz>< zT!1UI4c~X;)cRWYxCcCVL z@J$F65FVKw__g~U^5NC)e3JT8cL$mDL$|vBRL%l;WVzqs@sZ(Ie`VMH+@08eRf|F& z5a4lxe?mgAP~+3+tYC8AZ|JPsen3ytrj7W%JMV#?HkFd?SG%M&=?$LIH0?@FE-|TpFf6(6D>w6>_ZbJ(+9o^f= zQX6741aL({X?Oz^K|bv01`?0}&F;@Oo%D8gKkV}nMeTU_MHT$1EbLZRcZOlN2|T$d zvMvt}*gYBe_RioU(^?>$duCzp`Jle*ME_DmyiO%E9)>MI_-LPSLY^YuBwuIYOn`=pCgpUM5(GR( z;1lG+DU2ZY(Y7%7-y4LMuFmaR;(wDfjx5RQ>O|Ekh}cN-pZqSzb@wBL+?t6)7UT~j zzhz^KP0P((xd_^^yvZesJakL!Gs_YXfm3Vk~NxGl8r2^&7BddoQ+t)9j! zP^v$I1d{tO-YxY$fft)SkKwh~V~-#h_}J6uMv=b#xT15Mvf*;)nRECa!y#N?cRga8 zN3M)KA4*bQvt^SnU$te^vZQa=;^`l!97kJ-E==6lpXCcX?Ws5<_NAfq3(-AZat+3puaBFgkH=tK;E#9#-X+GoRi z2OQKf}py58Kp2H;c&hQ??XxbNbd$x1aA$#92 zx>s@@ea&tKOh{@cB23rW3x)8h@q}Kv+1A=+6!**Vu^q9P!;8ZEUO9;GJT=%;oIgEb z$489>$Svowuk5|Uh``f-dUz_9Ux3w2c0=VlbyXIHfn;%+d;UGS~fp9Xq2<&s(mD0 z@1r@439!;gjc`VPZHJVYT6>05 z{EJ43!$_w{rA0+BZQJf-#?m!O~ftHg{x2D;b4;;Z)#C%QvNS{ z74iJN7Ex?L*dNBfWy4)ldG|ze<{5iYUl5!lj~?{|9Gu7*bC10|h}0DKh@7Gy>|sI9 z>PPMCMv&|-m_PJ*5;v4|EUsvan5cSPTpK=zyJED1VTy0IXjL* z1n@&B_SpUvniQOb9O=aX;Dx(SN&6pNpMqnk-q=kO$*LCnXrWI1KYf~lzVvIvA4&Y3 zr}0sn;RnXxEocuARs^ku0=>uq}WW}TQG5z8+RExx&=p5_(EMnu`A--0B zdD$*!rp24D+VRNUKTG--tV_XR%k>I4NB?H`1d*txyT>`Td3JzMz{Q;2uPIBxqJEu= zKKv7AD><#7G=}_hojsELcFZnu_SM?~YK<&Y`@ch$$m?0;&Qpc<`|wO$sC>>PJFY_B@^`}=N$c0$wkRBLf;VDG)E?Xgq z{j=>cp$o>59S>qHT=r)?f9~Ior^E;6VCr1kg~J$edD{pQXTw{|-rZQUVwyI^3YCu} zPtL)$!L@#v_*Zr^{WZ{~;twFyve$-B#0x!)&cJC-X7(te*lx=w@f*A6JFjUSWB}tS zzR&?Y;Uc`_q2~?f3mkZOt9PW4n@WK><|%cEiB6BN+eD?u;}A`g2#0}YY0v|}b7rAq zF?q1iv4m8fZXZv6$aTyky9yli)0B9;RS1+du{j>^Ztk8DJdPyiI{L}ULP*?H>PR3_ zdPgLw&A+?6z=Z;?w5JfrZ_%moK>!jH zUSC}&lFLGE1?Vs5#!SbH!^!1B;K7t93x%;~ca4?+#Lf{T{UgpFN)*=WsihNgeZo`fhR@ zC&yHdSMUcORy*5Akw?UiKl#1`2)HPm6^k7somb?JbUajC>UdIM9!Yjj4jx5}GKZVg zE^{0N;J;&wP|8B$K2|u2)Jq&5GFR^C6KJzZ#&Yo8yk$>DNnz9y6&Pl1PkXB1g` zX6^UnJ<(34El#8+G7_CAHi8v~-;13~o?km@oO7i4__7hsa~qB?8bP|opBzQ@IPRN9 zE)(ZyvMS^FcTADrtUk_m#jN<_lgL-!c*lvZ587IyZN7a9`FQbmghD^mi+?hYOP%Zg z>up9v-HwrnW2rqEbzSyfahCH3b|_K6H0Q$qc-uz>lscq@oyT^D4e~g5WFAk9Ap7Uu ziNnpLN%aEAY5d9VF@x1#OTL+YGJ>pWbOQu(>PeXEQa4T*GrU*@lD)xE z3l=RA#o&JnHsq$}=C>N^H(bvPSV(s?*)idyZm?eDtw#48GB)C*f}!ozgRd&$2C0y;rXR597^{l*nZ?w@ork)d6fbTWtesh)f?jrpnnz=hB1wzz}I`;jQ^!h87n#$>Lb ze@{M{!sHl#t9v@BkMJ>vklfc@h=`xU<#=$)$qXjP#VMSCrk7pVq2GogF(hoS?V8Hf z^pjS16bX+!xsnlextYm}mm)1_Z+|3LczlJg5Abf!>Y7GIPCGea;`LEoyH?k3skhWw z>RZWMkte5@1n zaeAUoei}k*KK$b}XVRjRU#uoi&OW&+Mx#{8EefmBDpttVV!2grQCgK!v05xqtHcVE z2B+cwp5mN6=j5TF|IPc$+>zgN9>-ig5>0Zi90_*bZ9SZEn8d$vR7p-BIgIUdGn}s^^VZJCgFK3TuP z#Trp6`Mrmo!`RLEF7S|-E49a(p)FUEU7Os_a;zr3( z@eeFq;WQ!D>MCNSfVO~~vbw5x+BW8AuEHZDORHQG;(jm$2PQXR6nYMFbq32^GFIsc zBTv+V&#?=9A62@>Gg5k#9u7?ht%~{07ZJw%MfjCX`E?AKwopyixOM z{o+<&+-mDxWlR|~;c~sJDUi0c!POE-i(ciK>}y~{qicR(>aj*w14D~n?NJG}XVv?{ zY7bs_-UsD^#f}2bOh^>j5RcKyY34?Y8vir@#(L;z=4L1o984Lu7H(u_CV1wNajmXw z&N0w$t_QSV=TV$YZFWr}2U}g~f$1~J`T`FYw}JFIWcQmmdJeU5`tk2X&oZJ)LgiyR zT=3bVY-?phU?uqq99M6?Z63)_g!YfOX6 z_E&TA;x}T&|K9FOVDf@y<$q2lFK={ZGqk;#=&jHUnEvzKu*0@4&PvnN<6W-Oz#OZ( zIn@E5L=eEP9W-xl7IdCU?#n`F=U(LMOj*ut;*^}yN*saWr;)Dx^&;|>gR^)EJ)C}j zoP+tC`zX4}vB`x8rTcL8d^P6~Lfme4jb@r~FdtL7VRJn`M?9d|i%HkbT+0QPKD{Sg z(CWqH+Rd(*!2Fx_=ro%8y52J*P>*O4kLGy*EF=iHn1^*CK-DPA*;`#kUNX$9kR!a{ zhB>B@4F&#M?JhtKZX~p3bD+>ja%nTC3+r!l6)@%I7J1@GW3F#@hLb(TP_XzrxWSU# z&X39Mu4YES^ex;3UQq(Iy6`UME@o#q>D>o>iKY36@gbfq+(`VT!~>kF|6{o`OFeT0 z6`D@oEJb$)Orv{CF|{r`ekV2hPHw8!m3bE8%+$4N0^{grTUuK!YuA!lizZDXxwG8( zltBw;P|CM*P5bLsPG2Q!vGg2_fgKXEjUOVIJUw#KWU`}hsNB8lJQK+>;h%E}hiUe3 zvg;7;1{>F*^BUW^-Ul;wS$DgVm_GmfZdWVwbLV;w0wlJ%v<&UNZJa}R*9P?E0dxSv za%}^8Ft*n+{ImhHY-9Xk zfj*IZ`ApDg(sM7jCOmjAr-Tk8#y9Mbt`&@s`1>%Me=)+-x?2fJ_qk@0-shoA2lgKs zN$z=ot0v{`Ho?K09z}WCEguru6`Atp-0uQN!+l)i{0W>BB~;?X{jT!BijA^jE`E`S zX;c1yOB0yte1LPsE?F_G;y$kPy%iY#t$m!;1}&OorqlkMNG?5#cUAlU!S$P#a2oj- zaj{Fuv?>g;pyf<`?ymC8!V|awEoBmBJ?xr7uKbB>8l~;7Mn7)d&Y5%{^LEb7qO>P! zuyDP)8vW3_%QcVOa}pzTwPvU{Pnmywkn3+GqCa{U{9WILcau9F)G=*$7SL3Mv|}haD4^7 zr9$DX4+`2e^2=VX+*z$KN@+HK^Ltuh&I7g~X#RBa+n>3m9kggXh~nH?N}K!_R~=I| zO4~n#c3U9J>4&*Fhip@c=@D)R=Y515{v8IJ=%lIa2`|TOrEw)MMOO zQrfb|IR$=gBb*TGSC&5ty?^6zZhS94&ei3KF4#5IVBEe!{;SiP-gyg}x>DHK zUOwPrkM*wIg5?9dLb`wfTIir_2_w1gR-`_4&=t?nKD-r!K<8%fv+xaK{s7~iwUuka zx~I7{_Q=y*i+VRhomV`=t%aZo5k4?*sNZC==UG=YQ{>OjaPmr@by>MR!9iVP6dAP- z$6&NdVb8f{2c}~O`J9VAApH1tIB3haU^r-=C2qVst7_*=OwJaxe(CdE>)l(>k(W35 zI&w03;|NSbSO+|#J-2Y4k>n0+fv{BLoakr}-q`RB+J6W7u;B%6tv~z%*T_hxtC?%W z6RYZ{lBb+5_E__i!*M%&^f-5Tg~!tpvSG2XEk2IjZ$rB9MB#P8 zr8~*ZFnYNB0l`G_GvnI$B#x+$p5P8&C?7pb82u8b5j5f8=dMxY>p!7F0aChC@LcBf zMQ%1A#}snyC2jyfV|Ni$=&cW8LF44Hhu@Utj+2~cwQ&dLlsf4!LQG#nzZ~5GtGfEH zTzfC>@E}S@aMRH*BS`pbuCZjN4sRkZt?(kQnctV5`75_ZEqjGqZ18gmalOJR=7d){ z7i`n3+^qP=tK2dh-H+=2{XeiAulM74@0Qm%TeYnpmW(zZmkc2S3qC@_4<4=-@Gj_e zP93}V;PfW$v}*==^>uD1`}6DEs#d)hcI8itVSlK2&uNU{!M(6kN8jK&?5#JrZ1_2e z2JGc56Ym4Yu{#l9!mQ1 zZPpv3r24N&V%qvnLwWU*u`FE z{`N6v4GuhuJwn%6Zc%^vEH~eKpTiu>I>-7`eJ{XKi$0GD{mePG`}}lfTtLDn=+3hT zT_8o0=@+;uG(Z9v%msG&1}l2_6ZUF{lBOI&r@KGHf&9kNA(5p15Y~j%|KO(l*-u>T zC5PxRMvdn9YE%e7PXEbS^V<%?h`n+Z%6QKgxY^q{CIqX}ryR@TPubZ?>@VW<<@BeV zBRcalu1K2;RvJYzGl`7-C$~gwa(iOQPe1v~J@ZdjEHgzKkD!~U{);OEv;}0_zqm2I zcm!7U+P_#cMbiGw`6;K4VHs)(aZe+jQFdSQ`&_Fw?)U$_?aec@6vjYQ&20-ZgT z1#LcAdmLkr1iA1RUOa!vT_{nRKOV=h2{OsYUve%<&j~bl*;m{tM&nnU`+=X+$mFlN z+3@R2koW#fVdsAd{zm-ExR$zTbhB4@AAZgGIlsLO^`^#v=6G{%$n-!@Ve3hZSokGw z6gOPrR#?Yh;adIY5^Ls3++}W^#?Ptb$YsuJneh#`@xeO)JJYe>zv@BAzi=8!tCsZ| z`ZQp~_WYM!lL&rBkvFzX8cm{Khe@H$!b=49CL<|pzT;|E{vFr8H@@R6 ziuil3X{X=x;56a07ol3;!e{&Cd+ss?sq@I)r!c{ze|5zOsT0YYr*Ldheu$gz-<*O* zVq#1p8H`(M(;CI*}ZH8;kH4 z-=V$Hv+&5E{uhpA%P;)6{|(b0^4QCgd;f;X=Pt_wWB z!LM2K8+YgcTH9d$zV|#!Nd0f9)16mXGX;7i*|*?e?Pp`E8N_T zzshy0X!{Cx*M3Rn{l3=PXo*mew%B&FVMJ zG5p*>7m$_bey6ED=Wr=b1!Sy4;QZipo4uK%InI6pzb|8yn>}p*WCEUO9T??i zk2xr9{%B4zX!ywGXg7Q12^u~KB64e)8t6asr1`e0c*=#l+%GUPcYhT;vTux=U9`a_ zCgw42_7)wqWn}DFH+v@z+I(`?zu@8>8tZ1CuF!hixf{@|VMF;YhPl}-3C+9X3mms&F#x2=7dWvEm|p0rSd#N4 zG;fU*Ea$$$pl-MrEFzwZ!FVHelbbbeer6F_@#;PJAoqB#21u0=%LF%jwE@~erX#3; zmm@f30&N!AeG&7fcp^7qdndZt2SlG-Mmyprx$k7yZvY`dnpSqGTX?*0K2JU%M0*P{s%rjjwjMw%-3 z`X8~tZu<-ac>V`ySzONz#fOr`Kcd&UY;%5}dFrRVp(JGSp@~cxqkn=qzmfR7pN~>CG_Y_ zH=+xoIqOM#jxvY+3WxA~GJ5{t3^)A48221@um^+!{~^Yme}jZEL^;dN9`6lGzA($p z-g?o5)mPya-Z7iA^ZtZ|ByP?P6Y!Cad2rH^Z5g@pU2qt=dIcRBa9!e;;$!Yx;8yu~ zFJD7H44vQ61XZED*hA0p2}Xa-akDSHIGNpnt)~Lw=erqyf(+*Pe7>7~+eQ;MjK+K2 zT?_bWBJ?m#P%Px<%Jqco5nkApg`6E2l=rt0-iaiAp&O6a7Y!X_D*5yxH+x?*nD zU5b9_8RZSV;l!uS0P`p^eCZ8E;hpPJ-jZGKzTZZBrwOU^N$E28;=oa)lKVwo5jnEV z9e=~r196y{%DCSVkJPolmkkk}VmJG^bFk&e7EF$d-R%3ZfYfXWx6tcDz4#2@IPX|t zRa(&ZN$?mlR?00!;7|yO>>C8o=95!WuJS&b3`3bI<7Tx#fxYIWG^3nfLj|E1L++%=FeS&$95St~hDl;%)JdFPPoRc`iDhbEkj z^3Ld6J=7RRhY`jb?SUG^yb?T-tS{pFfQA>5B5q0hWZUuCWV6Cc z-*?lzJ3sCe`` zuE+hU3k8RM3Ta&L9#86z1>g9Z)z3VJY%O#z5t!LiZXvaAHOhH^J!jRg(;HX8yX@I8 zq{hfJ+vj!Wn&4T94RAzuZ-CC`tQIB_f0at>u(f=M5S%4(vyk#V6%Ug_{aL@{P;&k_ zbTPo8rOYW>tPJSnnWRgLB`9YtKf*@$?TlgsncUl%pERZ}G!aUV{+&uZMs#CNqBkChZHlcAzZ%jP2)H!U-q0LOP6VgKiWsnEsf-tNp`I0>!C*4@s_ku(C#`Aw>K z&8T5gHOba{XA1wV*L!EgUVkpEGRVaSsaUD7N>yg5(V&rAj2f|3Y?WF~QmJ{t5`1vr zN$))8M|$u6;Xw*A%j%5|0@UOa-Z=|Za+O+aGFjCoiN>rnn2c((Qeje9Wg3%NC6!3T z7Ku!1G@8k*a&L}PTjYHxW`WqKQ7hyoHA<36HAkr;M=eiE>@!>&Y@^l3>viD8z_#g@S<{j_sg&MikA{QelPi9oBjS7{?D7T0;3WG&# zHER?miCAWqNKFc(bMHp)Qz1lpM3_G>ct?;41(4LZ-W#^ifQlK7DzQZ@l`G7sw9%?k zsa0~5#UL?Tjbf8VCN`r8e00WJ?3{3`H*^@#xV`s#qesY>NtDEJ&^u>=M5B-@4KkV4 zs8C8QR=GrFQA?#3wZbY^8^mI>Q7%?!OcL_RYiP}d&0fVYGItXUW=x}Z+;HVG33+;- zckV)iLL-wYWh!J4%Vl!2St?hXFvmFRE9g0kjbZyqp-yh#fTQmIjs>-TCvcoV{_d6V(&sBA5`$Q663Z|pl+Z1;L9Lcq6C`bt=;b-7Bt3UMa=S3}08_W`@hSG=zN=+J6$tbqSjAo5krIJZa zQnAV;#i){57JrM&e+BfzQ+J`o(f{%mkr^L*QvzgaENY9%sIY3J5``2|u_n1nqp?`c zGLuGWRH;oSgHfWkT8aK6FFvA?dnlMJKkI#r7qZY`P+28XnZzJ57=!`PC@e}rMPyQi z)TlCAlm?9$^T6WNpYw(V1!Ptklvb!Pw3}U0zfQBkm z*YyH{P+rMjcPhT$ExR)|4G<^NT7OqxTTDTpIqLsVG zp)d1jy!!GsE*s+2r;wwq91TJ13Z}Hdc=dq1G^Vw^jjQSIHun-HuRjbum{jncy=Mzt z(53BMxd?w|%N2sp34+gqo%`C|`$pVQ6@XT_k=vnAeaPSH23&puOoz3LJ5GXT%poOP z-T1O=7pF#4M^<&atC_k(M_4xy>cQ^xsb+k=iOT`aV4ltqif-_$gFB_6nxWh5zKO*D z6_*mP_i)FOR7bY-p!V@!<0a(Uo4ML=zS+$_Q1>fJFp0j!T|Mc#*^3(Wm*m$qHg<}t*$=n5+inbjKr1*y ziff~@w{xWr>K>{9Fgh`=#X7cdEYQMD%!pG&1av=T_9G(P!R5HFl;nHr(60+@mA3=0jw2f{!EnfV2jf6q!hF}zFVVNdla3jhZul5J{_nk-U#*tMOe0(yWo z2B1;E0etF5<6++vAOVQN8oa*Csf9+LS96V_AOyzc9`+m%v16&}IL@7N=^2$mNyJpjDfEj2H%yDd$hqdYe7ht;`xB~YxIXL(L zJX(DM!?@!%T=ISt?_nJf@GWCf8?;&4z!gADPm(8#p#fZgjX402fQd;3 ze82{-WQrH?Vjdo*0xw`O!|4zFA4y(M=H`_@K|~T$xY_AXh$MAZXzS$^PgUyNU|rD(?VJXfCLKoypsqp1PU1%#S8e4i|jvXaH_<#m7SNtqi3p&z3xi5H8W1?jb9LF~`HcO#;jS`z(pZ@l!MbXz~W8_Cf+M1X%5& zyg&|M#Zeld0@!7f(tr(ssIz>ohmpW`5Pnib0QS)i%?k*CiR4%wp4!$u6%>I(CvKKd z79avl_OZm>hSly&BG-KY2!NXM`nG+4&=?Z?2Tl}_16Xqdlz>IVQN&IAy|?2c2h{EyzqlP+(GTHsG35d##w%+)?5YhMfV$s{{@=HOE5RT5&$bD)TBZ^R z?WePD8YzAxXbIW0p6m0S>$&ckyunk)MKZ;B%$2$2`xhICn_V;pb ztwU5lJ3t8LX9ppf7aKciNs#%na$J>Vf^#{haMxe zpB-96^|Q_&;;U&aKW<Goh!G|wt{H3c z$_MeHe^brSya@Mab%W-W)pBY^X)n|c*-oUi?;Aa=MWr-^@w0tTX$aX5C!?jX z6|}Rnn?3WGeg+GT;K%2x}8%|nu=Kd@nq2`Jg_dWLrlQszW`?AN<7!?<2yLtoMuCO z|3va}N1zf;B^H~9eS?W0{~4ri@=@yYjP2{fE9gm`obf^2|3;>z{*ZqW`FE#>eHVxX zfJ2VLx(}~KkQ9M<&Y)3br`jm;kJM2ii)e#fv-|Aw*#*UvF1Zo zP(TE*vjpe>Gkofldy7ZH)E+ni>^cT?0Cr9S4uG9kKmxEbc@gy=N&bEoF7D+mP{k{5 z4D5S{xs?w{05PQICS3f|wf?uKu|>MJo>Nqc4zPSPHw8drUC7b5aZ5Mg0A}B)`P?>u zLIhMkb_@`)LgfGvFqLXUAQQz2z?YrYVjhWa_lzaa11ErKBwzzrGXjVJwnu;tz;+)% z09Zc=QU7dzO}mq81_J(<395l8vjM~a-zai5q#yvt?|@&JyOmoV5q?gQ0LGF1KM2Q2 zcVPiIwbe6=sXC2#2QWYwvHpZx>6|}8S90zOlmaNx!w6{G5`ScX<;-0}r2sZyJel$= zrU5;nqoSOLv3#v;CX=PxIEzXX_HE;KIDSw8gx(2T*ujFz@A1rK znnn2@yN9zA6lh>>FK1;zTSA;KaCQE95srN}CvZ9n1cJF_!Ds#++H?eKM1V2fdjz6J zeZ|x&lKgyR=&S==!91e+Bd5!B6o6SUmKQLY{NpGV%Tr}s|54_-_i<-Ql=jel9yUaW z(g0?_?!^F7z|LJiX2F1u;_uD~ve*mYxP$e9Ma)0u$duYn+$1GrtED|U*!8Be#JYV=? zK6L`|ybOaCznyD2Edvk+?7XEkU>1z$1psW}B+3mC05AjAKmfRaJw66B0Y0L*)1zam z20#J?=?OZHGjx14cNgbY`r!&hq-z(aNN?}rYz;6Arjs2+SX%#p$1-s{VY~M1g3o>I zRVeTU$+02s_H(=WeONzdoq%Id&s5TnSumDdi9=1r`yjdMR_MXcQ6Xc=hCSRA0+<1N zga8Nwge?zbgKgT2tA+ypgFl#Sj|0&+V1mOg9AsP1<&%(hvA~DXl)}XA3 zBy$R4u^TtBjRyxsLkRa}KP5=xk4-7Kz`BRo1(}inj({(d3T4JT!s$I=5@Lk}#^IqE zfR&KTRc#UhOhS183E&7og`#2~^Ds{@sR+O%0L@lN{LjRYsbuxvh8*%zHb5sJxKcQf zr_GLe2O;AJ{sw!++YLW2#Z*`mP!GTn{qY(DwwlOZ6v=CsUvFWC!M;mh3|@kBtip8ACF^9C}2B95aNvEE3QaMv(pk zo=B!v0AOH`oT+$#Ekuwzj{1f~_(GwFeSJq+fW0t@e14GC8$uHRz%Y&c__QaMG<<|| z111$^@#8VD`v89e1z=#5(I*r+7}Xh%c~HP!U~B-O z4+dZtWp*z{)WEuc0A*M}!~zt<2ZvZgLIBUeo)`j;fmN-= zpJK{KzsS}^0AT1CtTh4l!UFQfdpM1t4LdS21UUH>tSKVEV_>h70L8G_SC@34FfgJ3 z%FxaH^r0{u;clxyV^t6U4D413*b8&X7Z3P5X#Y{JsT7LghohW#M-dlVk9qV=xuCJL zmqS+wCWpd(O`Spx09b*^Mu8E2_IS4Ov|ap93a`NSpC3=5hv5T?!dm7h5EH1&gV(l| zn6o+aLq?I;zrxNeV9oaa|crf@Dy%iegZpzJ&y%! z!fdkZuTY=w=Y$|q`6M^KKv7_KA3#i4AUF~O)xCHba3!l>;T(KFs6sf;H$AXL09u&u zEBDDcArXP);)TL8-*P}-D10O^2iR_4G2F#83y29Z#GQg8gz~qsBfs!pSf+p+U>U?> zDB|-@C0kB=mJsoGSa)83owJPtSPTOV>OF(7J+RFPY!L7nfEE4*cUcaQhMD9+0XTzZ z6MYYhdj9jFccQs(a$^E~2KM;J57)q~cLdN3?1mLE46Hu{@P*me%LQWe8E%Mx#lYH8 zz%WqnkXCX$Iq(zCYy#8|&FJ8099bu zY(K`rnCrC%;OskG?E$&KHkE=bjCq%{ZJ@!n32J)gJ&e}2-=L zg~bBCf|$`o8ha0D1$LVQ8r$EL1rQ1ogj!7^Jr}TqtqyWe?R$0Ti8tj1v_b^Kd+I~( z{+qG@X#wZvA931C69BisZiFZeAPcO#@Zs*r-z^*93+#zL%|HBXVDr$5v)mB+_|Dyc z?;LkBO!)wyz_`~w;07Qjj3b@rhc*bX2@`y#-f;ov6EiMwN3v8NFcH`@ML&%KC`9U95bl$)(Z(*Dxf&VbLxfa4xptF(JdrwqJo&Xp%Cp2006c^d`(+&dQ8#JOR9 zyoaUaeYL;Hjg#DR5~}frvPBMHK(Njs^0Esyep09h_Iw<)SORQ^2(s&2oIu|BU(Qg` zRG>Ue@ul`obt6#gJI>Tn7Jxob0qhb_6M+0M!I#$+iE#_eD+Hke2!gA#Km+PSG+F+m zM?yZIhQg12&lf4M_(32-eSG#P^zQHQv4>L_JSv`|KCs^TU;;&WQ2dCuJiv8Wz;>~a zmqI82(g7Xu6E_*D0Gdj19io2b4#fsj{Skjs!5mBgt^<2kAHW7k2lmivFclaM?AgCR z;pQ9G7I+N^wEqc4WY2HxX@L*BfL0mE4LA(=1uQdXc6}aXa_0Z?Sa+sBQJ#U0$|XtaE>2s$8}~vI)pM44JAerfIF}kv|NUX50rXYH;YT0 z%}a_U=O5(k*&s6j9%lM>hP}fOln4BY86l2QVOps5MOhUc(sT9_fuGdxE{uH>?XVAbvM5 z#d;V;QjZHu;z+L#A>!o_FSEDysSPa*@DG#7${z-JNnb2q>K}5ybOq?+{mmb{NHgczf(nH62U^284)YZ18o{4ALNmimB&mrH+aMSOh+aoQX9$CJcc}d*nlxI?4wCi3mnii~(EMgE;B5blZz~2}U2T+L{CE$aSlQE+=Oc^?(Q45MEF<>ckryw5e z+bP~5Mv~SR@Dl9SVz6oem6%E{PW7@c2WcuGB8IF$piw-DspQT`?=n(6&AWur8Gkm4 zEHO@CSxPQV^Uexn0mejkAPw*m>`s%40<^@CfdQ(-G)5PeT!w#pBYO^{3D(m2@g>HP zEltqX@EC*xm(Jw+6mS!NWNJl$A`+v$>>(4S0c3(TLzD(U3HI0rG?j1bLKjTnP>dwu z|AHsoJ&RKiU^P&X33llMZ6&Fh%^82n2at(LLc%g4zJe&{^Ew2YA6(2?T<{G7PvC3F zKLK#<@+=e%kO?)@Ha{PGpGRrHoM5dNr2$_8=REVgxpt)&VXlC>T*rTHkDGkU-;? ztO!gUgrSfU$^rxm&MVD>Ho`l^_YEXo4O2M4BL2+(q(BqwsWQcrSRwPWG~h|BzAkS9 zNxQ-wP@%dMUV@zuG*Amr65+y8K5gY_(kOvWSGT_?I} zK)_S40=(y@-A9JJFb1x}7N%|ZNs%Q6)-QAfKEzuJ90QBWyC9GcXcO#~j^+i%1luCe zD4s+PpErg8N}`mZQQ!g~Mnnj2Y~~R68jSB*FMRKD%XupzfJFdBg5B!Uya130^W_}} z0fCYMB{5M*%?M2J<4MTKo>l1Q`jr5v3D6uW9(?R<^wTJS1l>|hzb=5CM*^Q8N@5b3 zF$wno7vh1lLs2149ffK8a4R>c*E0ZPg7uXL=-iYLx&iF0c8rP|O|EIZE11#%AQ4ZtZ1)vJ zQ=^DG!OPxl(y&EZ+>av;W5@xXCxS+&10$eAV$e^9D0I0VwnQjIeY=eT+mLBbG0h zNSBM1&WE2kzH?Z-5K9fX1AM^PC`aVB3|}|aDAjVaNg=i%+*$)n2DMTHkN~w@ZB!zL zT4GQc%}P1K*e!sEP&#iua6IF_aj6aU6*c&OOm0I=XVCEQN5otPDom6VvMt*olh zcBCa}E7B6Ru@yv{d}5-bBhRkO%+l7RXeEWZgvzYMd|itzxmsJ8P?24fplv7+B^6e- z8|%!?MyaAcEjgjxB-7i{lC%~dLsmhucu0ChVV$PkoS2ZL&)3?r667UG1zLMnQlU+h zU7(d@6=d16lN&%xvpWPTh~n&mw9cHOhW}X|wl<>wr|P7oC8SkrvlA+6nks7m!159z zX4+3oax~|v<*jYCb=sQx>W1cm%9`9-ZMCdkA#au_;wmyUs;d0_)cj1Tw4tceU{#gm zcGMTj%2FgEZKGXZUDRAzWXjf8HrF(!w`5jJ4M{eGKC1zRC8t$MiW}{%g|$VcRmFMg z2ANG=ky|XS%5IidH)JNawHkHxxpqfwL87IpS!8Id6t}db*OsIyjH&2hQOsV(`2!n#sRezK}sr#0lJHC9)amCB7J`Pp?js;b(o+SIhlrlv|! zQ<);p+*pvWG0nbua()dN<~Eyb)6-vx;U}ER@NS8X>XMo6pi{eU9v>1SJuT< zHYp18O7J1>28k`ZLek#ZVynxjNNdTg?0~-LwFwQKr5))>+I&HCM5%dM30kXKmzbnY z(dtv|G6H^>|oi?e)Sd^QgsuERdYAqF|Es1qHU0SuSQ!Q<6 zZ%eneB`Tzi$*KfHW`Vr8Laj>gXfJ9iZfj|5Gg=fWRZ>-bMwPO-#a3fis`9N(nQ1ar zV^xEwR#n>8T4$=4WR#`H<#iU6l^87gsyI_xU8kWSF5Qq^P-iol9j4|&OJ!?ndbL)X z-z;t@O;<@wwFwPXSqbK(%A%@{SVd-?rAm~h)yt%f9hqXAsZyR6TVg55Yp>K*B&H>0 z85Pxex_U)&hbAq-QmM;L%rK|7=qd|pN=v0Jy7WX#WpbiQonF?SR~DP0RyVeY3gQ~_ zaw-dp@>+7svs2~S#>_%pzN#ppUZ0nxNi(z+Ry8%|ShG@Wu}W)kYrd(yR@vGnPmooK z^Ez5m#RXMynaaF|GP_DrRa+o3$qm**O=VJ2t*p3Io^DGmO%Qjs8>_T+?PbLkr2PI9 zbDVD_ocMI_NZrzcwu)v0(Jy>SO~O-8#E{sam&3=V8R{xx>yuNAosul_mi?tkjtXO% zEzzz`_f7xO0&Q(xewJR{AxhGhCKc)RsY%+h1Y=!mrKwJ5(R+8RdO2!rN$?@B`dX1kX%%c5-SR&MV;o9+B!oqY9OmcTNAPcY0YIN zjg49P6&>jnw3$HyF>xCP2g6RK8FF3evxKS^NXgB;n^umogLB#e#nl8JRM5Mhmoe;?hyo??G@>o*y z-piqm_QJTDj-tHOhN7yXWQ8&@uCO#gp3`P+!g{31&oC&9s`d6dMSh$$$yS%2o?E7G zD@seq&nc)$%@?OMY+7e>YJGlAO`X`N&rT^z zGPX*LEme&MMYFatDW$!$CO1>r+2Rl@F{=z6DMpE2ks(UVXf)Q;=O^nmIojr?l(b@{ z(ypvkWhOT^%JQc|)UJU9T<$zENkRUX)vM{7wRP#rtfG{R%=G3YnYC1+ zR%970Wi{zV6*boSmfEW9vUXFdHBl~A)M`z+n%1QBtm3%J8ndEBR%6mgn#CertgR(B zDXyy6kr!K}s!5A&Ge{e<8j8|u#m3ltdrEF`OIxd1XR<2GQe?8u3SC-LQel!rR%I!S zYci%4r?eZY>g;U=%8u9+yQsNUt}e8wGIg?!1gl)1Q&N;tSYMfy)mo*jEy%4=n3Brc zYg-!Hl5}}RHdC{*M4wSD)0EXzCpS6lT76SvtG+QcIWDffrcm1?s%}b7$*E2$Rph0r z?U}9VMGejBHgiH{U7e=Zm}5-pv@0a}R%LEuY(~1R*jiFwSXxj}oh;4i%(vH9Cf8Or zwZ^GzvclL*d%dVRxzW@rX-q9iF3Bk}>Z?pet;WQ-q+D4>LSjC zEUzh&q^HFKGApwoHM>GzBQ3G3Yim*(ljN2Ri_I)HCpKGiv>BorU8P)As4Ueg>SHrf z67y0EwC1*yY;{vksif7~Tu@qKtdmrjGdt_*3@r_LO0yz6IT_uVo}E~#vt`D$DYb2J zg^H}oxau5-s3fDQG^L}YLaQswsAx#6&62k?$a2JTu_mrIx2--lR#I;+EzQdn*X9@N zq`HFKhFGn^s4U1+6-xA)bVHk6Vp6HH6Z6z!m8d8$E2TwSZ;UI>mF6^5WYiUFV&x{e zu~6EmE33-ROH6H37fUj#;`F7m9QcjZ4l&l&I!R%Nr9otn zR<*?z%GC*-#_U9GQHMRLCeGX}trbg6b=p!xU7;quB1dLRvPz0G+S3aS9r+cCf&@*H zxG`01s;$dtD>ABcRrzLVeWFQZu5HTFOOo2Es}nj4%yDt~R%=RAvBO$sG;}2DENRN* zs^a=$ZFQzmlATbmtB~hOE9_#kHMLrkCr&dLBqfw3DC5-1;;Kwtktm}`T-~HesA$Mb z&y}_7OY8-iwVlSeG(7;PG80~RbakS%B~_U!Yg8th@-h?+6-~8@*z~G6v8+U*R@&jO zRo1k%oAhmBX>NK)fkNG>i_Ph1lvrz}t&K^Ya=lojuBz54>ty1Lwzvd?%xH*}DOHsP z_WVM1dUkt#YGs}|Rg)$)W$R=mD*JM2QGHsYv<-unmuOX+voqsj(-bC|xVm1Ms~4w; z5>*Ap9A!?kQPN>ss(%DNh23&!dl-dTPp*AM3 zp`kSRF*P&EPT?bL1@8DlGbsdAQLrQ_RWWaSO(CG#j_`JgO)HI#0t*}#W!-O#o z2x}=wW|)dn(V<=5FH*H`{Dow>y*O|LX2CgdBX8nFnA zU_x4QdVxMaL7HXPT9P}&a0IY>DX8ekDbUKY3d{!3uwM~qY1e64X(`$)eM?88&kKUV zNiP%?R_k)Jv|``h%I3&Q(HAS4OH0x#v+`;>k~?U1GIX{CraIIwO319uYRk$Kccl1u zGIh4RWRc%nNlVV_G?!$Hh4tE4pI2+D*41St>S-z1ZkhA)C57f5T2+G8sxhNMF4bh~ z+HERJV@W}-DJwNeu1~RLidvdVZKY$ln#4yhscoG{DWNGv))bp> zQ&#B;OVV;`;&Nl9h1oe-x+;UC%v_(;*rAQBGv{`y#0jl(dwoW}ysFC7o?~oGG*>7^ zVtIXCdlj(dI&>LE1$N=3Vs$}Lx-_NM2oG0Y(wro1HD+Yz>nbZd6#pM-?*SI|(FBY? zOS#4!90x~NPDClEax@XK(0diIV58ULH~|Yb&}fVu6J=v8dngerphnlk=#r*JG?GLU zOH_c6N4mc4l_Am4zlHc*QDXi{mOnC#n3j zNf{tsMxxy&~#eu8gNNIuMZisNS_`Xy*XD}3W- zS5>A2O)Lpa1AUO2T_7s-&6$`M>oeOYq_ix2e7^6vn2EEiLQ<6zBfYcy=Hw-fk4n_$ ztJJEDkO>K8Fr~yHPr+6lX8b7+=id878W|s_DxW#2GO#Lp{0vQcWp2r=kSOnjLRCcZ ztb|bgAj}OfNSP2Cnp#yE7f>3XpHu3crS%rYPt1s)9a@2p%@V*~R_6a7TKBg%Xt ziAA_dCB8B7lLE?ptGq{~70;^9DxZ~I45~6+J0qa1Fg-Olv~+lqQW-cr zwY01?SGh7JK01AZX13Q1ky@jQ4A54jY17A5C_|D{d{dJPy;2fVBMORDQQ@g` z{latNbLT{arow=$jGyQim8*$Q%bQVLoa7ZaA|%T@J0o6|S{j*BnB-d_O3h6!sh(9@ zTpB+!VNRHLN_>4usP!=#byr=i}p_~Ngf{$awIxGp`yTN_9SIlq$)hu z*QY2sG$A`KD<*AxR!CrESlq1afa>Cu(!xscUZjT>Ps%8mHGG^VpnQT_6rLODla!FG9hW~-lkYXRGNiO1t4foTnhWOD_|$^*fW++Rh#4{28R_xb zlDy*hg z{;|GuXBL!XB^7&Bcu$&}RGwe%GombMc&N72&#R(5&aWJXWOitLWV9$IPB|f>*uPjE zs*3Qh0-arvlTcb#4oeGorg7kv?LhsZ$aY;qFApFWF7Ay0j!;8bc z!s9C<{7R$4%PNW{ibhSEG+dPsRW>3!CnkELN;@}xu9tsgSy^btOy%&B9Bt}&-!v7WP7)_xOD}pc?!{VIf5`Ug-1K zl1Ul4bE6B>prVPDe*Wo`z#NUui;1a-m>pIyDJHHgBW7-~Dk5Zd!t8=x)y`>bQE13Z zx4{3d+LIy*{;u15vHcIa{U202UUcI#>uONw*4=ZnfL1Q$P`sVL2fa4EU@JppV(E$6eJdfgrp{whLw8F znG=#18#uE(WW?;U_{2gG{Us@JIdkJDOo~n@jxS1$^eYXI)5iOVW)DxvO^b>juL;a5 z7*{zvXI6A}sGll7Wx||fxcPI!T$lxFVluRGX?~O9@+Zulk(L%05>_5NJS?M9o9bT_ z>Q@v1W@p%hXfF$2Z_&7lfH>cnxZ+83LksbjAAV+!&m8*HBErirW=>9Vfd8DRjEeHK zqC8c0=(wV|2`Qqv$?307&XSd32@_+K%A9ef*>Rx#Dx+qngH>6QFxMMrJ^j?SIxe)J z0DQN_NuuNw@U6^F)P{tImWF^U)W2Z-q^t?i>iC?p#44|djIem$30~u)Qlm8f#p6R# zQ%W+*yi3wbGn55++6-;d@T#cd^rB*~;QUEXx_F#$M)cYw+A|tITD{dB|Fm0TPRCu`Gza18tdEycjmb`t z5ni6(7>#R-8sY88c1K6tx>Euh=LQ1gm9WNv#`sB6qaRL=ZZxOyv5nLe|K6mF$0{Sq zG~7|!xF2UGZiA!dTLpu$P7z~;r}^!0#PL9mJP+alR9`)Y@IF`w>H;1 zQr*NxZ*vL-PBy~|sx#qAkkjk=jr)!8&Ov5QIC;so!MLpZU3)q$xp9Fheiqs2g?rNK zMRf~`OmV;zYX`bFx^Wt!kT4G64)-0FH2C(8;iGX)n7|BYepb(?O?q;LNq5_ZdNgNb=GQQ+XjZNqT# zyE~+KZW6T1!g<@IIQftxoE2TH8;rFd*Tb=o#BC{9HL$^io}RsJrWu~3YlJNR+lElH zaofK$!cdSKhB5-`xmgh~%bN`+2dMM zFGY|+SQjYeV{MoK_B<xbEj_}gn zp?cV&R%>g9d)^m0&^3=60uOYItfq*xmsoo&;Q zfG9*7BYaNL02ddI)QRefb#nZLtRZj13SifCyM`E~kH^Wh$ex~+HMGM3cookA%Z6bH zADdk zYrnSR(}eyF!x6l?M{Mw0{Tg2TTQL}l5zzOY8{80w$boLNXh8a)%7E^?eS!XTwP&T06Gk2po|o+lBga=`LNvcs@7agt(=%o`**?2Et|VIW};E-THn?tQ{02 zz|VCJ=`=Z`VL8t*nEy6}6|UQPxQiR=+&IQH-$(l4=3fC}a_1;HR^;x8-cVBpr`Au; z5YYvx4WH?mo=+cJ?{I`w^IC~1COhqTG+47kJPK$2YHo^KWm0o^YN2VJof;`SR+KDhOONJ1Tk>fDU5qFu?S$&MtHPmSzIk`Y~FLn;w{ z(}nzCNW^Dti9b$pAiv|DM>-RFwn%r|6sINW+;PXJI&oc?JBS+>$zZCAtG7m2k*X8Y zR+Vm_kP8a1L!|CF*M|#fS*UKB8z1R9wLL?Av-~I)`aRrbcly8 z-MG#}XNfxxl0Jv8Xx4kArIH>FBRCh&J4{4$^&m1BVRH|iH74$aM+${hSA-%x-WTHaa{KamacH|#I3VnFo2L5O`$pu`M7IBJ>1i0 zY|h6Q`9zBMZga80H5(n^z@odk9UkUkUQAbNb(J!#JEsKhz4QA+yr+#&{@(?B=y%2)jie?aiBqd^>Fwm*rHyB6Cdb$Xy9+UEf%p+m=}8D>1>{ zm!K2ZT-2GG0C{{m59{XGahxQ;)!RW#U%MGOl=}%!9^H&|t~*F9aMPg1KpgC;v!j7q z>w`rcR|10wi7o!nia61;ViInUNOj&z`MCdAAp)uv5qRi8FL%}p$aVwZQXVNnG(t`! z=mm~`xQkELa3aTvh6#y4FMXsG5Lfg{xmHUe;Y5}VZa)a!tCySCEyy_oB!}6V2Ah*? z1P{&%4RQ@bI*dI_vL0bG%??X2A}s0K0~?VHcLWX)(&S~0Ye4MQH^%Y}5y5jBb$ojD zjmDX_IN1#N^I2tMkO|fvv=MXsVu`g&>lJi)b>ne(st_m(II*N$%t!|ef$wzOKq3drRs^-!0 z-|pz`*tsK*F3Q;n8^=2KHJQ?7Sxr;psrY=8xdOlM*zADUI5tOO zRqK9J`umfn=azJ%WAijC{DEUL+!Ny13=dfzYck-%x-*d9(W3dPDSh;7(-t0mG_2Xj zg1&ckXEi*`xUUK9ml+3RIWTiN{aDjJ8(Ma#>1{qKJ7?5JU9|V*i2s&3N`u4j`B7g-VS~L(P04% zI&`>a2tDMr?=?8N*}gZPzGk-XTX<~CY+nF<}ztNOE2xKmU3xkG;_ngLE-qU?tlb$rS5UTt(*6n(4#SXXAYtZ z1DX!n)phQJJ3<4ReDK!$AY1n&?0XYCk7#nGnRoYI9Du6>nnLK?Pxtk=)t8N-Y##OM z+~)>IP`IMAhwlrvr5R;=&%k{LTr&ZFQ#^Y0ULl1}tmRYt)q7X-^`u}RWdN;SzVC*a zf!5D9@8$X7ixZ(4&t^37X=ZYh3vjAruYj%^uosv<_U@h%0bKOGmrt2w?^!ED@PpBN znHdMBpvzQyeI*8N8tkz*1`N9akonjzdmeyYzh$>64AXB*__Wq#FK{A6*wb^Xc3+3L zx~A+F(i4++3xre|K&)-8b3_p9B@ zB{bsX?%N`oX})K+C03d5QBlE;-4<}eINQy`=W}=4(2Li1gWUS+`0fe;UK0!Xx_{jr zVuwem_VmX!KkqfAe>m@nkkSil_KXX{wWoFw8cuev=TQLIZ3Zuo?SY9(*dBM8iFqJwhGm5+6+4v1-p*}-jY9DBmJ&^jIn#5FVbo6y%c9)O1bqJ2NS zK^J_$f_}K_0IZw0X!i5y*a-(-2Up_E10s4(cR*^7ll=~u;*5<4+;L4QWZma@pfHF+ z`e<7`b>jh7Oy1Zpp}&< zrc3%PMfm!)U2?p-qIn2Ty8|J;IO|aC-p!-)pYK{?-G>UH_3rcV%=PnK z{cy>ugCe@#ZFm2E^u2St`g>q}yqQq1&vz{aft=KA)wrmlnKQ_DgFGCQ)Xe&Eeg1|5 zKNTE?+k<8t?2li+w9gJZ3J;60Y6A?wy#o)2!qq;4!|pVw^N)FZkn}n1|31A>NY4yw*;qqFnk5{ zT4D=NK%?ARKu`62*4&>S(X}{8Y372KcVXb3Y?)z6Z>;0+S=?!{rqh0IUSm#MSqq3k z^ApXZ`4|Af!ORKtYm;}|;ByRcs+{)E=Tntk%W6K&KiljlrT1D|zJ{xZI24nl`y0%# z?qZ80U1-#DQH}@RX*q=7-MX95;jH;0@9>|^3;Fb&tIgB+b$>PssAOr&c`+SAn?V5l zIfawuQ2oL5_aB<``7~rt^G`4%I@uznXPsN3d#kXZtL3`^)N4a?C?5l@cJ%u8=4?Jr z{IJ=Kp19aD)toNf+&qboV>h;ZNk)BciOlF*n@{YwBpu~alxU|*?qoWT_-&Iq59+`Tp6U2G)IkLPoTy!H7@$6`v#(m|Q>UV&d!K5rns1 zKk0<42Rtzq3{kjv`w#PV!67E6`crYo$@896CO&n*Xl=~Qc*J66CZMf4+?k#wqWxO0 z3?55AIB{laTV2O96K3n?freYK>IdGazps&(C;n*0&VKClLkslYbo!p;L7@>I{mVr& zdgYh14`0U{Pq*2T_B1J)MLMb#Xf$ixBt=cTNV1zHf=k2X3(VQ&2uqZK$bok(kt5j> zY>CX-_$W)Xd@&vn)E3Q@r!7&|Ks+Pz+Axy5S%!F|WSI=bGijG43Nq>&UnH>f{s zwi@dx4`$~?GW7L`mrWqk7iL*eS*6Y!B2x7J8#tMu&-uvrc%%%$Q*tjFQV(sYGLLMD zm7xJhL24D&$exUikRhSXRFA0&*MC8_6_8mo94|v@K#n9lv`gq(~INz4-9w$S|MkHj*STvL<(`8`ME}C}Di)kTvzyR*gCQp|$})iqj`xB5t55W8AkCGbZ1&r9 z8JgP%M9lVN$GP5^#iV??gAOA*LT!kE&2$0 zY8bl@O>tak=r6+cmy$Tok|A%Ba+{C5@SxoJa`rYv6!bRKzrYX_Q&n z#=;HMCx(=*l%Z*4d5ksc$DS{jp%Hyk8J7yRc)ksuh|AJ zBHE2I)W{0olA))4;9pJsxlV=}{xg+vd7J(XC#jxfjrtRgW)&fc)`(BqAx47j3$MvZ z@(LNS=XHp-WC>ekX!3ue*ONA%_)oD$Lzt>whC2CuE2`N8%!*shzZJ6PT{5(+4+0+J z5_k4e7TqKR+4Q1`Mw2ffA`t&F@%9k%(?O2!hTF-N4to<1D{VN0dB}3xo=9?lm z;u9HaMZI!P^_dLm{uvkCr_~Iq1^w9Ng$cdKV{e|4p-7`X3{E%(A5U7($dC#7@OO|< zY)%`D4RLQpImzrV95GDg20~-tWW6B5wKuy=h|fhC8im)1y1n#4cXD+pNLO+JqTeuN z=46S8WZsa0tPUFI2h!0nhB*l@WPe-&k!Ql`wiu@^u;^7s210tEHRL#X!9^3&veg>dl4nn0T#-K^EG5nPGUU#_`%Q)t z`bvbp4aT?zYu1aiUNOGqPhdBs=NC2;kZH|&D_E0bh2UkyRrAH9MJGdX>@}eky4))k z@yUz@mZZ7G8rk#}cFb5}g-*Nz({a!m$+pfP4CATiF*lx`gH((pnSVeW5Ay1m)Q7$W41v+s_JU()TYpwn+|U z+=WDcGTq7w1mrXfoWO{U6?zW5`(IEp4&@f3m*_3nC?_i<>>Zh0**vzu*$TBA;~N`p z2IBYux5Z@3(>P$Xo~L}U0BS~BA$Ri4Pf#`XXrLAP%7|n+1p~jnum*T+w3`+Bx_8_h z5!rykewj$P#Jw9@?wXRgy>ev35|viyHgGFg8NnQ!k~Df-Av+SXXe| zfN@?@;DJ>RUkHd)6$Dm8=4T4zLPSAUV1k5?utKK{@Y(*IwndYOEDHYHU!zxaRXNF_E4H5^>ECDL5fp&dW&mV>#GJ zoncmJlfDinRe4$EWZfrzU`9QQutGgTE_w**pUg3)krn4pUpilKgD#`O5R$#~_2i`GZPpg5w zpi*2*aLA^!H{Y;&A;i;GTEWX9FO-O346rK@o2Whpo`rJ}CHX3iQu& zedif!B4X=5u|ns21<~7|S)mX;ypkk0`oY*SKgA7eLl5g?2p5x#Yft`ULN@?uVDm+LJ@QfQff6)q!HznR}oZ<7#yqiy^Kd}M{@_d0D znUjtsRv@6JbE*I<3Vt+YXRcYH(I)=^&Z2Kxp=U_nNTli(utu+l_z=SO9E+)#@U|7& zt><<v3_l3>!Xx70%c40d#<>(Pl4`hj_{WhP+?%K)GHsD9j_;2--BPF)~a;B8s>?hY-!hc13 zvGxISG!J<4MGWC$K*A4_qp^MCvE%CBq->-Ilm|@r0-Wts%F#sAmodXwoHxW6vNEph z+E>tMv*uf}eIw*(0?d>^&Nz{0A;D-c=?|F2Z2TxWy4Z(qFC1*N0906r9PwU31JMF@ zDO`?DfRXTm8hq{Hd@J@WPL5<|eWMp#n8_#aLX~nza)unb;oJlO0eKG13SOSeGcC!e zEID$=s+RdY{QJ^tb|iVM9J!H>X>w%38X@gt)C(QFY`%aT&5i`H} zBSUFq>I^x8weVNLw=M;~XJ0_l2MMIkSPpfV^!a=T@-vg8fxMB5?6NX7vuKs0)kAy7 z3n$Cv>_?b>f7aI$;IYmgIa2r4LfXl8%-ru*QPDZO}l%iQ{DAg+M`*_xHP;*NcEZh{diP#qc8+4>syBq8gPSmi+V4B>q>Foh#D7z^IS+|>r;X8lBeXpMLXZ#0+&qy#`^7@WWSYz_pQz3?5|zg6qb!2!Jnza2C6~QHmT9 zSqOe7F9K%Jz3hqtn0l2B3d4d;&&kH&QE0%{ zD|YA|y|>B^AK%m_CdXqV5uc5G8i8h=#yvxCyRmOiMk2>D(*7g@wEppNQE0>!vh}GK zu!K}A1kG6sNuxCEe;LiGPSTqX% zm+V{LgzUH@Z>}kM3$jG_!NE8jLyd6jjtj742SwrJm}>*^R6LhYPN#FQ>el-r^7N1q zl++EdmW(Se{_i=6?)@Z?8OQx!&4SnN`oWYq506G=q~9q7({OzmHLu@xB~Kt$KyuG} zB3NwL^@9oN7Z8n>{s)+JL^N;!2j;+35T4`kFSY#VMlztD4^5Z)FZuqlb+G%9Hfypq zEgBucHG(_vxX{9T@b2M1HVX$8O*G@9k@h9*e{B%1rb6=JglLrVANBpmW-$N@Nz=q= zaLfF?CHpiH(Z249%-Fk=qEU{-z`Bg%$4p0ZNfeAM>5_gwbbGNktAkNR6?4cKgnV}3 z$N2t`VRA|Fs(h{Nq2O<|IU>cqZS(%W;WG|2qQ^u&!k316S1L@4m zTZKCKdSC_71*w2J??9pBjY)eA3?t?gr~>)IetFv)ZIBsouALg8LTqY;H=379o*(cA zsJHfbqu3#&Cs>6(W!Z^ds38$Ib=;NUmGi#$TNbjYhlVWr<${uRO>{%kBqVdH8=6SO z!4W{(u6#E%P`7oa8_I>fE!R!S7`{6wjyJYMf*-wh)_IueUvYz}g%rN?m{j1778Vlc z$?nkkYl7Ut(5!Y}Xh!a8-C?eFpq5jqjx*fR<3r3Hyxfv^$i2(M5iCPwT{dOqx4jW; zjv699C1UE6(dczC>5y8ZMADue1F|*vd^9Q|EhRqO9QzkDFdU9Uj5?4k+z!SZmcDZ} zlC%&GvdTOL-6l(J+XLkFbTbegGc01zToQbN<4M>!3IqL*<$Tb59A+LFDUCrHqyyq* zOb6jYgtwTr+4q5g>&os`^T||M465oS;d=<*+PY>aU~ILGMG?JJ%B^G2Vgm@4R`l@L zE{M3VB8B(tU?hxP!qNA0L=0L-#s!IByswLlLG?zx$qQp*P#uXX{i}+mY*1_rIx`Pf zDSpaaD;C-!CKlSE55B}>9<=fC&S}?kNEyV=WpDM^AhjK?Y+2-l753()Z2xm5iW#C` zh|snVN6SU@ht{(rT-cO~cytd@&-4fFU*klFHUS;u@o+z^r=;HGVe-pacmW`Go*X~= z_^<_$Ty#YawA%M!nGtRVc47S&4o8!`$j{JcVmdYKUYIqB?Fj(cb+Z2m6iSn(+;shj zyt8E(lF*>qtKayuead*$97Td)Y?-l)nmBZ6A-%Nq_D&Ibe2)jU|Mejc&E~O=+dQz^ ziQ*a$dW@eN2SPNi=6mq$SiztpXRh-=w%2xDaU(66N;H7ze&a#(l)Xym!OZV@V7D7` zs_bW zIVPm6od+UF2S0f1;1@h}7_qYu^_y{ToMk6RHQ6~e4o1R8$O#*0hHm9ErwcsvCy%tA z=fPC|4Tvu_VH?_bU?ws3p8ys8QlE~%$))$q@wumM5^53H)?!359ws3Rs?9(1O=R88 zHY>cgW1Eb)g2e_Kq{Jnr^z6PfW98)7PqARg=~sxj%&?0oQ-TEe?c6pg?sjRAkw5ML z8Z7nP0WV)%4iVrUd4YhgNp1VYh^+ZM3AE9sTn8Ar+~zf0d#%c!mal3XiS*P^K=><< z<}YvCV?;_mibl3nrE3$x8mZ-(0q%I}@;0HNd`|I$G|9CN$^yRox&AUnTAAzFK9$!iRgH6UJ2X$(bhO zUIyh_jnx7Nd}WG9{c=&vI`@9pZ9!H* z{K$XILP&rgswLHJe&84@YMui-N#|JcN%IIlkitz6>tURqmqot(+7^M^4?CAFu*C{p z*`Rjf8oJiZZe&F)#_+h$$Y&P)+)psS+205~t z$9`!1U|hSsOvI8E{>Z@?I|+Uek>kGpFm)I+$R8aYMI3fUArYIB?T`L|fA95lm^)e;h97?J`QD*iRE!%=%@ zY|6MFVk1%un0aJ6lo-Oe(r1X+z2rEgHX?3-YZ04X5QiL%+3V^!bONZxG19OZH7qLE=xhW_Dz?j|tP z$H7RmpKKZC5ABe-Cj>n7qv0EB)T^ftY`*20UUy1D7p zGk7-SK^u=Iq~A2+)4Z`av6ZoxrzhDzX%Om1O;T?{6Ku5e1XE?is>^r$aWlVDLOXBY zKMj}O9XcguW1h#MGFYkP$~xTfj1KNCHsHzWuN1_6LOAei-3JlqKnU@G9}X~KN(8cCPVkkO5ZSSCnBpqb);#7o zE&?S8*|&iasMVCz_=bZNy1F|Yy8QXRaHKG2+z)$W;{0JaDkqA}2w=&=$r0#XLzsQm z7>=xr8JBQaMB3ZJp~Jo4yPrMyBpi+6vkv&tRZ5Nx4~N0@HeiVc1EDbjM#3 zY)m++GiPJ!!%-!VaVd4CBn|3TwrSvTWJS&%h=4hFmli5Zs++^X{OK$RM>(eKAi%&z zTP}x?UDrmS!okN^hoj#SYb}jHHpVO?AsqZ{>_mAuYPKaJ0FPzoizCp_Mr_>LaP+e! zc^BHof_MQ@lUQke1Zp%PnfthQiai*C-bCb&{Sl~veD_`i`j||I1WOj$6oHNyldV8h z3wwWW1gb*h`iyXNja-ATCA$Q4nxbB!#+O2y8TbBZJQRVtO_-B39QAiG43@Z58#Evg zZ#r}eHZ^BmmeD2SE)TV!Yad_wbs{~Gb@{d_TYujI^*17%nVqxDZ2EO-HoarQFCzw_fv#`SK zYd*0XZI7C94PIbd*RlYtz~%*mh)I+^D34iV?9uAMxUy}wj4YjJ1A;dA1gznY{{5Md z1?AZzUl)@6vmF}BdREvY*rv2}xjhQLqMykQq`xYD`ef44MGol6S-p%Iw3f5RSoOPM z=(S?p!tWH*mA0q;5H341_a}N}?$2+Zq7?~0tUgDaVN&Zv-2zWdnu%L#?(0Xq33Xrm zy$hlN^`D=$S$4Vq*YtA#^W7(L*`iJnn>;-hWvyc8RWR>$!lNIw35X&-5IHToKj#bh zI|qO5@b@LXKj*6_0(w+?L4=US1Mms>$@boJ+4w%>+=#&0-@?MV+r z@C^|pB{h(<^9L4*`3i+=*38O6a${Byu(6$25R4B`qtURQ=$saa4jPjb8H`18Z$cm} zp)TJs1b`%O2EoA2o*0ONElF!hAOep;aUi;orvD)!yMGUa2?v)TAx%pIVI)Z(2ZA)y z$FOu3h>X%mN3auE4=QrgZ0%C3k$LFl9-dpj}+ed?&6s_Eg*r{pHbXrG&Fzq7&K=EQ${>obG;s)GqKQM%pF1$+J-1|?;NN(H3=I9P zMF7gYuID)&}Ll8LqSS?8vN|hNA=*y^}*moELL$DfPSHT4O#1 z(a4-fZfT=o=b2X-mk?YUjTVxN5H2J`0f#24Oxi2h6Ty zEqtdFANcwZa{v{wJjgb{f+>zhqc|RJTGuHeDkx0AxZ3<6A+JI1Ad&<#O+GP$?`%C4 z0VEN^etPPB^r?lcW>Yk*9+GPK50=*SZLwipG^*~+V2Dq8GaCG{XW!aV?kybkDb5tTZ8 zUzXMDp%SeZ!_=v#;IcE#Z#er7;=$H47$rDi`F%V5&Cavu@uMAQWx^s&WpBd%s@o$- z$2USy+Oreq*w9^#XW>xB(Vb_X{THA~yU%vX$ch^YV0`F3>OIHL-XOPHypYA=ez$T0 z@b0H=aDHM~H%xt>oIbeLt8gGyO3Kq#+ z$#)u8n4i{kEr4@6cVOA5<%lcVHbAe)S&;nzm{_nGUk*ScjT!o80NS^djE-;tKN-30 z0$ViBMY=$Tlc_Gqb2c!>CK&Kt>3cga*^2R!k1xsSjf0m42V$qLOLY`=U0Py9O+B8^|HUwV`|tau?rSpO zxDtHp2KT#uHl}<&6j|HQH)C$Agt*K9;n0_xo-rJ`vc*BeAF65V@P{iV;q|o-2iLv% z(3Qr&`LHI0c76TOokwFYKYUHP?9a}J^v}*;Z&6IUXIkK+^}jjLVcUN@3TM=Qohhb{ zyM9|6P0#=G+ueG4@2yAn2=`kz%K|GmJ+kFOLOgZdEOQ+7rr{@?1laHhrrOLMFE2bw4#U^Pvn}wC7k-uD0{h>+ z=`s7?*O|~2{eOS=0$ud*cZrympvOl{X*&P0t&F~7|Jc%mUhemJ8IP`ZeQbj0i9wGq z8)I|N$6|WJ<1w7ex|li;CWx2)9uL5{Rct{w_&+{vN#BTi9QQT$cl_gxWfz?OpckC} zTy~GH6FuSE(36TM%?P&)e8Q*R1D~WL+<(xM3_N!56Cph~=!u;reKP#XaU+~O3IG-d zJ&_vIgt1The@oZfJl$=CEA5}|qjMde3J)*4(EgNOXn*Exfv<`-i|C?{zW-qX+X~Ak zW!3cc^`Gw-vx6J?i2o^h3f?g>1>RW|O?4CQ1xxYHj=NUOyxswMOd_L1CTIlAX}r)4 zJA;i{{YSU0DLDfI-VCmk?uN5i!@6H{Bf89B7{jVlCxuiqzFP|JXD(vv8gA>~+=T9* zsB=blny%L)pdXsxkod;nCK__t3JK`Jja`G+k>jI0!LZbOk~qhKHGSXhhEWU?!c3#Z ziWc!Zrxf>27skqmp($@*d!1pdM{?i>Kf`9`Y$QhCo8YT{p9f&oowE)kd5k+6iue3F zZwRh=|Fjr8zy1}EEar>R1UzEn4GC%AFGMp0IqI^CJat(C8Q>}gU3~qJ07i7MK#Vqt z$(su;KpEe$79;zCxMuhzbE3N?f#vd!qYq#WSdTtv?>uk(sS`}lz8fnBt7=-5m@{=p z04~_({f}9SuFdo5n`O*MG1@@Jv`fHg+;jd^0M4(Q2Mga&l9*fpq!PkG2+1&5!5Bhn zg2XVTd@zpq?hVzA!4v!{l>}Y-)cO#>7DFsX z`1mJK{XU(yuWgJ&pLGq z43%SCm-rg}2kw<0&+{S#8-op}2bRW)(R@S0{s(IO`tL8gWPXwu77ZkEVszPij-`;NCT3`)el3)Bz;fyEIqdv15%S<+ zuiC3(w)Q(QvfJ=-;A~)J@Zd`%^b~7Cr3cOiP@135$f09Fy|*+eJ$9}UP4$k;=G^( z4Rjby6QI3ANHP+mUdq-@fi_&yyEMQVHA|y$*MocZw8gfo6DIjar>*E%&#rWh-rUtE zVMyxZ>s({-gOlgrX5i7>(tBeHaKemx_QdN*5^RC)$nXUJo!62mWOn$%z3H&Q^P&e> zRED)~C~4O~e6;5NO+5Fj`x4r{=ze!DvA^aCy8&wRmB6IW98!hsr$!It?LZXYdcs^m zA5Ye%dqSgK)p??NCsH<_`>_a;Q;o=~H$7oNLAk{P9T1TkOC^e`b4xX4OOAP>?G|i^ zT#3#gat}->KD!;FL=#Qe+IN-6#)vgHDN(5f>3&TK`%cF0Qo{UV@Lmg8;!u<-VJ3cW z4J>r9!j(!i3KoW^DM8A%#-y5&JsXs;B}1|NE}YrSo+>0~AZHaDouP!&7^Hc<5?EBV zM9J;#vB*|Jp$fGUT@mOD@F&T&O2i`%XDVUCwjM?1ihCl`k*q|SM72T*3meW;lrY)f zGF^$vjST2WYpN0rV_!Eaxos+33Bz!0R;m@-n68AaOuc1tKnD@wiXOtgSf)f?h7>>C zIt8faVBN8F2Y4yFp`pD^$q11CV&(!gW}7gs`tO+%bEsPuX{uHt2|EQujx{Gui#)-g zv{9zo;^}-jk0?4l(R})DerkxJO=)B<4{bBI@>1$;g7G1&INC<&WZ<%w1ZNG5cun9T-`c61Sbc3=36l_nb%%0LfUb+!MUhWba82n31_d&ncM9 z#}j!W#xdYT<6ex1KK4M5Okm;G6MXxOgBF?)uINT)hCI1-WR8G0xZ`#__KAxpdT7D~ za81hl#_XdoPvj1pX}RJFhairvS9qc=;8B4nOZJJACwkpLfhY6z@gVt_6Pziz@U)QxR*M?um-P ztIHiuWY;S^kuPFBdHQi}s`f-RM5=*2%tH%%IiR#kPh`!W=6Zs%WuFy8g%IPiM)x8e zk?o208xhBRj)#(Gc%mpoEV4WioM|^X$7lNhV}>!~IC?IxS8jZG))O%yzV4ICXJyn4DBNRhJ9$BzUGL>|E^?B-s}&kdK4@AQ}4|9GUq}?6XJ1k<5;snfLuf z9)0)FsT&;=-R66LI<_;+X^=8YY6BNkSon`0yqfx)= zSFHxIm`q=kFp53;c?>Fc=GMR9Dv$G*M^Wv^mzUlp?}Pb0k}QP%8e@o`ofqsJl|DWx zTPrd%LGUpJH;fq%m9)~1f_oJvwEu~#^&Y(o-CvBmZ5B_Sfr)R%jNkD^BWMJu|A`!c^Y%p?} z%!ZE$MpL6+o(v4uFS&ACtpqGx5{zzmvUFH|&l|>VnJ~kLhg4hO2a;26WKMSg`jQUf z|CC@)i{I%yswN*m^~~6}pIM-lGB$CK1*(L5b=Gw{;r5c#LYlawa}g{72br1B-HSS5 zNk(!1o*0jPz4H<6x4g5?j6R&vxe?LL6`f%`3^8_eD((~*V+-6loL;Z${N4x$t@%z2 z>&f@|B(Y!+_&Fym>pX$zNAo*Rn^4{QPS`*I%eq2b8>4RQGjY8!xuWmuEtbI=`O8$= z-?k!7^zt`;6`IZ|sGMf>@5#m5iYBvvO~xq;H1Ime$jWDZk2Jqp0)CYqoFtIj(Eb<8 zJNrKRVkxe$!HNsz-~DS*H08_k7UO?UzI>oU^Y6)eB3^kN#7^yqCyU@t6rH@%$MxUw z%4HRYP5LAQrTy><{zDP=x>zote&3WYLVc27tvfw8y&_-QCmC`NpeLFuuK$-N-#VaT z!mdx;wANA>b)Q#Q(*RmArtd?yuNFf0e^#-eZ-riMM`~7Fxx8<4yqb)mIr?F3 z5*Fjj@015n4{hZc+dfqM4f=09&e2GhPOUsH{P!&Sp<^klwEZtMN~Tn-{`cg+H^1(k zas^#EzrwQb$TELW(*Gq9)c--rxv}uRQThItk$C1qP0!1pRP(FmN7z8-SWaI?;^0_y z-&+j+R^irn)HZn2BefWR`MxF>D~@VRhNZ%t^)X=)iqQ%;@Kxly4N;^;$D~dVOM*+9 zV-h3AaS1tPn#!yqO9YTO(L zRVWIIX60#y0XH& zSF3qKL!LZ$5ByQ2)(N-lQ=8!9IhB0e{)q(~-0vDI!0&v*H^Zv8)Ghyaok-qM_Z@A} zvBUZx02uwdh4$GSA=_hRP!w+tEK{8H+XMqEcEqc-1Cz<(!*6-UZyn^ zr`6_Za=Ef5Pwg#-0|&0ugVPy5tH&c7mwB#58sN_bL&uCY(Bz`Wbx*wpS9hsfYykjh zE~>1W>^*fs9|*4=b$@OTp$QIlQp4N1{wv@n74uRaUg!k!OP|ovt&SY@GQVo-f{`Qt z85;#`>x^D)Uc7(v2zy+!yi|m>_toa~>3#LsK8lJa9?{tK)lC0=0N2E-2lwgI=2-RK zt&3nY2lCbrOnNy^E#dPb#-+w2CDME2)D=d5{m4&O2Mgi!nJ zH2pWRLw@qk-3NRaSiZVUOk&^K;#BO<${VhWU+Ih4K zpit-`6u|JgiXx4o!ceZlZJr){ftw;XFTY4rR9RG}Q503cFKu~VP8N7k@w(MzgK$gO z5IB)kqp>%2tt>36z$!;5K4r=to4Q7g9c@{saqMfT{zI$xX*bYna(pI6)7RGgo2Hx5 zQEG+1p00T$)wk-D@R%uKWt#k=f+_TLrpD3)KWm)9qnC3vci;#+r{WYfYHw;@pb0=m z`B}I=Mk2?poBd6&YNkdkhy-_VS$UN^)Iwt~pX>^D51<-4Cf^W0)nl>>fB7~yGAcD9 zdaO`09yu#VD_mbT$8jR;G_lPfi2@gue7?*HNLz2l=Qv;Xner1xHcP(qU$GQH3dBE6%6 z0!il1WKw1($t0*K5bOm(Eaa$Yzy>N^#cNMcVOLQE6h%b^%i2(Ji|)EAzxO$JCNqiP zy5GA5iE{t&L`-mP|YyAlw5zamX!nAYiI(&`l z$E*|@Tj`IbgO^}B%HB_plm78ROgB%i^XqytC5Tv-cpE3UD}IlV!b=Bfp z%vE6CmJl(6zdOI`F{}S+oDW);kWLG3_V=b|veT1j|44uL79+j-nwWy@^yb z%AXruxNI4{zS`HD?mjmgXUuYU;jHo)Ukv5;b`?MYnp5enQGQn}cWt0?SKQQ{x{daa z#Khta!M#R8k^p58t-Wr;Idt!6e=Ys8?D_=SS=jLOAH|mz-PG7A==zO#a&S*EQ~cM^ z*Hio{bo&&44jtW^gBK3Jax|7wpYTs7|5X3>Fw1C9|K54j;_~CYQq%lT>OxbZ{yN>C zl=+8IJCmxwD&?txvHmY2W{8~Q{ddvk@%};4jpZKFr4(f2b;EadRrM46S&{3kPBT~a zxPKZQ{pP+Dntk=N*>vD>|3eYD-8ZeR8!g-7Pp0g3ncewRZciF!Se>JO_k{m~$dyqi zs90PLrG-y6-b!m9_T&AuEBuS8F6myJ?tjAHRb8nz{u-suxyt`oWbh%BF8cmmQgv>bh2kW7NGT6>b5U^2P2`?ANTgi;MLUd;Rts^ zW9~ZXyXB8i66tqNzYKwIe8~6Jx~XY-)VRr4N>g-cN%X-cUq22G(rJIRebW{a#bzu<&9g$$Yfy!3b=A>f1)^4-# zwx&;gIkYX-k5|f0gnk`dWKYO$KqR*iUx!diVc$v-<_|=~SzLq{tbTe+d}^q3KVGI$ z>mh@Y^nDtKctv$&(1jo8@{)FA zoZm*zcV87x|2kNetaUl{LJXF{b%P#;oEa1HdFi-PeSb%{92&dJcMW}f!|DP$UX8c*uQ{?Mk&2y-cv0+v%mf^h z$VyOiAM;(TixkRysv8XLy7`nZfr=l-0%7~(zLfR`dmi`Ihg<JPqCIGca>t*JPQk7xl&nM{g_gLU56Wn=;!e>fpa&4~A7 z3%5PWrZd2yd!O-bO#xH1Whs(fG&`#i-!h0cB;!rZx8NPm^YXCIU*`uoyo@STIQ&M;)A#>8=<{1{S# z!uX7CYf~e9(r<^)`c20$2A%m&`_rHyhxRq#-4(wfI#mNS*WI|JE;RbV5AmsiEn5*{ z{B~ew66Q15{_KNBqY)XrSYIxy#b(WKW}3$Z|3c&L`u_3ml(ya1<19mln}&z%JiWB| z9bY{CZDPrQ_9^92;7>xMFmHoDB|E;pF@|2*?khUWfZ<-@0Xs7`A=HRQ?SPJq?bA3o z?Dyx>sn&7%v@#~6FCF|f5x+;heoG9sMQ6lP?X5}p1Wd@+G$-$jr(53dhqcq;hmvU6 zm%i-gv|%x{?O4BL8nxfIse?kR-|qMIiAfAAYHOVzKV_ZY1Di(&eb2Nz2i+l`zP;7O zG_K3zU1-iBpVHA`sCy3iF4J`wfF``@^M=5v>YKi<(d|#~yzRR#wqxsE>B%{?agQ%e zz3G?_KalKTk6!w~w;*y|e+J{L1`_;<__5=Wu~6I1pMvth5k9T^UruS_o-*S2?gba zwN8#Th8DK(93XQnsSf(-w z8c+5%?^x0gnG{bg>nA4C`~G@-8ly*g77cmYi|?^4D9fZBd%V4x*BMi&?4=QS!}4q1 z1ah`|kDdY2JUZ^L??JQpJ^g5xLPwjEyU?j~zDuH(L!kWYHt+CQ@|m}G!eA7Y?ei8< z*%l;I3lFV{p^e25{JM#c;Y4*Oa zX9Bf4eFN#>?$Q|A`O|LfUvI%DimDEKQ=4By%Kp#$z0;yOrp=*&Z+J)3xFK~pv^H^c z3}xhJ7E;+!HHlU>BhFoG@@1-RZ+P*R+zt05#EsxnOkEyjT?o?CyhM{;fP$Jd5 zx*pD*_J+i>cZDZ143$r2kj48-Ao&Vtc>x!x}7_;Gr(xWV-qE<^+5#9KTZU{tP7JBF}~tn(P~hWyjGCF?7IrE@GT1 zg-P^cly45LykTUFdSkS2P89Wd&DV!g;(WP~BeaOO4ioxOsW`v}Uh2l^#9eO;Nu!`UYU- zjxS5raYj?^Y4LSWR7Z{WJrqs9jPu=2rUj)kZ#)mL#Sf9Zwa+68kR_9(~Q7~67W@{wJFFSZfY3PzC+lDM$E&IhY!_f)2w;E z0lc@07Xe)3h*ghIN4!k_y}je8U}ZAC9C23z-coSBZ${?D3m0Cx5Pud88MJUA9v0D* z3w+0@@wIEa(7xHe7yBSC=Ntnz8FA-d;`PE5I|mguRQVNmp=FqPn2l!7^%Ya^xxP{K z>qV&vr2lzSGEMZ{pGK#Tg61BRe8b{7y8#&>!#nl4%@qw@sjjQ9FXKD0t0X9jMpreQ z@5gKp9K`#IOZb*H%!6um$_93HDxICtAFv*sOoN;^=zo>(S-jXV3Mqg@EVK*p^gC1&gTZovV7%^7u*PC~B4Wsnp22p)~YHZ#O!=%KHq?l&wn4DZj*BsAcw-1hAWj zeT>FhO1sC~cf-yqD-J`ybhB4aJ8!!-mL?T>v*>i$^$F_o)m|lXM=OoIgTmp5Iu@_h zij03cR(F=1UU&Ehggf&}^*_0xAMf^VqKWGRI5oR>Vjc}1bRE89H~4yFz?UMsm2{8y zXX<;e_YnPjG%Zb?)#6Ro(Y|$FX^n%Wf1cPCpXTz$G|$FojBeZD-4QbkK@OF#S%uWa zjY;`5w&BV+qM?tasT($W@uJ+OJ+y7F4&=8+176Z&*Ofwq^u<#l|q zYk$Am6gqJAD5TNv9^8X|t*eVupMTK%V=S%h2ZvrZvjHCxdDN?mqMeDw_&7_)T>I~f zh(v?GzxVU`xIm;^?zjm@{0I*LG`Q&)&$yf50XG_ zBT|xjRA{+CPIQ(B0_96f8!D?Rkam=gR9NrtMP>K+W3z+p1}s9$;3}8CU-A&l%vMVZ z9dy*oE&)x`N851o~))9eC!c=PSN0=2~%xIQt{L3L7eG zmv~)l6cp^uVndQmL_2ycPyK4#)H~ich+#9g+mWZN4Spo6`H+Qp!BHDiYZqw?nyrGVR4 zdkOa6WgquY$zOWYsTWsds*UTsw?-z~I(kVJC?v#f*w}pveoVV(#?l;`UwCZ+j#by6 zLxmOT>2&TTzTJrfUflTc%4c5OIN-@kef=Yky>)ORlo?2V^=8@=gtWF5}0EuIv}kVp07(!kA8eA~PE z#vFX3bZVgSOzkM48D2PjY5?y)GOWheQM*(msB4wLb<(#pRBoNFR#gP9j7lFj4+olN zbYN}1nqC#?8M&SM2RRWT9A_X^1*veZXP}Zm<-E-YCj|uCV$QPsKB?*IJ5vJ>#HGzB znLi6h4ltE0TyJ&0JXyeH>hxOzagk^GfnqncVnE=6 z$UyV=hr(%udRlXbcPP7qgY>U;ILZ0;I_&pAJ>uxE>rl~A;t3Mpn+m4|UZu6JK!5eX zy@3~hhqA8+1+JoveHvmC+6~KPg98ec{`gTGyhXy8Wc>Zt~{4T6*SRkGr85)>QCx>ANJFX}&zE{btIVIz<=P?1{ z)_?}3((NlB7Cv+|Kpj^cxFkYk)nBh~d{$>{-v`o8TP-}dwzjbWKliK~k#x30TzhWE z=U5YOYK*iky>Dua_>o5Ene2ETL|t)HnwF|q4N7!9nn-T#~0JP@T{xc%?in3nx+$D$`vuD)isy|*)dqkJjng27~RQ~+x zTsqzDJ7gTPYyF)u0MJUC^djwbaxaBQ#4L>#qI#?+hb-ewkjoAcE-5a68SJbUAWf38yNR2@8WI^D?$mZiF)J2GjXh)>70->2RZsfC?D%(=UMPNbf7s;;)x7e=T^=Mm)h9m`&=A8tD<7V3n% z>UKrQOD7O2kgPVGz4xcOz=M$!+X+8cdi~t2v-Z|F@Y9ak-m}lzM(z7h-I$1Ub0_?Q zzy9h|H?!dEASx!*9gg&HosgWYt6LkXd7Y|hRNZ}%*^!RbzY&c3u7Mo&>oN6?$Q2p) z$?Rk{uvIeq4jheGIusvDJ^t(JMD;Imf#S21sxG~+))29$q;A_=zb2CRYR|wkr0-q# z$k{oO*foIfG_)h44(JwmPB*aqS@S1n^&;xArrP%+;(4`aMj$7F>U#y2hhfr>y#kx4 zU+=oz5oH~DroON#uz3)zs=p~iO=#MeA46Y8rFEmR-hE$$`>3hQ_FWaBkgCDA@68DE z>CP4V$|&}lczg4{8>xZ{|MIZ-W%$FM+E;X zHM?(bOVa-e*50>TW<|0dx{yOZ-_>$?*j5soybafED#80nDf5Xu^^4nDevD)b>ia}A z2Q9hOdUs2t&kTW0P*308a!wLHOk9KI_#-<@izvBUMXK7TSA|ta3%)PQRNv}e-8EXh zw6OZ0Yt@?{uU?!$(_g6WLUAut_aOD@>LE1ah3W=+{<-SObnq3NH(vcrHL|%64vbZc zTdUu|Yr2xF6X}N+tGm%JZPf#4_>}QK_lzUvT9Qxzg-I)%I8^qLsbzQ~&o5 zRd-97GkM~qd5g4fz0&61)rDMK7;JX1)AP-JtNYRH!_{^=^=@@?oYt#(AUbV6Ts=M| zaya_xaP{y`2#nj+EssXLS&d&-yj`7`792JBky*O0Vo)}vb-~u>Jx8khcCOVO>61%M zj}@M|HutUSA^{o=pmh3%>fD~^O`d=LtkM}J7nWWyZqDR!=T0l>fZoKns!KZ}eBYyP ze6HoK>X{vjzc0s+v3Fe3HJ*x&Xqfk=Cm*j)?~GvP1&gz3-I31SbifH?55?4Ai{`bg2h-Fg zeQR!-K~2kR^3;Mr%~#l+$1UMDgZ3)8YzWlg6GAI$`m0Nq)!>J+q3RUXy`rYF2PL%B z%u*NJQ$zjfvlnarO3Oa3O7B-(TsUv$gqgz&=i$(5XmhUuyLn3s%N2#Uz3?K1@8{Rx znBDT49O^%E6Mmfj6HXYk{c{MutWk#dQ`4zkmt|4evp40c-@IHi3x{4lsftr4TwnI` z02ME8c&I<6b*o5H@9$oL@8Y%fFT-atAIwRnuC<%;sQTGOsWfYMPQ1FhumW2l&-X9O zY`)fp7lJhA_oWTRi{sRtC*27HXijQ{kxpC7t_bUCHY!)uE;bO5dC_7i$ zL5|JNsM*0=n~fiBj5agTWR^#8z{dQxS-FRm%dFhP$`w|r06dcg6?Q%D?0TSP*8@qr z9;4X}=w`7sG3HE{&59a}O)gw5ymc^CJ0s{oYrCG2u?v<#GQlPz3N4JaMZ+2+TNrf< zqi(UYSlFcu{VdELs~(R<7KUiH^=Ci~(r#e9?L5AA!KhjzgULZUe|fhmg9%{IDs2Y6 zOvPCQ&ctXM^afn*d}}viIKYxC--jj*WtPZUyIaYy>i?)P772ki#?xk^`yPe(K&%sz z4Jgp+?CqtAlUaTojI@d6&0z#97#{~qlfftm8U<}5D~gS$U0CHXGq{kn>uo`Nd8BA# zkXZ}=fUufbXv{1$GKs9WMj4yu8SLZ>%Aij?I!nR-uO!!C28I8X7;$>X6%Zi81oLThPvI0ZwKMPckE7HUPY%T`Wc7 zY%IHW18N=Sut98+Aq{#PfH+t%e=DzonTReX}2+ZY&@$r_I);XeKz)mHnvJZTO%`IH8k-=vW&vg@z^XJ zHt|*LNSR%%!90?My@3TSSq$JvQH3iS;ffmc=Y|-Hg`>z|;4T=`ZeWqrvxu<0)+)3i z`M!V9143xg!XYxuzQ@Fqp*1s_?6h)&GJtN`pkUwSb|o{89gNY|ZWt4$8+qD{%mITD zy)~J37#V%W8d!>-6`9p2EwZo>vMUvJVV7uRfis#dRD8SAtBENyG6c4=MxGe{XXePn z!ekeTSJhCIkqkyr3nNo)VfHx0f3iK+B-X&JltMH`DI>r(+rpeP32T{ab_1YWnpm(+ zticv`L0njq%|OF^>4hU@12XsbLTv zn==dB6bp-`HUlwGB9RV34u%?L&{`)Dbx61(573A3F~JFHDG~pG|j_3hA~(iLvUpc z)!eCpqmUxzl|dE}xH6~N7#r;tiTtL?m?4rK@F8D$j})-^hLuuT+XyzKd8a4Q7^5BM)j6?b8A=qeObbLyeOf54CGpIBaZFY)q1a zt!)SoCfdMKAQ*=wU*mg`k*8Dxh3U-Td*P*AVUO#p%L}F(*@lMz261R-y0LtioDsmDmNK%(8HX26smw1}=&8nPr_MYcA$7BClIFD7jT4 z-I@`!u+~@^x>XZvRwxrM+CnsU)C>^;E1PDMW}n#@899s)G2oekujR4W6bgq+B7kW! zA7t3 zK}lp+1ku5BugMq7f?Z%oT4DHdwlR8HptHF-7x&Ea_D~-!Fk=D(RRAYG1-C#`(mO_u zcI+&xL6;&DiDdxKHrr}=2~dM2IV+ReY}7QZ4uEW;F%sWlI1peL zmM{<|At+nyPc#bbY}4)R=0vF-93O}}Xz`S^XV246&1e*KDXd-v6WGLu;7KeK6jlyy!sU1{My}{s zBG^T-;3AR1d7dV1{fp;_o*@V(CQxLR5sq{~nvW2cbIdM2*u;^m#Ns9iO++|@coi8X zz-2RUVmoT$UM56CO}JtZldLAhtg@{&vCT1Ya?Q+QiO~UonW3$O(SajN@ldE{zhY)l zHZu`sM%c`{B%Cu#>WjH-=Cz%ft+1J$v6(f%(!>&P)mA^Edj>`nI)M)GK0K0M=2Oos zmq}*vhhIQ5paW<{1~KvgDP|reMj44`*}}tF`OYd{S?1Cp2Exb%hF%8IXA_GgS}|xN za|t&P<3S^6SL>pFRIpPSm}cNMf)+ZOXy#7ENjo1`aE$oM@&wwtvOHsoNH5EP)>al# zKmw?-3^8!@58d)S7$lDQZJmK;-mdhFHdsxx`bni*l*vkKt}P#i&pVV~POVQUby>n7 zbd>1=RJ)$;cubkmgDosSg4c*Xxtw(q2=o86<8dWl!}o8ylzz}ncI%9A2r2F=e+6(v zseuiSLBcn77+O0h3lGDDus}(8E!1)g=C7!w2ooCe{IXSGJ0caS{Lo$@B-4~#N_w8m zI8T223LdTORCte4NjqERB#r`j z$h3(|=JqVlOqOJ%Sao3t_<~}wBw~izX=P%B6U;`THj*U_5B-GFPFyhQg`7U1K@gDs zy!MvS!ek@p??Baqo1htZghp^BQRq033k14t50WkQ9i~ufRs0rMo14 zcpfDAz=ZLnX$dWUU~!ZZo-?7HrB1eL7_!JL|IdXS>PX&2TcnA`poFzbqf_KTgoT4x z?r%!MXxiqEq4_1HH%)y;N$Mdim%${33GT?E*1$H}P7Ti}19Wz}=NYAEUxp#Grsatk z7)z%F!1zzvfAoyfZ%$Zn*=!g%t6~t{;|ejEf)L;_NJfvPnAzJdJMDtZrFJ9De^#mM z%XBlQVk-DS3V?!iXMC*m&9ll#@L8Hj3AzhAwN}h0@fH}62V=*}L7&)Hu4IF+nULT> zJhP(ssNi{(z=(TuLt(O5@%BVK%A*;PozE%VV+A)l_?%JzXrdYIv z>0ptPor;B*`VY1i%%Vgj;AW4Mpg9jP?l<#%mUhjfdu;Fi=Q#iVU>2Rq2;f#N3p>D4Er! z&PCF+y&Q>wv=^29y!QH_XJy(T5+L8ai%-SH}^^0;J1LWIt0ZZFLv{mV*x6z1{Dy~=3XxmQU)!zGCl_9{K8Zm%+e zTK6gmX$Hv|2~{>N49la%x0h$o4`?SzNft2^YlNNWR~FrJVc`uw$(_Y&p=tY+f-Ko- zkaR@oqAuO1^oec)M`hR4#HwPI08uX~ExpL8Y`0>Aknz!TAdahc&zuZKsBG$GyVAjN zppEg99Z%WgbcoOffw3maI!iARquz{$nYbVn2XaCMU+@t5*JQ(t>{s%dWKn72 zwz38@a{zAPMV4%=39DuCip)03B+V|lL|JU{#l)sbE=Bw(mvEWf1rH7I_&ktY%uKsQ z&!(@4r%^UDv`soTk>*YpraicY7rL`ayrMrtjg@Cd5*BiCu(dGD@~i!#oqKRN*vm<9 z!A&^YU|YmyOtzvVkYNmE5ZRjMBFS{i=>vnl ztzzxOX&?k>g8ZlMxqkP zgqldZKYFpSxd1qTXOAW8Jb9GuMr}ywha9z#NQRY&|FPy7aCNdxk zc(&8pF%%9v9Ws}E2_8-1#?nM;1#)|jaAP@|Vw7CGl_krp;-%S+lOlh zBRi#5F*ICe=Eap{(}O5*4^4u>AUTvIh_eL?W59QypW8{g6bE(CxcwqK;dV~)X(xX; z9I|loLN-*bY!3_)+3<`9H}-inM##z;f^fI+oostYG;U(3;c7X}BZp|Djg`%yRcsh* zjaCK{w7e4#u<}GXm~#$^TG(o6Tf7d=06JK4>}<~+vd~~s9h}MtCM7MPUs98D+`}p} zz#z1pa*2U>)`O>#08s86!XioI{O5}RwR4t5JN6@)B@PB1EL7Gejt(RPB1Z@8jGUeA zkb@V%4hi}6y!LXifskVgRru=8wz0<^^yXxW)#+Gzn+dAsEPBv{w;cpyL{ zpE;q$Z;YShU*$9gpfJf2-s%NmW`@HMJVqcql9i!ewn-$vWEYbx0koKGX1k!WjpLtOzAA z*K;H-XWuZW(8()8*+sRpXjsLm27LtTwR3hnb8^_u%KpVFQ!3iR#zszHIiOw8e-<=3 zPiGgmsl_C0B(1F2kRa4MSd3(ANz%erS&nc8&;~h@&Xrw$IWyuvm*>$n_s;?uB&% z(*9RYFhONP%axgJi!x~BF^K5c&mgfaA0gRraC7;z{uVX`oi3cH2RDNM;gAjW_&~|; z!9}ds5tnd7GW-MSr%yNIgO6tQ)%71PX{Qf9VvvNJ6w zVB~;Ga2n*ulpISkGqs|^p@}kBn49>f+?MjVz9P}USCVw078+6#rkb(9N9&mh7B-`1 zvzeb3F6_K#-Siesy3;W9J30y(W}<`~SxHZ2HSj&TL=W%~mMu^6O@S|2Wt z?H_8z7FKqGg9T>F7FaACH%0te0YNFl%Nrv_*6MpQYZ$zYyK0ZE7ES; zzJ;u{ev8#RF0sQzEHnz`^sO8-(@^1n3Gl%b+YKq#}GVF`IDgl6HNe^okdr0oT|6qIA*8AU!GObLBjpk*0pG4CFP2 z9HcUGL--he1mF;#SZpmE2g&ANxLz7*7nU_S*dogtSrAJ*c=#Yh?NQdk90o~~-~bDx zF5EMGC-Jk^w7pZfHrQQyYin>0MuJ1Kj);7Bi3WpY_M?qP%ooJKs4d{N`LW1Cn*%B{ z2Me;LC+h_{CnqOj%@!;D_=VCViw%>gTCl5L#Hv>|>xe~iZovwN2y{)l99a$V5j*}E zy=Rk|%>w?45nxGS3^<7AP*0f6#9Ab3Vm*|jc;VxL+9@M83_-vl_^c2X*~QVY2$l1y z*%DR{dU|ttKWhF;nFm?;`YYwU=7-C3F8q${X@< zCM#SP9MUE<_KHGs@x)1G%4nb@Nqz>3zmghZGNn+fkwidyML30mJ8I2#6%H|S;BDaK ztdZAFMkY~&O*=}(;7nS+)JUZ?AeS$I zZDIptVH;`^%gdT3yY`}KR@vk+N|Y*rrM5G}Zo*)cO$+hh5)4M8gvLEpp5J7YFkO;{ zJPER=uI;O84gh@7%EGk~cg!nxH)p&^o|G-Ofu&MQw(vyBiB2QWq|wj>L9wvJSwy@! z{tz=OHdXQx7Ty@Ju(6l5zvkk^ILfSm5WtotiL5}_FUiqzgKTO^f|Y%ywj;!j&cHrS z+p4y42F1uONAq+n*+w2u4u6W5l#^|;tt{tk<(REFP4SmTF+9AR5}bS{N+dvHDn`r5 z3s?~nlP0`8X-ud1v+m*^#9LT6$k*aOrisnLFW)Jnn`Fz|C>dQ5HMUX)SqrgF8<{hP z-(@u%8}o=)n+9>?a&V7hdl43c0OTma$d*DA6=}?i5Mz^AT-omsA?FpFkr!-6$&s^` zNv_4nt0g0QK_d&SSZg_O)9GRti^j5PWxFiP9}9EP%6zjj->l3xS(#dmoa3{y+}nA& z#r<1Zq^+_5mN^*0U+iM3xre5dFt*^z?_H7OJ6pA0 zL|@Oe2sF9ac^b7lUK!zd3z%wWr0lFXcJAX~{@FRJZ0F8)W`v!+uALRp&H<7|G6+y+ z{Cq<)3ar7}C=5oD=N9(X7VanJ9Vcc$SMaJAQP+z)=tUJGYyXRTec*d~X+}mmDWI0FQz#gY6|p#5T7>u~zwCUQIj~oi5nM0c^9J zMKH5~T39T#{ROGg8bn@A>?fsdWNGkT`)$E*u2$ABD~n}tX8?m**;!gSkzh4XlPlm# z&Q6k}bg&r@UN8}IXJg-MK!z9dAt%Zto#&8s}5h$`CG|8$=Dz%eQ;af=x;dmT++gUvA zybQ5Qrj)I`2#KB5Lr%z9c%f%!gCP{j?_Q)rP7_KkU@_iC2^ASEB1>qWg{ig5AsjL4 z4o1PmjU+LOGdPU;Z?0w*4~wiP*|3|%uro_Q8J;DJXlA!!*7{4bOxC2>#sD5x*#|{@ z0z@Q{sV#jO53_KVMNKl7R@nm5=7b{+Gs~akmhlr|zC#z;3D9;OjN%8_B-(i#j3$be5oFB7{{X0r5VqPQw)3c99k@gn{L751N|Kxxm*133= z6|HP=a%VG>YnQN-XT80%mFLyLv<86%Q=8lp@@tfAOa_3nJWB+GEB5*SrOZtbZ;A`I znUWw$a9p(5c<{^R>D_@i@7u6Z5upKTOcw8LS*ZRer7x}gNlEC*ag}Ti@DQjEJ!}7~ zJAP7nM$KgvkNn3r2khgy*ZyhQ%Z|@n#{U>98&q*~42T(KUbn)Pw{EQ~CR>jF$VJMz zj(Y!sjrv}{C|&9FyXCRH*wAV}IboT?KiPNTd&a{|8-Gy-kCbpfSSI3yds%1!g~B$!Ri-r)ZdBQRFd z248vmRY~d3tBS~fS|i|M5I%^WnJM$MlHH4!2vW*zLjQnA@Gl+Lxsbrpxl&|pE)9US zY<9?Y1$r^@1_{vRf)dsm=+?S)mmQ*qdq9&i4JzN_j@8p{qRd~FbMVu2w9+D57Fzim zJShVNrItrRFE%Cy$#F^F$=j369;%E8@1_Nc}-fqc9nGs z+h_b`hDoF*PjcQ;c*w>}yJ4b&jie!f^8f5FHC5$G@T>hFSFjP6u#xe@zjOE^|M&vf zax7H)RS{Ughm!aot%!1U%aYz5F4Pj`8rCF7mzZ*4AmFqYXe<=N0YtP4#`DY%q0tyY z`N!C!Z3suM7Zu}r)CJr3k{fQw|3W}Q&&ZeE8tv*vo@iGFQM9X)Rvsvi;WB4}c3uf7 zI%F6IH%WK{(D-X&wu%E0U!q+pHovGbC1(r<-#M_*=wm zWs4-gp^{fq7{ofTd}xbIRto+NVdUQ;7BdtWSfS*9G{^sJ3zh;=ORhV%aNxdwukt!EKp=G zSET)}kef@kL2EC|SnU?R3{6=XwP)rrej*1>;f8sk72_&DUN~2B?pm4rw6=)3gulG5 z)9&PiUhtM#ukHKrD9k(LV6n}Sn-}7rBy(7Q&;#e*;79w8E@JzyLEss}on$HSzk!XE zR)Z^u)9!gWt^Gyxz%cU1VxfWt7?r13Jbyba;^xqtovWmaaW5Nn?3G#F8IVk?s)r&z2EQ4W#80dsE|f!&uJi<6@hX0gp2>^e9)GqDz9 z|BYuCcc6erk%KXk3zw4|R@PYuBgwngm~IGzg`11gz`USZOC#tRUo%^JoWa7?%Jd*6 zW#-6<0xK(tp}c@=76Yf}$(3Id zLYo0ctKvD3EI1?%eQ^bJ?y2Wlwz5Q8C9R1{BU5gXU;-@T3g)0$&IF5xmSjEdxWAnB zv&eFfXAPPt_^@1C*?L%HKSDC2vRwsKQKg-=V_PhnZYB{C)+kwW$%;wd&LO{A7M(Pi zMgTQA(;z!;&>~<77Y5vrcITdWl$0_S!5CO}1}z*}TJ=`-=Qqo)QS6BBabxVQkm)Z1Of9HMF>URyISX*1o^h2X-ARRwmk=Z=Vc{?>vb`EOZW>2OAKO&W0=5XTMa+kPjqUqu( z&IxMq<*rL~baJW7MRm(uv6QyV^$+@bs&hEiUF1rn^On0Fq3GqV@v3o!D^5q>@$D5& zuAVyDHY3#N*h<%<^vevVkyeg#X3~M-&a3F!D_s-lmaAOX(TB5u*Q~2uH`9>W&hgai z8rRkI{?({0{J|ARC$Dj>AkQ4FZx(I8)^#Nn&kaHT(^%(qH0(OpV71TnE=Lr-)?U+c zBfwmIqiZ}q#OykUW?c?s^$T6SX~YEQ+f;aytD0ur?24gNb?#X8msPGVI$E{LRfP|1 zIb-Om)vnVNcYbJ;!U|_R?O)@1kQ&Z+j;673?s)Z$iB6r4{I>wl_a-~9q<1cKPM{4_ zaJPLyXo^AUKr|vSe>u2ZOyJ`I<*K;*OKcU8nYO+b&H%?v{mkSR{XP_*U-<4oeL?$>&m2M zcezAp9O?(9&KMp2y55yT=d9<#^{#9>UJeLSw#^BsJGi!+5-KaZM{Ac!+wO6Vq_PLx z2HN0qj-(IT5HwZYi`ud0I}P-{+c}oXS}=`$T3n-PR*5rC)o*aQbu`)&V&uvToCAdI zYV>`sMLOCNtidOQZUNg1=R3cr;?1rs+VX&FBbD9n^3cv%sMz?3D<0qTajno>V-bade+F#oj99ZPi=J9}v}H}7)L+iRJt2W@;9Y`V9~IbL1*2zR`p8Whdk0^m7Y zT*Ij>&)J&}4szm~r^_+I?i!7Yne^Hgrm|ygx2>RZRJuEjuG^~B8t6Ws(@dw9fwa-v zTzbkluONvQy|FlnzT4(HN?W+>V741$=&KT_aEB|M{=D5ai<)+Ty9evgEhF2FPkPU& zNT9E|_W63}^_|BZ)&Q(R+MY(2H-PP(P>bHh(-SlZY4mL4Z=2Yb01CPp@LeTfkH&Vo z>oJ#^j(2z7L8*`9Zs%NQBCUDZbt}F7IN%lfAb?vhMYrQ+&ReO=QUH~*4|bzg$|gSv zP!PLJ%2RPCwJy~)pYWYD5XfaR(5RSTE_{o`tYU;BOeK&rlm`SKVj|EU#L?C3R^6bN-DZM+tD!myKV zAv%U#k0FI&ukQgxV`rk>doQ}S5WVP{Mu%R4S-R$>5OZd~9AZhYy(kM$&#JxX8$!H< zPOpZ++wOPvr&C6ln4CYkKBU*yVDNB{V{0QwEuq(LMQz<9t|Z#wclOg{{@5)raQD38 zT1VY)<654S>u+ObbGx<%@a0dhy56VduL3J*KqlS4A9u(1xl+jXn(HY#cn7)_9&nvY zh0WUFeW~sf@TGdAJDX+@&j;78yi;qpOk>Wm0~&M07p2kUH_)W+dZ&r>>v7S9>mcX_ z+Y>bH`EoskaMmH$7c~DKfD#QTU0D%FYYsyL?1x>m>D$Aue7g6rYYu)+QV~lF-$ccN zdqa&w>XJs)Z-TM2roq^qy3`4DVYbzgZ@Fgb=z|ut4%gu0If?2|M_l-V_^KnW$?CRu zTmc~4ZX(|(q!~~p}U*k2g%ZS^f8y4mfa61 zbzhgq)AkxV zFKv9#Swts4Lf_s~A+N&1?wg&DXzhwm{I*@o30JV4^<%L5;0ae{^CzLAty^G{H-756 zjT*NCQ3zG!5T0$JAzu9~B+>8u#kHEI??B^?UqbE1>;&>V`$K@ho9oHA3-II-47!f) z{Q`DW+Vy%In)F>RlsESYP$gvYCc zcxlL$&c(F#TUUi9+TVVM`TORD5PfL8nm%pq(D(Qb^v!K@UO>nH?ZPM5dO$_f{))-@ zs14(aedzvIa89P_z>6SUEZ(19(pX@meSZtt!`*vB_-*(*dccy6rF;H_i&!lLIyckW zKLeN0;{d9A9xi;#53csm>?E!K5nf?2IQy*Qp`tZ{aiHgw>8S8DSwu1}%u5zPik;HSQS+I2!l zUvUirpi~-kE5g&t)2BHXc8FbeU0KN3Ia}XWx=YE~` z^>t69mAjk|(v$sA`%!*rJY8I@JVaajqZ=L*>6-!W2WZ1N?zvR`1loC{loCc49_iS? zSbA@edo!&a2q<_=qQy@_T?%5*MBm$;L^D+91JpDakjFd)`+nIFcL^0e?YxRoK5fwibqvF&s_jqd4yLXdXjJvwQ%5G{+#xDiShA7X|&=h4% z^Iil=Z*0wvr?IV!nbCbdRTlyIM^lwCw9@X*rLPBo@Wp1(Qnx4ruf4XpAEE{608-cn zriIEj;WfjcZ@K|}C)v<=j8S=*#@TVVY&hsk%LIAiN zBh`w>_p(Bdr}^>qYO&_!?8l>>UR0b+GfLd|(b}#+ZRa6pD}C5i zK>)*KrN5LDOCu&?+P*7s&!n;Z_|;hDe(F&WqP%u-Mj{QK?7pAAZ7#mFy zzTzpKHhj`Eo_b6Lq}L~d<~R89?sqW7-FpU`o&Ka}8f8pJi?*r2efhi2t@Ok+)iaC|X4?ah2ZV_sCF2p2e3|5v-m?~h7(UENt z27Bmh=MBw^-9zY9I@2((YH%0p$W;eUh%qhr#W_RP$LhC@jQi98@Oa@;H^S*lpa84KDFbQaY3Exs;Sv}~ z>2k0u4lFl~XJPjtI>LG@lZIS|TCv@iUk349yA<%hyv!X8D=(eMf>Q+u+4m5So!z-mU5`%UVx!abVWuE6vqH(?Bk zf_u+|(1zh1Ux|u{$C&_y#{~K&RUt~g3ZVWxsyv&1y4t;x_Fsj@b&C}v`DOzvxm$XT zdp>0}DY)Z>p>V?;bcp@vxhp*S1RUA#tSG<&cqx&M7 zav>O4xV3u*y*t*~gZy2TN2ul|_hmF{KAV>IHFwR8?!nYH1@xb|2~aXFhRNkW8K2VF;unMeIZrf?4Cs#YcN{wYTUi>*k*XUHSP zyha&`ekN+#7y|X{eJs8YK&?jkFfAelPu&mQ%6I_z6?<){?DPX%#**<|T}WEad&vE8 z^9sexMiFj%B7SoIOF)@IZHn?Jt=@!aWaWJ2FnzNb$WPmj=wZjBkmIZpgmi+=v_~-C zGUC=t+hJZ7x;wB1n89W}MI*K{j+|)#l&6r43?Y@f4Uj+D?>M9V;^k|H+qQ@PqmH8#nfjH6ea=@Bb-8%D_LPUD>Pd3Y~>AIg?t}gjXLgo~|TN@voIhIFRSQf}VN>&Fhxo zWd&HSE~25Y;!&*QzE`2hD-U7a5Ejt8_rqKC%vQFO^EI>!N!61&EA?)1jiFO-xNoAD zU&kbhT$POh#N7wbXQfYxCH>D>5biwWzJ_+aq0Om*E<1=(jvq!h!)LrK=X{2KrE(*g z4g(7A(&_rQ;Meaz40!-v#Wd~vRrsiD@OuU~Gt!!p$Kdscm+Q}d73Ow7TjVoH%z zjIBvj-^?o?k*eK(y|Qdp92L&2vZ_TRs!m6%@2;rYgs*#yt{SQKSYGvLL{)!j)i<$f_c>L=)6{)q ztGSDqj-uX-)NddwGX1nc~@? z=8q_!7V#N6)jPVpZ^Q@A2+wBqwXx+rbLFET{0WjYb?TpMO44cd@_pT!w^ek}zB{t$ zk*cf&HRXeB@%~L(-oFirM7(f3t znf&jpETpCHuME)LlPH@~kF88qA3R=mj#ZuaPT8&an0;|YtXlA1nL$VM-!FR^4x%zk zoqnwBd!0J{!!m4X_&+LJs@ji~eW&B;%9Agr(AIZqYSg->%FkNVw0`A3#?ZK~6|ZWz zonBGt*Y5PoJpI*I@;&gq={MwKc9(e$N2@)GJ!_)q;3Xbtm8UX~DzeJMO%Ab)MI=3Hr>p4|+V0#I(1{QvCxxJL0&1 z7Wu9#NKudGcwUPl{rMgwljnMh)VnY6B!P(YJ;Uj)qowKe$OWEh^tc`$sM$EnGlc?k zJvXcBbkDLV^_RJx={h=kFx2S4Y|odfX_jZKPMvbTCr?KQTpr6m7e`kwDOLe9F0?nmwJ{*sR>tml6t8tmwI+a(W#rTQafH;S*Z3n=y?Ud=soC3 zRX;ATydjF}Je3AoyQj35I_eqE*AV|3D|)MwF0SkzqaJ<20}&{0^`xs4x>mj%rPjGB z-;Scfy2@nQ*-$x%l23cmn;R;{_MBdM zceMKN!|erW-7C+FR?GHyCP!1-E0Cd#o%vm9SP7EEuVq%&(YUP28|jU#N;{=wSC-Js zRTWdzjoFoN>(mX7%DbbU)K`8Otna#fJI$7?DVM5zaR zS9)XBSH@TR!L}PK3aD;hK0f*~C@GCTnuQLj?|X_8wZ4BIT4|3~w=Aoi7o4uOvnq3G ztg9lPGUildQ?EBYJ=Kf<t><$3=%nXOy8lZwx$#@i7HTW6 z?4vqHR#wKSU;f3jI!XnP2O{@9pz_)%b;rw|Mi72M`A{K41sRjDxyJHTy2bO4CCd`3m8Gb3e-=Jcs|FbC<~-W)}JR;UVs4abx*yBaIT8>busFmL6!fO zzUQeayFB}%@vSgVED2H4<{7P1FNx!O^{))-#i+_alnRNQq*LpD@Yr?g zO+S0i)v4xKz*S%S#WO~y-mI&%>Qo3QjD%qE@Q)s&POV9sJHx3F+N`XB+fG|Rvoyw;;twSgKa}AS|B8um4(_jpklK; z|6g<89Un!tJ^nU5AqnXrjdVf@AvA#~U4alJ0i-8v5LiS7LRUlyq%3T*C2n?4vZ;vW zDIiG6`C8~cIud+>B2q+YK1Hzmp2+Xagpf0{lMsCGkKZ5R!<>8X>FwT`ouS|QZ@Eo; z7V9-yM_jQ@6Yq%rC7R=oFs_^CeaPHOhox(O)x^M-WKB9mb=M37@29tT!u4TPi*l!G zf`n-42-U+iZcsb(^=L>Op`i^~XFC4z+DS0Sp2Fn_jT-77TjT=UdusZ@OH-Z-f$YJW zB=D)xc!Q}I$+oVSW~CF<7plFmPl{%uGmaRdp{gJ%?#sOzwF|DR({y#lG}Y`~cXgIq zsBs}jn5TJ`S`Z=bFJ^0IJ0gWnt^=47H4&JyNs~ea@}9iCoo2sIl|~?9`cd<(17?>A z3K0Q?>6$zT>uq%;P*!oF&khSqbJOXg+4c2gpbH;q&N)KPpHU$!mi=lqKe}Ve*P28} zBu?EZdX8%9iE9<5=)zr^@eS6(C08}xo(+aJ3?wH&=eIQN=<{DsXv*Ai&>_v6cTL}z zCET#fVogs!p(ggjMT=+GIN&1-W~&@=O#JMt4oD4$j)-_>=VRt~>P7AiTI%?YIx7;? zg=Da)uc^o3D2v+FhwhW9p9QLO6#O4++Ca{2bqcog%5E13Ifd$k1~;JE*U=k&VzM_m z3Rv4QB;i-pVJ--T>M#{#+)(?X_Zl@7u8Uu*{orQ1>_j+VRv(0 zuQz>B4I-DQ+1IOK_cC)y}W>4sN7%sO}oR^||E1dLNbfT5x@b{SVak$*)p>i4R4P@7U6 zhjXr1&E(&GzB#x$wh29i52>Efbcq=ws~ud~HQ|}aJ}Qm5an;XrY&1U%Bf3^U$-a*b z1dN6^hg5HDLPSAb9gM5Ks#?##PbqMT#N}{Kl4dS*;@{6MajOo7gTGZ}Fm#Rb`PKbU z^|}ii5b1Q@SJfw)0YxsCj;StE)f}AES>+2iw`cOt`HG8{46W|#0Ke+1JK~%pFj>Na zs*W1qv;)93S90rp3h@IlhVv>;{PO^~!m~5WIElU1(m2LZ^epJgF1JjqrZ?(Yfo%+c zV9}8K1h`_g6-?daRFJ4VL;8ad#=u(q1$~ECa}v}ua@v<8XNYBCc`K(X0&-G=xwXVN{9;WN=V#3G z5C}eNtJ*c8!tQIUw)RBI#zw{@6iuw=^e!%|=C&4aW5RRQ^?~qqZnmAJq>GVeUyHP( zuy?7%eO8ULgy7uR@+g*5!G2CKyttv<9R{|k^u}*GmuL5Bl0;#41OyeihC<;NBn2b2S+0$2^i#G6=dyR;EFqDRBrQSLd)=3ODhub{O=WhEzD_!7T@btb;6rb zp@bU*H`-Ul;?bd1CwZ-x(U-;tQW<%No|9TK-!7xe){#0JvKmq%eky>GmQBoEXyesW z=2=qmV*3Qt=Xk^Xk;Aza6snKdVZyFUR=RtU4xUI}uVW4W17#MBUQs!fe<)rigp6w? zZeGZw{Hckm+|An!8Jbr3pwxL*539=OJ(LWef@8>=ZSY=N*;WP&z=xMs4t7S`F|3gH z9{8M}r9VHg&l+dpidk1~iHGVnf!sKy(n_ho6?2a`kZdQ$Kxrp7N>365)!Ydkt)ds* zL8;xQB0a&v3GY1}5D1k8RxfB}w7IkC74k}4yYGu$#s?rV&$Z0)i@OFX+A{Dg%! z_|H9I;gd_oQ*2~(u|&i3<1JhUaUktkODJ@+8;F7QF&29G)ox%gx8AyCmT>r@b2;6O znP54?`-m^Yt$aJ9WT!DEi$C><#N3u@i5|sfjy7z^`4(4(P^K=@Ft1Jag){}%sjTgI zFtm*Dff$yh4e}Zu`E(fo^HVKeaOkF$>t88u?OiI_PT|QzC1_-_iygwYq1KW?%tKlh zR))b|d;ReL{H*ju=)L+5GK6GH37odH@-B-E?B9equO0M(GpAxNc#q7dNjiN0Y6-nY4Jg9gOo{gT5o5))ynsBiuRIepCW|2 z9?=thfwc~}0j$6Az1_xltvk5#Wb(CaeDN$#sh?E}a~X3&G$S=P|6yliK&A|XJ$QudzJG4irF%4@Dn)ARc~{GA!i*h=)P=W{G7Jj}j$Dv^y-k>6NkYKytrQXZeBe ziyO(g!t>=8cE*k*ywyo@s|FiiuHczhmTFtxhLH+_AXj?SB~uG!N2Sv+dBz0knHtiG z#_8eAi;n3lLO>l_@n{na;gaoT9$;^6wQ)&gX9jNDZ9LJJWK{$~b@vJvKl>Xnn0C@O zl=nn3%%`{7`1#`5$80=j^xY;ot4Pj}j8<&3@eusyHX9F68Iwb{+jxk)AQfT9b{pR? z{%gA}rAa%Gw8O^T?3o=By6dH*GBXQ@i%4g=V|ZC76O4e1pFTqm-E7Td=euw_S>i!5 zy-)65!IdTG9ZByq`CjY6F+3ht@dk@{Y?D>-B|qHzd1(c!8z55cwXDL(?_vyaxA8eb za>tN?Hj@j}qHK;*IuxofQUN&3i;i?1nqIZd<7iJFd!P0@8*GDkF_W$VnI5++lo*gM z1K^K^Hl_rSSy9$Q67M1KqK7RKcPz41^1z|<*RJ%77u#caEYGIqEH#dFhq_o>HW=Dh zdEuP`8^6;A_vT=n&Sv0;r-N#3bDP(tsPAHpZ6Dt*$#ftK9+^s{u7&$DY<*h5rJxGd2Ae6qV^}*Zvl5noP1*-}}VdeZn-bN5C9(GUF@{O?w8??I6Pdp=!&C~{PPMXD% zx!!d5UfxsB7kI=f~+zIU`DmY%P{R8HoDR2h54#K(Lu6;*^n$HTn>9q|fv>y26k88)pX-k9FU}@0W zq<;ea&ky&X)Si44_g!DBR|&!DcNcBO*_Xq?xKZnjn>K5&x?`J3W=9ngz{dfc-3$Gl zq$~u1_hfSbo;y|YP$BzgFS}#yGPxwC!PzgYs)7 zA?TB0PV1K54v%aI{ayEdOUVYeKLcze6|bP>-Z z(-#-_h7(h@JONMtwCES!-w}p5s9jL(ibtmucVsi6Y2>w(V(I={N_F~PV>sRSE8+)Y z#7R8-u%sxC#gYii$TITmb@FS|P&S1w=~WG{nVg${Olt3^#sPdqbZ|5*SXRW-?z&|~ zd>3(RS`W02Cn{I52-G3??G^}~f8yp~C*9O$z>bQkO-5S5u z^=-BLBeC9xZ={+W`pXT)op{xe=|Lu+lF2BG%d0q27O!Gwr(yshg;u8)R4(&>B~k=y z**D$ccD6B=>9lbLcUlpa`$?cH&KpoXpEt}h;bl3bbwL{s1DuK^y0(kCl$z}QqgC$c z=3JDT!n$vn@o$-hPI7Sh%^Et4f6J z-(1YQF%i~wOEEvI6k+Nu_VYGuDdzb?rajVn3TD4kT;2j(j7Cg8kVm%aCZ=4yVnNtU5yBPdYX|7 zCc-jYf?Z(uG$YqS)4-q8jIwk>uP<^5mNcw>0`28WLG^Is6?d__wA-surRc$YX!Y~+U<_I%mZZn1g(VY5-g&+dr9c>Lxqqmk!c8P|g5tVt3sTOo+3y|NA_ ze(rQKI=BN|l)_}fQQt*9>@ICIZcH$J%gcm}E5(80GLBBQCG2>}HC%_a1->?tFcwG}E-oi_3kPjSw}UP(YDr7C$$D-tYap>L2_h8YdgZI%lZVynk;=##q0(bu9I^elLKCgrdc2Opu%n^rQWAudZ!;;r!m= z+!++KDu7_hMM+~yc`pXKoi(_?&TS<;;Sx3af$+AHAxxS^SO9#qor>A=?IrT!D69}i zyDBcbIV!*%dhICT+Gs+$d`F4IFYa;>0B3iU@L(2JVB5NqDO?c*v}@qSjm$$&nLgt! z!n$yMGGk8W;&hn^b0R-z3(GU~9_ZCge@W6p-EXnjg!|#me-_V^aM!wZK`0CrhG&=R zqWJcd_8)P0{+MYkpD6&L{d&osmB>WkelR6*p~Z=`+5?l#rsVsfAg*|eIcSzP6klI& zTFmp>J&ZsYJ@D@*O)qgJDRCwS|G`s1EYOmEpSN+L|fAI_Mr z@)4!L7m998(mUN$F3`TSAr|U?D)Ou`?CPv?!9MFtB)5U6+3YQK8u>m(A(Il@L)jv+ zIhF0Km73F5bRo7ehTr(nr9FEo_)?Xjp5Gd>pVJBv{vv;$)f(2vGtvJNZJCEXC@VZ6 zi(5g{LBr!1mTZt5Apa%K9+VZghTd_=!-gR|-Tx)p{|hhTs-eJ0!PoK(lX%kqOPmRL z3dC%<=Aa>%->DOl70g*};^}nFYEuW_dk@TKW-MBmIcolFIJr*8cO5rZoA_SN{%j%z z*XNlg@Xm|a2nWNFl5qae!Qh43V5rc>zu4?Q-K} zPoUE}ej-WY`lJ7`l3I89%_AC#h9r}Yw_ubd=mt!_&JUdq=>8=s*$T6XC{Mdhi_g5M zGx18IM5?*PH7jR~rldFe72PRG!BwE&L~!F~UA3fRQl8B-VAEnc87SdOP~x_6w%v^h zr4XPNIs$~-9W@;&p?eDnJsN7C)4F4qk9G68e>6iX9{gfI@Q2!^MSQZr1CntT$Xe`Z zJX);l$9oGAEdf37rG2{Fyv&i-6L&ZDapN@0t11#5YRK>{XSL&;R;H0#8lkW@3(R)hUkB zv7v}y?AH>ZMOZ8DDh#-6ietJG!?^geiFbO6p)K5zkRAVu^Cn#}aoI#z%@v8I#eKc~ zDUZ0<_k^-jMt;LnsjL%BlELnO>@2o#^3zbI69VZib8=^;1A{QwaNU&1v_|v7K)9<2 zbXSpnO8Je6i$J6P(Dxh3$=#f9Od}Zru~R?&jVXBj8?}LjJVMEi;ShO2&wCWX$z?YO zWf7{xIFam#qmJuMvJ@wxcg3{N^_!JO9++?n-npQcJks{pWDt+vu79jQCd=D@O&uvf zTzS-7p58XNu#Kgt1NukleQZ+t1d;Hl57J{pX&tbt zz5v}|etkg_zIUe})7_=7>`|j2JY1taPjB<;e82-v^wb5Q$7|XN4!9vsN1wjhxn4WC z;e{oUFBM4Cb8A9APge^j=F{hOe$0<%{z0&rSPKPvc*bnqx&e?}hbQ3!)!? z0srNm2;1~-0Z)P=j2^OR8>IY>A`E%2U_8D4 zQ~D56bJ%fbU4fbVFiq@$s_S_#@&YFUH(bt3VEqdcFp)Po)>C;IOugTq${XX-^zO3E z%(-CtA};{4zsTd_=)cHIX<7yKU*tX9bcq4y@}A-}$VTCqomVi9x7GJI9FkiN;WtC+ zIu;T;=DWkB*O!M{|8KcZ&G*wgtEfkjH8a9Q+|?<+4^MlItLMTaTgn+HxTb6VCEnrE zwH4h5=U?FaCsBsbF8Q+@n)VwH!>X_IuEDH%x~MiyTbxW-m80{=_49NAu72`V(4%|P zbA8{JP?oX(!SvUCt`H%YLdT8SGj`k5$)gUvsPMXhlZyRLmFNW zAm^hw&w78VF3zQulYu73p!*D30aX!5Z}N^P{G3_#%wXL?di|pGNlvOXarnqQ?c4NJ z-Md;}JXxx3$G0d#C4$YBTHXYS)#=+x?Lm4iq}1mdXM4f9l5bow%BFpmdpZqAfX_1i zRP+!`@>U~!?gmp2SLegi|6FhWgYFT1 zPYs34e8Mo$Z~zuoo5yp*-5Y^vk)>{s^p36v{^Mn{j-Mv3%Qc5XyVdO4@cze6mlog6*^Hr0I~T{WOWE%P#n)H#-nBS{v)l3#*$)Nn zUtf`g!|E5m?`vv@Z+~4Eql&p#vgi$^%3TR$U#km(s;}z!4L5>C;MuS0e*Uj80AUz` zhAVXy%;5!kfpBpm(udrx)$v;lG>{B!ZpvZwL*%dOd~oE=x_|I91DYL@6_qCq*Rd?*8M9&B2Kii`V_{<0jf~cS%XPlpix9u>JXgzUZ z3cg_{G|_qp)uA}cZjH!=4EexF{8&jlElSN=6(mjAxEOTZ9y7;a4ks@He;kh|q7P2@Iz)L%r^WYUZ#xvtgQRRxq9@&)ValFaR_V zgQqI9LfXQ@$s6^kc zho**L(c}?dIl#)vBRnC!Z)!9;cTbIVK)+?FhhiXZXzFDAygZeDVdkJteLM&kEJ-a@ zi9}#$a_S>EFLT60pFod2X-s`Euya}t{$o$t+w@VaJ!!n9rjcNr>yh@MBmA;0^_k{| zhtU(V)6!N?*Dl(ZMt`H|?{QqTZ*+bZ?0IB#8#or89tsgr=~E!%$RsBi@JbrJ@;M?s z1S+G_ecfFmv553A=op(Pw+q?{Cc-b;07}Tz#T;NLSm@pBh^|Owlzp?Z;j{csYzwz`pf&M1a z-z55*jDFTBj#I&UHX%&AVtXpC*go=u@jy~7#rUu^UslzSRO8eQZca!G1NG#zl@0&< z_vExBL7p~nXHuH4AXLAGfto34Mfaw(hnZ8;X570B#oJTUHamo$8mazc$(lalr+4gs YBfj5^Dzzx{3akjIDoKcg~H5C8xG diff --git a/vendor/rector/rector/vendor/phpstan/phpstan/phpstan.phar.asc b/vendor/rector/rector/vendor/phpstan/phpstan/phpstan.phar.asc index 0b5e655d2..2a8a4b65b 100644 --- a/vendor/rector/rector/vendor/phpstan/phpstan/phpstan.phar.asc +++ b/vendor/rector/rector/vendor/phpstan/phpstan/phpstan.phar.asc @@ -1,16 +1,16 @@ -----BEGIN PGP SIGNATURE----- -iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmTSNgUACgkQUcZzBf/C -5cA8rw/9EPjeTcTM6JkrBgoTxcowt5dQyQIlihqHZTymzi+sHyDRbCoE4/jXRRYL -xDbyKn6rb0klsdRkWtcfPmzTyNmPby7Ue61M6TdO9MNPbHQ75GOW6B72Lhvm8uAW -ackyZPO49hNsB2uT0ND5eVKKABQDa9qoiM+iiO06Sv6mvLyX5xP20SZTy/S7iEWd -EpCWkqmVHcdym2nQEIZVlmuI1tedMIMHTUdpRQPplwpGCbp1NJj3mGjix2ioGxaQ -EsfXWblsrG7zaYDSFRVBTFQHMfcsPD7vrXNC6/47Z+69467cCcsKf9xUnLKeJqcc -2l5qTfV3nm9oiKs9zNlGeyoTIgVRpRnvXmpmtDfZn0eFgBaYp2rBmNWQKhMHtlyJ -x1PFS3rWe3lgaKD4VRm9gcOVW12Ikpc0ZNez9wgldRx8gzYFUW8XgEGsT1nnnTdC -80KKjd8AgCkoqR2NJs2Es1nFfJVKv8QkcndBAfzRTwTyMbI5716S2EMhcVBZxdS/ -xf07/geRkBZUjahqarNH0RnClEN2XpRyjnMMaReiMBerMuuCHD7YfwenivgVqnZ3 -MFvzw7/IGO2pnxGP7Mop+FzrB3me7OvOP6reyOj/wR7uJyZu4328XZ2cvlkTEuSI -PyqJiQxkeuhX9I2NaYL8HMrNMgzPIrn4fRmsNjKGqfAnjevo2qQ= -=UH7D +iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmT1y40ACgkQUcZzBf/C +5cDm6Q//VupQizxW3TICxhwzMDz05+nI8d72mn5vd94Niat90L1wPVHSZ9eBQSs3 +xMGVKJufB/3tQp6rviYk0aFnTFsKYkgwQYSDk1P9D7VrcJdpB461P3FT4MGsRk8E +SSo55EuMGpiVvgoKbiPXeYV76yEpSMpelbKDNTm7iglLFVQKAnTv17aQv/UdBoYk +t/dOS0ovoWmjkj9837EA5o2FAkhA5njlpvRs1l5Jt/tZsZtJTcDjPYfP5kIGbOwp +V6xKYW7JYht+O0si3GxGmWGOE4VbOHLpUDpLMmVu53njjeGAIkPgX53TqBRbAbVL +FjpDSZYC08lE4WblqXZEP6aKqVqthQ4LcGfyZDvuWDgPGHf86cTvfHQvtqRY45kU +GhFDz6IfVlwBrfpc4hKfbhF6Q3Txm8ZSSfiVHim8JFjCqO+jn4qmaXGaOqbNUfv9 +fLgg7Bbnu1tZdMv6JJP5Kmk0x5wp4m2vFxDd6NGfm7uz9182/LtXOjqQ0MuGfL+j +Dw53dl+WdUpr4Xk1m1GkYwDF9zLIwBB7dEghz6c4nbiGvh31MUk6N+4N2eGkjtWW +B1PPORcpxxXSlhtftCwsJVxRFodQu9cmI0qmw4EUEipFrkFuT7a1rNF48NFyfRMh +PcB/UcUHMCL7owhfQEEuPvqIPJS4saesCdFeJAM0MKuXB1nNGTQ= +=HpaR -----END PGP SIGNATURE----- diff --git a/vendor/rector/rector/vendor/psr/cache/LICENSE.txt b/vendor/rector/rector/vendor/psr/cache/LICENSE.txt deleted file mode 100644 index b1c2c97b9..000000000 --- a/vendor/rector/rector/vendor/psr/cache/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 PHP Framework Interoperability Group - -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/rector/rector/vendor/psr/cache/README.md b/vendor/rector/rector/vendor/psr/cache/README.md deleted file mode 100644 index 9855a318b..000000000 --- a/vendor/rector/rector/vendor/psr/cache/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Caching Interface -============== - -This repository holds all interfaces related to [PSR-6 (Caching Interface)][psr-url]. - -Note that this is not a Caching implementation of its own. It is merely interfaces that describe the components of a Caching mechanism. - -The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. - -[psr-url]: https://www.php-fig.org/psr/psr-6/ -[package-url]: https://packagist.org/packages/psr/cache -[implementation-url]: https://packagist.org/providers/psr/cache-implementation diff --git a/vendor/rector/rector/vendor/psr/cache/composer.json b/vendor/rector/rector/vendor/psr/cache/composer.json deleted file mode 100644 index a0b3f85ff..000000000 --- a/vendor/rector/rector/vendor/psr/cache/composer.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "psr\/cache", - "description": "Common interface for caching libraries", - "keywords": [ - "psr", - "psr-6", - "cache" - ], - "license": "MIT", - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https:\/\/www.php-fig.org\/" - } - ], - "require": { - "php": ">=8.0.0" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Psr\\Cache\\": "src\/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/psr/cache/src/CacheException.php b/vendor/rector/rector/vendor/psr/cache/src/CacheException.php deleted file mode 100644 index f3d54ad4f..000000000 --- a/vendor/rector/rector/vendor/psr/cache/src/CacheException.php +++ /dev/null @@ -1,10 +0,0 @@ -=7.2.0" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Psr\\EventDispatcher\\": "src\/" - } - }, - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php b/vendor/rector/rector/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php deleted file mode 100644 index a95c6c24a..000000000 --- a/vendor/rector/rector/vendor/psr/event-dispatcher/src/EventDispatcherInterface.php +++ /dev/null @@ -1,21 +0,0 @@ -class !== Message::CLASS_IN ? 'CLASS' . $this->class . ' ' : ''; $type = 'TYPE' . $this->type; - $ref = new \ReflectionClass('RectorPrefix202308\\React\\Dns\\Model\\Message'); + $ref = new \ReflectionClass('RectorPrefix202309\\React\\Dns\\Model\\Message'); foreach ($ref->getConstants() as $name => $value) { if ($value === $this->type && \strpos($name, 'TYPE_') === 0) { $type = \substr($name, 5); diff --git a/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php b/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php index b6f9b7095..9849fff93 100644 --- a/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php +++ b/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php @@ -1,9 +1,9 @@ dumper->toBinary($request); $length = \strlen($queryData); if ($length > 0xffff) { - return \RectorPrefix202308\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); + return \RectorPrefix202309\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); } $queryData = \pack('n', $length) . $queryData; if ($this->socket === null) { // create async TCP/IP connection (may take a while) $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0, \STREAM_CLIENT_CONNECT | \STREAM_CLIENT_ASYNC_CONNECT); if ($socket === \false) { - return \RectorPrefix202308\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202309\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and wait for it to become writable (connection success/rejected) \stream_set_blocking($socket, \false); diff --git a/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php b/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php index 22faa131f..e8a47832d 100644 --- a/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php +++ b/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php @@ -1,6 +1,6 @@ dumper->toBinary($request); if (isset($queryData[$this->maxPacketSize])) { - return \RectorPrefix202308\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); + return \RectorPrefix202309\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); } // UDP connections are instant, so try connection without a loop or timeout $errno = 0; $errstr = ''; $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0); if ($socket === \false) { - return \RectorPrefix202308\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202309\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and immediately try to send (fill write buffer) \stream_set_blocking($socket, \false); @@ -138,7 +138,7 @@ public function query(Query $query) $written = \fwrite($socket, $queryData); \restore_error_handler(); if ($written !== \strlen($queryData)) { - return \RectorPrefix202308\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202309\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } $loop = $this->loop; $deferred = new Deferred(function () use($loop, $socket, $query) { diff --git a/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php b/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php index c0d36fd22..93723f3cb 100644 --- a/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php +++ b/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php @@ -1,6 +1,6 @@ loop = new EventLoop(); diff --git a/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php b/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php index a2379fad8..72197a926 100644 --- a/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php +++ b/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php @@ -1,12 +1,12 @@ signals->add($signal, $listener); if (!isset($this->signalEvents[$signal])) { $signals = $this->signals; - $this->signalEvents[$signal] = \RectorPrefix202308\uv_signal_init($this->uv); - \RectorPrefix202308\uv_signal_start($this->signalEvents[$signal], function () use($signals, $signal) { + $this->signalEvents[$signal] = \RectorPrefix202309\uv_signal_init($this->uv); + \RectorPrefix202309\uv_signal_start($this->signalEvents[$signal], function () use($signals, $signal) { $signals->call($signal); }, $signal); } @@ -197,7 +197,7 @@ public function stop() private function addStream($stream) { if (!isset($this->streamEvents[(int) $stream])) { - $this->streamEvents[(int) $stream] = \RectorPrefix202308\uv_poll_init_socket($this->uv, $stream); + $this->streamEvents[(int) $stream] = \RectorPrefix202309\uv_poll_init_socket($this->uv, $stream); } if ($this->streamEvents[(int) $stream] !== \false) { $this->pollStream($stream); diff --git a/vendor/rector/rector/vendor/react/event-loop/src/Factory.php b/vendor/rector/rector/vendor/react/event-loop/src/Factory.php index a4e34ecb0..79f87f4f0 100644 --- a/vendor/rector/rector/vendor/react/event-loop/src/Factory.php +++ b/vendor/rector/rector/vendor/react/event-loop/src/Factory.php @@ -1,6 +1,6 @@ getClass()) { return \true; } diff --git a/vendor/rector/rector/vendor/react/promise/src/functions_include.php b/vendor/rector/rector/vendor/react/promise/src/functions_include.php index fc9a81b96..7f6ab9237 100644 --- a/vendor/rector/rector/vendor/react/promise/src/functions_include.php +++ b/vendor/rector/rector/vendor/react/promise/src/functions_include.php @@ -1,7 +1,7 @@ ` method -can be used to create a streaming connection to the given remote address. +The `connect(string $uri): PromiseInterface` method can be used to +create a streaming connection to the given remote address. It returns a [Promise](https://github.com/reactphp/promise) which either fulfills with a stream implementing [`ConnectionInterface`](#connectioninterface) @@ -1494,7 +1494,7 @@ This project follows [SemVer](https://semver.org/). This will install the latest supported version: ```bash -composer require react/socket:^1.13 +composer require react/socket:^1.14 ``` See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades. diff --git a/vendor/rector/rector/vendor/react/socket/composer.json b/vendor/rector/rector/vendor/react/socket/composer.json index 70828dd46..b23a2e4fe 100644 --- a/vendor/rector/rector/vendor/react/socket/composer.json +++ b/vendor/rector/rector/vendor/react/socket/composer.json @@ -43,16 +43,16 @@ "phpunit\/phpunit": "^9.5 || ^5.7 || ^4.8.35", "react\/async": "^4 || ^3 || ^2", "react\/promise-stream": "^1.4", - "react\/promise-timer": "^1.9" + "react\/promise-timer": "^1.10" }, "autoload": { "psr-4": { - "RectorPrefix202308\\React\\Socket\\": "src" + "RectorPrefix202309\\React\\Socket\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\React\\Tests\\Socket\\": "tests" + "RectorPrefix202309\\React\\Tests\\Socket\\": "tests" } } } \ No newline at end of file diff --git a/vendor/rector/rector/vendor/react/socket/src/Connection.php b/vendor/rector/rector/vendor/react/socket/src/Connection.php index 5cab58808..9977b7cb2 100644 --- a/vendor/rector/rector/vendor/react/socket/src/Connection.php +++ b/vendor/rector/rector/vendor/react/socket/src/Connection.php @@ -1,13 +1,13 @@ unix) { // remove trailing colon from address for HHVM < 3.19: https://3v4l.org/5C1lo // note that technically ":" is a valid address, so keep this in place otherwise - if (\substr($address, -1) === ':' && \defined('RectorPrefix202308\\HHVM_VERSION_ID') && \RectorPrefix202308\HHVM_VERSION_ID < 31900) { + if (\substr($address, -1) === ':' && \defined('RectorPrefix202309\\HHVM_VERSION_ID') && \RectorPrefix202309\HHVM_VERSION_ID < 31900) { $address = (string) \substr($address, 0, -1); // @codeCoverageIgnore } diff --git a/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php b/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php index 5576e54cd..db0f4fad1 100644 --- a/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php +++ b/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php @@ -1,8 +1,8 @@ connectors[$scheme])) { - return \RectorPrefix202308\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); + return \RectorPrefix202309\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); } return $this->connectors[$scheme]->connect($uri); } diff --git a/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php b/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php index b9c661030..cc29d5b2a 100644 --- a/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php +++ b/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php @@ -1,6 +1,6 @@ + * Resolves with a `ConnectionInterface` on success or rejects with an `Exception` on error. * @see ConnectionInterface */ public function connect($uri); diff --git a/vendor/rector/rector/vendor/react/socket/src/DnsConnector.php b/vendor/rector/rector/vendor/react/socket/src/DnsConnector.php index f430432e7..2d3cea7d7 100644 --- a/vendor/rector/rector/vendor/react/socket/src/DnsConnector.php +++ b/vendor/rector/rector/vendor/react/socket/src/DnsConnector.php @@ -1,10 +1,10 @@ context; $encryption = $this->streamEncryption; $connected = \false; - /** @var \React\Promise\PromiseInterface $promise */ + /** @var \React\Promise\PromiseInterface $promise */ $promise = $this->connector->connect(\str_replace('tls://', '', $uri))->then(function (ConnectionInterface $connection) use($context, $encryption, $uri, &$promise, &$connected) { // (unencrypted) TCP/IP connection succeeded $connected = \true; @@ -78,7 +78,7 @@ public function connect($uri) } throw $e; }); - return new \RectorPrefix202308\React\Promise\Promise(function ($resolve, $reject) use($promise) { + return new \RectorPrefix202309\React\Promise\Promise(function ($resolve, $reject) use($promise) { $promise->then($resolve, $reject); }, function ($_, $reject) use(&$promise, $uri, &$connected) { if ($connected) { diff --git a/vendor/rector/rector/vendor/react/socket/src/SecureServer.php b/vendor/rector/rector/vendor/react/socket/src/SecureServer.php index 7092760bb..e4e651ee2 100644 --- a/vendor/rector/rector/vendor/react/socket/src/SecureServer.php +++ b/vendor/rector/rector/vendor/react/socket/src/SecureServer.php @@ -1,10 +1,10 @@ + */ public function enable(Connection $stream) { return $this->toggle($stream, \true); } + /** + * @param Connection $stream + * @param bool $toggle + * @return \React\Promise\PromiseInterface + */ public function toggle(Connection $stream, $toggle) { // pause actual stream instance to continue operation on raw stream socket @@ -81,6 +90,14 @@ public function toggle(Connection $stream, $toggle) throw $error; }); } + /** + * @internal + * @param resource $socket + * @param Deferred $deferred + * @param bool $toggle + * @param int $method + * @return void + */ public function toggleCrypto($socket, Deferred $deferred, $toggle, $method) { $error = null; diff --git a/vendor/rector/rector/vendor/react/socket/src/TcpConnector.php b/vendor/rector/rector/vendor/react/socket/src/TcpConnector.php index 2971670d2..4bd31a58c 100644 --- a/vendor/rector/rector/vendor/react/socket/src/TcpConnector.php +++ b/vendor/rector/rector/vendor/react/socket/src/TcpConnector.php @@ -1,10 +1,10 @@ services(); $services->set(TypedPropertyRector::class); diff --git a/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php index b20979a61..134ba25d6 100644 --- a/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main d09e0f3'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 44cec67'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 14f0412'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main c6b7ee7')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main b5eea3f'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 51a2650'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 0810d7c'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'dev-main 0b0b615')); private function __construct() { } diff --git a/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php b/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php index 4ede7e4a5..66c7e94ac 100644 --- a/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php +++ b/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\RectorInstaller; -use RectorPrefix202308\Composer\Installer\InstallationManager; -use RectorPrefix202308\Composer\IO\IOInterface; -use RectorPrefix202308\Composer\Package\PackageInterface; -use RectorPrefix202308\Composer\Repository\InstalledRepositoryInterface; -use RectorPrefix202308\Composer\Util\Filesystem as ComposerFilesystem; +use RectorPrefix202309\Composer\Installer\InstallationManager; +use RectorPrefix202309\Composer\IO\IOInterface; +use RectorPrefix202309\Composer\Package\PackageInterface; +use RectorPrefix202309\Composer\Repository\InstalledRepositoryInterface; +use RectorPrefix202309\Composer\Util\Filesystem as ComposerFilesystem; /** * @see \Rector\RectorInstaller\Tests\PluginInstallerTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json b/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json index 6c76f5d67..2483a2426 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/composer.json @@ -10,21 +10,20 @@ "phpstan\/extension-installer": "^1.3", "rector\/phpstan-rules": "^0.6", "phpstan\/phpstan": "^1.10", - "phpunit\/phpunit": "^10.2", + "phpunit\/phpunit": "^10.3", "symplify\/phpstan-rules": "^11.1", "symplify\/phpstan-extensions": "^11.2", - "symplify\/easy-coding-standard": "^11.5", - "symplify\/rule-doc-generator": "^11.2", + "symplify\/easy-coding-standard": "^12.0", + "symplify\/rule-doc-generator": "^12.0", "rector\/rector-src": "dev-main", "doctrine\/orm": "^2.10", "phpstan\/phpstan-webmozart-assert": "^1.2", - "phpstan\/phpstan-strict-rules": "^1.1", "symplify\/vendor-patches": "^11.2", "rector\/rector-generator": "^0.6", "symplify\/easy-ci": "^11.2", "tomasvotruba\/unused-public": "^0.1", "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/class-leak": "0.0.22.72" + "tomasvotruba\/class-leak": "^0.1" }, "autoload": { "psr-4": { diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/config.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/config.php deleted file mode 100644 index 17b893a30..000000000 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/config.php +++ /dev/null @@ -1,11 +0,0 @@ -services(); - $services->defaults()->public()->autowire()->autoconfigure(); - $services->load('Rector\\Doctrine\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/Rector', __DIR__ . '/../src/ValueObject']); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php index 412822886..71d009a1f 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php @@ -1,7 +1,7 @@ ruleWithConfiguration(AttributeKeyToClassConstFetchRector::class, [new AttributeKeyToClassConstFetch('Doctrine\\ORM\\Mapping\\Column', 'type', 'Doctrine\\DBAL\\Types\\Types', ['array' => 'ARRAY', 'ascii_string' => 'ASCII_STRING', 'bigint' => 'BIGINT', 'binary' => 'BINARY', 'blob' => 'BLOB', 'boolean' => 'BOOLEAN', 'date' => 'DATE_MUTABLE', 'date_immutable' => 'DATE_IMMUTABLE', 'dateinterval' => 'DATEINTERVAL', 'datetime' => 'DATETIME_MUTABLE', 'datetime_immutable' => 'DATETIME_IMMUTABLE', 'datetimetz' => 'DATETIMETZ_MUTABLE', 'datetimetz_immutable' => 'DATETIMETZ_IMMUTABLE', 'decimal' => 'DECIMAL', 'float' => 'FLOAT', 'guid' => 'GUID', 'integer' => 'INTEGER', 'json' => 'JSON', 'object' => 'OBJECT', 'simple_array' => 'SIMPLE_ARRAY', 'smallint' => 'SMALLINT', 'string' => 'STRING', 'text' => 'TEXT', 'time' => 'TIME_MUTABLE', 'time_immutable' => 'TIME_IMMUTABLE'])]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php index 140e44f1e..d0869bebd 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-common-20.php @@ -1,7 +1,7 @@ paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/rules']); $easyCIConfig->typesToSkip([\Rector\Core\Contract\Rector\RectorInterface::class]); diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php index 38548401a..af98a3fe9 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php @@ -1,7 +1,7 @@ import(__DIR__ . '/config/config.php'); $rectorConfig->importNames(); $rectorConfig->paths([__DIR__ . '/src', __DIR__ . '/tests']); $rectorConfig->skip([ diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php index b139bd6d1..b85768065 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rules/CodeQuality/Rector/Class_/RemoveEmptyTableAttributeRector.php @@ -20,9 +20,9 @@ public function getRuleDefinition() : RuleDefinition return new RuleDefinition("Remove empty Table attribute on entities because it's useless", [new CodeSample(<<<'CODE_SAMPLE' 'ASC'])] + protected \DateTimeInterface $messages; +} +?> +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use Doctrine\ORM\Mapping as ORM; + +class ReplaceOrderByAscWithClassConstant +{ + #[ORM\OrderBy(['createdAt' => \Doctrine\Common\Collections\Criteria::ASC])] + protected \DateTimeInterface $messages; +} +?> +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Property::class]; + } + /** + * @param Property $node + */ + public function refactor(Node $node) : ?Node + { + $nodeAttribute = null; + foreach ($node->attrGroups as $attrGroup) { + foreach ($attrGroup->attrs as $attr) { + if ($attr->name->toString() === 'Doctrine\\ORM\\Mapping\\OrderBy') { + $nodeAttribute = $attr; + break 2; + } + } + } + // If Attribute is not OrderBy, return null + if (null === $nodeAttribute) { + return null; + } + if (!isset($nodeAttribute->args[0])) { + return null; + } + if (!$nodeAttribute->args[0]->value instanceof Array_) { + return null; + } + if (!isset($nodeAttribute->args[0]->value->items[0])) { + return null; + } + if (!$nodeAttribute->args[0]->value->items[0] instanceof Node\Expr\ArrayItem) { + return null; + } + if (!$nodeAttribute->args[0]->value->items[0]->value instanceof String_) { + return null; + } + // If Attribute value from key is not `ASC` or `DESC`, return null + if (!\in_array($nodeAttribute->args[0]->value->items[0]->value->value, ['ASC', 'asc', 'DESC', 'desc'])) { + return null; + } + $upper = \strtoupper($nodeAttribute->args[0]->value->items[0]->value->value); + $nodeAttribute->args[0]->value->items[0]->value = $this->nodeFactory->createClassConstFetch(Criteria::class, $upper); + return $node; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php index 497fdd283..48e542147 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/NodeManipulator/ToOneRelationPropertyTypeResolver.php @@ -3,7 +3,8 @@ declare (strict_types=1); namespace Rector\Doctrine\NodeManipulator; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Doctrine\ORM\Mapping\JoinColumn; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Stmt\Property; use PHPStan\PhpDocParser\Ast\ConstExpr\ConstExprTrueNode; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php index ed941ed98..aba51d008 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDoc/ShortClassExpander.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Doctrine\PhpDoc; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ReflectionProvider; diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDocParser/DoctrineDocBlockResolver.php b/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDocParser/DoctrineDocBlockResolver.php index b56925556..64acbbac4 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDocParser/DoctrineDocBlockResolver.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/src/PhpDocParser/DoctrineDocBlockResolver.php @@ -3,6 +3,8 @@ declare (strict_types=1); namespace Rector\Doctrine\PhpDocParser; +use RectorPrefix202309\Doctrine\ORM\Mapping\Entity; +use RectorPrefix202309\Doctrine\ORM\Mapping\Embeddable; use PhpParser\Node\Stmt\Class_; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; final class DoctrineDocBlockResolver diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json b/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json index 87e09eabf..fe8b6d143 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/composer.json @@ -11,20 +11,21 @@ "phpstan\/phpstan": "^1.9", "phpstan\/phpstan-deprecation-rules": "^1.1", "phpstan\/phpstan-webmozart-assert": "^1.2", - "phpunit\/phpunit": "^10.1", - "rector\/phpstan-rules": "^0.6", - "rector\/rector-generator": "^0.6", + "phpunit\/phpunit": "^10.3", + "rector\/phpstan-rules": "^0.7", + "rector\/rector-generator": "^0.7.3", "rector\/rector-src": "dev-main", "symplify\/easy-ci": "^11.2", - "symplify\/easy-coding-standard": "^11.2", - "symplify\/phpstan-extensions": "^11.2", - "symplify\/phpstan-rules": "^11.4", - "symplify\/rule-doc-generator": "^11.2", + "symplify\/easy-coding-standard": "^12.0", + "symplify\/phpstan-extensions": "^11.3", + "symplify\/phpstan-rules": "^12.0", + "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "0.0.22.72", + "tomasvotruba\/class-leak": "^0.1", "tomasvotruba\/cognitive-complexity": "^0.1", "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/unused-public": "^0.1" + "tomasvotruba\/unused-public": "^0.2", + "tracy\/tracy": "^2.10" }, "autoload": { "psr-4": { diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/config.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/config.php deleted file mode 100644 index 23308d754..000000000 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/config.php +++ /dev/null @@ -1,12 +0,0 @@ -services(); - $services->defaults()->public()->autowire()->autoconfigure(); - $services->load('Rector\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/Set', __DIR__ . '/../src/ValueObject']); - $services->load('Rector\\', __DIR__ . '/../rules')->exclude([__DIR__ . '/../rules/Downgrade*/Rector', __DIR__ . '/../rules/*/ValueObject', __DIR__ . '/../rules/DowngradePhp80/Reflection/SimplePhpParameterReflection.php']); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php index df2ea63d6..170d2e319 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php72.php @@ -1,7 +1,7 @@ phpVersion(PhpVersion::PHP_80); - $rectorConfig->rules([DowngradeFinalizePublicClassConstantRector::class, DowngradeFirstClassCallableSyntaxRector::class, DowngradeNeverTypeDeclarationRector::class, DowngradePureIntersectionTypeRector::class, DowngradeNewInInitializerRector::class, DowngradePhp81ResourceReturnToObjectRector::class, DowngradeReadonlyPropertyRector::class, DowngradeArraySpreadStringKeyRector::class, DowngradeArrayIsListRector::class, DowngradeSetAccessibleReflectionPropertyRector::class]); + $rectorConfig->rules([DowngradeFinalizePublicClassConstantRector::class, DowngradeFirstClassCallableSyntaxRector::class, DowngradeNeverTypeDeclarationRector::class, DowngradePureIntersectionTypeRector::class, DowngradeNewInInitializerRector::class, DowngradePhp81ResourceReturnToObjectRector::class, DowngradeReadonlyPropertyRector::class, DowngradeArraySpreadStringKeyRector::class, DowngradeArrayIsListRector::class, DowngradeSetAccessibleReflectionPropertyRector::class, DowngradeIsEnumRector::class, DowngradeOctalNumberRector::class]); + // @see https://php.watch/versions/8.1/internal-method-return-types#reflection + $rectorConfig->ruleWithConfiguration(RenameMethodRector::class, [new MethodCallRename('ReflectionFunction', 'hasTentativeReturnType', 'hasReturnType'), new MethodCallRename('ReflectionFunction', 'getTentativeReturnType', 'getReturnType'), new MethodCallRename('ReflectionMethod', 'hasTentativeReturnType', 'hasReturnType'), new MethodCallRename('ReflectionMethod', 'getTentativeReturnType', 'getReturnType')]); $rectorConfig->ruleWithConfiguration(RenameFunctionRector::class, [ // @see https://php.watch/versions/8.1/enums#enum-exists 'enum_exists' => 'class_exists', diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php index 008409a19..e605073d4 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/downgrade-php82.php @@ -1,7 +1,7 @@ expr instanceof Assign) { return null; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/Array_/DowngradeArraySpreadRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/Array_/DowngradeArraySpreadRector.php index f432c1981..cefda0ad3 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/Array_/DowngradeArraySpreadRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/Array_/DowngradeArraySpreadRector.php @@ -108,7 +108,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node return null; } /** @var MutatingScope $scope */ - return $this->arrayMergeFromArraySpreadFactory->createFromArray($node, $scope, $this->file); + return $this->arrayMergeFromArraySpreadFactory->createFromArray($node, $scope); } private function refactorUnderClassConst(ClassConst $classConst) : ?ClassConst { diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/ClassMethod/DowngradeContravariantArgumentTypeRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/ClassMethod/DowngradeContravariantArgumentTypeRector.php index ae0bf7ec3..cace08022 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/ClassMethod/DowngradeContravariantArgumentTypeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp74/Rector/ClassMethod/DowngradeContravariantArgumentTypeRector.php @@ -42,6 +42,10 @@ final class DowngradeContravariantArgumentTypeRector extends AbstractRector * @var \Rector\Core\Reflection\ReflectionResolver */ private $reflectionResolver; + /** + * @var bool + */ + private $hasChanged = \false; public function __construct(PhpDocTypeChanger $phpDocTypeChanger, ParamAnalyzer $paramAnalyzer, ReflectionResolver $reflectionResolver) { $this->phpDocTypeChanger = $phpDocTypeChanger; @@ -106,9 +110,13 @@ public function refactor(Node $node) : ?Node if ($node->params === []) { return null; } + $this->hasChanged = \false; foreach ($node->params as $param) { $this->refactorParam($param, $node); } + if ($this->hasChanged) { + return $node; + } return null; } /** @@ -221,6 +229,7 @@ private function refactorParam(Param $param, $functionLike) : void } $this->decorateWithDocBlock($functionLike, $param); $param->type = null; + $this->hasChanged = \true; } /** * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassConstFetch/DowngradeClassOnObjectToGetClassRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassConstFetch/DowngradeClassOnObjectToGetClassRector.php index 0d63f16d3..a19ba2e5f 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassConstFetch/DowngradeClassOnObjectToGetClassRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassConstFetch/DowngradeClassOnObjectToGetClassRector.php @@ -51,10 +51,10 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - if (!$this->isName($node->name, 'class')) { + if (!$node->class instanceof Expr) { return null; } - if (!$node->class instanceof Expr) { + if (!$this->isName($node->name, 'class')) { return null; } return new FuncCall(new Name('get_class'), [new Arg($node->class)]); diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeRecursiveDirectoryIteratorHasChildrenRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeRecursiveDirectoryIteratorHasChildrenRector.php index 9d9ea0340..25401cfb6 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeRecursiveDirectoryIteratorHasChildrenRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeRecursiveDirectoryIteratorHasChildrenRector.php @@ -58,17 +58,17 @@ public function hasChildren($allowLinks = false): bool public function refactor(Node $node) : ?Node { foreach ($node->getMethods() as $classMethod) { - if (!$this->nodeNameResolver->isName($classMethod, 'hasChildren')) { + if (!isset($classMethod->params[0])) { continue; } - if (!isset($classMethod->params[0])) { + if ($classMethod->params[0]->type === null) { continue; } - $ancestorClassNames = $this->familyRelationsAnalyzer->getClassLikeAncestorNames($node); - if (!\in_array('RecursiveDirectoryIterator', $ancestorClassNames, \true)) { + if (!$this->nodeNameResolver->isName($classMethod, 'hasChildren')) { continue; } - if ($classMethod->params[0]->type === null) { + $ancestorClassNames = $this->familyRelationsAnalyzer->getClassLikeAncestorNames($node); + if (!\in_array('RecursiveDirectoryIterator', $ancestorClassNames, \true)) { continue; } $classMethod->params[0]->type = null; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStaticTypeDeclarationRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStaticTypeDeclarationRector.php index 5993ecd85..a6c34b305 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStaticTypeDeclarationRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStaticTypeDeclarationRector.php @@ -69,13 +69,15 @@ public function getStatic() */ public function refactor(Node $node) : ?Node { + if ($node->params === [] && !$node->returnType instanceof Node) { + return null; + } $classReflection = $this->reflectionResolver->resolveClassReflection($node); if (!$classReflection instanceof ClassReflection) { return null; } $staticType = new StaticType($classReflection); $hasChanged = \false; - $hasParamChanged = \false; foreach ($node->getParams() as $param) { $hasParamChanged = $this->phpDocFromTypeDeclarationDecorator->decorateParamWithSpecificType($param, $node, $staticType); if ($hasParamChanged) { diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStringReturnTypeOnToStringRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStringReturnTypeOnToStringRector.php index 66fe17233..3f355ec9c 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStringReturnTypeOnToStringRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/DowngradeStringReturnTypeOnToStringRector.php @@ -91,10 +91,10 @@ public function refactor(Node $node) : ?Node } private function shouldSkip(ClassMethod $classMethod) : bool { - if (!$this->nodeNameResolver->isName($classMethod, '__toString')) { + if ($classMethod->returnType instanceof Node) { return \true; } - if ($classMethod->returnType instanceof Node) { + if (!$this->nodeNameResolver->isName($classMethod, '__toString')) { return \true; } $classReflection = $this->reflectionResolver->resolveClassReflection($classMethod); diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/RemoveReturnTypeDeclarationFromCloneRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/RemoveReturnTypeDeclarationFromCloneRector.php index e78db08d6..672db41de 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/RemoveReturnTypeDeclarationFromCloneRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/ClassMethod/RemoveReturnTypeDeclarationFromCloneRector.php @@ -47,10 +47,10 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - if (!$this->isName($node, '__clone')) { + if (!$node->returnType instanceof Node) { return null; } - if (!$node->returnType instanceof Node) { + if (!$this->isName($node, '__clone')) { return null; } $node->returnType = null; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php index 921c3c04d..f84a6e90a 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php @@ -19,7 +19,7 @@ use Rector\NodeFactory\DoctrineAnnotationFactory; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @changelog https://php.watch/articles/php-attributes#syntax * @@ -88,6 +88,9 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { + if ($node->attrGroups === []) { + return null; + } $this->isDowngraded = \false; $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); foreach ($node->attrGroups as $attrGroup) { @@ -102,13 +105,13 @@ public function refactor(Node $node) : ?Node continue; } unset($attrGroup->attrs[$key]); + $this->isDowngraded = \true; if (\strpos($attributeToAnnotation->getTag(), '\\') === \false) { $phpDocInfo->addPhpDocTagNode(new PhpDocTagNode('@' . $attributeToAnnotation->getTag(), new GenericTagValueNode(''))); - } else { - $doctrineAnnotation = $this->doctrineAnnotationFactory->createFromAttribute($attribute, $attributeToAnnotation->getTag()); - $phpDocInfo->addTagValueNode($doctrineAnnotation); + continue; } - $this->isDowngraded = \true; + $doctrineAnnotation = $this->doctrineAnnotationFactory->createFromAttribute($attribute, $attributeToAnnotation->getTag()); + $phpDocInfo->addTagValueNode($doctrineAnnotation); } } // cleanup empty attr groups diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php index 0af907050..54150e8d2 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php @@ -79,14 +79,16 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - $oldComments = $this->getOldComments($node); - $promotedParams = $this->resolvePromotedParams($node); + $constructorClassMethod = $node->getMethod(MethodName::CONSTRUCT); + if (!$constructorClassMethod instanceof ClassMethod) { + return null; + } + $oldComments = $this->getOldComments($constructorClassMethod); + $promotedParams = $this->resolvePromotedParams($constructorClassMethod); if ($promotedParams === []) { return null; } - /** @var ClassMethod $constructClassMethod */ - $constructClassMethod = $node->getMethod(MethodName::CONSTRUCT); - $properties = $this->resolvePropertiesFromPromotedParams($constructClassMethod, $promotedParams, $node); + $properties = $this->resolvePropertiesFromPromotedParams($constructorClassMethod, $promotedParams, $node); $this->addPropertyAssignsToConstructorClassMethod($properties, $node, $oldComments); foreach ($promotedParams as $promotedParam) { $promotedParam->flags = 0; @@ -96,12 +98,8 @@ public function refactor(Node $node) : ?Node /** * @return array */ - private function getOldComments(Class_ $class) : array + private function getOldComments(ClassMethod $constructorClassMethod) : array { - $constructorClassMethod = $class->getMethod(MethodName::CONSTRUCT); - if (!$constructorClassMethod instanceof ClassMethod) { - return []; - } $oldComments = []; foreach ($constructorClassMethod->params as $param) { $oldComments[$this->getName($param->var)] = $param->getAttribute(AttributeKey::COMMENTS); @@ -111,12 +109,8 @@ private function getOldComments(Class_ $class) : array /** * @return Param[] */ - private function resolvePromotedParams(Class_ $class) : array + private function resolvePromotedParams(ClassMethod $constructorClassMethod) : array { - $constructorClassMethod = $class->getMethod(MethodName::CONSTRUCT); - if (!$constructorClassMethod instanceof ClassMethod) { - return []; - } $promotedParams = []; foreach ($constructorClassMethod->params as $param) { if ($param->flags === 0) { diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/New_/DowngradeArbitraryExpressionsSupportRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/New_/DowngradeArbitraryExpressionsSupportRector.php index 5c2f09811..83b6e8435 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/New_/DowngradeArbitraryExpressionsSupportRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/New_/DowngradeArbitraryExpressionsSupportRector.php @@ -108,7 +108,7 @@ private function isBetweenParentheses(Node $node) : bool * @param Assign[] $assigns * @return Node\Stmt[]|null */ - private function refactorAssign($assigns, Expression $expression) : ?array + private function refactorAssign(array $assigns, Expression $expression) : ?array { foreach ($assigns as $assign) { if (!$assign->expr instanceof New_ && !$assign->expr instanceof Instanceof_) { diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Property/DowngradeMixedTypeTypedPropertyRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Property/DowngradeMixedTypeTypedPropertyRector.php index 5a3d4b3f2..b0deadb9d 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Property/DowngradeMixedTypeTypedPropertyRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Property/DowngradeMixedTypeTypedPropertyRector.php @@ -4,8 +4,8 @@ namespace Rector\DowngradePhp80\Rector\Property; use PhpParser\Node; +use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\Property; -use PHPStan\Type\MixedType; use Rector\Core\Rector\AbstractRector; use Rector\NodeManipulator\PropertyDecorator; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -55,25 +55,14 @@ class SomeClass */ public function refactor(Node $node) : ?Node { - if ($node->type === null) { + if (!$node->type instanceof Identifier) { return null; } - if ($this->shouldSkip($node)) { + if ($node->type->toString() !== 'mixed') { return null; } $this->PropertyDecorator->decorateWithDocBlock($node, $node->type); $node->type = null; return $node; } - private function shouldSkip(Property $property) : bool - { - if ($property->type === null) { - return \true; - } - $type = $this->staticTypeMapper->mapPhpParserNodePHPStanType($property->type); - if (!$type instanceof MixedType) { - return \true; - } - return !$type->isExplicitMixed(); - } } diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/StaticCall/DowngradePhpTokenRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/StaticCall/DowngradePhpTokenRector.php index 3ed153c54..1d693cc0f 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/StaticCall/DowngradePhpTokenRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/StaticCall/DowngradePhpTokenRector.php @@ -68,20 +68,20 @@ public function refactor(Node $node) : ?Node } private function refactorStaticCall(StaticCall $staticCall) : ?FuncCall { - if (!$this->isObjectType($staticCall->class, new ObjectType(self::PHP_TOKEN))) { + if (!$this->isName($staticCall->name, 'tokenize')) { return null; } - if (!$this->isName($staticCall->name, 'tokenize')) { + if (!$this->isObjectType($staticCall->class, new ObjectType(self::PHP_TOKEN))) { return null; } return new FuncCall(new Name('token_get_all'), $staticCall->args); } private function refactorMethodCall(MethodCall $methodCall) : ?Ternary { - if (!$this->isObjectType($methodCall->var, new ObjectType(self::PHP_TOKEN))) { + if (!$this->isName($methodCall->name, 'getTokenName')) { return null; } - if (!$this->isName($methodCall->name, 'getTokenName')) { + if (!$this->isObjectType($methodCall->var, new ObjectType(self::PHP_TOKEN))) { return null; } $isArrayFuncCall = new FuncCall(new Name('is_array'), [new Arg($methodCall->var)]); @@ -91,10 +91,10 @@ private function refactorMethodCall(MethodCall $methodCall) : ?Ternary } private function refactorPropertyFetch(PropertyFetch $propertyFetch) : ?Ternary { - if (!$this->isObjectType($propertyFetch->var, new ObjectType(self::PHP_TOKEN))) { + if (!$this->isName($propertyFetch->name, 'text')) { return null; } - if (!$this->isName($propertyFetch->name, 'text')) { + if (!$this->isObjectType($propertyFetch->var, new ObjectType(self::PHP_TOKEN))) { return null; } $isArrayFuncCall = new FuncCall(new Name('is_array'), [new Arg($propertyFetch->var)]); diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/NodeFactory/ArrayMergeFromArraySpreadFactory.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/NodeFactory/ArrayMergeFromArraySpreadFactory.php index dadb5c716..95e22a198 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/NodeFactory/ArrayMergeFromArraySpreadFactory.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/NodeFactory/ArrayMergeFromArraySpreadFactory.php @@ -17,8 +17,6 @@ use PHPStan\Type\ObjectType; use PHPStan\Type\Type; use Rector\Core\Exception\ShouldNotHappenException; -use Rector\Core\ValueObject\Application\File; -use Rector\DowngradePhp81\NodeAnalyzer\ArraySpreadAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; final class ArrayMergeFromArraySpreadFactory @@ -28,21 +26,12 @@ final class ArrayMergeFromArraySpreadFactory * @var \Rector\NodeNameResolver\NodeNameResolver */ private $nodeNameResolver; - /** - * @readonly - * @var \Rector\DowngradePhp81\NodeAnalyzer\ArraySpreadAnalyzer - */ - private $arraySpreadAnalyzer; - public function __construct(NodeNameResolver $nodeNameResolver, ArraySpreadAnalyzer $arraySpreadAnalyzer) + public function __construct(NodeNameResolver $nodeNameResolver) { $this->nodeNameResolver = $nodeNameResolver; - $this->arraySpreadAnalyzer = $arraySpreadAnalyzer; } - public function createFromArray(Array_ $array, MutatingScope $mutatingScope, File $file) : ?Node + public function createFromArray(Array_ $array, MutatingScope $mutatingScope) : ?Node { - if (!$this->arraySpreadAnalyzer->isArrayWithUnpack($array)) { - return null; - } $newArrayItems = $this->disolveArrayItems($array); return $this->createArrayMergeFuncCall($newArrayItems, $mutatingScope); } diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php index 895c2b0a2..e6ccb1c08 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Array_/DowngradeArraySpreadStringKeyRector.php @@ -65,17 +65,17 @@ public function getNodeTypes() : array */ public function refactorWithScope(Node $node, Scope $scope) : ?Node { + if (!$this->arraySpreadAnalyzer->isArrayWithUnpack($node)) { + return null; + } if ($this->shouldSkipArray($node)) { return null; } /** @var MutatingScope $scope */ - return $this->arrayMergeFromArraySpreadFactory->createFromArray($node, $scope, $this->file); + return $this->arrayMergeFromArraySpreadFactory->createFromArray($node, $scope); } private function shouldSkipArray(Array_ $array) : bool { - if (!$this->arraySpreadAnalyzer->isArrayWithUnpack($array)) { - return \true; - } foreach ($array->items as $item) { if (!$item instanceof ArrayItem) { continue; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeArrayIsListRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeArrayIsListRector.php index debcef23e..e57cf2255 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeArrayIsListRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeArrayIsListRector.php @@ -17,8 +17,7 @@ use Rector\Core\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\PhpParser\Parser\InlineCodeParser; -use Rector\Core\Rector\AbstractScopeAwareRector; -use Rector\Naming\Naming\VariableNaming; +use Rector\Core\Rector\AbstractRector; use Rector\NodeAnalyzer\ExprInTopStmtMatcher; use Rector\NodeTypeResolver\Node\AttributeKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; @@ -28,18 +27,13 @@ * * @see \Rector\Tests\DowngradePhp81\Rector\FuncCall\DowngradeArrayIsListRector\DowngradeArrayIsListRectorTest */ -final class DowngradeArrayIsListRector extends AbstractScopeAwareRector +final class DowngradeArrayIsListRector extends AbstractRector { /** * @readonly * @var \Rector\Core\PhpParser\Parser\InlineCodeParser */ private $inlineCodeParser; - /** - * @readonly - * @var \Rector\Naming\Naming\VariableNaming - */ - private $variableNaming; /** * @readonly * @var \Rector\NodeAnalyzer\ExprInTopStmtMatcher @@ -49,10 +43,9 @@ final class DowngradeArrayIsListRector extends AbstractScopeAwareRector * @var \PhpParser\Node\Expr\Closure|null */ private $cachedClosure; - public function __construct(InlineCodeParser $inlineCodeParser, VariableNaming $variableNaming, ExprInTopStmtMatcher $exprInTopStmtMatcher) + public function __construct(InlineCodeParser $inlineCodeParser, ExprInTopStmtMatcher $exprInTopStmtMatcher) { $this->inlineCodeParser = $inlineCodeParser; - $this->variableNaming = $variableNaming; $this->exprInTopStmtMatcher = $exprInTopStmtMatcher; } public function getRuleDefinition() : RuleDefinition @@ -95,20 +88,19 @@ public function getNodeTypes() : array * @param StmtsAwareInterface|Switch_|Return_|Expression|Echo_ $node * @return Node[]|null */ - public function refactorWithScope(Node $node, Scope $scope) : ?array + public function refactor(Node $node) : ?array { $expr = $this->exprInTopStmtMatcher->match($node, function (Node $subNode) : bool { if (!$subNode instanceof FuncCall) { return \false; } // need pull Scope from target traversed sub Node - $scope = $subNode->getAttribute(AttributeKey::SCOPE); - return !$this->shouldSkip($subNode, $scope); + return !$this->shouldSkip($subNode); }); if (!$expr instanceof FuncCall) { return null; } - $variable = new Variable($this->variableNaming->createCountedValueName('arrayIsList', $scope)); + $variable = new Variable('arrayIsListFunction'); $function = $this->createClosure(); $expression = new Expression(new Assign($variable, $function)); $expr->name = $variable; @@ -129,7 +121,7 @@ private function createClosure() : Closure $this->cachedClosure = $expr; return $expr; } - private function shouldSkip(CallLike $callLike, ?Scope $scope) : bool + private function shouldSkip(CallLike $callLike) : bool { if (!$callLike instanceof FuncCall) { return \false; @@ -137,11 +129,8 @@ private function shouldSkip(CallLike $callLike, ?Scope $scope) : bool if (!$this->nodeNameResolver->isName($callLike, 'array_is_list')) { return \true; } - if (!$scope instanceof Scope) { - $args = $callLike->getArgs(); - return \count($args) !== 1; - } - if ($scope->isInFunctionExists('array_is_list')) { + $scope = $callLike->getAttribute(AttributeKey::SCOPE); + if ($scope instanceof Scope && $scope->isInFunctionExists('array_is_list')) { return \true; } $args = $callLike->getArgs(); diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeFirstClassCallableSyntaxRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeFirstClassCallableSyntaxRector.php index 240105d79..70c075559 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeFirstClassCallableSyntaxRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/FuncCall/DowngradeFirstClassCallableSyntaxRector.php @@ -16,7 +16,6 @@ use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Scalar\String_; -use PhpParser\Node\VariadicPlaceholder; use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; @@ -49,22 +48,12 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?StaticCall { - if ($this->shouldSkip($node)) { + if (!$node->isFirstClassCallable()) { return null; } $callbackExpr = $this->createCallback($node); return $this->createClosureFromCallableCall($callbackExpr); } - /** - * @param \PhpParser\Node\Expr\FuncCall|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $node - */ - private function shouldSkip($node) : bool - { - if (\count($node->getRawArgs()) !== 1) { - return \true; - } - return !$node->args[0] instanceof VariadicPlaceholder; - } /** * @param \PhpParser\Node\Expr\FuncCall|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $node * @return \PhpParser\Node\Scalar\String_|\PhpParser\Node\Expr\Array_|\PhpParser\Node\Expr diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/LNumber/DowngradeOctalNumberRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/LNumber/DowngradeOctalNumberRector.php new file mode 100644 index 000000000..b0c57d7cf --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/LNumber/DowngradeOctalNumberRector.php @@ -0,0 +1,68 @@ +> + */ + public function getNodeTypes() : array + { + return [LNumber::class]; + } + /** + * @param LNumber $node + */ + public function refactor(Node $node) : ?Node + { + $numberKind = $node->getAttribute(AttributeKey::KIND); + if ($numberKind !== LNumber::KIND_OCT) { + return null; + } + /** @var string $rawValue */ + $rawValue = $node->getAttribute(AttributeKey::RAW_VALUE); + if (\strncmp($rawValue, '0o', \strlen('0o')) !== 0 && \strncmp($rawValue, '0O', \strlen('0O')) !== 0) { + return null; + } + $clearValue = '0' . \substr($rawValue, 2); + $node->setAttribute(AttributeKey::RAW_VALUE, $clearValue); + // invoke reprint + $node->setAttribute(AttributeKey::ORIGINAL_NODE, null); + return $node; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/MethodCall/DowngradeIsEnumRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/MethodCall/DowngradeIsEnumRector.php new file mode 100644 index 000000000..7aa94f1e3 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/MethodCall/DowngradeIsEnumRector.php @@ -0,0 +1,63 @@ +isEnum(); + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + public function run(ReflectionClass $reflectionClass) + { + return method_exists($reflectionClass, 'isEnum') ? $reflectionClass->isEnum() : false; + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [MethodCall::class]; + } + /** + * @param MethodCall $node + */ + public function refactor(Node $node) : ?Node + { + if (!$this->isName($node->name, 'isEnum')) { + return null; + } + if (!$this->isObjectType($node->var, new ObjectType('ReflectionClass'))) { + return null; + } + $args = [new Arg($node->var), new Arg(new String_('isEnum'))]; + return new Ternary($this->nodeFactory->createFuncCall('method_exists', $args), $node, $this->nodeFactory->createFalse()); + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php index 17825593b..3b14dfab6 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php @@ -1,7 +1,7 @@ services(); - $services->defaults()->public()->autowire()->autoconfigure(); - $services->load('Rector\\PHPUnit\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/Rector', __DIR__ . '/../src/ValueObject', __DIR__ . '/../src/PhpDoc/Node']); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php b/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php index 88acd47c4..b7e30039a 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/annotations-to-attributes.php @@ -1,7 +1,7 @@ sets([PHPUnitSetList::ANNOTATIONS_TO_ATTRIBUTES]); - $rectorConfig->rules([StaticDataProviderClassMethodRector::class, PropertyExistsWithoutAssertRector::class, AddProphecyTraitRector::class]); + $rectorConfig->rules([StaticDataProviderClassMethodRector::class, PropertyExistsWithoutAssertRector::class, AddProphecyTraitRector::class, WithConsecutiveRector::class]); $rectorConfig->ruleWithConfiguration(RenameMethodRector::class, [ // https://github.com/sebastianbergmann/phpunit/issues/4087 new MethodCallRename('PHPUnit\\Framework\\Assert', 'assertRegExp', 'assertMatchesRegularExpression'), diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/phpunit40.php b/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/phpunit40.php index 105b274f1..9bd61f879 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/phpunit40.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/config/sets/phpunit40.php @@ -1,7 +1,7 @@ paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/rules']); $easyCIConfig->typesToSkip([RectorInterface::class, SetListInterface::class]); diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php index d9b816a2b..e82d8e34c 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php @@ -1,7 +1,7 @@ [__DIR__ . '/src/Rector/Class_/TestListenerToHooksRector.php', __DIR__ . '/src/NodeAnalyzer/TestsNodeAnalyzer.php', __DIR__ . '/config'], ]); - $rectorConfig->sets([ - LevelSetList::UP_TO_PHP_81, - SetList::DEAD_CODE, - PHPUnitSetList::PHPUNIT_100, - PHPUnitSetList::PHPUNIT_CODE_QUALITY, - SetList::CODE_QUALITY, - SetList::CODING_STYLE, - SetList::EARLY_RETURN, - SetList::NAMING, - SetList::TYPE_DECLARATION, - SetList::PRIVATIZATION, - // needed for DEAD_CODE list, just in split package like this - __DIR__ . '/config/config.php', - ]); + $rectorConfig->sets([LevelSetList::UP_TO_PHP_81, SetList::DEAD_CODE, PHPUnitSetList::PHPUNIT_100, PHPUnitSetList::PHPUNIT_CODE_QUALITY, SetList::CODE_QUALITY, SetList::CODING_STYLE, SetList::EARLY_RETURN, SetList::NAMING, SetList::TYPE_DECLARATION, SetList::PRIVATIZATION]); $rectorConfig->ruleWithConfiguration(StringClassNameToClassConstantRector::class, [ // keep unprefixed to protected from downgrade 'PHPUnit\\Framework\\*', diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php index 166e753d2..e68d7e2f6 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/ClassMethod/TestWithAnnotationToAttributeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\AnnotationsToAttributes\Rector\ClassMethod; -use RectorPrefix202308\Nette\Utils\Json; +use RectorPrefix202309\Nette\Utils\Json; use PhpParser\Node; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php index 1a47d77b5..742227f76 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/AnnotationWithValueToAttributeRector.php @@ -18,7 +18,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\PHPUnit\Tests\AnnotationsToAttributes\Rector\Class_\AnnotationWithValueToAttributeRector\AnnotationWithValueToAttributeRectorTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php index ef45d9720..63fd1d38c 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/AnnotationsToAttributes/Rector/Class_/TicketAnnotationToAttributeRector.php @@ -13,7 +13,7 @@ use PhpParser\Node\Stmt\ClassMethod; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode; -use RectorPrefix202308\PHPUnit\Framework\Attributes\Ticket; +use RectorPrefix202309\PHPUnit\Framework\Attributes\Ticket; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover; use Rector\Core\Contract\Rector\ConfigurableRectorInterface; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php index 76841cad8..17f75764f 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit70/Rector/Class_/RemoveDataProviderTestPrefixRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\PHPUnit70\Rector\Class_; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\Class_; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit90/Rector/MethodCall/ExplicitPhpErrorApiRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit90/Rector/MethodCall/ExplicitPhpErrorApiRector.php index 0736b22af..4eaccbb48 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit90/Rector/MethodCall/ExplicitPhpErrorApiRector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rules/PHPUnit90/Rector/MethodCall/ExplicitPhpErrorApiRector.php @@ -77,8 +77,9 @@ public function getNodeTypes() : array } /** * @param MethodCall|StaticCall $node + * @return null|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall */ - public function refactor(Node $node) : ?Node + public function refactor(Node $node) { if (!$this->testsNodeAnalyzer->isPHPUnitMethodCallNames($node, ['expectException'])) { return null; @@ -89,12 +90,13 @@ public function refactor(Node $node) : ?Node return $newNode; } } - return $node; + return null; } /** * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall $node + * @return null|\PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall */ - private function replaceExceptionWith($node, string $exceptionClass, string $explicitMethod) : ?Node + private function replaceExceptionWith($node, string $exceptionClass, string $explicitMethod) { if ($node->isFirstClassCallable()) { return null; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeFinder/DataProviderClassMethodFinder.php b/vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeFinder/DataProviderClassMethodFinder.php index bd6bba67d..16e895b3b 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeFinder/DataProviderClassMethodFinder.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/src/NodeFinder/DataProviderClassMethodFinder.php @@ -11,7 +11,7 @@ use PhpParser\Node\Stmt\ClassMethod; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\Reflection\ClassReflection; -use RectorPrefix202308\PHPUnit\Framework\Attributes\DataProvider; +use RectorPrefix202309\PHPUnit\Framework\Attributes\DataProvider; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Core\PhpParser\AstResolver; use Rector\Core\Reflection\ReflectionResolver; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php b/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php index 25cd32d37..2628dd380 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/src/PhpDoc/DataProviderMethodRenamer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPUnit\PhpDoc; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Stmt\Class_; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php new file mode 100644 index 000000000..9be8ecd88 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/src/Rector/StmtsAwareInterface/WithConsecutiveRector.php @@ -0,0 +1,153 @@ +testsNodeAnalyzer = $testsNodeAnalyzer; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Refactor "withConsecutive()" to ', [new CodeSample(<<<'CODE_SAMPLE' +use PHPUnit\Framework\TestCase; + +final class SomeTest extends TestCase +{ + public function run() + { + $this->personServiceMock->expects($this->exactly(2)) + ->method('prepare') + ->withConsecutive( + [1, 2], + [3, 4], + ); + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use PHPUnit\Framework\TestCase; + +final class SomeTest extends TestCase +{ + public function run() + { + $matcher = $this->exactly(2); + + $this->personServiceMock->expects($matcher) + ->method('prepare') + ->willReturnCallback(function () use ($matcher) { + return match ($matcher->numberOfInvocations()) { + 1 => [1, 2], + 2 => [3, 4] + }; + }); + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Expression::class]; + } + /** + * @param Expression $node + */ + public function refactor(Node $node) + { + if (!$this->testsNodeAnalyzer->isInTestClass($node)) { + return null; + } + if (!$node->expr instanceof MethodCall) { + return null; + } + /** @var MethodCall|null $withConsecutiveMethodCall */ + $withConsecutiveMethodCall = $this->betterNodeFinder->findFirst($node->expr, function (Node $node) : bool { + if (!$node instanceof MethodCall) { + return \false; + } + return $this->isName($node->name, 'withConsecutive'); + }); + if (!$withConsecutiveMethodCall instanceof MethodCall) { + return null; + } + $expectsMethodCall = $this->matchAndRefactorExpectsMethodCall($node); + if (!$expectsMethodCall instanceof MethodCall) { + return null; + } + // 2. rename and replace withConsecutive() + $withConsecutiveMethodCall->name = new Identifier('willReturnCallback'); + $withConsecutiveMethodCall->args = [new Arg($this->createClosure($withConsecutiveMethodCall))]; + $matcherAssign = new Assign(new Variable('matcher'), $expectsMethodCall); + return [new Expression($matcherAssign), $node]; + } + private function createClosure(MethodCall $expectsMethodCall) : Closure + { + $closure = new Closure(); + $matcherVariable = new Variable('matcher'); + $closure->uses[] = new ClosureUse($matcherVariable); + $match = new Match_(new MethodCall($matcherVariable, new Identifier('numberOfInvocations'))); + foreach ($expectsMethodCall->getArgs() as $key => $arg) { + $match->arms[] = new MatchArm([new LNumber($key + 1)], $arg->value); + } + $closure->stmts[] = new Return_($match); + return $closure; + } + /** + * Replace $this->expects(...) + * + * @param Expression $expression + */ + private function matchAndRefactorExpectsMethodCall(Expression $expression) : ?MethodCall + { + /** @var MethodCall|null $exactlyMethodCall */ + $exactlyMethodCall = null; + $this->traverseNodesWithCallable($expression, function (Node $node) use(&$exactlyMethodCall) : ?MethodCall { + if (!$node instanceof MethodCall) { + return null; + } + if (!$this->isName($node->name, 'expects')) { + return null; + } + $firstArg = $node->getArgs()[0]; + if (!$firstArg->value instanceof MethodCall) { + return null; + } + $exactlyMethodCall = $firstArg->value; + $node->args = [new Arg(new Variable('matcher'))]; + return $node; + }); + return $exactlyMethodCall; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/composer.json b/vendor/rector/rector/vendor/rector/rector-symfony/composer.json index e358e315d..cb81c9194 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/composer.json +++ b/vendor/rector/rector/vendor/rector/rector-symfony/composer.json @@ -5,31 +5,33 @@ "description": "Rector upgrades rules for Symfony Framework", "require": { "php": ">=8.1", - "ext-xml": "*", - "symfony\/string": "^6.3" + "ext-xml": "*" }, "require-dev": { "phpstan\/extension-installer": "^1.3", - "phpstan\/phpstan": "^1.9.2", + "phpstan\/phpstan": "^1.10.28", "phpstan\/phpstan-webmozart-assert": "^1.2", "phpunit\/phpunit": "^10.3", "rector\/phpstan-rules": "^0.6", - "rector\/rector-generator": "^0.6", + "rector\/rector-generator": "^0.7", "rector\/rector-src": "dev-main", - "symfony\/routing": "^6.1", + "symfony\/config": "^6.3", + "symfony\/dependency-injection": "^6.3", + "symfony\/routing": "^6.2", "symfony\/security-core": "^6.2", "symfony\/security-http": "^6.1", "symfony\/validator": "^6.2", "symplify\/easy-ci": "^11.2", "symplify\/easy-coding-standard": "^12.0", "symplify\/phpstan-extensions": "^11.1", - "symplify\/phpstan-rules": "^11.2", - "symplify\/rule-doc-generator": "^11.2", + "symplify\/phpstan-rules": "^12.0", + "symplify\/rule-doc-generator": "^12.0", "symplify\/vendor-patches": "^11.2", - "tomasvotruba\/class-leak": "0.1.1.72", + "tomasvotruba\/class-leak": "^0.1", "tomasvotruba\/cognitive-complexity": "^0.1", "tomasvotruba\/type-coverage": "^0.2", - "tomasvotruba\/unused-public": "^0.2" + "tomasvotruba\/unused-public": "^0.2", + "tracy\/tracy": "^2.10" }, "autoload": { "psr-4": { @@ -44,8 +46,7 @@ "Rector\\Symfony\\Tests\\": [ "tests", "rules-tests" - ], - "Rector\\Symfony\\Utils\\": "utils" + ] }, "classmap": [ "stubs" diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/config.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/config.php deleted file mode 100644 index 0583a3f3c..000000000 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/config.php +++ /dev/null @@ -1,13 +0,0 @@ -services(); - $services->defaults()->public()->autowire()->autoconfigure(); - $services->load('Rector\\Symfony\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/Rector', __DIR__ . '/../src/ValueObject']); - $rectorConfig->rule(RenameClassNonPhpRector::class); -}; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php index 601a25b09..5183ddc41 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/fosrest/annotations-to-attributes.php @@ -1,7 +1,7 @@ rule(MessageHandlerInterfaceToAttributeRector::class); $rectorConfig->rule(MessageSubscriberInterfaceToAttributeRector::class); + // @see https://github.com/symfony/symfony/pull/47363 + $rectorConfig->rule(ArgumentValueResolverToValueResolverRector::class); }; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php index 21696325f..add4c2be8 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony63.php @@ -1,7 +1,7 @@ importNames(); + $rectorConfig->removeUnusedImports(); $rectorConfig->paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/tests', __DIR__ . '/rules', __DIR__ . '/rules-tests']); $rectorConfig->skip([ '*/Fixture/*', @@ -39,7 +40,5 @@ 'Symfony\\Component\\Routing\\RouterInterface', 'Symfony\\Component\\DependencyInjection\\Container', ]); - // for testing - $rectorConfig->import(__DIR__ . '/config/config.php'); $rectorConfig->sets([LevelSetList::UP_TO_PHP_81, \Rector\PHPUnit\Set\PHPUnitSetList::PHPUNIT_100, SetList::CODE_QUALITY, SetList::DEAD_CODE, SetList::NAMING, SymfonySetList::SYMFONY_60]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php index 67d302dfc..6d8d9d3c0 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/ClassMethod/ActionSuffixRemoverRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\CodeQuality\Rector\ClassMethod; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\ClassMethod; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php index 02ebcb4b0..ca2a96dff 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/CodeQuality/Rector/Class_/EventListenerToEventSubscriberRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\CodeQuality\Rector\Class_; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSetStringNameToClassNameRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSetStringNameToClassNameRector.php index 1bfb8fbe5..f14a806f3 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSetStringNameToClassNameRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSetStringNameToClassNameRector.php @@ -65,7 +65,6 @@ public function getNodeTypes() : array */ public function refactor(Node $node) : ?Node { - $hasChanged = \false; if (!$this->symfonyPhpClosureDetector->detect($node)) { return null; } diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php index 3e3a389e9..301d114eb 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Configs/Rector/Closure/ServiceSettersToSettersAutodiscoveryRector.php @@ -13,16 +13,16 @@ use PhpParser\Node\Expr\Variable; use PhpParser\Node\Name; use PhpParser\Node\Scalar\String_; +use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Expression; use PHPStan\Reflection\ReflectionProvider; use PHPStan\Type\ObjectType; use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\Rector\AbstractRector; -use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\Symfony\MinimalSharedStringSolver; use Rector\Symfony\NodeAnalyzer\SymfonyPhpClosureDetector; use Rector\Symfony\ValueObject\ClassNameAndFilePath; -use RectorPrefix202308\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202309\Symfony\Component\Filesystem\Filesystem; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -102,12 +102,12 @@ public function refactor(Node $node) : ?Node if (!$this->symfonyPhpClosureDetector->detect($node)) { return null; } - /** @var array> $bareServicesSetMethodCalls */ - $bareServicesSetMethodCalls = $this->collectServiceSetMethodCallExpressions($node); - if ($bareServicesSetMethodCalls === []) { + /** @var array> $bareServicesSetMethodCallExpressions */ + $bareServicesSetMethodCallExpressions = $this->collectServiceSetMethodCallExpressions($node); + if ($bareServicesSetMethodCallExpressions === []) { return null; } - $classNamesAndFilesPaths = $this->createClassNamesAndFilePaths($bareServicesSetMethodCalls); + $classNamesAndFilesPaths = $this->createClassNamesAndFilePaths($bareServicesSetMethodCallExpressions); $classNames = \array_map(function (ClassNameAndFilePath $classNameAndFilePath) { return $classNameAndFilePath->getClassName(); }, $classNamesAndFilesPaths); @@ -117,12 +117,7 @@ public function refactor(Node $node) : ?Node $directoryConcat = $this->createAbsolutePathConcat($classFilePath); $loadMethodCall = $this->createServicesLoadMethodCall($sharedNamespace, $directoryConcat); $node->stmts[] = new Expression($loadMethodCall); - // remove all method calls - foreach ($bareServicesSetMethodCalls as $bareServiceSetMethodCall) { - /** @var Expression $bareServiceSetMethodCall */ - $stmtsKey = $bareServiceSetMethodCall->getAttribute(AttributeKey::STMT_KEY); - unset($node->stmts[$stmtsKey]); - } + $this->removeServicesSetMethodCalls($node, $bareServicesSetMethodCallExpressions); return $node; } public function isBareServicesSetMethodCall(MethodCall $methodCall) : bool @@ -201,4 +196,18 @@ private function createServicesLoadMethodCall(string $sharedNamespace, Concat $d $args = [new Arg(new String_($sharedNamespace)), new Arg($directoryConcat)]; return new MethodCall(new Variable('services'), 'load', $args); } + /** + * @param Stmt[] $stmtsToRemove + */ + private function removeServicesSetMethodCalls(Closure $closure, array $stmtsToRemove) : void + { + foreach ($closure->stmts as $key => $stmt) { + foreach ($stmtsToRemove as $stmtToRemove) { + if ($stmt === $stmtToRemove) { + unset($closure->stmts[$key]); + continue 2; + } + } + } + } } diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php index 68b46edd9..c7dac5352 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php @@ -8,7 +8,7 @@ use PhpParser\Node\Expr\MethodCall; use Rector\Core\Rector\AbstractRector; use Rector\Symfony\TypeAnalyzer\ControllerAnalyzer; -use RectorPrefix202308\Symfony\Component\Routing\Generator\UrlGeneratorInterface; +use RectorPrefix202309\Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php index d43f3679d..fe35d5291 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony28/Rector/StaticCall/ParseFileRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony28\Rector\StaticCall; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr\StaticCall; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php index b61a0a0a0..c33530cd9 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony30/Rector/ClassMethod/RemoveDefaultGetBlockPrefixRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony30\Rector\ClassMethod; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Name; @@ -11,7 +11,6 @@ use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Return_; use Rector\Core\Rector\AbstractRector; -use RectorPrefix202308\Symfony\Component\String\UnicodeString; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** @@ -82,8 +81,7 @@ public function refactor(Node $node) if (\substr_compare($shortClassName, 'Type', -\strlen('Type')) === 0) { $shortClassName = (string) Strings::before($shortClassName, 'Type'); } - $shortClassNameUnicodeString = new UnicodeString($shortClassName); - $underscoredClassShortName = $shortClassNameUnicodeString->snake()->toString(); + $underscoredClassShortName = $this->camelToSnake($shortClassName); if ($underscoredClassShortName !== $returnedValue) { continue; } @@ -93,6 +91,10 @@ public function refactor(Node $node) } return null; } + private function camelToSnake(string $content) : string + { + return \mb_strtolower(Strings::replace($content, '#([a-z])([A-Z])#', '$1_$2')); + } /** * return <$thisValue>; */ diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php index 03b099f0c..1beed33c9 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony42/Rector/New_/StringToArrayArgumentProcessRector.php @@ -7,7 +7,6 @@ use PhpParser\Node\Arg; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Array_; -use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; @@ -18,7 +17,7 @@ use Rector\Core\PhpParser\NodeTransformer; use Rector\Core\Rector\AbstractRector; use Rector\Core\Util\Reflection\PrivatesAccessor; -use RectorPrefix202308\Symfony\Component\Console\Input\StringInput; +use RectorPrefix202309\Symfony\Component\Console\Input\StringInput; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/ClassMethod/EventDispatcherParentConstructRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/ClassMethod/EventDispatcherParentConstructRector.php index 70890d783..dbdd948e8 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/ClassMethod/EventDispatcherParentConstructRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/ClassMethod/EventDispatcherParentConstructRector.php @@ -3,6 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony43\Rector\ClassMethod; +use PHPStan\Reflection\ClassReflection; use PhpParser\Node; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Stmt\ClassMethod; @@ -68,6 +69,9 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node if (!$classReflection->isSubclassOf('Symfony\\Contracts\\EventDispatcher\\EventDispatcherInterface')) { return null; } + if (!$classReflection->getParentClass() instanceof ClassReflection) { + return null; + } if ($this->hasParentCallOfMethod($node, MethodName::CONSTRUCT)) { return null; } diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php index bebfd0370..fa7a3ef16 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/MethodCall/ConvertRenderTemplateShortNotationToBundleSyntaxRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Symfony43\Rector\MethodCall; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr\MethodCall; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/StmtsAwareInterface/TwigBundleFilesystemLoaderToTwigRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/StmtsAwareInterface/TwigBundleFilesystemLoaderToTwigRector.php index 5ed795f95..08b4869a4 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/StmtsAwareInterface/TwigBundleFilesystemLoaderToTwigRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony43/Rector/StmtsAwareInterface/TwigBundleFilesystemLoaderToTwigRector.php @@ -10,11 +10,11 @@ use PhpParser\Node\Expr\New_; use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Stmt\Expression; -use PHPStan\Type\ObjectType; use Rector\Core\Contract\PhpParser\Node\StmtsAwareInterface; use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; +use PHPStan\Type\ObjectType; /** * @see \Rector\Symfony\Tests\Symfony43\Rector\StmtsAwareInterface\TwigBundleFilesystemLoaderToTwigRector\TwigBundleFilesystemLoaderToTwigRectorTest */ @@ -87,11 +87,7 @@ private function resolveFileSystemLoaderNew(StmtsAwareInterface $stmtsAware) : ? continue; } $new = $assign->expr; - $newType = $this->getType($new); - if (!$newType instanceof ObjectType) { - continue; - } - if (!$newType->isInstanceOf('Symfony\\Bundle\\TwigBundle\\Loader\\FilesystemLoader')->yes()) { + if (!$this->isObjectType($new, new ObjectType('Symfony\\Bundle\\TwigBundle\\Loader\\FilesystemLoader'))) { continue; } return $new; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php index ad94d8e56..a90b6fa81 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php @@ -12,7 +12,7 @@ use Rector\Symfony\ValueObject\ReplaceServiceArgument; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @see \Rector\Symfony\Tests\Symfony60\Rector\FuncCall\ReplaceServiceArgumentRector\ReplaceServiceArgumentRectorTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php new file mode 100644 index 000000000..fedc03df6 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-symfony/rules/Symfony62/Rector/ClassMethod/ClassMethod/ArgumentValueResolverToValueResolverRector.php @@ -0,0 +1,131 @@ +shouldRefactorClass($node)) { + return null; + } + foreach ($node->getMethods() as $key => $classMethod) { + if ($classMethod->name->toString() === 'supports') { + [$isIdentical, $supportFirstArg, $supportSecondArg] = $this->extractSupportsArguments($node, $key, $classMethod); + } + if ($classMethod->name->toString() === 'resolve' && isset($isIdentical) && isset($supportFirstArg) && isset($supportSecondArg)) { + $this->processResolveMethod($classMethod, $isIdentical, $supportFirstArg, $supportSecondArg); + } + } + return $node; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Replaces ArgumentValueResolverInterface by ValueResolverInterface', [new CodeSample(<<<'CODE_SAMPLE' +use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface; + +final class EntityValueResolver implements ArgumentValueResolverInterface +{ + public function supports(Request $request, ArgumentMetadata $argument): bool + { + } + + public function resolve(Request $request, ArgumentMetadata $argument): iterable + { + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +use Symfony\Component\HttpKernel\Controller\ValueResolverInterface; + +final class EntityValueResolver implements ValueResolverInterface +{ + public function resolve(Request $request, ArgumentMetadata $argument): iterable + { + } +} +CODE_SAMPLE +)]); + } + private function shouldRefactorClass(Class_ $class) : bool + { + // Check if the class implements ArgumentValueResolverInterface + foreach ($class->implements as $key => $interface) { + if ($interface->toString() === ArgumentValueResolverInterface::class) { + $class->implements[$key] = new FullyQualified(ValueResolverInterface::class); + return \true; + } + } + // If it doesn't implement ArgumentValueResolverInterface, skip + return \false; + } + /** + * + * @return array{bool, Expr|null, Expr|null} + */ + private function extractSupportsArguments(Class_ $class, int $key, ClassMethod $classMethod) : array + { + $isIdentical = \true; + $supportFirstArg = $supportSecondArg = null; + if (null === $classMethod->getStmts()) { + return [$isIdentical, $supportFirstArg, $supportSecondArg]; + } + foreach ($classMethod->getStmts() as $stmt) { + if (!$stmt instanceof Return_) { + continue; + } + $expression = $stmt->expr; + if (!$expression instanceof BinaryOp) { + continue; + } + if ($expression instanceof NotIdentical) { + $isIdentical = \false; + } + $supportFirstArg = $expression->left; + $supportSecondArg = $expression->right; + unset($class->stmts[$key]); + break; + // We only need the first matching condition + } + return [$isIdentical, $supportFirstArg, $supportSecondArg]; + } + /** + * @param mixed $classMethod + * @param mixed $isIdentical + * @param mixed $supportFirstArg + * @param mixed $supportSecondArg + */ + private function processResolveMethod($classMethod, $isIdentical, $supportFirstArg, $supportSecondArg) : void + { + $ifCondition = $isIdentical ? new NotIdentical($supportFirstArg, $supportSecondArg) : new Identical($supportFirstArg, $supportSecondArg); + $classMethod->stmts = \array_merge([new If_($ifCondition, ['stmts' => [new Return_(new ConstFetch(new Name('[]')))]])], $classMethod->getStmts()); + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php index 9396bc76d..333bf837f 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/ContainerServiceProvider.php @@ -6,8 +6,8 @@ use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\Exception\ShouldNotHappenException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Container; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symfony\Component\DependencyInjection\Container; +use RectorPrefix202309\Webmozart\Assert\Assert; final class ContainerServiceProvider { /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php index b9a8d64df..f0e1c23c7 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/Bridge/Symfony/Routing/SymfonyRoutesProvider.php @@ -6,8 +6,8 @@ use Rector\Symfony\Bridge\Symfony\ContainerServiceProvider; use Rector\Symfony\Contract\Bridge\Symfony\Routing\SymfonyRoutesProviderInterface; use Rector\Symfony\ValueObject\SymfonyRouteMetadata; -use RectorPrefix202308\Symfony\Component\Routing\RouterInterface; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Symfony\Component\Routing\RouterInterface; +use RectorPrefix202309\Webmozart\Assert\Assert; /** * @api part of AddRouteAnnotationRector */ diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/DataProvider/ServiceMapProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/DataProvider/ServiceMapProvider.php index b67409fbd..af71d4bab 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/DataProvider/ServiceMapProvider.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/DataProvider/ServiceMapProvider.php @@ -28,6 +28,10 @@ public function __construct(ServiceMapFactory $serviceMapFactory, ?ServiceMap $s } public function provide() : ServiceMap { + // avoid caching in tests + if (\defined('PHPUNIT_COMPOSER_INSTALL')) { + $this->serviceMap = null; + } if ($this->serviceMap instanceof ServiceMap) { return $this->serviceMap; } diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php index 72d079774..fd1c60e4c 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/FormHelper/FormTypeStringToTypeProvider.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\FormHelper; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\Symfony\Contract\Tag\TagInterface; use Rector\Symfony\DataProvider\ServiceMapProvider; final class FormTypeStringToTypeProvider diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php index 8a66aa474..d3b8d1415 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/Helper/TemplateGuesser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Symfony\Helper; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\Strings; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php index 73cd909eb..bbc936cb0 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObject/IntlBundleClassToNewClass.php @@ -4,7 +4,7 @@ namespace Rector\Symfony\ValueObject; use Rector\Core\Validation\RectorAssert; -use RectorPrefix202308\Webmozart\Assert\Assert; +use RectorPrefix202309\Webmozart\Assert\Assert; final class IntlBundleClassToNewClass { /** diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php index b416d71c8..e27c5cf08 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/src/ValueObjectFactory/ServiceMapFactory.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Symfony\ValueObjectFactory; -use RectorPrefix202308\Nette\Utils\FileSystem; -use RectorPrefix202308\Nette\Utils\Json; -use RectorPrefix202308\Nette\Utils\Strings; +use RectorPrefix202309\Nette\Utils\FileSystem; +use RectorPrefix202309\Nette\Utils\Json; +use RectorPrefix202309\Nette\Utils\Strings; use Rector\Symfony\Exception\XmlContainerNotExistsException; use Rector\Symfony\ValueObject\ServiceDefinition; use Rector\Symfony\ValueObject\ServiceMap\ServiceMap; diff --git a/vendor/rector/rector/vendor/scoper-autoload.php b/vendor/rector/rector/vendor/scoper-autoload.php index d91bc2cda..c23cd2b45 100644 --- a/vendor/rector/rector/vendor/scoper-autoload.php +++ b/vendor/rector/rector/vendor/scoper-autoload.php @@ -8,17 +8,12 @@ // https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#exposing-functions if (!function_exists('dump_node')) { function dump_node() { - return \RectorPrefix202308\dump_node(...func_get_args()); + return \RectorPrefix202309\dump_node(...func_get_args()); } } if (!function_exists('print_node')) { function print_node() { - return \RectorPrefix202308\print_node(...func_get_args()); - } -} -if (!function_exists('trigger_deprecation')) { - function trigger_deprecation() { - return \RectorPrefix202308\trigger_deprecation(...func_get_args()); + return \RectorPrefix202309\print_node(...func_get_args()); } } diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php b/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php index 630c63ce0..1400a1d31 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Chunk.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; final class Chunk { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php b/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php index 5ceccb1f3..bf75d520b 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Diff.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; final class Diff { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php b/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php index de19b32d1..34f8ca437 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Differ.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; use const PHP_INT_SIZE; use const PREG_SPLIT_DELIM_CAPTURE; @@ -28,7 +28,7 @@ use function reset; use function str_ends_with; use function substr; -use RectorPrefix202308\SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; +use RectorPrefix202309\SebastianBergmann\Diff\Output\DiffOutputBuilderInterface; final class Differ { public const OLD = 0; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php index 2438db1e6..9da0ae53f 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/ConfigurationException.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; use function gettype; use function is_object; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php index f354f731a..e276ddb68 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/Exception.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; use Throwable; interface Exception extends Throwable diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php index 3978be858..ac42d8e12 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Exception/InvalidArgumentException.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; class InvalidArgumentException extends \InvalidArgumentException implements Exception { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Line.php b/vendor/rector/rector/vendor/sebastian/diff/src/Line.php index 0e0e95d42..c28311a47 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Line.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Line.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; final class Line { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php b/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php index 871a8a946..315039717 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; interface LongestCommonSubsequenceCalculator { diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php b/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php index 4990ab11b..9936586a6 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; use function array_fill; use function array_merge; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php index 3f2e00271..2e99caa6c 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff\Output; +namespace RectorPrefix202309\SebastianBergmann\Diff\Output; use function count; abstract class AbstractChunkOutputBuilder implements DiffOutputBuilderInterface diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php index 4a3b0ede0..21910d8d2 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff\Output; +namespace RectorPrefix202309\SebastianBergmann\Diff\Output; use function fclose; use function fopen; @@ -17,7 +17,7 @@ use function str_ends_with; use function stream_get_contents; use function substr; -use RectorPrefix202308\SebastianBergmann\Diff\Differ; +use RectorPrefix202309\SebastianBergmann\Diff\Differ; /** * Builds a diff string representation in a loose unified diff format * listing only changes lines. Does not include line numbers. diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php index 56dd1a74f..6c004a183 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff\Output; +namespace RectorPrefix202309\SebastianBergmann\Diff\Output; /** * Defines how an output builder should take a generated diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php index 9ab0b98b6..9515b07e1 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff\Output; +namespace RectorPrefix202309\SebastianBergmann\Diff\Output; use function array_merge; use function array_splice; @@ -25,8 +25,8 @@ use function sprintf; use function stream_get_contents; use function substr; -use RectorPrefix202308\SebastianBergmann\Diff\ConfigurationException; -use RectorPrefix202308\SebastianBergmann\Diff\Differ; +use RectorPrefix202309\SebastianBergmann\Diff\ConfigurationException; +use RectorPrefix202309\SebastianBergmann\Diff\Differ; /** * Strict Unified diff output builder. * diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php b/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php index a4c62236d..0a86b9456 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff\Output; +namespace RectorPrefix202309\SebastianBergmann\Diff\Output; use function array_splice; use function count; @@ -22,7 +22,7 @@ use function stream_get_contents; use function strlen; use function substr; -use RectorPrefix202308\SebastianBergmann\Diff\Differ; +use RectorPrefix202309\SebastianBergmann\Diff\Differ; /** * Builds a diff string representation in unified diff format in chunks. */ diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php b/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php index 016d3b268..b2be419d7 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/Parser.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; use function array_pop; use function count; diff --git a/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php b/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php index 6d6431cd5..70d02ec42 100644 --- a/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php +++ b/vendor/rector/rector/vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\SebastianBergmann\Diff; +namespace RectorPrefix202309\SebastianBergmann\Diff; use function array_reverse; use function count; diff --git a/vendor/rector/rector/vendor/symfony/config/Builder/ClassBuilder.php b/vendor/rector/rector/vendor/symfony/config/Builder/ClassBuilder.php deleted file mode 100644 index 9db3eb525..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Builder/ClassBuilder.php +++ /dev/null @@ -1,165 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Builder; - -/** - * Build PHP classes to generate config. - * - * @internal - * - * @author Tobias Nyholm - */ -class ClassBuilder -{ - /** - * @var string - */ - private $namespace; - /** - * @var string - */ - private $name; - /** @var Property[] */ - private $properties = []; - /** @var Method[] */ - private $methods = []; - /** - * @var mixed[] - */ - private $require = []; - /** - * @var mixed[] - */ - private $use = []; - /** - * @var mixed[] - */ - private $implements = []; - /** - * @var bool - */ - private $allowExtraKeys = \false; - public function __construct(string $namespace, string $name) - { - $this->namespace = $namespace; - $this->name = \ucfirst($this->camelCase($name)) . 'Config'; - } - public function getDirectory() : string - { - return \str_replace('\\', \DIRECTORY_SEPARATOR, $this->namespace); - } - public function getFilename() : string - { - return $this->name . '.php'; - } - public function build() : string - { - $rootPath = \explode(\DIRECTORY_SEPARATOR, $this->getDirectory()); - $require = ''; - foreach ($this->require as $class) { - // figure out relative path. - $path = \explode(\DIRECTORY_SEPARATOR, $class->getDirectory()); - $path[] = $class->getFilename(); - foreach ($rootPath as $key => $value) { - if ($path[$key] !== $value) { - break; - } - unset($path[$key]); - } - $require .= \sprintf('require_once __DIR__.\\DIRECTORY_SEPARATOR.\'%s\';', \implode('\'.\\DIRECTORY_SEPARATOR.\'', $path)) . "\n"; - } - $use = $require ? "\n" : ''; - foreach (\array_keys($this->use) as $statement) { - $use .= \sprintf('use %s;', $statement) . "\n"; - } - $implements = [] === $this->implements ? '' : 'implements ' . \implode(', ', $this->implements); - $body = ''; - foreach ($this->properties as $property) { - $body .= ' ' . $property->getContent() . "\n"; - } - foreach ($this->methods as $method) { - $lines = \explode("\n", $method->getContent()); - foreach ($lines as $line) { - $body .= ($line ? ' ' . $line : '') . "\n"; - } - } - $content = \strtr(' $this->namespace, 'REQUIRE' => $require, 'USE' => $use, 'CLASS' => $this->getName(), 'IMPLEMENTS' => $implements, 'BODY' => $body]); - return $content; - } - public function addRequire(self $class) : void - { - $this->require[] = $class; - } - public function addUse(string $class) : void - { - $this->use[$class] = \true; - } - public function addImplements(string $interface) : void - { - $this->implements[] = '\\' . \ltrim($interface, '\\'); - } - public function addMethod(string $name, string $body, array $params = []) : void - { - $this->methods[] = new Method(\strtr($body, ['NAME' => $this->camelCase($name)] + $params)); - } - public function addProperty(string $name, string $classType = null, string $defaultValue = null) : Property - { - $property = new Property($name, '_' !== $name[0] ? $this->camelCase($name) : $name); - if (null !== $classType) { - $property->setType($classType); - } - $this->properties[] = $property; - $defaultValue = null !== $defaultValue ? \sprintf(' = %s', $defaultValue) : ''; - $property->setContent(\sprintf('private $%s%s;', $property->getName(), $defaultValue)); - return $property; - } - public function getProperties() : array - { - return $this->properties; - } - private function camelCase(string $input) : string - { - $output = \lcfirst(\str_replace(' ', '', \ucwords(\str_replace('_', ' ', $input)))); - return \preg_replace('#\\W#', '', $output); - } - public function getName() : string - { - return $this->name; - } - public function getNamespace() : string - { - return $this->namespace; - } - public function getFqcn() : string - { - return '\\' . $this->namespace . '\\' . $this->name; - } - public function setAllowExtraKeys(bool $allowExtraKeys) : void - { - $this->allowExtraKeys = $allowExtraKeys; - } - public function shouldAllowExtraKeys() : bool - { - return $this->allowExtraKeys; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGenerator.php b/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGenerator.php deleted file mode 100644 index a329dc2cc..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGenerator.php +++ /dev/null @@ -1,506 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ArrayNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\BaseNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\BooleanNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\Builder\ExprBuilder; -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\EnumNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use RectorPrefix202308\Symfony\Component\Config\Definition\FloatNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\IntegerNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\NodeInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\PrototypedArrayNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\VariableNode; -use RectorPrefix202308\Symfony\Component\Config\Loader\ParamConfigurator; -/** - * Generate ConfigBuilders to help create valid config. - * - * @author Tobias Nyholm - */ -class ConfigBuilderGenerator implements ConfigBuilderGeneratorInterface -{ - /** - * @var ClassBuilder[] - */ - private $classes = []; - /** - * @var string - */ - private $outputDir; - public function __construct(string $outputDir) - { - $this->outputDir = $outputDir; - } - /** - * @return \Closure that will return the root config class - */ - public function build(ConfigurationInterface $configuration) : \Closure - { - $this->classes = []; - $rootNode = $configuration->getConfigTreeBuilder()->buildTree(); - $rootClass = new ClassBuilder('RectorPrefix202308\\Symfony\\Config', $rootNode->getName()); - $path = $this->getFullPath($rootClass); - if (!\is_file($path)) { - // Generate the class if the file not exists - $this->classes[] = $rootClass; - $this->buildNode($rootNode, $rootClass, $this->getSubNamespace($rootClass)); - $rootClass->addImplements(ConfigBuilderInterface::class); - $rootClass->addMethod('getExtensionAlias', ' -public function NAME(): string -{ - return \'ALIAS\'; -}', ['ALIAS' => $rootNode->getPath()]); - $this->writeClasses(); - } - return function () use($path, $rootClass) { - require_once $path; - $className = $rootClass->getFqcn(); - return new $className(); - }; - } - private function getFullPath(ClassBuilder $class) : string - { - $directory = $this->outputDir . \DIRECTORY_SEPARATOR . $class->getDirectory(); - if (!\is_dir($directory)) { - @\mkdir($directory, 0777, \true); - } - return $directory . \DIRECTORY_SEPARATOR . $class->getFilename(); - } - private function writeClasses() : void - { - foreach ($this->classes as $class) { - $this->buildConstructor($class); - $this->buildToArray($class); - if ($class->getProperties()) { - $class->addProperty('_usedProperties', null, '[]'); - } - $this->buildSetExtraKey($class); - \file_put_contents($this->getFullPath($class), $class->build()); - } - $this->classes = []; - } - private function buildNode(NodeInterface $node, ClassBuilder $class, string $namespace) : void - { - if (!$node instanceof ArrayNode) { - throw new \LogicException('The node was expected to be an ArrayNode. This Configuration includes an edge case not supported yet.'); - } - foreach ($node->getChildren() as $child) { - switch (\true) { - case $child instanceof ScalarNode: - $this->handleScalarNode($child, $class); - break; - case $child instanceof PrototypedArrayNode: - $this->handlePrototypedArrayNode($child, $class, $namespace); - break; - case $child instanceof VariableNode: - $this->handleVariableNode($child, $class); - break; - case $child instanceof ArrayNode: - $this->handleArrayNode($child, $class, $namespace); - break; - default: - throw new \RuntimeException(\sprintf('Unknown node "%s".', \get_class($child))); - } - } - } - private function handleArrayNode(ArrayNode $node, ClassBuilder $class, string $namespace) : void - { - $childClass = new ClassBuilder($namespace, $node->getName()); - $childClass->setAllowExtraKeys($node->shouldIgnoreExtraKeys()); - $class->addRequire($childClass); - $this->classes[] = $childClass; - $hasNormalizationClosures = $this->hasNormalizationClosures($node); - $comment = $this->getComment($node); - if ($hasNormalizationClosures) { - $comment = \sprintf(" * @template TValue\n * @param TValue \$value\n%s", $comment); - $comment .= \sprintf(' * @return %s|$this' . "\n", $childClass->getFqcn()); - $comment .= \sprintf(' * @psalm-return (TValue is array ? %s : static)' . "\n ", $childClass->getFqcn()); - } - if ('' !== $comment) { - $comment = "/**\n{$comment}*/\n"; - } - $property = $class->addProperty($node->getName(), $this->getType($childClass->getFqcn(), $hasNormalizationClosures)); - $nodeTypes = $this->getParameterTypes($node); - $body = $hasNormalizationClosures ? ' -COMMENTpublic function NAME(PARAM_TYPE $value = []): CLASS|static -{ - if (!\\is_array($value)) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; - } - - if (!$this->PROPERTY instanceof CLASS) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = new CLASS($value); - } elseif (0 < \\func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY; -}' : ' -COMMENTpublic function NAME(array $value = []): CLASS -{ - if (null === $this->PROPERTY) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = new CLASS($value); - } elseif (0 < \\func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY; -}'; - $class->addUse(InvalidConfigurationException::class); - $class->addMethod($node->getName(), $body, ['COMMENT' => $comment, 'PROPERTY' => $property->getName(), 'CLASS' => $childClass->getFqcn(), 'PARAM_TYPE' => \in_array('mixed', $nodeTypes, \true) ? 'mixed' : \implode('|', $nodeTypes)]); - $this->buildNode($node, $childClass, $this->getSubNamespace($childClass)); - } - private function handleVariableNode(VariableNode $node, ClassBuilder $class) : void - { - $comment = $this->getComment($node); - $property = $class->addProperty($node->getName()); - $class->addUse(ParamConfigurator::class); - $body = ' -/** -COMMENT * - * @return $this - */ -public function NAME(mixed $valueDEFAULT): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; -}'; - $class->addMethod($node->getName(), $body, ['PROPERTY' => $property->getName(), 'COMMENT' => $comment, 'DEFAULT' => $node->hasDefaultValue() ? ' = ' . \var_export($node->getDefaultValue(), \true) : '']); - } - private function handlePrototypedArrayNode(PrototypedArrayNode $node, ClassBuilder $class, string $namespace) : void - { - $name = $this->getSingularName($node); - $prototype = $node->getPrototype(); - $methodName = $name; - $hasNormalizationClosures = $this->hasNormalizationClosures($node) || $this->hasNormalizationClosures($prototype); - $nodeParameterTypes = $this->getParameterTypes($node); - $prototypeParameterTypes = $this->getParameterTypes($prototype); - if (!$prototype instanceof ArrayNode || $prototype instanceof PrototypedArrayNode && $prototype->getPrototype() instanceof ScalarNode) { - $class->addUse(ParamConfigurator::class); - $property = $class->addProperty($node->getName()); - if (null === ($key = $node->getKeyAttribute())) { - // This is an array of values; don't use singular name - $nodeTypesWithoutArray = \array_filter($nodeParameterTypes, static function ($type) { - return 'array' !== $type; - }); - $body = ' -/** - * @param ParamConfigurator|listEXTRA_TYPE $value - * - * @return $this - */ -public function NAME(PARAM_TYPE $value): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; -}'; - $class->addMethod($node->getName(), $body, ['PROPERTY' => $property->getName(), 'PROTOTYPE_TYPE' => \implode('|', $prototypeParameterTypes), 'EXTRA_TYPE' => $nodeTypesWithoutArray ? '|' . \implode('|', $nodeTypesWithoutArray) : '', 'PARAM_TYPE' => \in_array('mixed', $nodeParameterTypes, \true) ? 'mixed' : 'ParamConfigurator|' . \implode('|', $nodeParameterTypes)]); - } else { - $body = ' -/** - * @return $this - */ -public function NAME(string $VAR, TYPE $VALUE): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = $VALUE; - - return $this; -}'; - $class->addMethod($methodName, $body, ['PROPERTY' => $property->getName(), 'TYPE' => \in_array('mixed', $prototypeParameterTypes, \true) ? 'mixed' : 'ParamConfigurator|' . \implode('|', $prototypeParameterTypes), 'VAR' => '' === $key ? 'key' : $key, 'VALUE' => 'value' === $key ? 'data' : 'value']); - } - return; - } - $childClass = new ClassBuilder($namespace, $name); - if ($prototype instanceof ArrayNode) { - $childClass->setAllowExtraKeys($prototype->shouldIgnoreExtraKeys()); - } - $class->addRequire($childClass); - $this->classes[] = $childClass; - $property = $class->addProperty($node->getName(), $this->getType($childClass->getFqcn() . '[]', $hasNormalizationClosures)); - $comment = $this->getComment($node); - if ($hasNormalizationClosures) { - $comment = \sprintf(" * @template TValue\n * @param TValue \$value\n%s", $comment); - $comment .= \sprintf(' * @return %s|$this' . "\n", $childClass->getFqcn()); - $comment .= \sprintf(' * @psalm-return (TValue is array ? %s : static)' . "\n ", $childClass->getFqcn()); - } - if ('' !== $comment) { - $comment = "/**\n{$comment}*/\n"; - } - if (null === ($key = $node->getKeyAttribute())) { - $body = $hasNormalizationClosures ? ' -COMMENTpublic function NAME(PARAM_TYPE $value = []): CLASS|static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - if (!\\is_array($value)) { - $this->PROPERTY[] = $value; - - return $this; - } - - return $this->PROPERTY[] = new CLASS($value); -}' : ' -COMMENTpublic function NAME(array $value = []): CLASS -{ - $this->_usedProperties[\'PROPERTY\'] = true; - - return $this->PROPERTY[] = new CLASS($value); -}'; - $class->addMethod($methodName, $body, ['COMMENT' => $comment, 'PROPERTY' => $property->getName(), 'CLASS' => $childClass->getFqcn(), 'PARAM_TYPE' => \in_array('mixed', $nodeParameterTypes, \true) ? 'mixed' : \implode('|', $nodeParameterTypes)]); - } else { - $body = $hasNormalizationClosures ? ' -COMMENTpublic function NAME(string $VAR, PARAM_TYPE $VALUE = []): CLASS|static -{ - if (!\\is_array($VALUE)) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = $VALUE; - - return $this; - } - - if (!isset($this->PROPERTY[$VAR]) || !$this->PROPERTY[$VAR] instanceof CLASS) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = new CLASS($VALUE); - } elseif (1 < \\func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY[$VAR]; -}' : ' -COMMENTpublic function NAME(string $VAR, array $VALUE = []): CLASS -{ - if (!isset($this->PROPERTY[$VAR])) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY[$VAR] = new CLASS($VALUE); - } elseif (1 < \\func_num_args()) { - throw new InvalidConfigurationException(\'The node created by "NAME()" has already been initialized. You cannot pass values the second time you call NAME().\'); - } - - return $this->PROPERTY[$VAR]; -}'; - $class->addUse(InvalidConfigurationException::class); - $class->addMethod($methodName, \str_replace('$value', '$VAR', $body), ['COMMENT' => $comment, 'PROPERTY' => $property->getName(), 'CLASS' => $childClass->getFqcn(), 'VAR' => '' === $key ? 'key' : $key, 'VALUE' => 'value' === $key ? 'data' : 'value', 'PARAM_TYPE' => \in_array('mixed', $prototypeParameterTypes, \true) ? 'mixed' : \implode('|', $prototypeParameterTypes)]); - } - $this->buildNode($prototype, $childClass, $namespace . '\\' . $childClass->getName()); - } - private function handleScalarNode(ScalarNode $node, ClassBuilder $class) : void - { - $comment = $this->getComment($node); - $property = $class->addProperty($node->getName()); - $class->addUse(ParamConfigurator::class); - $body = ' -/** -COMMENT * @return $this - */ -public function NAME($value): static -{ - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = $value; - - return $this; -}'; - $class->addMethod($node->getName(), $body, ['PROPERTY' => $property->getName(), 'COMMENT' => $comment]); - } - private function getParameterTypes(NodeInterface $node) : array - { - $paramTypes = []; - if ($node instanceof BaseNode) { - $types = $node->getNormalizedTypes(); - if (\in_array(ExprBuilder::TYPE_ANY, $types, \true)) { - $paramTypes[] = 'mixed'; - } - if (\in_array(ExprBuilder::TYPE_STRING, $types, \true)) { - $paramTypes[] = 'string'; - } - } - if ($node instanceof BooleanNode) { - $paramTypes[] = 'bool'; - } elseif ($node instanceof IntegerNode) { - $paramTypes[] = 'int'; - } elseif ($node instanceof FloatNode) { - $paramTypes[] = 'float'; - } elseif ($node instanceof EnumNode) { - $paramTypes[] = 'mixed'; - } elseif ($node instanceof ArrayNode) { - $paramTypes[] = 'array'; - } elseif ($node instanceof VariableNode) { - $paramTypes[] = 'mixed'; - } - return \array_unique($paramTypes); - } - private function getComment(BaseNode $node) : string - { - $comment = ''; - if ('' !== ($info = (string) $node->getInfo())) { - $comment .= ' * ' . $info . "\n"; - } - if (!$node instanceof ArrayNode) { - foreach ((array) ($node->getExample() ?? []) as $example) { - $comment .= ' * @example ' . $example . "\n"; - } - if ('' !== ($default = $node->getDefaultValue())) { - $comment .= ' * @default ' . (null === $default ? 'null' : \var_export($default, \true)) . "\n"; - } - if ($node instanceof EnumNode) { - $comment .= \sprintf(' * @param ParamConfigurator|%s $value', \implode('|', \array_unique(\array_map(function ($a) { - return !$a instanceof \UnitEnum ? \var_export($a, \true) : '\\' . \ltrim(\var_export($a, \true), '\\'); - }, $node->getValues())))) . "\n"; - } else { - $parameterTypes = $this->getParameterTypes($node); - $comment .= ' * @param ParamConfigurator|' . \implode('|', $parameterTypes) . ' $value' . "\n"; - } - } else { - foreach ((array) ($node->getExample() ?? []) as $example) { - $comment .= ' * @example ' . \json_encode($example) . "\n"; - } - if ($node->hasDefaultValue() && [] != ($default = $node->getDefaultValue())) { - $comment .= ' * @default ' . \json_encode($default) . "\n"; - } - } - if ($node->isDeprecated()) { - $comment .= ' * @deprecated ' . $node->getDeprecation($node->getName(), $node->getParent()->getName())['message'] . "\n"; - } - return $comment; - } - /** - * Pick a good singular name. - */ - private function getSingularName(PrototypedArrayNode $node) : string - { - $name = $node->getName(); - if (\substr_compare($name, 's', -\strlen('s')) !== 0) { - return $name; - } - $parent = $node->getParent(); - $mappings = $parent instanceof ArrayNode ? $parent->getXmlRemappings() : []; - foreach ($mappings as $map) { - if ($map[1] === $name) { - $name = $map[0]; - break; - } - } - return $name; - } - private function buildToArray(ClassBuilder $class) : void - { - $body = '$output = [];'; - foreach ($class->getProperties() as $p) { - $code = '$this->PROPERTY'; - if (null !== $p->getType()) { - if ($p->isArray()) { - $code = $p->areScalarsAllowed() ? 'array_map(function ($v) { return $v instanceof CLASS ? $v->toArray() : $v; }, $this->PROPERTY)' : 'array_map(function ($v) { return $v->toArray(); }, $this->PROPERTY)'; - } else { - $code = $p->areScalarsAllowed() ? '$this->PROPERTY instanceof CLASS ? $this->PROPERTY->toArray() : $this->PROPERTY' : '$this->PROPERTY->toArray()'; - } - } - $body .= \strtr(' - if (isset($this->_usedProperties[\'PROPERTY\'])) { - $output[\'ORG_NAME\'] = ' . $code . '; - }', ['PROPERTY' => $p->getName(), 'ORG_NAME' => $p->getOriginalName(), 'CLASS' => $p->getType()]); - } - $extraKeys = $class->shouldAllowExtraKeys() ? ' + $this->_extraKeys' : ''; - $class->addMethod('toArray', ' -public function NAME(): array -{ - ' . $body . ' - - return $output' . $extraKeys . '; -}'); - } - private function buildConstructor(ClassBuilder $class) : void - { - $body = ''; - foreach ($class->getProperties() as $p) { - $code = '$value[\'ORG_NAME\']'; - if (null !== $p->getType()) { - if ($p->isArray()) { - $code = $p->areScalarsAllowed() ? 'array_map(function ($v) { return \\is_array($v) ? new ' . $p->getType() . '($v) : $v; }, $value[\'ORG_NAME\'])' : 'array_map(function ($v) { return new ' . $p->getType() . '($v); }, $value[\'ORG_NAME\'])'; - } else { - $code = $p->areScalarsAllowed() ? '\\is_array($value[\'ORG_NAME\']) ? new ' . $p->getType() . '($value[\'ORG_NAME\']) : $value[\'ORG_NAME\']' : 'new ' . $p->getType() . '($value[\'ORG_NAME\'])'; - } - } - $body .= \strtr(' - if (array_key_exists(\'ORG_NAME\', $value)) { - $this->_usedProperties[\'PROPERTY\'] = true; - $this->PROPERTY = ' . $code . '; - unset($value[\'ORG_NAME\']); - } -', ['PROPERTY' => $p->getName(), 'ORG_NAME' => $p->getOriginalName()]); - } - if ($class->shouldAllowExtraKeys()) { - $body .= ' - $this->_extraKeys = $value; -'; - } else { - $body .= ' - if ([] !== $value) { - throw new InvalidConfigurationException(sprintf(\'The following keys are not supported by "%s": \', __CLASS__).implode(\', \', array_keys($value))); - }'; - $class->addUse(InvalidConfigurationException::class); - } - $class->addMethod('__construct', ' -public function __construct(array $value = []) -{' . $body . ' -}'); - } - private function buildSetExtraKey(ClassBuilder $class) : void - { - if (!$class->shouldAllowExtraKeys()) { - return; - } - $class->addUse(ParamConfigurator::class); - $class->addProperty('_extraKeys'); - $class->addMethod('set', ' -/** - * @param ParamConfigurator|mixed $value - * - * @return $this - */ -public function NAME(string $key, mixed $value): static -{ - $this->_extraKeys[$key] = $value; - - return $this; -}'); - } - private function getSubNamespace(ClassBuilder $rootClass) : string - { - return \sprintf('%s\\%s', $rootClass->getNamespace(), \substr($rootClass->getName(), 0, -6)); - } - private function hasNormalizationClosures(NodeInterface $node) : bool - { - try { - $r = new \ReflectionProperty($node, 'normalizationClosures'); - $r->setAccessible(\true); - } catch (\ReflectionException $exception) { - return \false; - } - $r->setAccessible(\true); - return [] !== $r->getValue($node); - } - private function getType(string $classType, bool $hasNormalizationClosures) : string - { - return $classType . ($hasNormalizationClosures ? '|scalar' : ''); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php b/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php deleted file mode 100644 index 7d67a5e9c..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderGeneratorInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -/** - * Generates ConfigBuilders to help create valid config. - * - * @author Tobias Nyholm - */ -interface ConfigBuilderGeneratorInterface -{ - /** - * @return \Closure that will return the root config class - */ - public function build(ConfigurationInterface $configuration) : \Closure; -} diff --git a/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderInterface.php b/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderInterface.php deleted file mode 100644 index 01eb0f663..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Builder/ConfigBuilderInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Builder; - -/** - * A ConfigBuilder provides helper methods to build a large complex array. - * - * @author Tobias Nyholm - */ -interface ConfigBuilderInterface -{ - /** - * Gets all configuration represented as an array. - */ - public function toArray() : array; - /** - * Gets the alias for the extension which config we are building. - */ - public function getExtensionAlias() : string; -} diff --git a/vendor/rector/rector/vendor/symfony/config/Builder/Method.php b/vendor/rector/rector/vendor/symfony/config/Builder/Method.php deleted file mode 100644 index 1c4299671..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Builder/Method.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Builder; - -/** - * Represents a method when building classes. - * - * @internal - * - * @author Tobias Nyholm - */ -class Method -{ - /** - * @var string - */ - private $content; - public function __construct(string $content) - { - $this->content = $content; - } - public function getContent() : string - { - return $this->content; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Builder/Property.php b/vendor/rector/rector/vendor/symfony/config/Builder/Property.php deleted file mode 100644 index 91f79b14c..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Builder/Property.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Builder; - -/** - * Represents a property when building classes. - * - * @internal - * - * @author Tobias Nyholm - */ -class Property -{ - /** - * @var string - */ - private $name; - /** - * @var string - */ - private $originalName; - /** - * @var bool - */ - private $array = \false; - /** - * @var bool - */ - private $scalarsAllowed = \false; - /** - * @var string|null - */ - private $type; - /** - * @var string|null - */ - private $content; - public function __construct(string $originalName, string $name) - { - $this->name = $name; - $this->originalName = $originalName; - } - public function getName() : string - { - return $this->name; - } - public function getOriginalName() : string - { - return $this->originalName; - } - public function setType(string $type) : void - { - $this->array = \false; - $this->type = $type; - if (\substr_compare($type, '|scalar', -\strlen('|scalar')) === 0) { - $this->scalarsAllowed = \true; - $this->type = $type = \substr($type, 0, -7); - } - if (\substr_compare($type, '[]', -\strlen('[]')) === 0) { - $this->array = \true; - $this->type = \substr($type, 0, -2); - } - } - public function getType() : ?string - { - return $this->type; - } - public function getContent() : ?string - { - return $this->content; - } - public function setContent(string $content) : void - { - $this->content = $content; - } - public function isArray() : bool - { - return $this->array; - } - public function areScalarsAllowed() : bool - { - return $this->scalarsAllowed; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/ConfigCache.php b/vendor/rector/rector/vendor/symfony/config/ConfigCache.php deleted file mode 100644 index a1dee7038..000000000 --- a/vendor/rector/rector/vendor/symfony/config/ConfigCache.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config; - -use RectorPrefix202308\Symfony\Component\Config\Resource\SelfCheckingResourceChecker; -/** - * ConfigCache caches arbitrary content in files on disk. - * - * When in debug mode, those metadata resources that implement - * \Symfony\Component\Config\Resource\SelfCheckingResourceInterface will - * be used to check cache freshness. - * - * @author Fabien Potencier - * @author Matthias Pigulla - */ -class ConfigCache extends ResourceCheckerConfigCache -{ - /** - * @var bool - */ - private $debug; - /** - * @param string $file The absolute cache path - * @param bool $debug Whether debugging is enabled or not - */ - public function __construct(string $file, bool $debug) - { - $this->debug = $debug; - $checkers = []; - if (\true === $this->debug) { - $checkers = [new SelfCheckingResourceChecker()]; - } - parent::__construct($file, $checkers); - } - /** - * Checks if the cache is still fresh. - * - * This implementation always returns true when debug is off and the - * cache file exists. - */ - public function isFresh() : bool - { - if (!$this->debug && \is_file($this->getPath())) { - return \true; - } - return parent::isFresh(); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/ConfigCacheFactory.php b/vendor/rector/rector/vendor/symfony/config/ConfigCacheFactory.php deleted file mode 100644 index 4910da1ea..000000000 --- a/vendor/rector/rector/vendor/symfony/config/ConfigCacheFactory.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config; - -/** - * Basic implementation of ConfigCacheFactoryInterface that - * creates an instance of the default ConfigCache. - * - * This factory and/or cache do not support cache validation - * by means of ResourceChecker instances (that is, service-based). - * - * @author Matthias Pigulla - */ -class ConfigCacheFactory implements ConfigCacheFactoryInterface -{ - /** - * @var bool - */ - private $debug; - /** - * @param bool $debug The debug flag to pass to ConfigCache - */ - public function __construct(bool $debug) - { - $this->debug = $debug; - } - public function cache(string $file, callable $callback) : ConfigCacheInterface - { - $cache = new ConfigCache($file, $this->debug); - if (!$cache->isFresh()) { - $callback($cache); - } - return $cache; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/ConfigCacheFactoryInterface.php b/vendor/rector/rector/vendor/symfony/config/ConfigCacheFactoryInterface.php deleted file mode 100644 index 81b0d996b..000000000 --- a/vendor/rector/rector/vendor/symfony/config/ConfigCacheFactoryInterface.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 RectorPrefix202308\Symfony\Component\Config; - -/** - * Interface for a ConfigCache factory. This factory creates - * an instance of ConfigCacheInterface and initializes the - * cache if necessary. - * - * @author Matthias Pigulla - */ -interface ConfigCacheFactoryInterface -{ - /** - * Creates a cache instance and (re-)initializes it if necessary. - * - * @param string $file The absolute cache file path - * @param callable $callable The callable to be executed when the cache needs to be filled (i. e. is not fresh). The cache will be passed as the only parameter to this callback - */ - public function cache(string $file, callable $callable) : ConfigCacheInterface; -} diff --git a/vendor/rector/rector/vendor/symfony/config/ConfigCacheInterface.php b/vendor/rector/rector/vendor/symfony/config/ConfigCacheInterface.php deleted file mode 100644 index e1425fb87..000000000 --- a/vendor/rector/rector/vendor/symfony/config/ConfigCacheInterface.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config; - -use RectorPrefix202308\Symfony\Component\Config\Resource\ResourceInterface; -/** - * Interface for ConfigCache. - * - * @author Matthias Pigulla - */ -interface ConfigCacheInterface -{ - /** - * Gets the cache file path. - */ - public function getPath() : string; - /** - * Checks if the cache is still fresh. - * - * This check should take the metadata passed to the write() method into consideration. - */ - public function isFresh() : bool; - /** - * Writes the given content into the cache file. Metadata will be stored - * independently and can be used to check cache freshness at a later time. - * - * @param string $content The content to write into the cache - * @param ResourceInterface[]|null $metadata An array of ResourceInterface instances - * - * @return void - * - * @throws \RuntimeException When the cache file cannot be written - */ - public function write(string $content, array $metadata = null); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/ArrayNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/ArrayNode.php deleted file mode 100644 index 83e7f9cc8..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/ArrayNode.php +++ /dev/null @@ -1,359 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidTypeException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\UnsetKeyException; -/** - * Represents an Array node in the config tree. - * - * @author Johannes M. Schmitt - */ -class ArrayNode extends BaseNode implements PrototypeNodeInterface -{ - protected $xmlRemappings = []; - protected $children = []; - protected $allowFalse = \false; - protected $allowNewKeys = \true; - protected $addIfNotSet = \false; - protected $performDeepMerging = \true; - protected $ignoreExtraKeys = \false; - protected $removeExtraKeys = \true; - protected $normalizeKeys = \true; - /** - * @return void - */ - public function setNormalizeKeys(bool $normalizeKeys) - { - $this->normalizeKeys = $normalizeKeys; - } - /** - * Namely, you mostly have foo_bar in YAML while you have foo-bar in XML. - * After running this method, all keys are normalized to foo_bar. - * - * If you have a mixed key like foo-bar_moo, it will not be altered. - * The key will also not be altered if the target key already exists. - * @param mixed $value - * @return mixed - */ - protected function preNormalize($value) - { - if (!$this->normalizeKeys || !\is_array($value)) { - return $value; - } - $normalized = []; - foreach ($value as $k => $v) { - if (\strpos($k, '-') !== \false && \strpos($k, '_') === \false && !\array_key_exists($normalizedKey = \str_replace('-', '_', $k), $value)) { - $normalized[$normalizedKey] = $v; - } else { - $normalized[$k] = $v; - } - } - return $normalized; - } - /** - * Retrieves the children of this node. - * - * @return array - */ - public function getChildren() : array - { - return $this->children; - } - /** - * Sets the xml remappings that should be performed. - * - * @param array $remappings An array of the form [[string, string]] - * - * @return void - */ - public function setXmlRemappings(array $remappings) - { - $this->xmlRemappings = $remappings; - } - /** - * Gets the xml remappings that should be performed. - * - * @return array an array of the form [[string, string]] - */ - public function getXmlRemappings() : array - { - return $this->xmlRemappings; - } - /** - * Sets whether to add default values for this array if it has not been - * defined in any of the configuration files. - * - * @return void - */ - public function setAddIfNotSet(bool $boolean) - { - $this->addIfNotSet = $boolean; - } - /** - * Sets whether false is allowed as value indicating that the array should be unset. - * - * @return void - */ - public function setAllowFalse(bool $allow) - { - $this->allowFalse = $allow; - } - /** - * Sets whether new keys can be defined in subsequent configurations. - * - * @return void - */ - public function setAllowNewKeys(bool $allow) - { - $this->allowNewKeys = $allow; - } - /** - * Sets if deep merging should occur. - * - * @return void - */ - public function setPerformDeepMerging(bool $boolean) - { - $this->performDeepMerging = $boolean; - } - /** - * Whether extra keys should just be ignored without an exception. - * - * @param bool $boolean To allow extra keys - * @param bool $remove To remove extra keys - * - * @return void - */ - public function setIgnoreExtraKeys(bool $boolean, bool $remove = \true) - { - $this->ignoreExtraKeys = $boolean; - $this->removeExtraKeys = $this->ignoreExtraKeys && $remove; - } - /** - * Returns true when extra keys should be ignored without an exception. - */ - public function shouldIgnoreExtraKeys() : bool - { - return $this->ignoreExtraKeys; - } - /** - * @return void - */ - public function setName(string $name) - { - $this->name = $name; - } - public function hasDefaultValue() : bool - { - return $this->addIfNotSet; - } - /** - * @return mixed - */ - public function getDefaultValue() - { - if (!$this->hasDefaultValue()) { - throw new \RuntimeException(\sprintf('The node at path "%s" has no default value.', $this->getPath())); - } - $defaults = []; - foreach ($this->children as $name => $child) { - if ($child->hasDefaultValue()) { - $defaults[$name] = $child->getDefaultValue(); - } - } - return $defaults; - } - /** - * Adds a child node. - * - * @return void - * - * @throws \InvalidArgumentException when the child node has no name - * @throws \InvalidArgumentException when the child node's name is not unique - */ - public function addChild(NodeInterface $node) - { - $name = $node->getName(); - if ('' === $name) { - throw new \InvalidArgumentException('Child nodes must be named.'); - } - if (isset($this->children[$name])) { - throw new \InvalidArgumentException(\sprintf('A child node named "%s" already exists.', $name)); - } - $this->children[$name] = $node; - } - /** - * @throws UnsetKeyException - * @throws InvalidConfigurationException if the node doesn't have enough children - * @param mixed $value - * @return mixed - */ - protected function finalizeValue($value) - { - if (\false === $value) { - throw new UnsetKeyException(\sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), \json_encode($value))); - } - foreach ($this->children as $name => $child) { - if (!\array_key_exists($name, $value)) { - if ($child->isRequired()) { - $message = \sprintf('The child config "%s" under "%s" must be configured', $name, $this->getPath()); - if ($child->getInfo()) { - $message .= \sprintf(': %s', $child->getInfo()); - } else { - $message .= '.'; - } - $ex = new InvalidConfigurationException($message); - $ex->setPath($this->getPath()); - throw $ex; - } - if ($child->hasDefaultValue()) { - $value[$name] = $child->getDefaultValue(); - } - continue; - } - if ($child->isDeprecated()) { - $deprecation = $child->getDeprecation($name, $this->getPath()); - \RectorPrefix202308\trigger_deprecation($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - try { - $value[$name] = $child->finalize($value[$name]); - } catch (UnsetKeyException $exception) { - unset($value[$name]); - } - } - return $value; - } - /** - * @return void - * @param mixed $value - */ - protected function validateType($value) - { - if (!\is_array($value) && (!$this->allowFalse || \false !== $value)) { - $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "array", but got "%s"', $this->getPath(), \get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - throw $ex; - } - } - /** - * @throws InvalidConfigurationException - * @param mixed $value - * @return mixed - */ - protected function normalizeValue($value) - { - if (\false === $value) { - return $value; - } - $value = $this->remapXml($value); - $normalized = []; - foreach ($value as $name => $val) { - if (isset($this->children[$name])) { - try { - $normalized[$name] = $this->children[$name]->normalize($val); - } catch (UnsetKeyException $exception) { - } - unset($value[$name]); - } elseif (!$this->removeExtraKeys) { - $normalized[$name] = $val; - } - } - // if extra fields are present, throw exception - if (\count($value) && !$this->ignoreExtraKeys) { - $proposals = \array_keys($this->children); - \sort($proposals); - $guesses = []; - foreach (\array_keys($value) as $subject) { - $minScore = \INF; - foreach ($proposals as $proposal) { - $distance = \levenshtein($subject, $proposal); - if ($distance <= $minScore && $distance < 3) { - $guesses[$proposal] = $distance; - $minScore = $distance; - } - } - } - $msg = \sprintf('Unrecognized option%s "%s" under "%s"', 1 === \count($value) ? '' : 's', \implode(', ', \array_keys($value)), $this->getPath()); - if (\count($guesses)) { - \asort($guesses); - $msg .= \sprintf('. Did you mean "%s"?', \implode('", "', \array_keys($guesses))); - } else { - $msg .= \sprintf('. Available option%s %s "%s".', 1 === \count($proposals) ? '' : 's', 1 === \count($proposals) ? 'is' : 'are', \implode('", "', $proposals)); - } - $ex = new InvalidConfigurationException($msg); - $ex->setPath($this->getPath()); - throw $ex; - } - return $normalized; - } - /** - * Remaps multiple singular values to a single plural value. - */ - protected function remapXml(array $value) : array - { - foreach ($this->xmlRemappings as [$singular, $plural]) { - if (!isset($value[$singular])) { - continue; - } - $value[$plural] = Processor::normalizeConfig($value, $singular, $plural); - unset($value[$singular]); - } - return $value; - } - /** - * @throws InvalidConfigurationException - * @throws \RuntimeException - * @param mixed $leftSide - * @param mixed $rightSide - * @return mixed - */ - protected function mergeValues($leftSide, $rightSide) - { - if (\false === $rightSide) { - // if this is still false after the last config has been merged the - // finalization pass will take care of removing this key entirely - return \false; - } - if (\false === $leftSide || !$this->performDeepMerging) { - return $rightSide; - } - foreach ($rightSide as $k => $v) { - // no conflict - if (!\array_key_exists($k, $leftSide)) { - if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(\sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file. If you are trying to overwrite an element, make sure you redefine it with the same name.', $this->getPath())); - $ex->setPath($this->getPath()); - throw $ex; - } - $leftSide[$k] = $v; - continue; - } - if (!isset($this->children[$k])) { - if (!$this->ignoreExtraKeys || $this->removeExtraKeys) { - throw new \RuntimeException('merge() expects a normalized config array.'); - } - $leftSide[$k] = $v; - continue; - } - $leftSide[$k] = $this->children[$k]->merge($leftSide[$k], $v); - } - return $leftSide; - } - protected function allowPlaceholders() : bool - { - return \false; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/BaseNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/BaseNode.php deleted file mode 100644 index cdd225272..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/BaseNode.php +++ /dev/null @@ -1,501 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\Exception; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidTypeException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\UnsetKeyException; -/** - * The base node class. - * - * @author Johannes M. Schmitt - */ -abstract class BaseNode implements NodeInterface -{ - public const DEFAULT_PATH_SEPARATOR = '.'; - /** - * @var mixed[] - */ - private static $placeholderUniquePrefixes = []; - /** - * @var mixed[] - */ - private static $placeholders = []; - protected $name; - protected $parent; - protected $normalizationClosures = []; - protected $normalizedTypes = []; - protected $finalValidationClosures = []; - protected $allowOverwrite = \true; - protected $required = \false; - protected $deprecation = []; - protected $equivalentValues = []; - protected $attributes = []; - protected $pathSeparator; - /** - * @var mixed - */ - private $handlingPlaceholder = null; - /** - * @throws \InvalidArgumentException if the name contains a period - */ - public function __construct(?string $name, NodeInterface $parent = null, string $pathSeparator = self::DEFAULT_PATH_SEPARATOR) - { - if (\strpos($name = (string) $name, $pathSeparator) !== \false) { - throw new \InvalidArgumentException('The name must not contain ".' . $pathSeparator . '".'); - } - $this->name = $name; - $this->parent = $parent; - $this->pathSeparator = $pathSeparator; - } - /** - * Register possible (dummy) values for a dynamic placeholder value. - * - * Matching configuration values will be processed with a provided value, one by one. After a provided value is - * successfully processed the configuration value is returned as is, thus preserving the placeholder. - * - * @internal - */ - public static function setPlaceholder(string $placeholder, array $values) : void - { - if (!$values) { - throw new \InvalidArgumentException('At least one value must be provided.'); - } - self::$placeholders[$placeholder] = $values; - } - /** - * Adds a common prefix for dynamic placeholder values. - * - * Matching configuration values will be skipped from being processed and are returned as is, thus preserving the - * placeholder. An exact match provided by {@see setPlaceholder()} might take precedence. - * - * @internal - */ - public static function setPlaceholderUniquePrefix(string $prefix) : void - { - self::$placeholderUniquePrefixes[] = $prefix; - } - /** - * Resets all current placeholders available. - * - * @internal - */ - public static function resetPlaceholders() : void - { - self::$placeholderUniquePrefixes = []; - self::$placeholders = []; - } - /** - * @return void - * @param mixed $value - */ - public function setAttribute(string $key, $value) - { - $this->attributes[$key] = $value; - } - /** - * @param mixed $default - * @return mixed - */ - public function getAttribute(string $key, $default = null) - { - return $this->attributes[$key] ?? $default; - } - public function hasAttribute(string $key) : bool - { - return isset($this->attributes[$key]); - } - public function getAttributes() : array - { - return $this->attributes; - } - /** - * @return void - */ - public function setAttributes(array $attributes) - { - $this->attributes = $attributes; - } - /** - * @return void - */ - public function removeAttribute(string $key) - { - unset($this->attributes[$key]); - } - /** - * Sets an info message. - * - * @return void - */ - public function setInfo(string $info) - { - $this->setAttribute('info', $info); - } - /** - * Returns info message. - */ - public function getInfo() : ?string - { - return $this->getAttribute('info'); - } - /** - * Sets the example configuration for this node. - * - * @return void - * @param string|mixed[] $example - */ - public function setExample($example) - { - $this->setAttribute('example', $example); - } - /** - * Retrieves the example configuration for this node. - * @return string|mixed[]|null - */ - public function getExample() - { - return $this->getAttribute('example'); - } - /** - * Adds an equivalent value. - * - * @return void - * @param mixed $originalValue - * @param mixed $equivalentValue - */ - public function addEquivalentValue($originalValue, $equivalentValue) - { - $this->equivalentValues[] = [$originalValue, $equivalentValue]; - } - /** - * Set this node as required. - * - * @return void - */ - public function setRequired(bool $boolean) - { - $this->required = $boolean; - } - /** - * Sets this node as deprecated. - * - * You can use %node% and %path% placeholders in your message to display, - * respectively, the node name and its complete path. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message the deprecation message to use - * - * @return void - */ - public function setDeprecated(string $package, string $version, string $message = 'The child node "%node%" at path "%path%" is deprecated.') - { - $this->deprecation = ['package' => $package, 'version' => $version, 'message' => $message]; - } - /** - * Sets if this node can be overridden. - * - * @return void - */ - public function setAllowOverwrite(bool $allow) - { - $this->allowOverwrite = $allow; - } - /** - * Sets the closures used for normalization. - * - * @param \Closure[] $closures An array of Closures used for normalization - * - * @return void - */ - public function setNormalizationClosures(array $closures) - { - $this->normalizationClosures = $closures; - } - /** - * Sets the list of types supported by normalization. - * - * see ExprBuilder::TYPE_* constants. - * - * @return void - */ - public function setNormalizedTypes(array $types) - { - $this->normalizedTypes = $types; - } - /** - * Gets the list of types supported by normalization. - * - * see ExprBuilder::TYPE_* constants. - */ - public function getNormalizedTypes() : array - { - return $this->normalizedTypes; - } - /** - * Sets the closures used for final validation. - * - * @param \Closure[] $closures An array of Closures used for final validation - * - * @return void - */ - public function setFinalValidationClosures(array $closures) - { - $this->finalValidationClosures = $closures; - } - public function isRequired() : bool - { - return $this->required; - } - /** - * Checks if this node is deprecated. - */ - public function isDeprecated() : bool - { - return (bool) $this->deprecation; - } - /** - * @param string $node The configuration node name - * @param string $path The path of the node - */ - public function getDeprecation(string $node, string $path) : array - { - return ['package' => $this->deprecation['package'], 'version' => $this->deprecation['version'], 'message' => \strtr($this->deprecation['message'], ['%node%' => $node, '%path%' => $path])]; - } - public function getName() : string - { - return $this->name; - } - public function getPath() : string - { - if (null !== $this->parent) { - return $this->parent->getPath() . $this->pathSeparator . $this->name; - } - return $this->name; - } - /** - * @param mixed $leftSide - * @param mixed $rightSide - * @return mixed - */ - public final function merge($leftSide, $rightSide) - { - if (!$this->allowOverwrite) { - throw new ForbiddenOverwriteException(\sprintf('Configuration path "%s" cannot be overwritten. You have to define all options for this path, and any of its sub-paths in one configuration section.', $this->getPath())); - } - if ($leftSide !== ($leftPlaceholders = self::resolvePlaceholderValue($leftSide))) { - foreach ($leftPlaceholders as $leftPlaceholder) { - $this->handlingPlaceholder = $leftSide; - try { - $this->merge($leftPlaceholder, $rightSide); - } finally { - $this->handlingPlaceholder = null; - } - } - return $rightSide; - } - if ($rightSide !== ($rightPlaceholders = self::resolvePlaceholderValue($rightSide))) { - foreach ($rightPlaceholders as $rightPlaceholder) { - $this->handlingPlaceholder = $rightSide; - try { - $this->merge($leftSide, $rightPlaceholder); - } finally { - $this->handlingPlaceholder = null; - } - } - return $rightSide; - } - $this->doValidateType($leftSide); - $this->doValidateType($rightSide); - return $this->mergeValues($leftSide, $rightSide); - } - /** - * @param mixed $value - * @return mixed - */ - public final function normalize($value) - { - $value = $this->preNormalize($value); - // run custom normalization closures - foreach ($this->normalizationClosures as $closure) { - $value = $closure($value); - } - // resolve placeholder value - if ($value !== ($placeholders = self::resolvePlaceholderValue($value))) { - foreach ($placeholders as $placeholder) { - $this->handlingPlaceholder = $value; - try { - $this->normalize($placeholder); - } finally { - $this->handlingPlaceholder = null; - } - } - return $value; - } - // replace value with their equivalent - foreach ($this->equivalentValues as $data) { - if ($data[0] === $value) { - $value = $data[1]; - } - } - // validate type - $this->doValidateType($value); - // normalize value - return $this->normalizeValue($value); - } - /** - * Normalizes the value before any other normalization is applied. - * @param mixed $value - * @return mixed - */ - protected function preNormalize($value) - { - return $value; - } - /** - * Returns parent node for this node. - */ - public function getParent() : ?NodeInterface - { - return $this->parent; - } - /** - * @param mixed $value - * @return mixed - */ - public final function finalize($value) - { - if ($value !== ($placeholders = self::resolvePlaceholderValue($value))) { - foreach ($placeholders as $placeholder) { - $this->handlingPlaceholder = $value; - try { - $this->finalize($placeholder); - } finally { - $this->handlingPlaceholder = null; - } - } - return $value; - } - $this->doValidateType($value); - $value = $this->finalizeValue($value); - // Perform validation on the final value if a closure has been set. - // The closure is also allowed to return another value. - foreach ($this->finalValidationClosures as $closure) { - try { - $value = $closure($value); - } catch (Exception $e) { - if ($e instanceof UnsetKeyException && null !== $this->handlingPlaceholder) { - continue; - } - throw $e; - } catch (\Exception $e) { - throw new InvalidConfigurationException(\sprintf('Invalid configuration for path "%s": ', $this->getPath()) . $e->getMessage(), $e->getCode(), $e); - } - } - return $value; - } - /** - * Validates the type of a Node. - * - * @return void - * - * @throws InvalidTypeException when the value is invalid - * @param mixed $value - */ - protected abstract function validateType($value); - /** - * Normalizes the value. - * @param mixed $value - * @return mixed - */ - protected abstract function normalizeValue($value); - /** - * Merges two values together. - * @param mixed $leftSide - * @param mixed $rightSide - * @return mixed - */ - protected abstract function mergeValues($leftSide, $rightSide); - /** - * Finalizes a value. - * @param mixed $value - * @return mixed - */ - protected abstract function finalizeValue($value); - /** - * Tests if placeholder values are allowed for this node. - */ - protected function allowPlaceholders() : bool - { - return \true; - } - /** - * Tests if a placeholder is being handled currently. - */ - protected function isHandlingPlaceholder() : bool - { - return null !== $this->handlingPlaceholder; - } - /** - * Gets allowed dynamic types for this node. - */ - protected function getValidPlaceholderTypes() : array - { - return []; - } - /** - * @param mixed $value - * @return mixed - */ - private static function resolvePlaceholderValue($value) - { - if (\is_string($value)) { - if (isset(self::$placeholders[$value])) { - return self::$placeholders[$value]; - } - foreach (self::$placeholderUniquePrefixes as $placeholderUniquePrefix) { - if (\strncmp($value, $placeholderUniquePrefix, \strlen($placeholderUniquePrefix)) === 0) { - return []; - } - } - } - return $value; - } - /** - * @param mixed $value - */ - private function doValidateType($value) : void - { - if (null !== $this->handlingPlaceholder && !$this->allowPlaceholders()) { - $e = new InvalidTypeException(\sprintf('A dynamic value is not compatible with a "%s" node type at path "%s".', static::class, $this->getPath())); - $e->setPath($this->getPath()); - throw $e; - } - if (null === $this->handlingPlaceholder || null === $value) { - $this->validateType($value); - return; - } - $knownTypes = \array_keys(self::$placeholders[$this->handlingPlaceholder]); - $validTypes = $this->getValidPlaceholderTypes(); - if ($validTypes && \array_diff($knownTypes, $validTypes)) { - $e = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected %s, but got %s.', $this->getPath(), 1 === \count($validTypes) ? '"' . \reset($validTypes) . '"' : 'one of "' . \implode('", "', $validTypes) . '"', 1 === \count($knownTypes) ? '"' . \reset($knownTypes) . '"' : 'one of "' . \implode('", "', $knownTypes) . '"')); - if ($hint = $this->getInfo()) { - $e->addHint($hint); - } - $e->setPath($this->getPath()); - throw $e; - } - $this->validateType($value); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/BooleanNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/BooleanNode.php deleted file mode 100644 index df2dff10b..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/BooleanNode.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 RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidTypeException; -/** - * This node represents a Boolean value in the config tree. - * - * @author Johannes M. Schmitt - */ -class BooleanNode extends ScalarNode -{ - /** - * @return void - * @param mixed $value - */ - protected function validateType($value) - { - if (!\is_bool($value)) { - $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "bool", but got "%s".', $this->getPath(), \get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - throw $ex; - } - } - /** - * @param mixed $value - */ - protected function isValueEmpty($value) : bool - { - // a boolean value cannot be empty - return \false; - } - protected function getValidPlaceholderTypes() : array - { - return ['bool']; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php deleted file mode 100644 index d74397498..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ArrayNodeDefinition.php +++ /dev/null @@ -1,421 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ArrayNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -use RectorPrefix202308\Symfony\Component\Config\Definition\NodeInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\PrototypedArrayNode; -/** - * This class provides a fluent interface for defining an array node. - * - * @author Johannes M. Schmitt - */ -class ArrayNodeDefinition extends NodeDefinition implements ParentNodeDefinitionInterface -{ - protected $performDeepMerging = \true; - protected $ignoreExtraKeys = \false; - protected $removeExtraKeys = \true; - protected $children = []; - protected $prototype; - protected $atLeastOne = \false; - protected $allowNewKeys = \true; - protected $key; - protected $removeKeyItem; - protected $addDefaults = \false; - protected $addDefaultChildren = \false; - protected $nodeBuilder; - protected $normalizeKeys = \true; - public function __construct(?string $name, NodeParentInterface $parent = null) - { - parent::__construct($name, $parent); - $this->nullEquivalent = []; - $this->trueEquivalent = []; - } - /** - * @return void - */ - public function setBuilder(NodeBuilder $builder) - { - $this->nodeBuilder = $builder; - } - public function children() : NodeBuilder - { - return $this->getNodeBuilder(); - } - /** - * Sets a prototype for child nodes. - */ - public function prototype(string $type) : NodeDefinition - { - return $this->prototype = $this->getNodeBuilder()->node(null, $type)->setParent($this); - } - public function variablePrototype() : VariableNodeDefinition - { - return $this->prototype('variable'); - } - public function scalarPrototype() : ScalarNodeDefinition - { - return $this->prototype('scalar'); - } - public function booleanPrototype() : BooleanNodeDefinition - { - return $this->prototype('boolean'); - } - public function integerPrototype() : IntegerNodeDefinition - { - return $this->prototype('integer'); - } - public function floatPrototype() : FloatNodeDefinition - { - return $this->prototype('float'); - } - public function arrayPrototype() : self - { - return $this->prototype('array'); - } - public function enumPrototype() : EnumNodeDefinition - { - return $this->prototype('enum'); - } - /** - * Adds the default value if the node is not set in the configuration. - * - * This method is applicable to concrete nodes only (not to prototype nodes). - * If this function has been called and the node is not set during the finalization - * phase, it's default value will be derived from its children default values. - * - * @return $this - */ - public function addDefaultsIfNotSet() - { - $this->addDefaults = \true; - return $this; - } - /** - * Adds children with a default value when none are defined. - * - * This method is applicable to prototype nodes only. - * - * @param int|string|mixed[] $children The number of children|The child name|The children names to be added - * - * @return $this - */ - public function addDefaultChildrenIfNoneSet($children = null) - { - $this->addDefaultChildren = $children; - return $this; - } - /** - * Requires the node to have at least one element. - * - * This method is applicable to prototype nodes only. - * - * @return $this - */ - public function requiresAtLeastOneElement() - { - $this->atLeastOne = \true; - return $this; - } - /** - * Disallows adding news keys in a subsequent configuration. - * - * If used all keys have to be defined in the same configuration file. - * - * @return $this - */ - public function disallowNewKeysInSubsequentConfigs() - { - $this->allowNewKeys = \false; - return $this; - } - /** - * Sets a normalization rule for XML configurations. - * - * @param string $singular The key to remap - * @param string|null $plural The plural of the key for irregular plurals - * - * @return $this - */ - public function fixXmlConfig(string $singular, string $plural = null) - { - $this->normalization()->remap($singular, $plural); - return $this; - } - /** - * Sets the attribute which value is to be used as key. - * - * This is useful when you have an indexed array that should be an - * associative array. You can select an item from within the array - * to be the key of the particular item. For example, if "id" is the - * "key", then: - * - * [ - * ['id' => 'my_name', 'foo' => 'bar'], - * ]; - * - * becomes - * - * [ - * 'my_name' => ['foo' => 'bar'], - * ]; - * - * If you'd like "'id' => 'my_name'" to still be present in the resulting - * array, then you can set the second argument of this method to false. - * - * This method is applicable to prototype nodes only. - * - * @param string $name The name of the key - * @param bool $removeKeyItem Whether or not the key item should be removed - * - * @return $this - */ - public function useAttributeAsKey(string $name, bool $removeKeyItem = \true) - { - $this->key = $name; - $this->removeKeyItem = $removeKeyItem; - return $this; - } - /** - * Sets whether the node can be unset. - * - * @return $this - */ - public function canBeUnset(bool $allow = \true) - { - $this->merge()->allowUnset($allow); - return $this; - } - /** - * Adds an "enabled" boolean to enable the current section. - * - * By default, the section is disabled. If any configuration is specified then - * the node will be automatically enabled: - * - * enableableArrayNode: {enabled: true, ...} # The config is enabled & default values get overridden - * enableableArrayNode: ~ # The config is enabled & use the default values - * enableableArrayNode: true # The config is enabled & use the default values - * enableableArrayNode: {other: value, ...} # The config is enabled & default values get overridden - * enableableArrayNode: {enabled: false, ...} # The config is disabled - * enableableArrayNode: false # The config is disabled - * - * @return $this - */ - public function canBeEnabled() - { - $this->addDefaultsIfNotSet()->treatFalseLike(['enabled' => \false])->treatTrueLike(['enabled' => \true])->treatNullLike(['enabled' => \true])->beforeNormalization()->ifArray()->then(function (array $v) { - $v['enabled'] = $v['enabled'] ?? \true; - return $v; - })->end()->children()->booleanNode('enabled')->defaultFalse(); - return $this; - } - /** - * Adds an "enabled" boolean to enable the current section. - * - * By default, the section is enabled. - * - * @return $this - */ - public function canBeDisabled() - { - $this->addDefaultsIfNotSet()->treatFalseLike(['enabled' => \false])->treatTrueLike(['enabled' => \true])->treatNullLike(['enabled' => \true])->children()->booleanNode('enabled')->defaultTrue(); - return $this; - } - /** - * Disables the deep merging of the node. - * - * @return $this - */ - public function performNoDeepMerging() - { - $this->performDeepMerging = \false; - return $this; - } - /** - * Allows extra config keys to be specified under an array without - * throwing an exception. - * - * Those config values are ignored and removed from the resulting - * array. This should be used only in special cases where you want - * to send an entire configuration array through a special tree that - * processes only part of the array. - * - * @param bool $remove Whether to remove the extra keys - * - * @return $this - */ - public function ignoreExtraKeys(bool $remove = \true) - { - $this->ignoreExtraKeys = \true; - $this->removeExtraKeys = $remove; - return $this; - } - /** - * Sets whether to enable key normalization. - * - * @return $this - */ - public function normalizeKeys(bool $bool) - { - $this->normalizeKeys = $bool; - return $this; - } - /** - * @return static - */ - public function append(NodeDefinition $node) - { - $this->children[$node->name] = $node->setParent($this); - return $this; - } - /** - * Returns a node builder to be used to add children and prototype. - */ - protected function getNodeBuilder() : NodeBuilder - { - $this->nodeBuilder = $this->nodeBuilder ?? new NodeBuilder(); - return $this->nodeBuilder->setParent($this); - } - protected function createNode() : NodeInterface - { - if (null === $this->prototype) { - $node = new ArrayNode($this->name, $this->parent, $this->pathSeparator); - $this->validateConcreteNode($node); - $node->setAddIfNotSet($this->addDefaults); - foreach ($this->children as $child) { - $child->parent = $node; - $node->addChild($child->getNode()); - } - } else { - $node = new PrototypedArrayNode($this->name, $this->parent, $this->pathSeparator); - $this->validatePrototypeNode($node); - if (null !== $this->key) { - $node->setKeyAttribute($this->key, $this->removeKeyItem); - } - if (\true === $this->atLeastOne || \false === $this->allowEmptyValue) { - $node->setMinNumberOfElements(1); - } - if ($this->default) { - if (!\is_array($this->defaultValue)) { - throw new \InvalidArgumentException(\sprintf('%s: the default value of an array node has to be an array.', $node->getPath())); - } - $node->setDefaultValue($this->defaultValue); - } - if (\false !== $this->addDefaultChildren) { - $node->setAddChildrenIfNoneSet($this->addDefaultChildren); - if ($this->prototype instanceof static && null === $this->prototype->prototype) { - $this->prototype->addDefaultsIfNotSet(); - } - } - $this->prototype->parent = $node; - $node->setPrototype($this->prototype->getNode()); - } - $node->setAllowNewKeys($this->allowNewKeys); - $node->addEquivalentValue(null, $this->nullEquivalent); - $node->addEquivalentValue(\true, $this->trueEquivalent); - $node->addEquivalentValue(\false, $this->falseEquivalent); - $node->setPerformDeepMerging($this->performDeepMerging); - $node->setRequired($this->required); - $node->setIgnoreExtraKeys($this->ignoreExtraKeys, $this->removeExtraKeys); - $node->setNormalizeKeys($this->normalizeKeys); - if ($this->deprecation) { - $node->setDeprecated($this->deprecation['package'], $this->deprecation['version'], $this->deprecation['message']); - } - if (null !== $this->normalization) { - $node->setNormalizationClosures($this->normalization->before); - $node->setNormalizedTypes($this->normalization->declaredTypes); - $node->setXmlRemappings($this->normalization->remappings); - } - if (null !== $this->merge) { - $node->setAllowOverwrite($this->merge->allowOverwrite); - $node->setAllowFalse($this->merge->allowFalse); - } - if (null !== $this->validation) { - $node->setFinalValidationClosures($this->validation->rules); - } - return $node; - } - /** - * Validate the configuration of a concrete node. - * - * @return void - * - * @throws InvalidDefinitionException - */ - protected function validateConcreteNode(ArrayNode $node) - { - $path = $node->getPath(); - if (null !== $this->key) { - throw new InvalidDefinitionException(\sprintf('->useAttributeAsKey() is not applicable to concrete nodes at path "%s".', $path)); - } - if (\false === $this->allowEmptyValue) { - throw new InvalidDefinitionException(\sprintf('->cannotBeEmpty() is not applicable to concrete nodes at path "%s".', $path)); - } - if (\true === $this->atLeastOne) { - throw new InvalidDefinitionException(\sprintf('->requiresAtLeastOneElement() is not applicable to concrete nodes at path "%s".', $path)); - } - if ($this->default) { - throw new InvalidDefinitionException(\sprintf('->defaultValue() is not applicable to concrete nodes at path "%s".', $path)); - } - if (\false !== $this->addDefaultChildren) { - throw new InvalidDefinitionException(\sprintf('->addDefaultChildrenIfNoneSet() is not applicable to concrete nodes at path "%s".', $path)); - } - } - /** - * Validate the configuration of a prototype node. - * - * @return void - * - * @throws InvalidDefinitionException - */ - protected function validatePrototypeNode(PrototypedArrayNode $node) - { - $path = $node->getPath(); - if ($this->addDefaults) { - throw new InvalidDefinitionException(\sprintf('->addDefaultsIfNotSet() is not applicable to prototype nodes at path "%s".', $path)); - } - if (\false !== $this->addDefaultChildren) { - if ($this->default) { - throw new InvalidDefinitionException(\sprintf('A default value and default children might not be used together at path "%s".', $path)); - } - if (null !== $this->key && (null === $this->addDefaultChildren || \is_int($this->addDefaultChildren) && $this->addDefaultChildren > 0)) { - throw new InvalidDefinitionException(\sprintf('->addDefaultChildrenIfNoneSet() should set default children names as ->useAttributeAsKey() is used at path "%s".', $path)); - } - if (null === $this->key && (\is_string($this->addDefaultChildren) || \is_array($this->addDefaultChildren))) { - throw new InvalidDefinitionException(\sprintf('->addDefaultChildrenIfNoneSet() might not set default children names as ->useAttributeAsKey() is not used at path "%s".', $path)); - } - } - } - /** - * @return NodeDefinition[] - */ - public function getChildNodeDefinitions() : array - { - return $this->children; - } - /** - * Finds a node defined by the given $nodePath. - * - * @param string $nodePath The path of the node to find. e.g "doctrine.orm.mappings" - */ - public function find(string $nodePath) : NodeDefinition - { - $firstPathSegment = \false === ($pathSeparatorPos = \strpos($nodePath, $this->pathSeparator)) ? $nodePath : \substr($nodePath, 0, $pathSeparatorPos); - if (null === ($node = $this->children[$firstPathSegment] ?? null)) { - throw new \RuntimeException(\sprintf('Node with name "%s" does not exist in the current node "%s".', $firstPathSegment, $this->name)); - } - if (\false === $pathSeparatorPos) { - return $node; - } - return $node->find(\substr($nodePath, $pathSeparatorPos + \strlen($this->pathSeparator))); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php deleted file mode 100644 index 45c41f8ee..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/BooleanNodeDefinition.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\BooleanNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class BooleanNodeDefinition extends ScalarNodeDefinition -{ - public function __construct(?string $name, NodeParentInterface $parent = null) - { - parent::__construct($name, $parent); - $this->nullEquivalent = \true; - } - /** - * Instantiate a Node. - */ - protected function instantiateNode() : \RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode - { - return new BooleanNode($this->name, $this->parent, $this->pathSeparator); - } - /** - * @throws InvalidDefinitionException - * @return static - */ - public function cannotBeEmpty() - { - throw new InvalidDefinitionException('->cannotBeEmpty() is not applicable to BooleanNodeDefinition.'); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php deleted file mode 100644 index db82a9b98..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/BuilderAwareInterface.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -/** - * An interface that can be implemented by nodes which build other nodes. - * - * @author Roland Franssen - */ -interface BuilderAwareInterface -{ - /** - * Sets a custom children builder. - * - * @return void - */ - public function setBuilder(NodeBuilder $builder); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.php deleted file mode 100644 index 0fe824d63..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/EnumNodeDefinition.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 RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\EnumNode; -/** - * Enum Node Definition. - * - * @author Johannes M. Schmitt - */ -class EnumNodeDefinition extends ScalarNodeDefinition -{ - /** - * @var mixed[] - */ - private $values; - /** - * @return $this - */ - public function values(array $values) - { - if (!$values) { - throw new \InvalidArgumentException('->values() must be called with at least one value.'); - } - $this->values = $values; - return $this; - } - /** - * Instantiate a Node. - * - * @throws \RuntimeException - */ - protected function instantiateNode() : \RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode - { - if (!isset($this->values)) { - throw new \RuntimeException('You must call ->values() on enum nodes.'); - } - return new EnumNode($this->name, $this->parent, $this->values, $this->pathSeparator); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ExprBuilder.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ExprBuilder.php deleted file mode 100644 index 2a3fa7388..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ExprBuilder.php +++ /dev/null @@ -1,239 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\UnsetKeyException; -/** - * This class builds an if expression. - * - * @author Johannes M. Schmitt - * @author Christophe Coevoet - */ -class ExprBuilder -{ - public const TYPE_ANY = 'any'; - public const TYPE_STRING = 'string'; - public const TYPE_NULL = 'null'; - public const TYPE_ARRAY = 'array'; - protected $node; - public $allowedTypes; - public $ifPart; - public $thenPart; - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - /** - * Marks the expression as being always used. - * - * @return $this - */ - public function always(\Closure $then = null) - { - $this->ifPart = static function () { - return \true; - }; - $this->allowedTypes = self::TYPE_ANY; - if (null !== $then) { - $this->thenPart = $then; - } - return $this; - } - /** - * Sets a closure to use as tests. - * - * The default one tests if the value is true. - * - * @return $this - */ - public function ifTrue(\Closure $closure = null) - { - $this->ifPart = $closure ?? static function ($v) { - return \true === $v; - }; - $this->allowedTypes = self::TYPE_ANY; - return $this; - } - /** - * Tests if the value is a string. - * - * @return $this - */ - public function ifString() - { - $this->ifPart = \Closure::fromCallable('is_string'); - $this->allowedTypes = self::TYPE_STRING; - return $this; - } - /** - * Tests if the value is null. - * - * @return $this - */ - public function ifNull() - { - $this->ifPart = \Closure::fromCallable('is_null'); - $this->allowedTypes = self::TYPE_NULL; - return $this; - } - /** - * Tests if the value is empty. - * - * @return $this - */ - public function ifEmpty() - { - $this->ifPart = static function ($v) { - return empty($v); - }; - $this->allowedTypes = self::TYPE_ANY; - return $this; - } - /** - * Tests if the value is an array. - * - * @return $this - */ - public function ifArray() - { - $this->ifPart = \Closure::fromCallable('is_array'); - $this->allowedTypes = self::TYPE_ARRAY; - return $this; - } - /** - * Tests if the value is in an array. - * - * @return $this - */ - public function ifInArray(array $array) - { - $this->ifPart = static function ($v) use($array) { - return \in_array($v, $array, \true); - }; - $this->allowedTypes = self::TYPE_ANY; - return $this; - } - /** - * Tests if the value is not in an array. - * - * @return $this - */ - public function ifNotInArray(array $array) - { - $this->ifPart = static function ($v) use($array) { - return !\in_array($v, $array, \true); - }; - $this->allowedTypes = self::TYPE_ANY; - return $this; - } - /** - * Transforms variables of any type into an array. - * - * @return $this - */ - public function castToArray() - { - $this->ifPart = static function ($v) { - return !\is_array($v); - }; - $this->allowedTypes = self::TYPE_ANY; - $this->thenPart = static function ($v) { - return [$v]; - }; - return $this; - } - /** - * Sets the closure to run if the test pass. - * - * @return $this - */ - public function then(\Closure $closure) - { - $this->thenPart = $closure; - return $this; - } - /** - * Sets a closure returning an empty array. - * - * @return $this - */ - public function thenEmptyArray() - { - $this->thenPart = static function () { - return []; - }; - return $this; - } - /** - * Sets a closure marking the value as invalid at processing time. - * - * if you want to add the value of the node in your message just use a %s placeholder. - * - * @return $this - * - * @throws \InvalidArgumentException - */ - public function thenInvalid(string $message) - { - $this->thenPart = static function ($v) use($message) { - throw new \InvalidArgumentException(\sprintf($message, \json_encode($v))); - }; - return $this; - } - /** - * Sets a closure unsetting this key of the array at processing time. - * - * @return $this - * - * @throws UnsetKeyException - */ - public function thenUnset() - { - $this->thenPart = static function () { - throw new UnsetKeyException('Unsetting key.'); - }; - return $this; - } - /** - * Returns the related node. - * - * @throws \RuntimeException - * @return \Symfony\Component\Config\Definition\Builder\NodeDefinition|\Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition|\Symfony\Component\Config\Definition\Builder\VariableNodeDefinition - */ - public function end() - { - if (null === $this->ifPart) { - throw new \RuntimeException('You must specify an if part.'); - } - if (null === $this->thenPart) { - throw new \RuntimeException('You must specify a then part.'); - } - return $this->node; - } - /** - * Builds the expressions. - * - * @param ExprBuilder[] $expressions An array of ExprBuilder instances to build - */ - public static function buildExpressions(array $expressions) : array - { - foreach ($expressions as $k => $expr) { - if ($expr instanceof self) { - $if = $expr->ifPart; - $then = $expr->thenPart; - $expressions[$k] = static function ($v) use($if, $then) { - return $if($v) ? $then($v) : $v; - }; - } - } - return $expressions; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php deleted file mode 100644 index 33069faf4..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/FloatNodeDefinition.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\FloatNode; -/** - * This class provides a fluent interface for defining a float node. - * - * @author Jeanmonod David - */ -class FloatNodeDefinition extends NumericNodeDefinition -{ - /** - * Instantiates a Node. - */ - protected function instantiateNode() : \RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode - { - return new FloatNode($this->name, $this->parent, $this->min, $this->max, $this->pathSeparator); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php deleted file mode 100644 index 53bb17c06..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/IntegerNodeDefinition.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\IntegerNode; -/** - * This class provides a fluent interface for defining an integer node. - * - * @author Jeanmonod David - */ -class IntegerNodeDefinition extends NumericNodeDefinition -{ - /** - * Instantiates a Node. - */ - protected function instantiateNode() : \RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode - { - return new IntegerNode($this->name, $this->parent, $this->min, $this->max, $this->pathSeparator); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/MergeBuilder.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/MergeBuilder.php deleted file mode 100644 index d73ee96cb..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/MergeBuilder.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 RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -/** - * This class builds merge conditions. - * - * @author Johannes M. Schmitt - */ -class MergeBuilder -{ - protected $node; - public $allowFalse = \false; - public $allowOverwrite = \true; - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - /** - * Sets whether the node can be unset. - * - * @return $this - */ - public function allowUnset(bool $allow = \true) - { - $this->allowFalse = $allow; - return $this; - } - /** - * Sets whether the node can be overwritten. - * - * @return $this - */ - public function denyOverwrite(bool $deny = \true) - { - $this->allowOverwrite = !$deny; - return $this; - } - /** - * Returns the related node. - * @return \Symfony\Component\Config\Definition\Builder\NodeDefinition|\Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition|\Symfony\Component\Config\Definition\Builder\VariableNodeDefinition - */ - public function end() - { - return $this->node; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeBuilder.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeBuilder.php deleted file mode 100644 index 2e9d5da88..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeBuilder.php +++ /dev/null @@ -1,170 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -/** - * This class provides a fluent interface for building a node. - * - * @author Johannes M. Schmitt - */ -class NodeBuilder implements NodeParentInterface -{ - protected $parent; - protected $nodeMapping; - public function __construct() - { - $this->nodeMapping = ['variable' => VariableNodeDefinition::class, 'scalar' => ScalarNodeDefinition::class, 'boolean' => BooleanNodeDefinition::class, 'integer' => IntegerNodeDefinition::class, 'float' => FloatNodeDefinition::class, 'array' => ArrayNodeDefinition::class, 'enum' => EnumNodeDefinition::class]; - } - /** - * Set the parent node. - * - * @return $this - */ - public function setParent(ParentNodeDefinitionInterface $parent = null) - { - if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/form', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); - } - $this->parent = $parent; - return $this; - } - /** - * Creates a child array node. - */ - public function arrayNode(string $name) : ArrayNodeDefinition - { - return $this->node($name, 'array'); - } - /** - * Creates a child scalar node. - */ - public function scalarNode(string $name) : ScalarNodeDefinition - { - return $this->node($name, 'scalar'); - } - /** - * Creates a child Boolean node. - */ - public function booleanNode(string $name) : BooleanNodeDefinition - { - return $this->node($name, 'boolean'); - } - /** - * Creates a child integer node. - */ - public function integerNode(string $name) : IntegerNodeDefinition - { - return $this->node($name, 'integer'); - } - /** - * Creates a child float node. - */ - public function floatNode(string $name) : FloatNodeDefinition - { - return $this->node($name, 'float'); - } - /** - * Creates a child EnumNode. - */ - public function enumNode(string $name) : EnumNodeDefinition - { - return $this->node($name, 'enum'); - } - /** - * Creates a child variable node. - */ - public function variableNode(string $name) : VariableNodeDefinition - { - return $this->node($name, 'variable'); - } - /** - * Returns the parent node. - * - * @return NodeDefinition&ParentNodeDefinitionInterface - */ - public function end() - { - return $this->parent; - } - /** - * Creates a child node. - * - * @throws \RuntimeException When the node type is not registered - * @throws \RuntimeException When the node class is not found - */ - public function node(?string $name, string $type) : NodeDefinition - { - $class = $this->getNodeClass($type); - $node = new $class($name); - $this->append($node); - return $node; - } - /** - * Appends a node definition. - * - * Usage: - * - * $node = new ArrayNodeDefinition('name') - * ->children() - * ->scalarNode('foo')->end() - * ->scalarNode('baz')->end() - * ->append($this->getBarNodeDefinition()) - * ->end() - * ; - * - * @return $this - */ - public function append(NodeDefinition $node) - { - if ($node instanceof BuilderAwareInterface) { - $builder = clone $this; - $builder->setParent(null); - $node->setBuilder($builder); - } - if (null !== $this->parent) { - $this->parent->append($node); - // Make this builder the node parent to allow for a fluid interface - $node->setParent($this); - } - return $this; - } - /** - * Adds or overrides a node Type. - * - * @param string $type The name of the type - * @param string $class The fully qualified name the node definition class - * - * @return $this - */ - public function setNodeClass(string $type, string $class) - { - $this->nodeMapping[\strtolower($type)] = $class; - return $this; - } - /** - * Returns the class name of the node definition. - * - * @throws \RuntimeException When the node type is not registered - * @throws \RuntimeException When the node class is not found - */ - protected function getNodeClass(string $type) : string - { - $type = \strtolower($type); - if (!isset($this->nodeMapping[$type])) { - throw new \RuntimeException(\sprintf('The node type "%s" is not registered.', $type)); - } - $class = $this->nodeMapping[$type]; - if (!\class_exists($class)) { - throw new \RuntimeException(\sprintf('The node class "%s" does not exist.', $class)); - } - return $class; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeDefinition.php deleted file mode 100644 index 3ce0635f0..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeDefinition.php +++ /dev/null @@ -1,296 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\BaseNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -use RectorPrefix202308\Symfony\Component\Config\Definition\NodeInterface; -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -abstract class NodeDefinition implements NodeParentInterface -{ - protected $name; - protected $normalization; - protected $validation; - protected $defaultValue; - protected $default = \false; - protected $required = \false; - protected $deprecation = []; - protected $merge; - protected $allowEmptyValue = \true; - protected $nullEquivalent; - protected $trueEquivalent = \true; - protected $falseEquivalent = \false; - protected $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR; - protected $parent; - protected $attributes = []; - public function __construct(?string $name, NodeParentInterface $parent = null) - { - $this->parent = $parent; - $this->name = $name; - } - /** - * Sets the parent node. - * - * @return $this - */ - public function setParent(NodeParentInterface $parent) - { - $this->parent = $parent; - return $this; - } - /** - * Sets info message. - * - * @return $this - */ - public function info(string $info) - { - return $this->attribute('info', $info); - } - /** - * Sets example configuration. - * - * @return $this - * @param string|mixed[] $example - */ - public function example($example) - { - return $this->attribute('example', $example); - } - /** - * Sets an attribute on the node. - * - * @return $this - * @param mixed $value - */ - public function attribute(string $key, $value) - { - $this->attributes[$key] = $value; - return $this; - } - /** - * Returns the parent node. - * @return \Symfony\Component\Config\Definition\Builder\NodeParentInterface|\Symfony\Component\Config\Definition\Builder\NodeBuilder|\Symfony\Component\Config\Definition\Builder\NodeDefinition|\Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition|\Symfony\Component\Config\Definition\Builder\VariableNodeDefinition|null - */ - public function end() - { - return $this->parent; - } - /** - * Creates the node. - */ - public function getNode(bool $forceRootNode = \false) : NodeInterface - { - if ($forceRootNode) { - $this->parent = null; - } - if (null !== $this->normalization) { - $allowedTypes = []; - foreach ($this->normalization->before as $expr) { - $allowedTypes[] = $expr->allowedTypes; - } - $allowedTypes = \array_unique($allowedTypes); - $this->normalization->before = ExprBuilder::buildExpressions($this->normalization->before); - $this->normalization->declaredTypes = $allowedTypes; - } - if (null !== $this->validation) { - $this->validation->rules = ExprBuilder::buildExpressions($this->validation->rules); - } - $node = $this->createNode(); - if ($node instanceof BaseNode) { - $node->setAttributes($this->attributes); - } - return $node; - } - /** - * Sets the default value. - * - * @return $this - * @param mixed $value - */ - public function defaultValue($value) - { - $this->default = \true; - $this->defaultValue = $value; - return $this; - } - /** - * Sets the node as required. - * - * @return $this - */ - public function isRequired() - { - $this->required = \true; - return $this; - } - /** - * Sets the node as deprecated. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message the deprecation message to use - * - * You can use %node% and %path% placeholders in your message to display, - * respectively, the node name and its complete path - * - * @return $this - */ - public function setDeprecated(string $package, string $version, string $message = 'The child node "%node%" at path "%path%" is deprecated.') - { - $this->deprecation = ['package' => $package, 'version' => $version, 'message' => $message]; - return $this; - } - /** - * Sets the equivalent value used when the node contains null. - * - * @return $this - * @param mixed $value - */ - public function treatNullLike($value) - { - $this->nullEquivalent = $value; - return $this; - } - /** - * Sets the equivalent value used when the node contains true. - * - * @return $this - * @param mixed $value - */ - public function treatTrueLike($value) - { - $this->trueEquivalent = $value; - return $this; - } - /** - * Sets the equivalent value used when the node contains false. - * - * @return $this - * @param mixed $value - */ - public function treatFalseLike($value) - { - $this->falseEquivalent = $value; - return $this; - } - /** - * Sets null as the default value. - * - * @return $this - */ - public function defaultNull() - { - return $this->defaultValue(null); - } - /** - * Sets true as the default value. - * - * @return $this - */ - public function defaultTrue() - { - return $this->defaultValue(\true); - } - /** - * Sets false as the default value. - * - * @return $this - */ - public function defaultFalse() - { - return $this->defaultValue(\false); - } - /** - * Sets an expression to run before the normalization. - */ - public function beforeNormalization() : ExprBuilder - { - return $this->normalization()->before(); - } - /** - * Denies the node value being empty. - * - * @return $this - */ - public function cannotBeEmpty() - { - $this->allowEmptyValue = \false; - return $this; - } - /** - * Sets an expression to run for the validation. - * - * The expression receives the value of the node and must return it. It can - * modify it. - * An exception should be thrown when the node is not valid. - */ - public function validate() : ExprBuilder - { - return $this->validation()->rule(); - } - /** - * Sets whether the node can be overwritten. - * - * @return $this - */ - public function cannotBeOverwritten(bool $deny = \true) - { - $this->merge()->denyOverwrite($deny); - return $this; - } - /** - * Gets the builder for validation rules. - */ - protected function validation() : ValidationBuilder - { - return $this->validation = $this->validation ?? new ValidationBuilder($this); - } - /** - * Gets the builder for merging rules. - */ - protected function merge() : MergeBuilder - { - return $this->merge = $this->merge ?? new MergeBuilder($this); - } - /** - * Gets the builder for normalization rules. - */ - protected function normalization() : NormalizationBuilder - { - return $this->normalization = $this->normalization ?? new NormalizationBuilder($this); - } - /** - * Instantiate and configure the node according to this definition. - * - * @throws InvalidDefinitionException When the definition is invalid - */ - protected abstract function createNode() : NodeInterface; - /** - * Set PathSeparator to use. - * - * @return $this - */ - public function setPathSeparator(string $separator) - { - if ($this instanceof ParentNodeDefinitionInterface) { - foreach ($this->getChildNodeDefinitions() as $child) { - $child->setPathSeparator($separator); - } - } - $this->pathSeparator = $separator; - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeParentInterface.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeParentInterface.php deleted file mode 100644 index 4fde29100..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NodeParentInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -/** - * An interface that must be implemented by all node parents. - * - * @author Victor Berchet - */ -interface NodeParentInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php deleted file mode 100644 index e1104785f..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NormalizationBuilder.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -/** - * This class builds normalization conditions. - * - * @author Johannes M. Schmitt - */ -class NormalizationBuilder -{ - protected $node; - public $before = []; - public $declaredTypes = []; - public $remappings = []; - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - /** - * Registers a key to remap to its plural form. - * - * @param string $key The key to remap - * @param string|null $plural The plural of the key in case of irregular plural - * - * @return $this - */ - public function remap(string $key, string $plural = null) - { - $this->remappings[] = [$key, null === $plural ? $key . 's' : $plural]; - return $this; - } - /** - * Registers a closure to run before the normalization or an expression builder to build it if null is provided. - * - * @return ExprBuilder|$this - */ - public function before(\Closure $closure = null) - { - if (null !== $closure) { - $this->before[] = $closure; - return $this; - } - return $this->before[] = new ExprBuilder($this->node); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php deleted file mode 100644 index 558927aa2..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/NumericNodeDefinition.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidDefinitionException; -/** - * Abstract class that contains common code of integer and float node definitions. - * - * @author David Jeanmonod - */ -abstract class NumericNodeDefinition extends ScalarNodeDefinition -{ - protected $min; - protected $max; - /** - * Ensures that the value is smaller than the given reference. - * - * @return $this - * - * @throws \InvalidArgumentException when the constraint is inconsistent - * @param int|float $max - */ - public function max($max) - { - if (isset($this->min) && $this->min > $max) { - throw new \InvalidArgumentException(\sprintf('You cannot define a max(%s) as you already have a min(%s).', $max, $this->min)); - } - $this->max = $max; - return $this; - } - /** - * Ensures that the value is bigger than the given reference. - * - * @return $this - * - * @throws \InvalidArgumentException when the constraint is inconsistent - * @param int|float $min - */ - public function min($min) - { - if (isset($this->max) && $this->max < $min) { - throw new \InvalidArgumentException(\sprintf('You cannot define a min(%s) as you already have a max(%s).', $min, $this->max)); - } - $this->min = $min; - return $this; - } - /** - * @throws InvalidDefinitionException - * @return static - */ - public function cannotBeEmpty() - { - throw new InvalidDefinitionException('->cannotBeEmpty() is not applicable to NumericNodeDefinition.'); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php deleted file mode 100644 index ba088f16a..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ParentNodeDefinitionInterface.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -/** - * An interface that must be implemented by nodes which can have children. - * - * @author Victor Berchet - */ -interface ParentNodeDefinitionInterface extends BuilderAwareInterface -{ - /** - * Returns a builder to add children nodes. - */ - public function children() : NodeBuilder; - /** - * Appends a node definition. - * - * Usage: - * - * $node = $parentNode - * ->children() - * ->scalarNode('foo')->end() - * ->scalarNode('baz')->end() - * ->append($this->getBarNodeDefinition()) - * ->end() - * ; - * - * @return $this - */ - public function append(NodeDefinition $node); - /** - * Gets the child node definitions. - * - * @return NodeDefinition[] - */ - public function getChildNodeDefinitions() : array; -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php deleted file mode 100644 index bb21f27d0..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ScalarNodeDefinition.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode; -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class ScalarNodeDefinition extends VariableNodeDefinition -{ - /** - * Instantiate a Node. - */ - protected function instantiateNode() : \RectorPrefix202308\Symfony\Component\Config\Definition\VariableNode - { - return new ScalarNode($this->name, $this->parent, $this->pathSeparator); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/TreeBuilder.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/TreeBuilder.php deleted file mode 100644 index 2dd42a9a6..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/TreeBuilder.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\NodeInterface; -/** - * This is the entry class for building a config tree. - * - * @author Johannes M. Schmitt - */ -class TreeBuilder implements NodeParentInterface -{ - protected $tree; - protected $root; - public function __construct(string $name, string $type = 'array', NodeBuilder $builder = null) - { - $builder = $builder ?? new NodeBuilder(); - $this->root = $builder->node($name, $type)->setParent($this); - } - /** - * @return NodeDefinition|ArrayNodeDefinition The root node (as an ArrayNodeDefinition when the type is 'array') - */ - public function getRootNode() - { - return $this->root; - } - /** - * Builds the tree. - * - * @throws \RuntimeException - */ - public function buildTree() : NodeInterface - { - if (null !== $this->tree) { - return $this->tree; - } - return $this->tree = $this->root->getNode(\true); - } - /** - * @return void - */ - public function setPathSeparator(string $separator) - { - // unset last built as changing path separator changes all nodes - $this->tree = null; - $this->root->setPathSeparator($separator); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ValidationBuilder.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ValidationBuilder.php deleted file mode 100644 index e64f6a6e2..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/ValidationBuilder.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 RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -/** - * This class builds validation conditions. - * - * @author Christophe Coevoet - */ -class ValidationBuilder -{ - protected $node; - public $rules = []; - public function __construct(NodeDefinition $node) - { - $this->node = $node; - } - /** - * Registers a closure to run as normalization or an expression builder to build it if null is provided. - * - * @return ExprBuilder|$this - */ - public function rule(\Closure $closure = null) - { - if (null !== $closure) { - $this->rules[] = $closure; - return $this; - } - return $this->rules[] = new ExprBuilder($this->node); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php b/vendor/rector/rector/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php deleted file mode 100644 index 09733c7bf..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Builder/VariableNodeDefinition.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Builder; - -use RectorPrefix202308\Symfony\Component\Config\Definition\NodeInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\VariableNode; -/** - * This class provides a fluent interface for defining a node. - * - * @author Johannes M. Schmitt - */ -class VariableNodeDefinition extends NodeDefinition -{ - /** - * Instantiate a Node. - */ - protected function instantiateNode() : VariableNode - { - return new VariableNode($this->name, $this->parent, $this->pathSeparator); - } - protected function createNode() : NodeInterface - { - $node = $this->instantiateNode(); - if (null !== $this->normalization) { - $node->setNormalizationClosures($this->normalization->before); - } - if (null !== $this->merge) { - $node->setAllowOverwrite($this->merge->allowOverwrite); - } - if (\true === $this->default) { - $node->setDefaultValue($this->defaultValue); - } - $node->setAllowEmptyValue($this->allowEmptyValue); - $node->addEquivalentValue(null, $this->nullEquivalent); - $node->addEquivalentValue(\true, $this->trueEquivalent); - $node->addEquivalentValue(\false, $this->falseEquivalent); - $node->setRequired($this->required); - if ($this->deprecation) { - $node->setDeprecated($this->deprecation['package'], $this->deprecation['version'], $this->deprecation['message']); - } - if (null !== $this->validation) { - $node->setFinalValidationClosures($this->validation->rules); - } - return $node; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/ConfigurableInterface.php b/vendor/rector/rector/vendor/symfony/config/Definition/ConfigurableInterface.php deleted file mode 100644 index a6e5b0ed7..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/ConfigurableInterface.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -/** - * @author Yonel Ceruto - */ -interface ConfigurableInterface -{ - /** - * Generates the configuration tree builder. - */ - public function configure(DefinitionConfigurator $definition) : void; -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Configuration.php b/vendor/rector/rector/vendor/symfony/config/Definition/Configuration.php deleted file mode 100644 index 2b883d8c0..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Configuration.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Builder\TreeBuilder; -use RectorPrefix202308\Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -use RectorPrefix202308\Symfony\Component\Config\Definition\Loader\DefinitionFileLoader; -use RectorPrefix202308\Symfony\Component\Config\FileLocator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * @author Yonel Ceruto - * - * @final - */ -class Configuration implements ConfigurationInterface -{ - /** - * @var \Symfony\Component\Config\Definition\ConfigurableInterface - */ - private $subject; - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder|null - */ - private $container; - /** - * @var string - */ - private $alias; - public function __construct(ConfigurableInterface $subject, ?ContainerBuilder $container, string $alias) - { - $this->subject = $subject; - $this->container = $container; - $this->alias = $alias; - } - public function getConfigTreeBuilder() : TreeBuilder - { - $treeBuilder = new TreeBuilder($this->alias); - $file = (new \ReflectionObject($this->subject))->getFileName(); - $loader = new DefinitionFileLoader($treeBuilder, new FileLocator(\dirname($file)), $this->container); - $configurator = new DefinitionConfigurator($treeBuilder, $loader, $file, $file); - $this->subject->configure($configurator); - return $treeBuilder; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/ConfigurationInterface.php b/vendor/rector/rector/vendor/symfony/config/Definition/ConfigurationInterface.php deleted file mode 100644 index 66f03b91a..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/ConfigurationInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Builder\TreeBuilder; -/** - * Configuration interface. - * - * @author Victor Berchet - */ -interface ConfigurationInterface -{ - /** - * Generates the configuration tree builder. - * - * @return TreeBuilder - */ - public function getConfigTreeBuilder(); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php b/vendor/rector/rector/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php deleted file mode 100644 index edd76d16e..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Configurator/DefinitionConfigurator.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Configurator; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition; -use RectorPrefix202308\Symfony\Component\Config\Definition\Builder\NodeDefinition; -use RectorPrefix202308\Symfony\Component\Config\Definition\Builder\TreeBuilder; -use RectorPrefix202308\Symfony\Component\Config\Definition\Loader\DefinitionFileLoader; -/** - * @author Yonel Ceruto - */ -class DefinitionConfigurator -{ - /** - * @var \Symfony\Component\Config\Definition\Builder\TreeBuilder - */ - private $treeBuilder; - /** - * @var \Symfony\Component\Config\Definition\Loader\DefinitionFileLoader - */ - private $loader; - /** - * @var string - */ - private $path; - /** - * @var string - */ - private $file; - public function __construct(TreeBuilder $treeBuilder, DefinitionFileLoader $loader, string $path, string $file) - { - $this->treeBuilder = $treeBuilder; - $this->loader = $loader; - $this->path = $path; - $this->file = $file; - } - public function import(string $resource, string $type = null, bool $ignoreErrors = \false) : void - { - $this->loader->setCurrentDir(\dirname($this->path)); - $this->loader->import($resource, $type, $ignoreErrors, $this->file); - } - /** - * @return \Symfony\Component\Config\Definition\Builder\NodeDefinition|\Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition - */ - public function rootNode() - { - return $this->treeBuilder->getRootNode(); - } - public function setPathSeparator(string $separator) : void - { - $this->treeBuilder->setPathSeparator($separator); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php b/vendor/rector/rector/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php deleted file mode 100644 index a60761609..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Dumper/XmlReferenceDumper.php +++ /dev/null @@ -1,262 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Dumper; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ArrayNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\BaseNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\BooleanNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\EnumNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\FloatNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\IntegerNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\NodeInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\PrototypedArrayNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode; -/** - * Dumps an XML reference configuration for the given configuration/node instance. - * - * @author Wouter J - */ -class XmlReferenceDumper -{ - /** - * @var string|null - */ - private $reference; - /** - * @return string - */ - public function dump(ConfigurationInterface $configuration, string $namespace = null) - { - return $this->dumpNode($configuration->getConfigTreeBuilder()->buildTree(), $namespace); - } - /** - * @return string - */ - public function dumpNode(NodeInterface $node, string $namespace = null) - { - $this->reference = ''; - $this->writeNode($node, 0, \true, $namespace); - $ref = $this->reference; - $this->reference = null; - return $ref; - } - private function writeNode(NodeInterface $node, int $depth = 0, bool $root = \false, string $namespace = null) : void - { - $rootName = $root ? 'config' : $node->getName(); - $rootNamespace = $namespace ?: ($root ? 'http://example.org/schema/dic/' . $node->getName() : null); - // xml remapping - if ($node->getParent()) { - $remapping = \array_filter($node->getParent()->getXmlRemappings(), function (array $mapping) use($rootName) { - return $rootName === $mapping[1]; - }); - if (\count($remapping)) { - [$singular] = \current($remapping); - $rootName = $singular; - } - } - $rootName = \str_replace('_', '-', $rootName); - $rootAttributes = []; - $rootAttributeComments = []; - $rootChildren = []; - $rootComments = []; - if ($node instanceof ArrayNode) { - $children = $node->getChildren(); - // comments about the root node - if ($rootInfo = $node->getInfo()) { - $rootComments[] = $rootInfo; - } - if ($rootNamespace) { - $rootComments[] = 'Namespace: ' . $rootNamespace; - } - // render prototyped nodes - if ($node instanceof PrototypedArrayNode) { - $prototype = $node->getPrototype(); - $info = 'prototype'; - if (null !== $prototype->getInfo()) { - $info .= ': ' . $prototype->getInfo(); - } - \array_unshift($rootComments, $info); - if ($key = $node->getKeyAttribute()) { - $rootAttributes[$key] = \str_replace('-', ' ', $rootName) . ' ' . $key; - } - if ($prototype instanceof PrototypedArrayNode) { - $prototype->setName($key ?? ''); - $children = [$key => $prototype]; - } elseif ($prototype instanceof ArrayNode) { - $children = $prototype->getChildren(); - } else { - if ($prototype->hasDefaultValue()) { - $prototypeValue = $prototype->getDefaultValue(); - } else { - switch (\get_class($prototype)) { - case ScalarNode::class: - $prototypeValue = 'scalar value'; - break; - case FloatNode::class: - case IntegerNode::class: - $prototypeValue = 'numeric value'; - break; - case BooleanNode::class: - $prototypeValue = 'true|false'; - break; - case EnumNode::class: - $prototypeValue = $prototype->getPermissibleValues('|'); - break; - default: - $prototypeValue = 'value'; - break; - } - } - } - } - // get attributes and elements - foreach ($children as $child) { - if ($child instanceof ArrayNode) { - // get elements - $rootChildren[] = $child; - continue; - } - // get attributes - // metadata - $name = \str_replace('_', '-', $child->getName()); - $value = '%%%%not_defined%%%%'; - // use a string which isn't used in the normal world - // comments - $comments = []; - if ($child instanceof BaseNode && ($info = $child->getInfo())) { - $comments[] = $info; - } - if ($child instanceof BaseNode && ($example = $child->getExample())) { - $comments[] = 'Example: ' . (\is_array($example) ? \implode(', ', $example) : $example); - } - if ($child->isRequired()) { - $comments[] = 'Required'; - } - if ($child instanceof BaseNode && $child->isDeprecated()) { - $deprecation = $child->getDeprecation($child->getName(), $node->getPath()); - $comments[] = \sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '') . $deprecation['message']); - } - if ($child instanceof EnumNode) { - $comments[] = 'One of ' . $child->getPermissibleValues('; '); - } - if (\count($comments)) { - $rootAttributeComments[$name] = \implode(";\n", $comments); - } - // default values - if ($child->hasDefaultValue()) { - $value = $child->getDefaultValue(); - } - // append attribute - $rootAttributes[$name] = $value; - } - } - // render comments - // root node comment - if (\count($rootComments)) { - foreach ($rootComments as $comment) { - $this->writeLine('', $depth); - } - } - // attribute comments - if (\count($rootAttributeComments)) { - foreach ($rootAttributeComments as $attrName => $comment) { - $commentDepth = $depth + 4 + \strlen($attrName) + 2; - $commentLines = \explode("\n", $comment); - $multiline = \count($commentLines) > 1; - $comment = \implode(\PHP_EOL . \str_repeat(' ', $commentDepth), $commentLines); - if ($multiline) { - $this->writeLine('', $depth); - } else { - $this->writeLine('', $depth); - } - } - } - // render start tag + attributes - $rootIsVariablePrototype = isset($prototypeValue); - $rootIsEmptyTag = 0 === \count($rootChildren) && !$rootIsVariablePrototype; - $rootOpenTag = '<' . $rootName; - if (1 >= ($attributesCount = \count($rootAttributes))) { - if (1 === $attributesCount) { - $rootOpenTag .= \sprintf(' %s="%s"', \current(\array_keys($rootAttributes)), $this->writeValue(\current($rootAttributes))); - } - $rootOpenTag .= $rootIsEmptyTag ? ' />' : '>'; - if ($rootIsVariablePrototype) { - $rootOpenTag .= $prototypeValue . ''; - } - $this->writeLine($rootOpenTag, $depth); - } else { - $this->writeLine($rootOpenTag, $depth); - $i = 1; - foreach ($rootAttributes as $attrName => $attrValue) { - $attr = \sprintf('%s="%s"', $attrName, $this->writeValue($attrValue)); - $this->writeLine($attr, $depth + 4); - if ($attributesCount === $i++) { - $this->writeLine($rootIsEmptyTag ? '/>' : '>', $depth); - if ($rootIsVariablePrototype) { - $rootOpenTag .= $prototypeValue . ''; - } - } - } - } - // render children tags - foreach ($rootChildren as $child) { - $this->writeLine(''); - $this->writeNode($child, $depth + 4); - } - // render end tag - if (!$rootIsEmptyTag && !$rootIsVariablePrototype) { - $this->writeLine(''); - $rootEndTag = ''; - $this->writeLine($rootEndTag, $depth); - } - } - /** - * Outputs a single config reference line. - */ - private function writeLine(string $text, int $indent = 0) : void - { - $indent = \strlen($text) + $indent; - $format = '%' . $indent . 's'; - $this->reference .= \sprintf($format, $text) . \PHP_EOL; - } - /** - * Renders the string conversion of the value. - * @param mixed $value - */ - private function writeValue($value) : string - { - if ('%%%%not_defined%%%%' === $value) { - return ''; - } - if (\is_string($value) || \is_numeric($value)) { - return $value; - } - if (\false === $value) { - return 'false'; - } - if (\true === $value) { - return 'true'; - } - if (null === $value) { - return 'null'; - } - if (empty($value)) { - return ''; - } - if (\is_array($value)) { - return \implode(',', $value); - } - return ''; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php b/vendor/rector/rector/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php deleted file mode 100644 index 83d46c2c4..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Dumper/YamlReferenceDumper.php +++ /dev/null @@ -1,232 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Dumper; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ArrayNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\BaseNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\EnumNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\NodeInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\PrototypedArrayNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\ScalarNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\VariableNode; -use RectorPrefix202308\Symfony\Component\Yaml\Inline; -/** - * Dumps a Yaml reference configuration for the given configuration/node instance. - * - * @author Kevin Bond - */ -class YamlReferenceDumper -{ - /** - * @var string|null - */ - private $reference; - /** - * @return string - */ - public function dump(ConfigurationInterface $configuration) - { - return $this->dumpNode($configuration->getConfigTreeBuilder()->buildTree()); - } - /** - * @return string - */ - public function dumpAtPath(ConfigurationInterface $configuration, string $path) - { - $rootNode = $node = $configuration->getConfigTreeBuilder()->buildTree(); - foreach (\explode('.', $path) as $step) { - if (!$node instanceof ArrayNode) { - throw new \UnexpectedValueException(\sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path)); - } - /** @var NodeInterface[] $children */ - $children = $node instanceof PrototypedArrayNode ? $this->getPrototypeChildren($node) : $node->getChildren(); - foreach ($children as $child) { - if ($child->getName() === $step) { - $node = $child; - continue 2; - } - } - throw new \UnexpectedValueException(\sprintf('Unable to find node at path "%s.%s".', $rootNode->getName(), $path)); - } - return $this->dumpNode($node); - } - /** - * @return string - */ - public function dumpNode(NodeInterface $node) - { - $this->reference = ''; - $this->writeNode($node); - $ref = $this->reference; - $this->reference = null; - return $ref; - } - private function writeNode(NodeInterface $node, NodeInterface $parentNode = null, int $depth = 0, bool $prototypedArray = \false) : void - { - $comments = []; - $default = ''; - $defaultArray = null; - $children = null; - $example = null; - if ($node instanceof BaseNode) { - $example = $node->getExample(); - } - // defaults - if ($node instanceof ArrayNode) { - $children = $node->getChildren(); - if ($node instanceof PrototypedArrayNode) { - $children = $this->getPrototypeChildren($node); - } - if (!$children) { - if ($node->hasDefaultValue() && \count($defaultArray = $node->getDefaultValue())) { - $default = ''; - } elseif (!\is_array($example)) { - $default = '[]'; - } - } - } elseif ($node instanceof EnumNode) { - $comments[] = 'One of ' . $node->getPermissibleValues('; '); - $default = $node->hasDefaultValue() ? Inline::dump($node->getDefaultValue()) : '~'; - } elseif (VariableNode::class === \get_class($node) && \is_array($example)) { - // If there is an array example, we are sure we dont need to print a default value - $default = ''; - } else { - $default = '~'; - if ($node->hasDefaultValue()) { - $default = $node->getDefaultValue(); - if (\is_array($default)) { - if (\count($defaultArray = $node->getDefaultValue())) { - $default = ''; - } elseif (!\is_array($example)) { - $default = '[]'; - } - } else { - $default = Inline::dump($default); - } - } - } - // required? - if ($node->isRequired()) { - $comments[] = 'Required'; - } - // deprecated? - if ($node instanceof BaseNode && $node->isDeprecated()) { - $deprecation = $node->getDeprecation($node->getName(), $parentNode ? $parentNode->getPath() : $node->getPath()); - $comments[] = \sprintf('Deprecated (%s)', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '') . $deprecation['message']); - } - // example - if ($example && !\is_array($example)) { - $comments[] = 'Example: ' . Inline::dump($example); - } - $default = '' != (string) $default ? ' ' . $default : ''; - $comments = \count($comments) ? '# ' . \implode(', ', $comments) : ''; - $key = $prototypedArray ? '-' : $node->getName() . ':'; - $text = \rtrim(\sprintf('%-21s%s %s', $key, $default, $comments), ' '); - if ($node instanceof BaseNode && ($info = $node->getInfo())) { - $this->writeLine(''); - // indenting multi-line info - $info = \str_replace("\n", \sprintf("\n%" . $depth * 4 . 's# ', ' '), $info); - $this->writeLine('# ' . $info, $depth * 4); - } - $this->writeLine($text, $depth * 4); - // output defaults - if ($defaultArray) { - $this->writeLine(''); - $message = \count($defaultArray) > 1 ? 'Defaults' : 'Default'; - $this->writeLine('# ' . $message . ':', $depth * 4 + 4); - $this->writeArray($defaultArray, $depth + 1); - } - if (\is_array($example)) { - $this->writeLine(''); - $message = \count($example) > 1 ? 'Examples' : 'Example'; - $this->writeLine('# ' . $message . ':', $depth * 4 + 4); - $this->writeArray(\array_map(\Closure::fromCallable([Inline::class, 'dump']), $example), $depth + 1); - } - if ($children) { - foreach ($children as $childNode) { - $this->writeNode($childNode, $node, $depth + 1, $node instanceof PrototypedArrayNode && !$node->getKeyAttribute()); - } - } - } - /** - * Outputs a single config reference line. - */ - private function writeLine(string $text, int $indent = 0) : void - { - $indent = \strlen($text) + $indent; - $format = '%' . $indent . 's'; - $this->reference .= \sprintf($format, $text) . "\n"; - } - private function writeArray(array $array, int $depth) : void - { - $arrayIsList = function (array $array) : bool { - if (\function_exists('array_is_list')) { - return \array_is_list($array); - } - if ($array === []) { - return \true; - } - $current_key = 0; - foreach ($array as $key => $noop) { - if ($key !== $current_key) { - return \false; - } - ++$current_key; - } - return \true; - }; - $isIndexed = $arrayIsList($array); - foreach ($array as $key => $value) { - if (\is_array($value)) { - $val = ''; - } else { - $val = $value; - } - if ($isIndexed) { - $this->writeLine('- ' . $val, $depth * 4); - } else { - $this->writeLine(\sprintf('%-20s %s', $key . ':', $val), $depth * 4); - } - if (\is_array($value)) { - $this->writeArray($value, $depth + 1); - } - } - } - private function getPrototypeChildren(PrototypedArrayNode $node) : array - { - $prototype = $node->getPrototype(); - $key = $node->getKeyAttribute(); - // Do not expand prototype if it isn't an array node nor uses attribute as key - if (!$key && !$prototype instanceof ArrayNode) { - return $node->getChildren(); - } - if ($prototype instanceof ArrayNode) { - $keyNode = new ArrayNode($key, $node); - $children = $prototype->getChildren(); - if ($prototype instanceof PrototypedArrayNode && $prototype->getKeyAttribute()) { - $children = $this->getPrototypeChildren($prototype); - } - // add children - foreach ($children as $childNode) { - $keyNode->addChild($childNode); - } - } else { - $keyNode = new ScalarNode($key, $node); - } - $info = 'Prototype'; - if (null !== $prototype->getInfo()) { - $info .= ': ' . $prototype->getInfo(); - } - $keyNode->setInfo($info); - return [$key => $keyNode]; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/EnumNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/EnumNode.php deleted file mode 100644 index 46831931c..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/EnumNode.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -/** - * Node which only allows a finite set of values. - * - * @author Johannes M. Schmitt - */ -class EnumNode extends ScalarNode -{ - /** - * @var mixed[] - */ - private $values; - public function __construct(?string $name, NodeInterface $parent = null, array $values = [], string $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR) - { - if (!$values) { - throw new \InvalidArgumentException('$values must contain at least one element.'); - } - foreach ($values as $value) { - if (null === $value || \is_scalar($value)) { - continue; - } - if (!$value instanceof \UnitEnum) { - throw new \InvalidArgumentException(\sprintf('"%s" only supports scalar, enum, or null values, "%s" given.', __CLASS__, \get_debug_type($value))); - } - if (\get_class($value) !== ($enumClass = $enumClass ?? \get_class($value))) { - throw new \InvalidArgumentException(\sprintf('"%s" only supports one type of enum, "%s" and "%s" passed.', __CLASS__, $enumClass, \get_class($value))); - } - } - parent::__construct($name, $parent, $pathSeparator); - $this->values = $values; - } - /** - * @return array - */ - public function getValues() - { - return $this->values; - } - /** - * @internal - */ - public function getPermissibleValues(string $separator) : string - { - return \implode($separator, \array_unique(\array_map(static function ($value) : string { - if (!$value instanceof \UnitEnum) { - return \json_encode($value); - } - return \ltrim(\var_export($value, \true), '\\'); - }, $this->values))); - } - /** - * @return void - * @param mixed $value - */ - protected function validateType($value) - { - if ($value instanceof \UnitEnum) { - return; - } - parent::validateType($value); - } - /** - * @param mixed $value - * @return mixed - */ - protected function finalizeValue($value) - { - $value = parent::finalizeValue($value); - if (!\in_array($value, $this->values, \true)) { - $ex = new InvalidConfigurationException(\sprintf('The value %s is not allowed for path "%s". Permissible values: %s', \json_encode($value), $this->getPath(), $this->getPermissibleValues(', '))); - $ex->setPath($this->getPath()); - throw $ex; - } - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php b/vendor/rector/rector/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php deleted file mode 100644 index 5274b415d..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/DuplicateKeyException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown whenever the key of an array is not unique. This can - * only be the case if the configuration is coming from an XML file. - * - * @author Johannes M. Schmitt - */ -class DuplicateKeyException extends InvalidConfigurationException -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/Exception.php b/vendor/rector/rector/vendor/symfony/config/Definition/Exception/Exception.php deleted file mode 100644 index 0de71de84..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/Exception.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Exception; - -/** - * Base exception for all configuration exceptions. - * - * @author Johannes M. Schmitt - */ -class Exception extends \RuntimeException -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php b/vendor/rector/rector/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php deleted file mode 100644 index 5934f1f8f..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/ForbiddenOverwriteException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown when a configuration path is overwritten from a - * subsequent configuration file, but the entry node specifically forbids this. - * - * @author Johannes M. Schmitt - */ -class ForbiddenOverwriteException extends InvalidConfigurationException -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php b/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php deleted file mode 100644 index d4970ced8..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidConfigurationException.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Exception; - -/** - * A very general exception which can be thrown whenever non of the more specific - * exceptions is suitable. - * - * @author Johannes M. Schmitt - */ -class InvalidConfigurationException extends Exception -{ - /** - * @var string|null - */ - private $path; - /** - * @var bool - */ - private $containsHints = \false; - /** - * @return void - */ - public function setPath(string $path) - { - $this->path = $path; - } - public function getPath() : ?string - { - return $this->path; - } - /** - * Adds extra information that is suffixed to the original exception message. - * - * @return void - */ - public function addHint(string $hint) - { - if (!$this->containsHints) { - $this->message .= "\nHint: " . $hint; - $this->containsHints = \true; - } else { - $this->message .= ', ' . $hint; - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php b/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php deleted file mode 100644 index a581d2c0d..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidDefinitionException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Exception; - -/** - * Thrown when an error is detected in a node Definition. - * - * @author Victor Berchet - */ -class InvalidDefinitionException extends Exception -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidTypeException.php b/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidTypeException.php deleted file mode 100644 index 88fcd9ec4..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/InvalidTypeException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Exception; - -/** - * This exception is thrown if an invalid type is encountered. - * - * @author Johannes M. Schmitt - */ -class InvalidTypeException extends InvalidConfigurationException -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/UnsetKeyException.php b/vendor/rector/rector/vendor/symfony/config/Definition/Exception/UnsetKeyException.php deleted file mode 100644 index d3214518a..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Exception/UnsetKeyException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Exception; - -/** - * This exception is usually not encountered by the end-user, but only used - * internally to signal the parent scope to unset a key. - * - * @author Johannes M. Schmitt - */ -class UnsetKeyException extends Exception -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/FloatNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/FloatNode.php deleted file mode 100644 index 90874817c..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/FloatNode.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidTypeException; -/** - * This node represents a float value in the config tree. - * - * @author Jeanmonod David - */ -class FloatNode extends NumericNode -{ - /** - * @return void - * @param mixed $value - */ - protected function validateType($value) - { - // Integers are also accepted, we just cast them - if (\is_int($value)) { - $value = (float) $value; - } - if (!\is_float($value)) { - $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "float", but got "%s".', $this->getPath(), \get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - throw $ex; - } - } - protected function getValidPlaceholderTypes() : array - { - return ['float']; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/IntegerNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/IntegerNode.php deleted file mode 100644 index 907370bac..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/IntegerNode.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 RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidTypeException; -/** - * This node represents an integer value in the config tree. - * - * @author Jeanmonod David - */ -class IntegerNode extends NumericNode -{ - /** - * @return void - * @param mixed $value - */ - protected function validateType($value) - { - if (!\is_int($value)) { - $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "int", but got "%s".', $this->getPath(), \get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - throw $ex; - } - } - protected function getValidPlaceholderTypes() : array - { - return ['int']; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php b/vendor/rector/rector/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php deleted file mode 100644 index 7d3d5bb5b..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Loader/DefinitionFileLoader.php +++ /dev/null @@ -1,106 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Builder\TreeBuilder; -use RectorPrefix202308\Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -use RectorPrefix202308\Symfony\Component\Config\FileLocatorInterface; -use RectorPrefix202308\Symfony\Component\Config\Loader\FileLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * DefinitionFileLoader loads config definitions from a PHP file. - * - * The PHP file is required. - * - * @author Yonel Ceruto - */ -class DefinitionFileLoader extends FileLoader -{ - /** - * @var \Symfony\Component\Config\Definition\Builder\TreeBuilder - */ - private $treeBuilder; - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder|null - */ - private $container; - public function __construct(TreeBuilder $treeBuilder, FileLocatorInterface $locator, ?ContainerBuilder $container = null) - { - $this->treeBuilder = $treeBuilder; - $this->container = $container; - parent::__construct($locator); - } - /** - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - // the loader variable is exposed to the included file below - $loader = $this; - $path = $this->locator->locate($resource); - $this->setCurrentDir(\dirname($path)); - ($nullsafeVariable1 = $this->container) ? $nullsafeVariable1->fileExists($path) : null; - // the closure forbids access to the private scope in the included file - $load = \Closure::bind(static function ($file) use($loader) { - return include $file; - }, null, ProtectedDefinitionFileLoader::class); - $callback = $load($path); - if (\is_object($callback) && \is_callable($callback)) { - $this->executeCallback($callback, new DefinitionConfigurator($this->treeBuilder, $this, $path, $resource), $path); - } - return null; - } - /** - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - if (!\is_string($resource)) { - return \false; - } - if (null === $type && 'php' === \pathinfo($resource, \PATHINFO_EXTENSION)) { - return \true; - } - return 'php' === $type; - } - private function executeCallback(callable $callback, DefinitionConfigurator $configurator, string $path) : void - { - $callback = \Closure::fromCallable($callback); - $arguments = []; - $r = new \ReflectionFunction($callback); - foreach ($r->getParameters() as $parameter) { - $reflectionType = $parameter->getType(); - if (!$reflectionType instanceof \ReflectionNamedType) { - throw new \InvalidArgumentException(\sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s").', $parameter->getName(), $path, DefinitionConfigurator::class)); - } - switch ($reflectionType->getName()) { - case DefinitionConfigurator::class: - $arguments[] = $configurator; - break; - case TreeBuilder::class: - $arguments[] = $this->treeBuilder; - break; - case FileLoader::class: - case self::class: - $arguments[] = $this; - break; - } - } - $callback(...$arguments); - } -} -/** - * @internal - */ -final class ProtectedDefinitionFileLoader extends DefinitionFileLoader -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/NodeInterface.php b/vendor/rector/rector/vendor/symfony/config/Definition/NodeInterface.php deleted file mode 100644 index 797bfc011..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/NodeInterface.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidTypeException; -/** - * Common Interface among all nodes. - * - * In most cases, it is better to inherit from BaseNode instead of implementing - * this interface yourself. - * - * @author Johannes M. Schmitt - */ -interface NodeInterface -{ - /** - * Returns the name of the node. - */ - public function getName() : string; - /** - * Returns the path of the node. - */ - public function getPath() : string; - /** - * Returns true when the node is required. - */ - public function isRequired() : bool; - /** - * Returns true when the node has a default value. - */ - public function hasDefaultValue() : bool; - /** - * Returns the default value of the node. - * - * @throws \RuntimeException if the node has no default value - * @return mixed - */ - public function getDefaultValue(); - /** - * Normalizes a value. - * - * @throws InvalidTypeException if the value type is invalid - * @param mixed $value - * @return mixed - */ - public function normalize($value); - /** - * Merges two values together. - * - * @throws ForbiddenOverwriteException if the configuration path cannot be overwritten - * @throws InvalidTypeException if the value type is invalid - * @param mixed $leftSide - * @param mixed $rightSide - * @return mixed - */ - public function merge($leftSide, $rightSide); - /** - * Finalizes a value. - * - * @throws InvalidTypeException if the value type is invalid - * @throws InvalidConfigurationException if the value is invalid configuration - * @param mixed $value - * @return mixed - */ - public function finalize($value); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/NumericNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/NumericNode.php deleted file mode 100644 index dac659f4b..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/NumericNode.php +++ /dev/null @@ -1,62 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -/** - * This node represents a numeric value in the config tree. - * - * @author David Jeanmonod - */ -class NumericNode extends ScalarNode -{ - protected $min; - protected $max; - /** - * @param int|float $min - * @param int|float $max - */ - public function __construct(?string $name, NodeInterface $parent = null, $min = null, $max = null, string $pathSeparator = BaseNode::DEFAULT_PATH_SEPARATOR) - { - parent::__construct($name, $parent, $pathSeparator); - $this->min = $min; - $this->max = $max; - } - /** - * @param mixed $value - * @return mixed - */ - protected function finalizeValue($value) - { - $value = parent::finalizeValue($value); - $errorMsg = null; - if (isset($this->min) && $value < $this->min) { - $errorMsg = \sprintf('The value %s is too small for path "%s". Should be greater than or equal to %s', $value, $this->getPath(), $this->min); - } - if (isset($this->max) && $value > $this->max) { - $errorMsg = \sprintf('The value %s is too big for path "%s". Should be less than or equal to %s', $value, $this->getPath(), $this->max); - } - if (isset($errorMsg)) { - $ex = new InvalidConfigurationException($errorMsg); - $ex->setPath($this->getPath()); - throw $ex; - } - return $value; - } - /** - * @param mixed $value - */ - protected function isValueEmpty($value) : bool - { - // a numeric value cannot be empty - return \false; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/Processor.php b/vendor/rector/rector/vendor/symfony/config/Definition/Processor.php deleted file mode 100644 index 1df804b74..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/Processor.php +++ /dev/null @@ -1,81 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -/** - * This class is the entry point for config normalization/merging/finalization. - * - * @author Johannes M. Schmitt - * - * @final - */ -class Processor -{ - /** - * Processes an array of configurations. - * - * @param array $configs An array of configuration items to process - */ - public function process(NodeInterface $configTree, array $configs) : array - { - $currentConfig = []; - foreach ($configs as $config) { - $config = $configTree->normalize($config); - $currentConfig = $configTree->merge($currentConfig, $config); - } - return $configTree->finalize($currentConfig); - } - /** - * Processes an array of configurations. - * - * @param array $configs An array of configuration items to process - */ - public function processConfiguration(ConfigurationInterface $configuration, array $configs) : array - { - return $this->process($configuration->getConfigTreeBuilder()->buildTree(), $configs); - } - /** - * Normalizes a configuration entry. - * - * This method returns a normalize configuration array for a given key - * to remove the differences due to the original format (YAML and XML mainly). - * - * Here is an example. - * - * The configuration in XML: - * - * twig.extension.foo - * twig.extension.bar - * - * And the same configuration in YAML: - * - * extensions: ['twig.extension.foo', 'twig.extension.bar'] - * - * @param array $config A config array - * @param string $key The key to normalize - * @param string|null $plural The plural form of the key if it is irregular - */ - public static function normalizeConfig(array $config, string $key, string $plural = null) : array - { - $plural = $plural ?? $key . 's'; - if (isset($config[$plural])) { - return $config[$plural]; - } - if (isset($config[$key])) { - if (\is_string($config[$key]) || !\is_int(\key($config[$key]))) { - // only one - return [$config[$key]]; - } - return $config[$key]; - } - return []; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/PrototypeNodeInterface.php b/vendor/rector/rector/vendor/symfony/config/Definition/PrototypeNodeInterface.php deleted file mode 100644 index 651c4abd8..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/PrototypeNodeInterface.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -/** - * This interface must be implemented by nodes which can be used as prototypes. - * - * @author Johannes M. Schmitt - */ -interface PrototypeNodeInterface extends NodeInterface -{ - /** - * Sets the name of the node. - * - * @return void - */ - public function setName(string $name); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/PrototypedArrayNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/PrototypedArrayNode.php deleted file mode 100644 index 30a5f06a2..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/PrototypedArrayNode.php +++ /dev/null @@ -1,348 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\DuplicateKeyException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\Exception; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\UnsetKeyException; -/** - * Represents a prototyped Array node in the config tree. - * - * @author Johannes M. Schmitt - */ -class PrototypedArrayNode extends ArrayNode -{ - protected $prototype; - protected $keyAttribute; - protected $removeKeyAttribute = \false; - protected $minNumberOfElements = 0; - protected $defaultValue = []; - protected $defaultChildren; - /** - * @var NodeInterface[] An array of the prototypes of the simplified value children - */ - private $valuePrototypes = []; - /** - * Sets the minimum number of elements that a prototype based node must - * contain. By default this is zero, meaning no elements. - * - * @return void - */ - public function setMinNumberOfElements(int $number) - { - $this->minNumberOfElements = $number; - } - /** - * Sets the attribute which value is to be used as key. - * - * This is useful when you have an indexed array that should be an - * associative array. You can select an item from within the array - * to be the key of the particular item. For example, if "id" is the - * "key", then: - * - * [ - * ['id' => 'my_name', 'foo' => 'bar'], - * ]; - * - * becomes - * - * [ - * 'my_name' => ['foo' => 'bar'], - * ]; - * - * If you'd like "'id' => 'my_name'" to still be present in the resulting - * array, then you can set the second argument of this method to false. - * - * @param string $attribute The name of the attribute which value is to be used as a key - * @param bool $remove Whether or not to remove the key - * - * @return void - */ - public function setKeyAttribute(string $attribute, bool $remove = \true) - { - $this->keyAttribute = $attribute; - $this->removeKeyAttribute = $remove; - } - /** - * Retrieves the name of the attribute which value should be used as key. - */ - public function getKeyAttribute() : ?string - { - return $this->keyAttribute; - } - /** - * Sets the default value of this node. - * - * @return void - */ - public function setDefaultValue(array $value) - { - $this->defaultValue = $value; - } - public function hasDefaultValue() : bool - { - return \true; - } - /** - * Adds default children when none are set. - * - * @param int|string|array|null $children The number of children|The child name|The children names to be added - * - * @return void - */ - public function setAddChildrenIfNoneSet($children = ['defaults']) - { - if (null === $children) { - $this->defaultChildren = ['defaults']; - } else { - $this->defaultChildren = \is_int($children) && $children > 0 ? \range(1, $children) : (array) $children; - } - } - /** - * The default value could be either explicited or derived from the prototype - * default value. - * @return mixed - */ - public function getDefaultValue() - { - if (null !== $this->defaultChildren) { - $default = $this->prototype->hasDefaultValue() ? $this->prototype->getDefaultValue() : []; - $defaults = []; - foreach (\array_values($this->defaultChildren) as $i => $name) { - $defaults[null === $this->keyAttribute ? $i : $name] = $default; - } - return $defaults; - } - return $this->defaultValue; - } - /** - * Sets the node prototype. - * - * @return void - */ - public function setPrototype(PrototypeNodeInterface $node) - { - $this->prototype = $node; - } - /** - * Retrieves the prototype. - */ - public function getPrototype() : PrototypeNodeInterface - { - return $this->prototype; - } - /** - * Disable adding concrete children for prototyped nodes. - * - * @return never - * - * @throws Exception - */ - public function addChild(NodeInterface $node) - { - throw new Exception('A prototyped array node cannot have concrete children.'); - } - /** - * @param mixed $value - * @return mixed - */ - protected function finalizeValue($value) - { - if (\false === $value) { - throw new UnsetKeyException(\sprintf('Unsetting key for path "%s", value: %s.', $this->getPath(), \json_encode($value))); - } - foreach ($value as $k => $v) { - $prototype = $this->getPrototypeForChild($k); - try { - $value[$k] = $prototype->finalize($v); - } catch (UnsetKeyException $exception) { - unset($value[$k]); - } - } - if (\count($value) < $this->minNumberOfElements) { - $ex = new InvalidConfigurationException(\sprintf('The path "%s" should have at least %d element(s) defined.', $this->getPath(), $this->minNumberOfElements)); - $ex->setPath($this->getPath()); - throw $ex; - } - return $value; - } - /** - * @throws DuplicateKeyException - * @param mixed $value - * @return mixed - */ - protected function normalizeValue($value) - { - if (\false === $value) { - return $value; - } - $value = $this->remapXml($value); - $arrayIsList = function (array $array) : bool { - if (\function_exists('array_is_list')) { - return \array_is_list($array); - } - if ($array === []) { - return \true; - } - $current_key = 0; - foreach ($array as $key => $noop) { - if ($key !== $current_key) { - return \false; - } - ++$current_key; - } - return \true; - }; - $isList = $arrayIsList($value); - $normalized = []; - foreach ($value as $k => $v) { - if (null !== $this->keyAttribute && \is_array($v)) { - if (!isset($v[$this->keyAttribute]) && \is_int($k) && $isList) { - $ex = new InvalidConfigurationException(\sprintf('The attribute "%s" must be set for path "%s".', $this->keyAttribute, $this->getPath())); - $ex->setPath($this->getPath()); - throw $ex; - } elseif (isset($v[$this->keyAttribute])) { - $k = $v[$this->keyAttribute]; - if (\is_float($k)) { - $k = \var_export($k, \true); - } - // remove the key attribute when required - if ($this->removeKeyAttribute) { - unset($v[$this->keyAttribute]); - } - // if only "value" is left - if (\array_keys($v) === ['value']) { - $v = $v['value']; - if ($this->prototype instanceof ArrayNode && ($children = $this->prototype->getChildren()) && \array_key_exists('value', $children)) { - $valuePrototype = \current($this->valuePrototypes) ?: clone $children['value']; - $valuePrototype->parent = $this; - $originalClosures = $this->prototype->normalizationClosures; - if (\is_array($originalClosures)) { - $valuePrototypeClosures = $valuePrototype->normalizationClosures; - $valuePrototype->normalizationClosures = \is_array($valuePrototypeClosures) ? \array_merge($originalClosures, $valuePrototypeClosures) : $originalClosures; - } - $this->valuePrototypes[$k] = $valuePrototype; - } - } - } - if (\array_key_exists($k, $normalized)) { - $ex = new DuplicateKeyException(\sprintf('Duplicate key "%s" for path "%s".', $k, $this->getPath())); - $ex->setPath($this->getPath()); - throw $ex; - } - } - $prototype = $this->getPrototypeForChild($k); - if (null !== $this->keyAttribute || !$isList) { - $normalized[$k] = $prototype->normalize($v); - } else { - $normalized[] = $prototype->normalize($v); - } - } - return $normalized; - } - /** - * @param mixed $leftSide - * @param mixed $rightSide - * @return mixed - */ - protected function mergeValues($leftSide, $rightSide) - { - if (\false === $rightSide) { - // if this is still false after the last config has been merged the - // finalization pass will take care of removing this key entirely - return \false; - } - if (\false === $leftSide || !$this->performDeepMerging) { - return $rightSide; - } - $arrayIsList = function (array $array) : bool { - if (\function_exists('array_is_list')) { - return \array_is_list($array); - } - if ($array === []) { - return \true; - } - $current_key = 0; - foreach ($array as $key => $noop) { - if ($key !== $current_key) { - return \false; - } - ++$current_key; - } - return \true; - }; - $isList = $arrayIsList($rightSide); - foreach ($rightSide as $k => $v) { - // prototype, and key is irrelevant there are no named keys, append the element - if (null === $this->keyAttribute && $isList) { - $leftSide[] = $v; - continue; - } - // no conflict - if (!\array_key_exists($k, $leftSide)) { - if (!$this->allowNewKeys) { - $ex = new InvalidConfigurationException(\sprintf('You are not allowed to define new elements for path "%s". Please define all elements for this path in one config file.', $this->getPath())); - $ex->setPath($this->getPath()); - throw $ex; - } - $leftSide[$k] = $v; - continue; - } - $prototype = $this->getPrototypeForChild($k); - $leftSide[$k] = $prototype->merge($leftSide[$k], $v); - } - return $leftSide; - } - /** - * Returns a prototype for the child node that is associated to $key in the value array. - * For general child nodes, this will be $this->prototype. - * But if $this->removeKeyAttribute is true and there are only two keys in the child node: - * one is same as this->keyAttribute and the other is 'value', then the prototype will be different. - * - * For example, assume $this->keyAttribute is 'name' and the value array is as follows: - * - * [ - * [ - * 'name' => 'name001', - * 'value' => 'value001' - * ] - * ] - * - * Now, the key is 0 and the child node is: - * - * [ - * 'name' => 'name001', - * 'value' => 'value001' - * ] - * - * When normalizing the value array, the 'name' element will removed from the child node - * and its value becomes the new key of the child node: - * - * [ - * 'name001' => ['value' => 'value001'] - * ] - * - * Now only 'value' element is left in the child node which can be further simplified into a string: - * - * ['name001' => 'value001'] - * - * Now, the key becomes 'name001' and the child node becomes 'value001' and - * the prototype of child node 'name001' should be a ScalarNode instead of an ArrayNode instance. - * @return mixed - */ - private function getPrototypeForChild(string $key) - { - $prototype = $this->valuePrototypes[$key] ?? $this->prototype; - $prototype->setName($key); - return $prototype; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/ScalarNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/ScalarNode.php deleted file mode 100644 index bfa14f07c..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/ScalarNode.php +++ /dev/null @@ -1,59 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidTypeException; -/** - * This node represents a scalar value in the config tree. - * - * The following values are considered scalars: - * * booleans - * * strings - * * null - * * integers - * * floats - * - * @author Johannes M. Schmitt - */ -class ScalarNode extends VariableNode -{ - /** - * @return void - * @param mixed $value - */ - protected function validateType($value) - { - if (!\is_scalar($value) && null !== $value) { - $ex = new InvalidTypeException(\sprintf('Invalid type for path "%s". Expected "scalar", but got "%s".', $this->getPath(), \get_debug_type($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - throw $ex; - } - } - /** - * @param mixed $value - */ - protected function isValueEmpty($value) : bool - { - // assume environment variables are never empty (which in practice is likely to be true during runtime) - // not doing so breaks many configs that are valid today - if ($this->isHandlingPlaceholder()) { - return \false; - } - return null === $value || '' === $value; - } - protected function getValidPlaceholderTypes() : array - { - return ['bool', 'int', 'float', 'string']; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Definition/VariableNode.php b/vendor/rector/rector/vendor/symfony/config/Definition/VariableNode.php deleted file mode 100644 index 58ea138c7..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Definition/VariableNode.php +++ /dev/null @@ -1,130 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Definition; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Exception\InvalidConfigurationException; -/** - * This node represents a value of variable type in the config tree. - * - * This node is intended for values of arbitrary type. - * Any PHP type is accepted as a value. - * - * @author Jeremy Mikola - */ -class VariableNode extends BaseNode implements PrototypeNodeInterface -{ - protected $defaultValueSet = \false; - protected $defaultValue; - protected $allowEmptyValue = \true; - /** - * @return void - * @param mixed $value - */ - public function setDefaultValue($value) - { - $this->defaultValueSet = \true; - $this->defaultValue = $value; - } - public function hasDefaultValue() : bool - { - return $this->defaultValueSet; - } - /** - * @return mixed - */ - public function getDefaultValue() - { - $v = $this->defaultValue; - return $v instanceof \Closure ? $v() : $v; - } - /** - * Sets if this node is allowed to have an empty value. - * - * @param bool $boolean True if this entity will accept empty values - * - * @return void - */ - public function setAllowEmptyValue(bool $boolean) - { - $this->allowEmptyValue = $boolean; - } - /** - * @return void - */ - public function setName(string $name) - { - $this->name = $name; - } - /** - * @return void - * @param mixed $value - */ - protected function validateType($value) - { - } - /** - * @param mixed $value - * @return mixed - */ - protected function finalizeValue($value) - { - // deny environment variables only when using custom validators - // this avoids ever passing an empty value to final validation closures - if (!$this->allowEmptyValue && $this->isHandlingPlaceholder() && $this->finalValidationClosures) { - $e = new InvalidConfigurationException(\sprintf('The path "%s" cannot contain an environment variable when empty values are not allowed by definition and are validated.', $this->getPath())); - if ($hint = $this->getInfo()) { - $e->addHint($hint); - } - $e->setPath($this->getPath()); - throw $e; - } - if (!$this->allowEmptyValue && $this->isValueEmpty($value)) { - $ex = new InvalidConfigurationException(\sprintf('The path "%s" cannot contain an empty value, but got %s.', $this->getPath(), \json_encode($value))); - if ($hint = $this->getInfo()) { - $ex->addHint($hint); - } - $ex->setPath($this->getPath()); - throw $ex; - } - return $value; - } - /** - * @param mixed $value - * @return mixed - */ - protected function normalizeValue($value) - { - return $value; - } - /** - * @param mixed $leftSide - * @param mixed $rightSide - * @return mixed - */ - protected function mergeValues($leftSide, $rightSide) - { - return $rightSide; - } - /** - * Evaluates if the given value is to be treated as empty. - * - * By default, PHP's empty() function is used to test for emptiness. This - * method may be overridden by subtypes to better match their understanding - * of empty data. - * - * @see finalizeValue() - * @param mixed $value - */ - protected function isValueEmpty($value) : bool - { - return empty($value); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php b/vendor/rector/rector/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php deleted file mode 100644 index a002de928..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Exception/FileLoaderImportCircularReferenceException.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Exception; - -/** - * Exception class for when a circular reference is detected when importing resources. - * - * @author Fabien Potencier - */ -class FileLoaderImportCircularReferenceException extends LoaderLoadException -{ - public function __construct(array $resources, int $code = 0, \Throwable $previous = null) - { - $message = \sprintf('Circular reference detected in "%s" ("%s" > "%s").', $this->varToString($resources[0]), \implode('" > "', $resources), $resources[0]); - \Exception::__construct($message, $code, $previous); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php b/vendor/rector/rector/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.php deleted file mode 100644 index 794539dda..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Exception/FileLocatorFileNotFoundException.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 RectorPrefix202308\Symfony\Component\Config\Exception; - -/** - * File locator exception if a file does not exist. - * - * @author Leo Feyer - */ -class FileLocatorFileNotFoundException extends \InvalidArgumentException -{ - /** - * @var mixed[] - */ - private $paths; - public function __construct(string $message = '', int $code = 0, \Throwable $previous = null, array $paths = []) - { - parent::__construct($message, $code, $previous); - $this->paths = $paths; - } - /** - * @return array - */ - public function getPaths() - { - return $this->paths; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Exception/LoaderLoadException.php b/vendor/rector/rector/vendor/symfony/config/Exception/LoaderLoadException.php deleted file mode 100644 index 2d3cc8998..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Exception/LoaderLoadException.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Exception; - -/** - * Exception class for when a resource cannot be loaded or imported. - * - * @author Ryan Weaver - */ -class LoaderLoadException extends \Exception -{ - /** - * @param mixed $resource The resource that could not be imported - * @param string|null $sourceResource The original resource importing the new resource - * @param int $code The error code - * @param \Throwable|null $previous A previous exception - * @param string|null $type The type of resource - */ - public function __construct($resource, string $sourceResource = null, int $code = 0, \Throwable $previous = null, string $type = null) - { - if (!\is_string($resource)) { - try { - $resource = \json_encode($resource, 0); - } catch (\JsonException $exception) { - $resource = \sprintf('resource of type "%s"', \get_debug_type($resource)); - } - } - $message = ''; - if ($previous) { - // Include the previous exception, to help the user see what might be the underlying cause - // Trim the trailing period of the previous message. We only want 1 period remove so no rtrim... - if (\substr_compare($previous->getMessage(), '.', -\strlen('.')) === 0) { - $trimmedMessage = \substr($previous->getMessage(), 0, -1); - $message .= \sprintf('%s', $trimmedMessage) . ' in '; - } else { - $message .= \sprintf('%s', $previous->getMessage()) . ' in '; - } - $message .= $resource . ' '; - // show tweaked trace to complete the human readable sentence - if (null === $sourceResource) { - $message .= \sprintf('(which is loaded in resource "%s")', $resource); - } else { - $message .= \sprintf('(which is being imported from "%s")', $sourceResource); - } - $message .= '.'; - // if there's no previous message, present it the default way - } elseif (null === $sourceResource) { - $message .= \sprintf('Cannot load resource "%s".', $resource); - } else { - $message .= \sprintf('Cannot import resource "%s" from "%s".', $resource, $sourceResource); - } - // Is the resource located inside a bundle? - if ('@' === $resource[0]) { - $parts = \explode(\DIRECTORY_SEPARATOR, $resource); - $bundle = \substr($parts[0], 1); - $message .= \sprintf(' Make sure the "%s" bundle is correctly registered and loaded in the application kernel class.', $bundle); - $message .= \sprintf(' If the bundle is registered, make sure the bundle path "%s" is not empty.', $resource); - } elseif (null !== $type) { - $message .= \sprintf(' Make sure there is a loader supporting the "%s" type.', $type); - } - parent::__construct($message, $code, $previous); - } - /** - * @return string - * @param mixed $var - */ - protected function varToString($var) - { - if (\is_object($var)) { - return \sprintf('Object(%s)', \get_class($var)); - } - if (\is_array($var)) { - $a = []; - foreach ($var as $k => $v) { - $a[] = \sprintf('%s => %s', $k, $this->varToString($v)); - } - return \sprintf('Array(%s)', \implode(', ', $a)); - } - if (\is_resource($var)) { - return \sprintf('Resource(%s)', \get_resource_type($var)); - } - if (null === $var) { - return 'null'; - } - if (\false === $var) { - return 'false'; - } - if (\true === $var) { - return 'true'; - } - return (string) $var; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/FileLocator.php b/vendor/rector/rector/vendor/symfony/config/FileLocator.php deleted file mode 100644 index 7e75779e6..000000000 --- a/vendor/rector/rector/vendor/symfony/config/FileLocator.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config; - -use RectorPrefix202308\Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -/** - * FileLocator uses an array of pre-defined paths to find files. - * - * @author Fabien Potencier - */ -class FileLocator implements FileLocatorInterface -{ - protected $paths; - /** - * @param string|string[] $paths A path or an array of paths where to look for resources - */ - public function __construct($paths = []) - { - $this->paths = (array) $paths; - } - /** - * @return string|array - */ - public function locate(string $name, string $currentPath = null, bool $first = \true) - { - if ('' === $name) { - throw new \InvalidArgumentException('An empty file name is not valid to be located.'); - } - if ($this->isAbsolutePath($name)) { - if (!\file_exists($name)) { - throw new FileLocatorFileNotFoundException(\sprintf('The file "%s" does not exist.', $name), 0, null, [$name]); - } - return $name; - } - $paths = $this->paths; - if (null !== $currentPath) { - \array_unshift($paths, $currentPath); - } - $paths = \array_unique($paths); - $filepaths = $notfound = []; - foreach ($paths as $path) { - if (@\file_exists($file = $path . \DIRECTORY_SEPARATOR . $name)) { - if (\true === $first) { - return $file; - } - $filepaths[] = $file; - } else { - $notfound[] = $file; - } - } - if (!$filepaths) { - throw new FileLocatorFileNotFoundException(\sprintf('The file "%s" does not exist (in: "%s").', $name, \implode('", "', $paths)), 0, null, $notfound); - } - return $filepaths; - } - /** - * Returns whether the file path is an absolute path. - */ - private function isAbsolutePath(string $file) : bool - { - if ('/' === $file[0] || '\\' === $file[0] || \strlen($file) > 3 && \ctype_alpha($file[0]) && ':' === $file[1] && ('\\' === $file[2] || '/' === $file[2]) || null !== \parse_url($file, \PHP_URL_SCHEME)) { - return \true; - } - return \false; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/FileLocatorInterface.php b/vendor/rector/rector/vendor/symfony/config/FileLocatorInterface.php deleted file mode 100644 index 40429620d..000000000 --- a/vendor/rector/rector/vendor/symfony/config/FileLocatorInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config; - -use RectorPrefix202308\Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -/** - * @author Fabien Potencier - */ -interface FileLocatorInterface -{ - /** - * Returns a full path for a given file name. - * - * @param string $name The file name to locate - * @param string|null $currentPath The current path - * @param bool $first Whether to return the first occurrence or an array of filenames - * - * @return string|array The full path to the file or an array of file paths - * - * @throws \InvalidArgumentException If $name is empty - * @throws FileLocatorFileNotFoundException If a file is not found - */ - public function locate(string $name, string $currentPath = null, bool $first = \true); -} diff --git a/vendor/rector/rector/vendor/symfony/config/LICENSE b/vendor/rector/rector/vendor/symfony/config/LICENSE deleted file mode 100644 index 0138f8f07..000000000 --- a/vendor/rector/rector/vendor/symfony/config/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/DelegatingLoader.php b/vendor/rector/rector/vendor/symfony/config/Loader/DelegatingLoader.php deleted file mode 100644 index ee890b424..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/DelegatingLoader.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Exception\LoaderLoadException; -/** - * DelegatingLoader delegates loading to other loaders using a loader resolver. - * - * This loader acts as an array of LoaderInterface objects - each having - * a chance to load a given resource (handled by the resolver) - * - * @author Fabien Potencier - */ -class DelegatingLoader extends Loader -{ - public function __construct(LoaderResolverInterface $resolver) - { - $this->resolver = $resolver; - } - /** - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - if (\false === ($loader = $this->resolver->resolve($resource, $type))) { - throw new LoaderLoadException($resource, null, 0, null, $type); - } - return $loader->load($resource, $type); - } - /** - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - return \false !== $this->resolver->resolve($resource, $type); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php b/vendor/rector/rector/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php deleted file mode 100644 index 8f6fa7e41..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/DirectoryAwareLoaderInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -/** - * A loader that can be scoped to a given filesystem directory. - * - * @author Alexander M. Turek - */ -interface DirectoryAwareLoaderInterface -{ - /** - * @return static - */ - public function forDirectory(string $currentDirectory); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/FileLoader.php b/vendor/rector/rector/vendor/symfony/config/Loader/FileLoader.php deleted file mode 100644 index 9b863fd77..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/FileLoader.php +++ /dev/null @@ -1,171 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Exception\FileLoaderImportCircularReferenceException; -use RectorPrefix202308\Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -use RectorPrefix202308\Symfony\Component\Config\Exception\LoaderLoadException; -use RectorPrefix202308\Symfony\Component\Config\FileLocatorInterface; -use RectorPrefix202308\Symfony\Component\Config\Resource\FileExistenceResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\GlobResource; -/** - * FileLoader is the abstract class used by all built-in loaders that are file based. - * - * @author Fabien Potencier - */ -abstract class FileLoader extends Loader -{ - protected static $loading = []; - protected $locator; - /** - * @var string|null - */ - private $currentDir; - public function __construct(FileLocatorInterface $locator, string $env = null) - { - $this->locator = $locator; - parent::__construct($env); - } - /** - * Sets the current directory. - * - * @return void - */ - public function setCurrentDir(string $dir) - { - $this->currentDir = $dir; - } - /** - * Returns the file locator used by this loader. - */ - public function getLocator() : FileLocatorInterface - { - return $this->locator; - } - /** - * Imports a resource. - * - * @param mixed $resource A Resource - * @param string|null $type The resource type or null if unknown - * @param bool $ignoreErrors Whether to ignore import errors or not - * @param string|null $sourceResource The original resource importing the new resource - * @param string|mixed[] $exclude Glob patterns to exclude from the import - * - * @return mixed - * - * @throws LoaderLoadException - * @throws FileLoaderImportCircularReferenceException - * @throws FileLocatorFileNotFoundException - */ - public function import($resource, string $type = null, bool $ignoreErrors = \false, string $sourceResource = null, $exclude = null) - { - if (\is_string($resource) && \strlen($resource) !== ($i = \strcspn($resource, '*?{[')) && \strpos($resource, "\n") === \false) { - $excluded = []; - foreach ((array) $exclude as $pattern) { - foreach ($this->glob($pattern, \true, $_, \false, \true) as $path => $info) { - // normalize Windows slashes and remove trailing slashes - $excluded[\rtrim(\str_replace('\\', '/', $path), '/')] = \true; - } - } - $ret = []; - $isSubpath = 0 !== $i && \strpos(\substr($resource, 0, $i), '/') !== \false; - foreach ($this->glob($resource, \false, $_, $ignoreErrors || !$isSubpath, \false, $excluded) as $path => $info) { - if (null !== ($res = $this->doImport($path, 'glob' === $type ? null : $type, $ignoreErrors, $sourceResource))) { - $ret[] = $res; - } - $isSubpath = \true; - } - if ($isSubpath) { - return isset($ret[1]) ? $ret : $ret[0] ?? null; - } - } - return $this->doImport($resource, $type, $ignoreErrors, $sourceResource); - } - /** - * @internal - * @param mixed[]|\Symfony\Component\Config\Resource\GlobResource $resource - */ - protected function glob(string $pattern, bool $recursive, &$resource = null, bool $ignoreErrors = \false, bool $forExclusion = \false, array $excluded = []) : iterable - { - if (\strlen($pattern) === ($i = \strcspn($pattern, '*?{['))) { - $prefix = $pattern; - $pattern = ''; - } elseif (0 === $i || \strpos(\substr($pattern, 0, $i), '/') === \false) { - $prefix = '.'; - $pattern = '/' . $pattern; - } else { - $prefix = \dirname(\substr($pattern, 0, 1 + $i)); - $pattern = \substr($pattern, \strlen($prefix)); - } - try { - $prefix = $this->locator->locate($prefix, $this->currentDir, \true); - } catch (FileLocatorFileNotFoundException $e) { - if (!$ignoreErrors) { - throw $e; - } - $resource = []; - foreach ($e->getPaths() as $path) { - $resource[] = new FileExistenceResource($path); - } - return; - } - $resource = new GlobResource($prefix, $pattern, $recursive, $forExclusion, $excluded); - yield from $resource; - } - /** - * @param mixed $resource - * @return mixed - */ - private function doImport($resource, string $type = null, bool $ignoreErrors = \false, string $sourceResource = null) - { - try { - $loader = $this->resolve($resource, $type); - if ($loader instanceof DirectoryAwareLoaderInterface) { - $loader = $loader->forDirectory($this->currentDir); - } - if (!$loader instanceof self) { - return $loader->load($resource, $type); - } - if (null !== $this->currentDir) { - $resource = $loader->getLocator()->locate($resource, $this->currentDir, \false); - } - $resources = \is_array($resource) ? $resource : [$resource]; - for ($i = 0; $i < ($resourcesCount = \count($resources)); ++$i) { - if (isset(self::$loading[$resources[$i]])) { - if ($i == $resourcesCount - 1) { - throw new FileLoaderImportCircularReferenceException(\array_keys(self::$loading)); - } - } else { - $resource = $resources[$i]; - break; - } - } - self::$loading[$resource] = \true; - try { - $ret = $loader->load($resource, $type); - } finally { - unset(self::$loading[$resource]); - } - return $ret; - } catch (FileLoaderImportCircularReferenceException $e) { - throw $e; - } catch (\Exception $e) { - if (!$ignoreErrors) { - // prevent embedded imports from nesting multiple exceptions - if ($e instanceof LoaderLoadException) { - throw $e; - } - throw new LoaderLoadException($resource, $sourceResource, 0, $e, $type); - } - } - return null; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/GlobFileLoader.php b/vendor/rector/rector/vendor/symfony/config/Loader/GlobFileLoader.php deleted file mode 100644 index 4c6519cda..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/GlobFileLoader.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -/** - * GlobFileLoader loads files from a glob pattern. - * - * @author Fabien Potencier - */ -class GlobFileLoader extends FileLoader -{ - /** - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - return $this->import($resource); - } - /** - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - return 'glob' === $type; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/Loader.php b/vendor/rector/rector/vendor/symfony/config/Loader/Loader.php deleted file mode 100644 index 9ab8445be..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/Loader.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Exception\LoaderLoadException; -/** - * Loader is the abstract class used by all built-in loaders. - * - * @author Fabien Potencier - */ -abstract class Loader implements LoaderInterface -{ - protected $resolver; - protected $env; - public function __construct(string $env = null) - { - $this->env = $env; - } - public function getResolver() : LoaderResolverInterface - { - return $this->resolver; - } - /** - * @return void - */ - public function setResolver(LoaderResolverInterface $resolver) - { - $this->resolver = $resolver; - } - /** - * Imports a resource. - * - * @return mixed - * @param mixed $resource - */ - public function import($resource, string $type = null) - { - return $this->resolve($resource, $type)->load($resource, $type); - } - /** - * Finds a loader able to load an imported resource. - * - * @throws LoaderLoadException If no loader is found - * @param mixed $resource - */ - public function resolve($resource, string $type = null) : LoaderInterface - { - if ($this->supports($resource, $type)) { - return $this; - } - $loader = null === $this->resolver ? \false : $this->resolver->resolve($resource, $type); - if (\false === $loader) { - throw new LoaderLoadException($resource, null, 0, null, $type); - } - return $loader; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/LoaderInterface.php b/vendor/rector/rector/vendor/symfony/config/Loader/LoaderInterface.php deleted file mode 100644 index cbaa28dd6..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/LoaderInterface.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -/** - * LoaderInterface is the interface implemented by all loader classes. - * - * @author Fabien Potencier - */ -interface LoaderInterface -{ - /** - * Loads a resource. - * - * @return mixed - * - * @throws \Exception If something went wrong - * @param mixed $resource - */ - public function load($resource, string $type = null); - /** - * Returns whether this class supports the given resource. - * - * @param mixed $resource A resource - * - * @return bool - */ - public function supports($resource, string $type = null); - /** - * Gets the loader resolver. - * - * @return LoaderResolverInterface - */ - public function getResolver(); - /** - * Sets the loader resolver. - * - * @return void - */ - public function setResolver(LoaderResolverInterface $resolver); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolver.php b/vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolver.php deleted file mode 100644 index 0d8c376ad..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolver.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 RectorPrefix202308\Symfony\Component\Config\Loader; - -/** - * LoaderResolver selects a loader for a given resource. - * - * A resource can be anything (e.g. a full path to a config file or a Closure). - * Each loader determines whether it can load a resource and how. - * - * @author Fabien Potencier - */ -class LoaderResolver implements LoaderResolverInterface -{ - /** - * @var LoaderInterface[] An array of LoaderInterface objects - */ - private $loaders = []; - /** - * @param LoaderInterface[] $loaders An array of loaders - */ - public function __construct(array $loaders = []) - { - foreach ($loaders as $loader) { - $this->addLoader($loader); - } - } - /** - * @return \Symfony\Component\Config\Loader\LoaderInterface|false - * @param mixed $resource - */ - public function resolve($resource, string $type = null) - { - foreach ($this->loaders as $loader) { - if ($loader->supports($resource, $type)) { - return $loader; - } - } - return \false; - } - /** - * @return void - */ - public function addLoader(LoaderInterface $loader) - { - $this->loaders[] = $loader; - $loader->setResolver($this); - } - /** - * Returns the registered loaders. - * - * @return LoaderInterface[] - */ - public function getLoaders() : array - { - return $this->loaders; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolverInterface.php b/vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolverInterface.php deleted file mode 100644 index b938a8247..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/LoaderResolverInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -/** - * LoaderResolverInterface selects a loader for a given resource. - * - * @author Fabien Potencier - */ -interface LoaderResolverInterface -{ - /** - * Returns a loader able to load the resource. - * - * @param string|null $type The resource type or null if unknown - * @return \Symfony\Component\Config\Loader\LoaderInterface|false - * @param mixed $resource - */ - public function resolve($resource, string $type = null); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Loader/ParamConfigurator.php b/vendor/rector/rector/vendor/symfony/config/Loader/ParamConfigurator.php deleted file mode 100644 index 76af068c7..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Loader/ParamConfigurator.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Loader; - -/** - * Placeholder for a parameter. - * - * @author Tobias Nyholm - */ -class ParamConfigurator -{ - /** - * @var string - */ - private $name; - public function __construct(string $name) - { - $this->name = $name; - } - public function __toString() : string - { - return '%' . $this->name . '%'; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/README.md b/vendor/rector/rector/vendor/symfony/config/README.md deleted file mode 100644 index 10c2ddd05..000000000 --- a/vendor/rector/rector/vendor/symfony/config/README.md +++ /dev/null @@ -1,15 +0,0 @@ -Config Component -================ - -The Config component helps find, load, combine, autofill and validate -configuration values of any kind, whatever their source may be (YAML, XML, INI -files, or for instance a database). - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/config.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/ClassExistenceResource.php b/vendor/rector/rector/vendor/symfony/config/Resource/ClassExistenceResource.php deleted file mode 100644 index 9504d2c92..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/ClassExistenceResource.php +++ /dev/null @@ -1,206 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -/** - * ClassExistenceResource represents a class existence. - * Freshness is only evaluated against resource existence. - * - * The resource must be a fully-qualified class name. - * - * @author Fabien Potencier - * - * @final - */ -class ClassExistenceResource implements SelfCheckingResourceInterface -{ - /** - * @var string - */ - private $resource; - /** - * @var mixed[]|null - */ - private $exists; - /** - * @var int - */ - private static $autoloadLevel = 0; - /** - * @var string|null - */ - private static $autoloadedClass; - /** - * @var mixed[] - */ - private static $existsCache = []; - /** - * @param string $resource The fully-qualified class name - * @param bool|null $exists Boolean when the existence check has already been done - */ - public function __construct(string $resource, bool $exists = null) - { - $this->resource = $resource; - if (null !== $exists) { - $this->exists = [$exists, null]; - } - } - public function __toString() : string - { - return $this->resource; - } - public function getResource() : string - { - return $this->resource; - } - /** - * @throws \ReflectionException when a parent class/interface/trait is not found - */ - public function isFresh(int $timestamp) : bool - { - $loaded = \class_exists($this->resource, \false) || \interface_exists($this->resource, \false) || \trait_exists($this->resource, \false); - if (null !== ($exists =& self::$existsCache[$this->resource])) { - if ($loaded) { - $exists = [\true, null]; - } elseif (0 >= $timestamp && !$exists[0] && null !== $exists[1]) { - throw new \ReflectionException($exists[1]); - } - } elseif ([\false, null] === ($exists = [$loaded, null])) { - if (!self::$autoloadLevel++) { - \spl_autoload_register(__CLASS__ . '::throwOnRequiredClass'); - } - $autoloadedClass = self::$autoloadedClass; - self::$autoloadedClass = \ltrim($this->resource, '\\'); - try { - $exists[0] = \class_exists($this->resource) || \interface_exists($this->resource, \false) || \trait_exists($this->resource, \false); - } catch (\Exception $e) { - $exists[1] = $e->getMessage(); - try { - self::throwOnRequiredClass($this->resource, $e); - } catch (\ReflectionException $e) { - if (0 >= $timestamp) { - throw $e; - } - } - } catch (\Throwable $e) { - $exists[1] = $e->getMessage(); - throw $e; - } finally { - self::$autoloadedClass = $autoloadedClass; - if (!--self::$autoloadLevel) { - \spl_autoload_unregister(__CLASS__ . '::throwOnRequiredClass'); - } - } - } - $this->exists = $this->exists ?? $exists; - return $this->exists[0] xor !$exists[0]; - } - /** - * @internal - */ - public function __sleep() : array - { - if (null === $this->exists) { - $this->isFresh(0); - } - return ['resource', 'exists']; - } - /** - * @internal - */ - public function __wakeup() - { - if (\is_bool($this->exists)) { - $this->exists = [$this->exists, null]; - } - } - /** - * Throws a reflection exception when the passed class does not exist but is required. - * - * A class is considered "not required" when it's loaded as part of a "class_exists" or similar check. - * - * This function can be used as an autoload function to throw a reflection - * exception if the class was not found by previous autoload functions. - * - * A previous exception can be passed. In this case, the class is considered as being - * required totally, so if it doesn't exist, a reflection exception is always thrown. - * If it exists, the previous exception is rethrown. - * - * @throws \ReflectionException - * - * @internal - */ - public static function throwOnRequiredClass(string $class, \Exception $previous = null) : void - { - // If the passed class is the resource being checked, we shouldn't throw. - if (null === $previous && self::$autoloadedClass === $class) { - return; - } - if (\class_exists($class, \false) || \interface_exists($class, \false) || \trait_exists($class, \false)) { - if (null !== $previous) { - throw $previous; - } - return; - } - if ($previous instanceof \ReflectionException) { - throw $previous; - } - $message = \sprintf('Class "%s" not found.', $class); - if ($class !== (self::$autoloadedClass ?? $class)) { - $message = \substr_replace($message, \sprintf(' while loading "%s"', self::$autoloadedClass), -1, 0); - } - if (null !== $previous) { - $message = $previous->getMessage(); - } - $e = new \ReflectionException($message, 0, $previous); - if (null !== $previous) { - throw $e; - } - $trace = \debug_backtrace(); - $autoloadFrame = ['function' => 'spl_autoload_call', 'args' => [$class]]; - if (isset($trace[1])) { - $callerFrame = $trace[1]; - $i = 2; - } elseif (\false !== ($i = \array_search($autoloadFrame, $trace, \true))) { - $callerFrame = $trace[++$i]; - } else { - throw $e; - } - if (isset($callerFrame['function']) && !isset($callerFrame['class'])) { - switch ($callerFrame['function']) { - case 'get_class_methods': - case 'get_class_vars': - case 'get_parent_class': - case 'is_a': - case 'is_subclass_of': - case 'class_exists': - case 'class_implements': - case 'class_parents': - case 'trait_exists': - case 'defined': - case 'interface_exists': - case 'method_exists': - case 'property_exists': - case 'is_callable': - return; - } - $props = ['file' => $callerFrame['file'] ?? null, 'line' => $callerFrame['line'] ?? null, 'trace' => \array_slice($trace, 1 + $i)]; - foreach ($props as $p => $v) { - if (null !== $v) { - $r = new \ReflectionProperty(\Exception::class, $p); - $r->setAccessible(\true); - $r->setValue($e, $v); - } - } - } - throw $e; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/ComposerResource.php b/vendor/rector/rector/vendor/symfony/config/Resource/ComposerResource.php deleted file mode 100644 index f3b245a02..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/ComposerResource.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -/** - * ComposerResource tracks the PHP version and Composer dependencies. - * - * @author Nicolas Grekas - * - * @final - */ -class ComposerResource implements SelfCheckingResourceInterface -{ - /** - * @var mixed[] - */ - private $vendors; - /** - * @var mixed[] - */ - private static $runtimeVendors; - public function __construct() - { - self::refresh(); - $this->vendors = self::$runtimeVendors; - } - public function getVendors() : array - { - return \array_keys($this->vendors); - } - public function __toString() : string - { - return __CLASS__; - } - public function isFresh(int $timestamp) : bool - { - self::refresh(); - return \array_values(self::$runtimeVendors) === \array_values($this->vendors); - } - private static function refresh() : void - { - self::$runtimeVendors = []; - foreach (\get_declared_classes() as $class) { - if ('C' === $class[0] && \strncmp($class, 'ComposerAutoloaderInit', \strlen('ComposerAutoloaderInit')) === 0) { - $r = new \ReflectionClass($class); - $v = \dirname($r->getFileName(), 2); - if (\is_file($v . '/composer/installed.json')) { - self::$runtimeVendors[$v] = @\filemtime($v . '/composer/installed.json'); - } - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/DirectoryResource.php b/vendor/rector/rector/vendor/symfony/config/Resource/DirectoryResource.php deleted file mode 100644 index 541b6635e..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/DirectoryResource.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -/** - * DirectoryResource represents a resources stored in a subdirectory tree. - * - * @author Fabien Potencier - * - * @final - */ -class DirectoryResource implements SelfCheckingResourceInterface -{ - /** - * @var string - */ - private $resource; - /** - * @var string|null - */ - private $pattern; - /** - * @param string $resource The file path to the resource - * @param string|null $pattern A pattern to restrict monitored files - * - * @throws \InvalidArgumentException - */ - public function __construct(string $resource, string $pattern = null) - { - $resolvedResource = \realpath($resource) ?: (\file_exists($resource) ? $resource : \false); - $this->pattern = $pattern; - if (\false === $resolvedResource || !\is_dir($resolvedResource)) { - throw new \InvalidArgumentException(\sprintf('The directory "%s" does not exist.', $resource)); - } - $this->resource = $resolvedResource; - } - public function __toString() : string - { - return \hash('xxh128', \serialize([$this->resource, $this->pattern])); - } - public function getResource() : string - { - return $this->resource; - } - public function getPattern() : ?string - { - return $this->pattern; - } - public function isFresh(int $timestamp) : bool - { - if (!\is_dir($this->resource)) { - return \false; - } - if ($timestamp < \filemtime($this->resource)) { - return \false; - } - foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->resource), \RecursiveIteratorIterator::SELF_FIRST) as $file) { - // if regex filtering is enabled only check matching files - if ($this->pattern && $file->isFile() && !\preg_match($this->pattern, $file->getBasename())) { - continue; - } - // always monitor directories for changes, except the .. entries - // (otherwise deleted files wouldn't get detected) - if ($file->isDir() && \substr_compare($file, '/..', -\strlen('/..')) === 0) { - continue; - } - // for broken links - try { - $fileMTime = $file->getMTime(); - } catch (\RuntimeException $exception) { - continue; - } - // early return if a file's mtime exceeds the passed timestamp - if ($timestamp < $fileMTime) { - return \false; - } - } - return \true; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/FileExistenceResource.php b/vendor/rector/rector/vendor/symfony/config/Resource/FileExistenceResource.php deleted file mode 100644 index 408262985..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/FileExistenceResource.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 RectorPrefix202308\Symfony\Component\Config\Resource; - -/** - * FileExistenceResource represents a resource stored on the filesystem. - * Freshness is only evaluated against resource creation or deletion. - * - * The resource can be a file or a directory. - * - * @author Charles-Henri Bruyand - * - * @final - */ -class FileExistenceResource implements SelfCheckingResourceInterface -{ - /** - * @var string - */ - private $resource; - /** - * @var bool - */ - private $exists; - /** - * @param string $resource The file path to the resource - */ - public function __construct(string $resource) - { - $this->resource = $resource; - $this->exists = \file_exists($resource); - } - public function __toString() : string - { - return $this->resource; - } - public function getResource() : string - { - return $this->resource; - } - public function isFresh(int $timestamp) : bool - { - return \file_exists($this->resource) === $this->exists; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/FileResource.php b/vendor/rector/rector/vendor/symfony/config/Resource/FileResource.php deleted file mode 100644 index 8bf2957b7..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/FileResource.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -/** - * FileResource represents a resource stored on the filesystem. - * - * The resource can be a file or a directory. - * - * @author Fabien Potencier - * - * @final - */ -class FileResource implements SelfCheckingResourceInterface -{ - /** - * @var string - */ - private $resource; - /** - * @param string $resource The file path to the resource - * - * @throws \InvalidArgumentException - */ - public function __construct(string $resource) - { - $resolvedResource = \realpath($resource) ?: (\file_exists($resource) ? $resource : \false); - if (\false === $resolvedResource) { - throw new \InvalidArgumentException(\sprintf('The file "%s" does not exist.', $resource)); - } - $this->resource = $resolvedResource; - } - public function __toString() : string - { - return $this->resource; - } - /** - * Returns the canonicalized, absolute path to the resource. - */ - public function getResource() : string - { - return $this->resource; - } - public function isFresh(int $timestamp) : bool - { - return \false !== ($filemtime = @\filemtime($this->resource)) && $filemtime <= $timestamp; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/GlobResource.php b/vendor/rector/rector/vendor/symfony/config/Resource/GlobResource.php deleted file mode 100644 index 8c0810407..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/GlobResource.php +++ /dev/null @@ -1,227 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -use RectorPrefix202308\Symfony\Component\Finder\Finder; -use RectorPrefix202308\Symfony\Component\Finder\Glob; -/** - * GlobResource represents a set of resources stored on the filesystem. - * - * Only existence/removal is tracked (not mtimes.) - * - * @author Nicolas Grekas - * - * @final - * - * @implements \IteratorAggregate - */ -class GlobResource implements \IteratorAggregate, SelfCheckingResourceInterface -{ - /** - * @var string - */ - private $prefix; - /** - * @var string - */ - private $pattern; - /** - * @var bool - */ - private $recursive; - /** - * @var string - */ - private $hash; - /** - * @var bool - */ - private $forExclusion; - /** - * @var mixed[] - */ - private $excludedPrefixes; - /** - * @var int - */ - private $globBrace; - /** - * @param string $prefix A directory prefix - * @param string $pattern A glob pattern - * @param bool $recursive Whether directories should be scanned recursively or not - * - * @throws \InvalidArgumentException - */ - public function __construct(string $prefix, string $pattern, bool $recursive, bool $forExclusion = \false, array $excludedPrefixes = []) - { - \ksort($excludedPrefixes); - $resolvedPrefix = \realpath($prefix) ?: (\file_exists($prefix) ? $prefix : \false); - $this->pattern = $pattern; - $this->recursive = $recursive; - $this->forExclusion = $forExclusion; - $this->excludedPrefixes = $excludedPrefixes; - $this->globBrace = \defined('GLOB_BRACE') ? \GLOB_BRACE : 0; - if (\false === $resolvedPrefix) { - throw new \InvalidArgumentException(\sprintf('The path "%s" does not exist.', $prefix)); - } - $this->prefix = $resolvedPrefix; - } - public function getPrefix() : string - { - return $this->prefix; - } - public function __toString() : string - { - return 'glob.' . $this->prefix . (int) $this->recursive . $this->pattern . (int) $this->forExclusion . \implode("\x00", $this->excludedPrefixes); - } - public function isFresh(int $timestamp) : bool - { - $hash = $this->computeHash(); - $this->hash = $this->hash ?? $hash; - return $this->hash === $hash; - } - /** - * @internal - */ - public function __sleep() : array - { - $this->hash = $this->hash ?? $this->computeHash(); - return ['prefix', 'pattern', 'recursive', 'hash', 'forExclusion', 'excludedPrefixes']; - } - /** - * @internal - */ - public function __wakeup() : void - { - $this->globBrace = \defined('GLOB_BRACE') ? \GLOB_BRACE : 0; - } - public function getIterator() : \Traversable - { - if (!$this->recursive && '' === $this->pattern || !\file_exists($this->prefix)) { - return; - } - if (\is_file($prefix = \str_replace('\\', '/', $this->prefix))) { - $prefix = \dirname($prefix); - $pattern = \basename($prefix) . $this->pattern; - } else { - $pattern = $this->pattern; - } - if (\class_exists(Finder::class)) { - $regex = Glob::toRegex($pattern); - if ($this->recursive) { - $regex = \substr_replace($regex, '(/|$)', -2, 1); - } - } else { - $regex = null; - } - $prefixLen = \strlen($prefix); - $paths = null; - if ('' === $this->pattern && \is_file($this->prefix)) { - $paths = [$this->prefix => null]; - } elseif (\strncmp($this->prefix, 'phar://', \strlen('phar://')) !== 0 && (null !== $regex || \strpos($this->pattern, '/**/') === \false)) { - if (\strpos($this->pattern, '/**/') === \false && ($this->globBrace || \strpos($this->pattern, '{') === \false)) { - $paths = \array_fill_keys(\glob($this->prefix . $this->pattern, \GLOB_NOSORT | $this->globBrace), null); - } elseif (\strpos($this->pattern, '\\') === \false || !\preg_match('/\\\\[,{}]/', $this->pattern)) { - $paths = []; - foreach ($this->expandGlob($this->pattern) as $p) { - if (\false !== ($i = \strpos($p, '/**/'))) { - $p = \substr_replace($p, '/*', $i); - } - $paths += \array_fill_keys(\glob($this->prefix . $p, \GLOB_NOSORT), \false !== $i ? $regex : null); - } - } - } - if (null !== $paths) { - \uksort($paths, 'strnatcmp'); - foreach ($paths as $path => $regex) { - if ($this->excludedPrefixes) { - $normalizedPath = \str_replace('\\', '/', $path); - do { - if (isset($this->excludedPrefixes[$dirPath = $normalizedPath])) { - continue 2; - } - } while ($prefix !== $dirPath && $dirPath !== ($normalizedPath = \dirname($dirPath))); - } - if ((null === $regex || \preg_match($regex, \substr(\str_replace('\\', '/', $path), $prefixLen))) && \is_file($path)) { - (yield $path => new \SplFileInfo($path)); - } - if (!\is_dir($path)) { - continue; - } - if ($this->forExclusion && (null === $regex || \preg_match($regex, \substr(\str_replace('\\', '/', $path), $prefixLen)))) { - (yield $path => new \SplFileInfo($path)); - continue; - } - if (!($this->recursive || null !== $regex) || isset($this->excludedPrefixes[\str_replace('\\', '/', $path)])) { - continue; - } - $files = \iterator_to_array(new \RecursiveIteratorIterator(new \RecursiveCallbackFilterIterator(new \RecursiveDirectoryIterator($path, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS), function (\SplFileInfo $file, $path) use($regex, $prefixLen) { - return !isset($this->excludedPrefixes[$path = \str_replace('\\', '/', $path)]) && (null === $regex || \preg_match($regex, \substr($path, $prefixLen)) || $file->isDir()) && '.' !== $file->getBasename()[0]; - }), \RecursiveIteratorIterator::LEAVES_ONLY)); - \uksort($files, 'strnatcmp'); - foreach ($files as $path => $info) { - if ($info->isFile()) { - (yield $path => $info); - } - } - } - return; - } - if (!\class_exists(Finder::class)) { - throw new \LogicException('Extended glob patterns cannot be used as the Finder component is not installed. Try running "composer require symfony/finder".'); - } - yield from (new Finder())->followLinks()->filter(function (\SplFileInfo $info) use($regex, $prefixLen, $prefix) { - $normalizedPath = \str_replace('\\', '/', $info->getPathname()); - if (!\preg_match($regex, \substr($normalizedPath, $prefixLen)) || !$info->isFile()) { - return \false; - } - if ($this->excludedPrefixes) { - do { - if (isset($this->excludedPrefixes[$dirPath = $normalizedPath])) { - return \false; - } - } while ($prefix !== $dirPath && $dirPath !== ($normalizedPath = \dirname($dirPath))); - } - })->sortByName()->in($prefix); - } - private function computeHash() : string - { - $hash = \hash_init('xxh128'); - foreach ($this->getIterator() as $path => $info) { - \hash_update($hash, $path . "\n"); - } - return \hash_final($hash); - } - private function expandGlob(string $pattern) : array - { - $segments = \preg_split('/\\{([^{}]*+)\\}/', $pattern, -1, \PREG_SPLIT_DELIM_CAPTURE); - $paths = [$segments[0]]; - $patterns = []; - for ($i = 1; $i < \count($segments); $i += 2) { - $patterns = []; - foreach (\explode(',', $segments[$i]) as $s) { - foreach ($paths as $p) { - $patterns[] = $p . $s . $segments[1 + $i]; - } - } - $paths = $patterns; - } - $j = 0; - foreach ($patterns as $i => $p) { - if (\strpos($p, '{') !== \false) { - $p = $this->expandGlob($p); - \array_splice($paths, $i + $j, 1, $p); - $j += \count($p) - 1; - } - } - return $paths; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/ReflectionClassResource.php b/vendor/rector/rector/vendor/symfony/config/Resource/ReflectionClassResource.php deleted file mode 100644 index 84c2a0bab..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/ReflectionClassResource.php +++ /dev/null @@ -1,191 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -use RectorPrefix202308\Symfony\Component\EventDispatcher\EventSubscriberInterface; -use RectorPrefix202308\Symfony\Component\Messenger\Handler\MessageSubscriberInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceSubscriberInterface; -/** - * @author Nicolas Grekas - * - * @final - */ -class ReflectionClassResource implements SelfCheckingResourceInterface -{ - /** - * @var mixed[] - */ - private $files = []; - /** - * @var string - */ - private $className; - /** - * @var \ReflectionClass - */ - private $classReflector; - /** - * @var mixed[] - */ - private $excludedVendors = []; - /** - * @var string - */ - private $hash; - public function __construct(\ReflectionClass $classReflector, array $excludedVendors = []) - { - $this->className = $classReflector->name; - $this->classReflector = $classReflector; - $this->excludedVendors = $excludedVendors; - } - public function isFresh(int $timestamp) : bool - { - if (!isset($this->hash)) { - $this->hash = $this->computeHash(); - $this->loadFiles($this->classReflector); - } - foreach ($this->files as $file => $v) { - if (\false === ($filemtime = @\filemtime($file))) { - return \false; - } - if ($filemtime > $timestamp) { - return $this->hash === $this->computeHash(); - } - } - return \true; - } - public function __toString() : string - { - return 'reflection.' . $this->className; - } - /** - * @internal - */ - public function __sleep() : array - { - if (!isset($this->hash)) { - $this->hash = $this->computeHash(); - $this->loadFiles($this->classReflector); - } - return ['files', 'className', 'hash']; - } - private function loadFiles(\ReflectionClass $class) : void - { - foreach ($class->getInterfaces() as $v) { - $this->loadFiles($v); - } - do { - $file = $class->getFileName(); - if (\false !== $file && \is_file($file)) { - foreach ($this->excludedVendors as $vendor) { - if (\strncmp($file, $vendor, \strlen($vendor)) === 0 && \false !== \strpbrk(\substr($file, \strlen($vendor), 1), '/' . \DIRECTORY_SEPARATOR)) { - $file = \false; - break; - } - } - if ($file) { - $this->files[$file] = null; - } - } - foreach ($class->getTraits() as $v) { - $this->loadFiles($v); - } - } while ($class = $class->getParentClass()); - } - private function computeHash() : string - { - try { - $this->classReflector = $this->classReflector ?? new \ReflectionClass($this->className); - } catch (\ReflectionException $exception) { - // the class does not exist anymore - return \false; - } - $hash = \hash_init('xxh128'); - foreach ($this->generateSignature($this->classReflector) as $info) { - \hash_update($hash, $info); - } - return \hash_final($hash); - } - private function generateSignature(\ReflectionClass $class) : iterable - { - $attributes = []; - foreach (\method_exists($class, 'getAttributes') ? $class->getAttributes() : [] as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - (yield \print_r($attributes, \true)); - $attributes = []; - (yield $class->getDocComment()); - (yield (int) $class->isFinal()); - (yield (int) $class->isAbstract()); - if ($class->isTrait()) { - (yield \print_r(\class_uses($class->name), \true)); - } else { - (yield \print_r(\class_parents($class->name), \true)); - (yield \print_r(\class_implements($class->name), \true)); - (yield \print_r($class->getConstants(), \true)); - } - if (!$class->isInterface()) { - $defaults = $class->getDefaultProperties(); - foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED) as $p) { - foreach (\method_exists($p, 'getAttributes') ? $p->getAttributes() : [] as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - (yield \print_r($attributes, \true)); - $attributes = []; - (yield $p->getDocComment()); - (yield $p->isDefault() ? '' : ''); - (yield $p->isPublic() ? 'public' : 'protected'); - (yield $p->isStatic() ? 'static' : ''); - (yield '$' . $p->name); - (yield \print_r(isset($defaults[$p->name]) && !\is_object($defaults[$p->name]) ? $defaults[$p->name] : null, \true)); - } - } - foreach ($class->getMethods(\ReflectionMethod::IS_PUBLIC | \ReflectionMethod::IS_PROTECTED) as $m) { - foreach (\method_exists($m, 'getAttributes') ? $m->getAttributes() : [] as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - (yield \print_r($attributes, \true)); - $attributes = []; - $defaults = []; - foreach ($m->getParameters() as $p) { - foreach (\method_exists($p, 'getAttributes') ? $p->getAttributes() : [] as $a) { - $attributes[] = [$a->getName(), (string) $a]; - } - (yield \print_r($attributes, \true)); - $attributes = []; - if (!$p->isDefaultValueAvailable()) { - $defaults[$p->name] = null; - continue; - } - $defaults[$p->name] = (string) $p; - } - (yield \preg_replace('/^ @@.*/m', '', $m)); - (yield \print_r($defaults, \true)); - } - if ($class->isAbstract() || $class->isInterface() || $class->isTrait()) { - return; - } - if (\interface_exists(EventSubscriberInterface::class, \false) && $class->isSubclassOf(EventSubscriberInterface::class)) { - (yield EventSubscriberInterface::class); - (yield \print_r($class->name::getSubscribedEvents(), \true)); - } - if (\interface_exists(MessageSubscriberInterface::class, \false) && $class->isSubclassOf(MessageSubscriberInterface::class)) { - (yield MessageSubscriberInterface::class); - foreach ($class->name::getHandledMessages() as $key => $value) { - (yield $key . \print_r($value, \true)); - } - } - if (\interface_exists(ServiceSubscriberInterface::class, \false) && $class->isSubclassOf(ServiceSubscriberInterface::class)) { - (yield ServiceSubscriberInterface::class); - (yield \print_r($class->name::getSubscribedServices(), \true)); - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/ResourceInterface.php b/vendor/rector/rector/vendor/symfony/config/Resource/ResourceInterface.php deleted file mode 100644 index d56777f45..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/ResourceInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -/** - * ResourceInterface is the interface that must be implemented by all Resource classes. - * - * @author Fabien Potencier - */ -interface ResourceInterface -{ - /** - * Returns a string representation of the Resource. - * - * This method is necessary to allow for resource de-duplication, for example by means - * of array_unique(). The string returned need not have a particular meaning, but has - * to be identical for different ResourceInterface instances referring to the same - * resource; and it should be unlikely to collide with that of other, unrelated - * resource instances. - */ - public function __toString() : string; -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php b/vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php deleted file mode 100644 index d502f1a5a..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceChecker.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -use RectorPrefix202308\Symfony\Component\Config\ResourceCheckerInterface; -/** - * Resource checker for instances of SelfCheckingResourceInterface. - * - * As these resources perform the actual check themselves, we can provide - * this class as a standard way of validating them. - * - * @author Matthias Pigulla - */ -class SelfCheckingResourceChecker implements ResourceCheckerInterface -{ - // Common shared cache, because this checker can be used in different - // situations. For example, when using the full stack framework, the router - // and the container have their own cache. But they may check the very same - // resources - /** - * @var mixed[] - */ - private static $cache = []; - public function supports(ResourceInterface $metadata) : bool - { - return $metadata instanceof SelfCheckingResourceInterface; - } - /** - * @param SelfCheckingResourceInterface $resource - */ - public function isFresh(ResourceInterface $resource, int $timestamp) : bool - { - $key = "{$resource}:{$timestamp}"; - return self::$cache[$key] = self::$cache[$key] ?? $resource->isFresh($timestamp); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php b/vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php deleted file mode 100644 index 9e3efa319..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Resource; - -/** - * Interface for Resources that can check for freshness autonomously, - * without special support from external services. - * - * @author Matthias Pigulla - */ -interface SelfCheckingResourceInterface extends ResourceInterface -{ - /** - * Returns true if the resource has not been updated since the given timestamp. - * - * @param int $timestamp The last time the resource was loaded - */ - public function isFresh(int $timestamp) : bool; -} diff --git a/vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCache.php b/vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCache.php deleted file mode 100644 index 5d49487b1..000000000 --- a/vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCache.php +++ /dev/null @@ -1,166 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config; - -use RectorPrefix202308\Symfony\Component\Config\Resource\ResourceInterface; -use RectorPrefix202308\Symfony\Component\Filesystem\Exception\IOException; -use RectorPrefix202308\Symfony\Component\Filesystem\Filesystem; -/** - * ResourceCheckerConfigCache uses instances of ResourceCheckerInterface - * to check whether cached data is still fresh. - * - * @author Matthias Pigulla - */ -class ResourceCheckerConfigCache implements ConfigCacheInterface -{ - /** - * @var string - */ - private $file; - /** - * @var iterable - */ - private $resourceCheckers; - /** - * @param string $file The absolute cache path - * @param iterable $resourceCheckers The ResourceCheckers to use for the freshness check - */ - public function __construct(string $file, iterable $resourceCheckers = []) - { - $this->file = $file; - $this->resourceCheckers = $resourceCheckers; - } - public function getPath() : string - { - return $this->file; - } - /** - * Checks if the cache is still fresh. - * - * This implementation will make a decision solely based on the ResourceCheckers - * passed in the constructor. - * - * The first ResourceChecker that supports a given resource is considered authoritative. - * Resources with no matching ResourceChecker will silently be ignored and considered fresh. - */ - public function isFresh() : bool - { - if (!\is_file($this->file)) { - return \false; - } - if ($this->resourceCheckers instanceof \Traversable && !$this->resourceCheckers instanceof \Countable) { - $this->resourceCheckers = \iterator_to_array($this->resourceCheckers); - } - if (!\count($this->resourceCheckers)) { - return \true; - // shortcut - if we don't have any checkers we don't need to bother with the meta file at all - } - $metadata = $this->getMetaFile(); - if (!\is_file($metadata)) { - return \false; - } - $meta = $this->safelyUnserialize($metadata); - if (\false === $meta) { - return \false; - } - $time = \filemtime($this->file); - foreach ($meta as $resource) { - foreach ($this->resourceCheckers as $checker) { - if (!$checker->supports($resource)) { - continue; - // next checker - } - if ($checker->isFresh($resource, $time)) { - break; - // no need to further check this resource - } - return \false; - // cache is stale - } - // no suitable checker found, ignore this resource - } - return \true; - } - /** - * Writes cache. - * - * @param string $content The content to write in the cache - * @param ResourceInterface[] $metadata An array of metadata - * - * @return void - * - * @throws \RuntimeException When cache file can't be written - */ - public function write(string $content, array $metadata = null) - { - $mode = 0666; - $umask = \umask(); - $filesystem = new Filesystem(); - $filesystem->dumpFile($this->file, $content); - try { - $filesystem->chmod($this->file, $mode, $umask); - } catch (IOException $exception) { - // discard chmod failure (some filesystem may not support it) - } - if (null !== $metadata) { - $filesystem->dumpFile($this->getMetaFile(), \serialize($metadata)); - try { - $filesystem->chmod($this->getMetaFile(), $mode, $umask); - } catch (IOException $exception) { - // discard chmod failure (some filesystem may not support it) - } - } - if (\function_exists('opcache_invalidate') && \filter_var(\ini_get('opcache.enable'), \FILTER_VALIDATE_BOOL)) { - @\opcache_invalidate($this->file, \true); - } - } - /** - * Gets the meta file path. - */ - private function getMetaFile() : string - { - return $this->file . '.meta'; - } - /** - * @return mixed - */ - private function safelyUnserialize(string $file) - { - $meta = \false; - $content = \file_get_contents($file); - $signalingException = new \UnexpectedValueException(); - $prevUnserializeHandler = \ini_set('unserialize_callback_func', self::class . '::handleUnserializeCallback'); - $prevErrorHandler = \set_error_handler(function ($type, $msg, $file, $line, $context = []) use(&$prevErrorHandler, $signalingException) { - if (__FILE__ === $file) { - throw $signalingException; - } - return $prevErrorHandler ? $prevErrorHandler($type, $msg, $file, $line, $context) : \false; - }); - try { - $meta = \unserialize($content); - } catch (\Throwable $e) { - if ($e !== $signalingException) { - throw $e; - } - } finally { - \restore_error_handler(); - \ini_set('unserialize_callback_func', $prevUnserializeHandler); - } - return $meta; - } - /** - * @internal - */ - public static function handleUnserializeCallback(string $class) : void - { - \trigger_error('Class not found: ' . $class); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php b/vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCacheFactory.php deleted file mode 100644 index 313011f86..000000000 --- a/vendor/rector/rector/vendor/symfony/config/ResourceCheckerConfigCacheFactory.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 RectorPrefix202308\Symfony\Component\Config; - -/** - * A ConfigCacheFactory implementation that validates the - * cache with an arbitrary set of ResourceCheckers. - * - * @author Matthias Pigulla - */ -class ResourceCheckerConfigCacheFactory implements ConfigCacheFactoryInterface -{ - /** - * @var iterable - */ - private $resourceCheckers = []; - /** - * @param iterable $resourceCheckers - */ - public function __construct(iterable $resourceCheckers = []) - { - $this->resourceCheckers = $resourceCheckers; - } - public function cache(string $file, callable $callable) : ConfigCacheInterface - { - $cache = new ResourceCheckerConfigCache($file, $this->resourceCheckers); - if (!$cache->isFresh()) { - $callable($cache); - } - return $cache; - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/ResourceCheckerInterface.php b/vendor/rector/rector/vendor/symfony/config/ResourceCheckerInterface.php deleted file mode 100644 index 1b8fb7dc7..000000000 --- a/vendor/rector/rector/vendor/symfony/config/ResourceCheckerInterface.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config; - -use RectorPrefix202308\Symfony\Component\Config\Resource\ResourceInterface; -/** - * Interface for ResourceCheckers. - * - * When a ResourceCheckerConfigCache instance is checked for freshness, all its associated - * metadata resources are passed to ResourceCheckers. The ResourceCheckers - * can then inspect the resources and decide whether the cache can be considered - * fresh or not. - * - * @author Matthias Pigulla - * @author Benjamin Klotz - */ -interface ResourceCheckerInterface -{ - /** - * Queries the ResourceChecker whether it can validate a given - * resource or not. - * - * @return bool - */ - public function supports(ResourceInterface $metadata); - /** - * Validates the resource. - * - * @param int $timestamp The timestamp at which the cache associated with this resource was created - * - * @return bool - */ - public function isFresh(ResourceInterface $resource, int $timestamp); -} diff --git a/vendor/rector/rector/vendor/symfony/config/Util/Exception/InvalidXmlException.php b/vendor/rector/rector/vendor/symfony/config/Util/Exception/InvalidXmlException.php deleted file mode 100644 index c3d059a75..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Util/Exception/InvalidXmlException.php +++ /dev/null @@ -1,21 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Util\Exception; - -/** - * Exception class for when XML parsing with an XSD schema file path or a callable validator produces errors unrelated - * to the actual XML parsing. - * - * @author Ole Rößner - */ -class InvalidXmlException extends XmlParsingException -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Util/Exception/XmlParsingException.php b/vendor/rector/rector/vendor/symfony/config/Util/Exception/XmlParsingException.php deleted file mode 100644 index 23f0760bc..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Util/Exception/XmlParsingException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Util\Exception; - -/** - * Exception class for when XML cannot be parsed properly. - * - * @author Ole Rößner - */ -class XmlParsingException extends \InvalidArgumentException -{ -} diff --git a/vendor/rector/rector/vendor/symfony/config/Util/XmlUtils.php b/vendor/rector/rector/vendor/symfony/config/Util/XmlUtils.php deleted file mode 100644 index 7a3b9910d..000000000 --- a/vendor/rector/rector/vendor/symfony/config/Util/XmlUtils.php +++ /dev/null @@ -1,235 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\Config\Util; - -use RectorPrefix202308\Symfony\Component\Config\Util\Exception\InvalidXmlException; -use RectorPrefix202308\Symfony\Component\Config\Util\Exception\XmlParsingException; -/** - * XMLUtils is a bunch of utility methods to XML operations. - * - * This class contains static methods only and is not meant to be instantiated. - * - * @author Fabien Potencier - * @author Martin Hasoň - * @author Ole Rößner - */ -class XmlUtils -{ - /** - * This class should not be instantiated. - */ - private function __construct() - { - } - /** - * Parses an XML string. - * - * @param string $content An XML string - * @param string|callable $schemaOrCallable An XSD schema file path, a callable, or null to disable validation - * - * @throws XmlParsingException When parsing of XML file returns error - * @throws InvalidXmlException When parsing of XML with schema or callable produces any errors unrelated to the XML parsing itself - * @throws \RuntimeException When DOM extension is missing - */ - public static function parse(string $content, $schemaOrCallable = null) : \DOMDocument - { - if (!\extension_loaded('dom')) { - throw new \LogicException('Extension DOM is required.'); - } - $internalErrors = \libxml_use_internal_errors(\true); - \libxml_clear_errors(); - $dom = new \DOMDocument(); - $dom->validateOnParse = \true; - if (!$dom->loadXML($content, \LIBXML_NONET | \LIBXML_COMPACT)) { - throw new XmlParsingException(\implode("\n", static::getXmlErrors($internalErrors))); - } - $dom->normalizeDocument(); - \libxml_use_internal_errors($internalErrors); - foreach ($dom->childNodes as $child) { - if (\XML_DOCUMENT_TYPE_NODE === $child->nodeType) { - throw new XmlParsingException('Document types are not allowed.'); - } - } - if (null !== $schemaOrCallable) { - $internalErrors = \libxml_use_internal_errors(\true); - \libxml_clear_errors(); - $e = null; - if (\is_callable($schemaOrCallable)) { - try { - $valid = $schemaOrCallable($dom, $internalErrors); - } catch (\Exception $e) { - $valid = \false; - } - } elseif (\is_file($schemaOrCallable)) { - $schemaSource = \file_get_contents((string) $schemaOrCallable); - $valid = @$dom->schemaValidateSource($schemaSource); - } else { - \libxml_use_internal_errors($internalErrors); - throw new XmlParsingException(\sprintf('Invalid XSD file: "%s".', $schemaOrCallable)); - } - if (!$valid) { - $messages = static::getXmlErrors($internalErrors); - if (!$messages) { - throw new InvalidXmlException('The XML is not valid.', 0, $e); - } - throw new XmlParsingException(\implode("\n", $messages), 0, $e); - } - } - \libxml_clear_errors(); - \libxml_use_internal_errors($internalErrors); - return $dom; - } - /** - * Loads an XML file. - * - * @param string $file An XML file path - * @param string|callable $schemaOrCallable An XSD schema file path, a callable, or null to disable validation - * - * @throws \InvalidArgumentException When loading of XML file returns error - * @throws XmlParsingException When XML parsing returns any errors - * @throws \RuntimeException When DOM extension is missing - */ - public static function loadFile(string $file, $schemaOrCallable = null) : \DOMDocument - { - if (!\is_file($file)) { - throw new \InvalidArgumentException(\sprintf('Resource "%s" is not a file.', $file)); - } - if (!\is_readable($file)) { - throw new \InvalidArgumentException(\sprintf('File "%s" is not readable.', $file)); - } - $content = @\file_get_contents($file); - if ('' === \trim($content)) { - throw new \InvalidArgumentException(\sprintf('File "%s" does not contain valid XML, it is empty.', $file)); - } - try { - return static::parse($content, $schemaOrCallable); - } catch (InvalidXmlException $e) { - throw new XmlParsingException(\sprintf('The XML file "%s" is not valid.', $file), 0, $e->getPrevious()); - } - } - /** - * Converts a \DOMElement object to a PHP array. - * - * The following rules applies during the conversion: - * - * * Each tag is converted to a key value or an array - * if there is more than one "value" - * - * * The content of a tag is set under a "value" key (bar) - * if the tag also has some nested tags - * - * * The attributes are converted to keys () - * - * * The nested-tags are converted to keys (bar) - * - * @param \DOMElement $element A \DOMElement instance - * @param bool $checkPrefix Check prefix in an element or an attribute name - * @return mixed - */ - public static function convertDomElementToArray(\DOMElement $element, bool $checkPrefix = \true) - { - $prefix = (string) $element->prefix; - $empty = \true; - $config = []; - foreach ($element->attributes as $name => $node) { - if ($checkPrefix && !\in_array((string) $node->prefix, ['', $prefix], \true)) { - continue; - } - $config[$name] = static::phpize($node->value); - $empty = \false; - } - $nodeValue = \false; - foreach ($element->childNodes as $node) { - if ($node instanceof \DOMText) { - if ('' !== \trim($node->nodeValue)) { - $nodeValue = \trim($node->nodeValue); - $empty = \false; - } - } elseif ($checkPrefix && $prefix != (string) $node->prefix) { - continue; - } elseif (!$node instanceof \DOMComment) { - $value = static::convertDomElementToArray($node, $checkPrefix); - $key = $node->localName; - if (isset($config[$key])) { - if (!\is_array($config[$key]) || !\is_int(\key($config[$key]))) { - $config[$key] = [$config[$key]]; - } - $config[$key][] = $value; - } else { - $config[$key] = $value; - } - $empty = \false; - } - } - if (\false !== $nodeValue) { - $value = static::phpize($nodeValue); - if (\count($config)) { - $config['value'] = $value; - } else { - $config = $value; - } - } - return !$empty ? $config : null; - } - /** - * Converts an xml value to a PHP type. - * @param string|\Stringable $value - * @return mixed - */ - public static function phpize($value) - { - $value = (string) $value; - $lowercaseValue = \strtolower($value); - switch (\true) { - case 'null' === $lowercaseValue: - return null; - case \ctype_digit($value): - case isset($value[1]) && '-' === $value[0] && \ctype_digit(\substr($value, 1)): - $raw = $value; - $cast = (int) $value; - return self::isOctal($value) ? \intval($value, 8) : ($raw === (string) $cast ? $cast : $raw); - case 'true' === $lowercaseValue: - return \true; - case 'false' === $lowercaseValue: - return \false; - case isset($value[1]) && '0b' == $value[0] . $value[1] && \preg_match('/^0b[01]*$/', $value): - return \bindec($value); - case \is_numeric($value): - return '0x' === $value[0] . $value[1] ? \hexdec($value) : (float) $value; - case \preg_match('/^0x[0-9a-f]++$/i', $value): - return \hexdec($value); - case \preg_match('/^[+-]?[0-9]+(\\.[0-9]+)?$/', $value): - return (float) $value; - default: - return $value; - } - } - /** - * @return array - */ - protected static function getXmlErrors(bool $internalErrors) - { - $errors = []; - foreach (\libxml_get_errors() as $error) { - $errors[] = \sprintf('[%s %s] %s (in %s - line %d, column %d)', \LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR', $error->code, \trim($error->message), $error->file ?: 'n/a', $error->line, $error->column); - } - \libxml_clear_errors(); - \libxml_use_internal_errors($internalErrors); - return $errors; - } - private static function isOctal(string $str) : bool - { - if ('-' === $str[0]) { - $str = \substr($str, 1); - } - return $str === '0' . \decoct(\intval($str, 8)); - } -} diff --git a/vendor/rector/rector/vendor/symfony/config/composer.json b/vendor/rector/rector/vendor/symfony/config/composer.json deleted file mode 100644 index 367a29cb5..000000000 --- a/vendor/rector/rector/vendor/symfony/config/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "symfony\/config", - "type": "library", - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", - "keywords": [], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1", - "symfony\/deprecation-contracts": "^2.5|^3", - "symfony\/filesystem": "^5.4|^6.0", - "symfony\/polyfill-ctype": "~1.8" - }, - "require-dev": { - "symfony\/event-dispatcher": "^5.4|^6.0", - "symfony\/finder": "^5.4|^6.0", - "symfony\/messenger": "^5.4|^6.0", - "symfony\/service-contracts": "^2.5|^3", - "symfony\/yaml": "^5.4|^6.0" - }, - "conflict": { - "symfony\/finder": "<5.4", - "symfony\/service-contracts": "<2.5" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "\/Tests\/" - ] - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/console/Application.php b/vendor/rector/rector/vendor/symfony/console/Application.php index b12df0945..9f9bd2c15 100644 --- a/vendor/rector/rector/vendor/symfony/console/Application.php +++ b/vendor/rector/rector/vendor/symfony/console/Application.php @@ -8,51 +8,51 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console; +namespace RectorPrefix202309\Symfony\Component\Console; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Command\CompleteCommand; -use RectorPrefix202308\Symfony\Component\Console\Command\DumpCompletionCommand; -use RectorPrefix202308\Symfony\Component\Console\Command\HelpCommand; -use RectorPrefix202308\Symfony\Component\Console\Command\LazyCommand; -use RectorPrefix202308\Symfony\Component\Console\Command\ListCommand; -use RectorPrefix202308\Symfony\Component\Console\Command\SignalableCommandInterface; -use RectorPrefix202308\Symfony\Component\Console\CommandLoader\CommandLoaderInterface; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleCommandEvent; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleErrorEvent; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleSignalEvent; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleTerminateEvent; -use RectorPrefix202308\Symfony\Component\Console\Exception\CommandNotFoundException; -use RectorPrefix202308\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\Console\Exception\NamespaceNotFoundException; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Helper\DebugFormatterHelper; -use RectorPrefix202308\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202308\Symfony\Component\Console\Helper\FormatterHelper; -use RectorPrefix202308\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202308\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202308\Symfony\Component\Console\Helper\ProcessHelper; -use RectorPrefix202308\Symfony\Component\Console\Helper\QuestionHelper; -use RectorPrefix202308\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202308\Symfony\Component\Console\Input\ArrayInput; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputAwareInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\SignalRegistry\SignalRegistry; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202308\Symfony\Component\ErrorHandler\ErrorHandler; -use RectorPrefix202308\Symfony\Contracts\EventDispatcher\EventDispatcherInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ResetInterface; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Command\CompleteCommand; +use RectorPrefix202309\Symfony\Component\Console\Command\DumpCompletionCommand; +use RectorPrefix202309\Symfony\Component\Console\Command\HelpCommand; +use RectorPrefix202309\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202309\Symfony\Component\Console\Command\ListCommand; +use RectorPrefix202309\Symfony\Component\Console\Command\SignalableCommandInterface; +use RectorPrefix202309\Symfony\Component\Console\CommandLoader\CommandLoaderInterface; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleTerminateEvent; +use RectorPrefix202309\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202309\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Exception\NamespaceNotFoundException; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Helper\DebugFormatterHelper; +use RectorPrefix202309\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202309\Symfony\Component\Console\Helper\FormatterHelper; +use RectorPrefix202309\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202309\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202309\Symfony\Component\Console\Helper\ProcessHelper; +use RectorPrefix202309\Symfony\Component\Console\Helper\QuestionHelper; +use RectorPrefix202309\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202309\Symfony\Component\Console\Input\ArrayInput; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\SignalRegistry\SignalRegistry; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\ErrorHandler\ErrorHandler; +use RectorPrefix202309\Symfony\Contracts\EventDispatcher\EventDispatcherInterface; +use RectorPrefix202309\Symfony\Contracts\Service\ResetInterface; /** * An Application is the container for a collection of commands. * @@ -914,7 +914,7 @@ protected function doRunCommand(Command $command, InputInterface $input, OutputI $exitCode = $command->handleSignal($signal, $exitCode); // BC layer for Symfony <= 5 if (null === $exitCode) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', \get_debug_type($command)); + // \trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', \get_debug_type($command)); $exitCode = 0; } } @@ -931,7 +931,7 @@ protected function doRunCommand(Command $command, InputInterface $input, OutputI $exitCode = $command->handleSignal($signal); // BC layer for Symfony <= 5 if (null === $exitCode) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', \get_debug_type($command)); + // \trigger_deprecation('symfony/console', '6.3', 'Not returning an exit code from "%s::handleSignal()" is deprecated, return "false" to keep the command running or "0" to exit successfully.', \get_debug_type($command)); $exitCode = 0; } if (\false !== $exitCode) { diff --git a/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php b/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php index 85344133e..64ee0739d 100644 --- a/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Attribute; +namespace RectorPrefix202309\Symfony\Component\Console\Attribute; /** * Service tag to autoconfigure commands. diff --git a/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php b/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php index 34d041bd5..1ab6f9eb2 100644 --- a/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php +++ b/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\CI; +namespace RectorPrefix202309\Symfony\Component\Console\CI; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Utility class for Github actions. * diff --git a/vendor/rector/rector/vendor/symfony/console/Color.php b/vendor/rector/rector/vendor/symfony/console/Color.php index 3c2ff253d..fa25338a2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Color.php +++ b/vendor/rector/rector/vendor/symfony/console/Color.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console; +namespace RectorPrefix202309\Symfony\Component\Console; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Fabien Potencier */ diff --git a/vendor/rector/rector/vendor/symfony/console/Command/Command.php b/vendor/rector/rector/vendor/symfony/console/Command/Command.php index d80661b7f..159286e67 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/Command.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/Command.php @@ -8,23 +8,23 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; +namespace RectorPrefix202309\Symfony\Component\Console\Command; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202308\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202308\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202309\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202309\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Base class for all commands. * @@ -115,7 +115,7 @@ public static function getDefaultName() : ?string if ($class !== $r->class || null === static::$defaultName) { return null; } - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); + // \trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultName" for setting a command name is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); return static::$defaultName; } public static function getDefaultDescription() : ?string @@ -129,7 +129,7 @@ public static function getDefaultDescription() : ?string if ($class !== $r->class || null === static::$defaultDescription) { return null; } - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultDescription" for setting a command description is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); + // \trigger_deprecation('symfony/console', '6.1', 'Relying on the static property "$defaultDescription" for setting a command description is deprecated. Add the "%s" attribute to the "%s" class instead.', AsCommand::class, static::class); return static::$defaultDescription; } /** @@ -173,7 +173,7 @@ public function ignoreValidationErrors() public function setApplication(Application $application = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } $this->application = $application; if ($application) { @@ -305,7 +305,7 @@ public function run(InputInterface $input, OutputInterface $output) : int \cli_set_process_title($this->processTitle); } } - } elseif (\function_exists('RectorPrefix202308\\setproctitle')) { + } elseif (\function_exists('RectorPrefix202309\\setproctitle')) { setproctitle($this->processTitle); } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) { $output->writeln('Install the proctitle PECL to be able to change the process title.'); diff --git a/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php index 2d1129e26..43c58becb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; +namespace RectorPrefix202309\Symfony\Component\Console\Command; -use RectorPrefix202308\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Completion\Output\BashCompletionOutput; -use RectorPrefix202308\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Completion\Output\FishCompletionOutput; -use RectorPrefix202308\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; -use RectorPrefix202308\Symfony\Component\Console\Exception\CommandNotFoundException; -use RectorPrefix202308\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Completion\Output\BashCompletionOutput; +use RectorPrefix202309\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Completion\Output\FishCompletionOutput; +use RectorPrefix202309\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; +use RectorPrefix202309\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202309\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Responsible for providing the values to the shell completion. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php index 71a33d1e0..48a05c359 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; +namespace RectorPrefix202309\Symfony\Component\Console\Command; -use RectorPrefix202308\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Process\Process; /** * Dumps the completion script for the current shell. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php index d6b1c0740..c576d7b48 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; +namespace RectorPrefix202309\Symfony\Component\Console\Command; -use RectorPrefix202308\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202308\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202309\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * HelpCommand displays the help for a given command. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php index 8169d7b05..0dbd62eeb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php @@ -8,17 +8,17 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; +namespace RectorPrefix202309\Symfony\Component\Console\Command; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202308\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202308\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202309\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202309\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Nicolas Grekas */ @@ -45,7 +45,7 @@ public function ignoreValidationErrors() : void public function setApplication(Application $application = null) : void { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } if ($this->command instanceof parent) { $this->command->setApplication($application); diff --git a/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php index 1adeb3cd4..41ac4e6b9 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; - -use RectorPrefix202308\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202308\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +namespace RectorPrefix202309\Symfony\Component\Console\Command; + +use RectorPrefix202309\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202309\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * ListCommand displays the list of all available commands for the application. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php b/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php index d5b81d845..40b5c1522 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; +namespace RectorPrefix202309\Symfony\Component\Console\Command; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\Lock\LockFactory; -use RectorPrefix202308\Symfony\Component\Lock\LockInterface; -use RectorPrefix202308\Symfony\Component\Lock\Store\FlockStore; -use RectorPrefix202308\Symfony\Component\Lock\Store\SemaphoreStore; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Lock\LockFactory; +use RectorPrefix202309\Symfony\Component\Lock\LockInterface; +use RectorPrefix202309\Symfony\Component\Lock\Store\FlockStore; +use RectorPrefix202309\Symfony\Component\Lock\Store\SemaphoreStore; /** * Basic lock feature for commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php b/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php index 70d0d5031..41a986b2a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Command; +namespace RectorPrefix202309\Symfony\Component\Console\Command; /** * Interface for command reacting to signal. diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php index bdbd9d725..404826bef 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202309\Symfony\Component\Console\CommandLoader; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Robin Chalas */ diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php index fb330c92c..08125bdbc 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202309\Symfony\Component\Console\CommandLoader; -use RectorPrefix202308\Psr\Container\ContainerInterface; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202309\Psr\Container\ContainerInterface; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Exception\CommandNotFoundException; /** * Loads commands from a PSR-11 container. * diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php index cda47ff70..a8b166e69 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202309\Symfony\Component\Console\CommandLoader; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Exception\CommandNotFoundException; /** * A simple command loader using factories to instantiate commands lazily. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php index 2ef98d288..c18438d7f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Completion; +namespace RectorPrefix202309\Symfony\Component\Console\Completion; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; /** * An input specialized for shell completion. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php index fd78ac8f0..692da1a87 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Completion; +namespace RectorPrefix202309\Symfony\Component\Console\Completion; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; /** * Stores all completion suggestions for the current input. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php index 53fec4ff6..e29a94252 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Completion\Output; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Wouter de Jong */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php index 01cdcace8..aaa4b4ef0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Completion\Output; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Transforms the {@see CompletionSuggestions} object into output readable by the shell completion. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php index a42aae2db..a008e05e9 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Completion\Output; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Guillaume Aveline */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php index 2b1ffcc10..7d7d7af29 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Completion\Output; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Jitendra A */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php b/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php index 7ccecefa4..3330be599 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Completion; +namespace RectorPrefix202309\Symfony\Component\Console\Completion; /** * Represents a single suggested value. diff --git a/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php b/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php index ce1eaa6ae..e2dc52bfa 100644 --- a/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php +++ b/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console; +namespace RectorPrefix202309\Symfony\Component\Console; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleCommandEvent; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleErrorEvent; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleSignalEvent; -use RectorPrefix202308\Symfony\Component\Console\Event\ConsoleTerminateEvent; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202309\Symfony\Component\Console\Event\ConsoleTerminateEvent; /** * Contains all events dispatched by an Application. * diff --git a/vendor/rector/rector/vendor/symfony/console/Cursor.php b/vendor/rector/rector/vendor/symfony/console/Cursor.php index 92ecaad0c..aa9287c1a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Cursor.php +++ b/vendor/rector/rector/vendor/symfony/console/Cursor.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console; +namespace RectorPrefix202309\Symfony\Component\Console; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Pierre du Plessis */ diff --git a/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php index 2ee0a3133..91d80fa46 100644 --- a/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ b/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php @@ -8,18 +8,18 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\DependencyInjection; +namespace RectorPrefix202309\Symfony\Component\Console\DependencyInjection; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Command\LazyCommand; -use RectorPrefix202308\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202309\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; +use RectorPrefix202309\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use RectorPrefix202309\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use RectorPrefix202309\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; +use RectorPrefix202309\Symfony\Component\DependencyInjection\ContainerBuilder; +use RectorPrefix202309\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\DependencyInjection\Reference; +use RectorPrefix202309\Symfony\Component\DependencyInjection\TypedReference; /** * Registers console commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php index 8a0a57166..19320ad35 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Jean-François Simon * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php index 364879549..e6de31018 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Jean-François Simon * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php index bf5c5e1c5..c50cc0270 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Descriptor interface. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php index 996e11084..b2018afd3 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; /** * JSON descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php index 1a5e83dc3..e7552fa28 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Markdown descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php index 4e2a13d46..972f85258 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\String\UnicodeString; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\String\UnicodeString; class ReStructuredTextDescriptor extends Descriptor { //

diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php index a4e338cc6..4c836449b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; /** * Text descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php index 1f2e3ccfc..9e29d2f1f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202309\Symfony\Component\Console\Descriptor; -use RectorPrefix202308\Symfony\Component\Console\Application; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202308\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202308\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202309\Symfony\Component\Console\Application; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202309\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202309\Symfony\Component\Console\Input\InputOption; /** * XML descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php b/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php index 9eee55cf7..ee24ccafb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * Represents an incorrect command name typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php index a459be137..7d180d1c0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * ExceptionInterface. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php index aa8cb6562..22430e7ef 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php index fcdcf4b86..243c7e3df 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * Represents an incorrect option name or value typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php b/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php index fa17794a7..e4c8d7c8e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php b/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php index d16c0bb08..3fd73e99c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * Represents failure to read input from stdin. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php b/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php index fa3fb64b7..60ec5e870 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * Represents an incorrect namespace typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php index 9b86d5aa1..496cebd47 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Exception; +namespace RectorPrefix202309\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php index 608f6ca69..46abac85b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php index 90ffff0fa..17acec13c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo @@ -22,14 +22,14 @@ public function apply(string $text) : string public function setBackground(string $color = null) : void { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } // do nothing } public function setForeground(string $color = null) : void { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } // do nothing } diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php index 7d155854e..fcedd8286 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php @@ -8,9 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use function RectorPrefix202309\Symfony\Component\String\b; /** * Formatter class for console output. * @@ -213,7 +214,7 @@ private function applyCurrentStyle(string $text, string $current, int $width, in $prefix = ''; } \preg_match('~(\\n)$~', $text, $matches); - $text = $prefix . \preg_replace('~([^\\n]{' . $width . '})\\ *~', "\$1\n", $text); + $text = $prefix . $this->addLineBreaks($text, $width); $text = \rtrim($text, "\n") . ($matches[1] ?? ''); if (!$currentLineLength && '' !== $current && \substr_compare($current, "\n", -\strlen("\n")) !== 0) { $text = "\n" . $text; @@ -232,4 +233,9 @@ private function applyCurrentStyle(string $text, string $current, int $width, in } return \implode("\n", $lines); } + private function addLineBreaks(string $text, int $width) : string + { + $encoding = \mb_detect_encoding($text, null, \true) ?: 'UTF-8'; + return b($text)->toCodePointString($encoding)->wordwrap($width, "\n", \true)->toByteString($encoding); + } } diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php index 01879cff5..546ad9be3 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; /** * Formatter interface for console output. diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php index dcefe3038..e1a38e0be 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; -use RectorPrefix202308\Symfony\Component\Console\Color; +use RectorPrefix202309\Symfony\Component\Console\Color; /** * Formatter style class for defining styles. * @@ -58,7 +58,7 @@ public function __construct(string $foreground = null, string $background = null public function setForeground(string $color = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } $this->color = new Color($this->foreground = $color ?: '', $this->background, $this->options); } @@ -68,7 +68,7 @@ public function setForeground(string $color = null) public function setBackground(string $color = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } $this->color = new Color($this->foreground, $this->background = $color ?: '', $this->options); } diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php index 2fb8fdb9f..643f850dd 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; /** * Formatter style interface for defining styles. diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php index 8f1eab859..9f47e41a1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Contracts\Service\ResetInterface; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Contracts\Service\ResetInterface; /** * @author Jean-François Simon */ diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php index b29944058..128181988 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Formatter; +namespace RectorPrefix202309\Symfony\Component\Console\Formatter; /** * Formatter interface for console output that supports word wrapping. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php index 1fdfdceca..73ac85130 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; /** * Helps outputting debug information when running an external program from a command. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php index 53b164ca6..198c3ee59 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Descriptor\DescriptorInterface; -use RectorPrefix202308\Symfony\Component\Console\Descriptor\JsonDescriptor; -use RectorPrefix202308\Symfony\Component\Console\Descriptor\MarkdownDescriptor; -use RectorPrefix202308\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; -use RectorPrefix202308\Symfony\Component\Console\Descriptor\TextDescriptor; -use RectorPrefix202308\Symfony\Component\Console\Descriptor\XmlDescriptor; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Descriptor\DescriptorInterface; +use RectorPrefix202309\Symfony\Component\Console\Descriptor\JsonDescriptor; +use RectorPrefix202309\Symfony\Component\Console\Descriptor\MarkdownDescriptor; +use RectorPrefix202309\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; +use RectorPrefix202309\Symfony\Component\Console\Descriptor\TextDescriptor; +use RectorPrefix202309\Symfony\Component\Console\Descriptor\XmlDescriptor; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * This class adds helper method to describe objects in various formats. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php b/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php index aa7b23619..fc643d3ca 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\VarDumper\Cloner\ClonerInterface; -use RectorPrefix202308\Symfony\Component\VarDumper\Cloner\VarCloner; -use RectorPrefix202308\Symfony\Component\VarDumper\Dumper\CliDumper; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\VarDumper\Cloner\ClonerInterface; +use RectorPrefix202309\Symfony\Component\VarDumper\Cloner\VarCloner; +use RectorPrefix202309\Symfony\Component\VarDumper\Dumper\CliDumper; /** * @author Roland Franssen */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php index 59d72077d..e5135d8ee 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; /** * The Formatter class provides helpers to format messages. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php b/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php index 019d7fd04..465bb0f69 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202308\Symfony\Component\String\UnicodeString; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\String\UnicodeString; /** * Helper is the base class for all helper classes. * @@ -26,7 +26,7 @@ abstract class Helper implements HelperInterface public function setHelperSet(HelperSet $helperSet = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } $this->helperSet = $helperSet; } @@ -41,6 +41,7 @@ public function getHelperSet() : ?HelperSet public static function width(?string $string) : int { $string = $string ?? ''; + return \mb_strlen($string); if (\preg_match('//u', $string)) { return (new UnicodeString($string))->width(\false); } @@ -56,6 +57,7 @@ public static function width(?string $string) : int public static function length(?string $string) : int { $string = $string ?? ''; + return \mb_strlen($string); if (\preg_match('//u', $string)) { return (new UnicodeString($string))->length(); } diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php b/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php index 790e679ab..baf923658 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; /** * HelperInterface is the interface all helpers must implement. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php b/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php index 93e3027ce..698082f27 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; /** * HelperSet represents a set of helpers to be used with a command. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php index 60515f585..cca6c0f39 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Input\InputAwareInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; /** * An implementation of InputAwareInterface for Helpers. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php b/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php index d5f1f9e1e..ca0db41e9 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; /** * Simple output wrapper for "tagged outputs" instead of wordwrap(). This solution is based on a StackOverflow diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php index 3895f8846..45b191f82 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202309\Symfony\Component\Process\Process; /** * The ProcessHelper class provides helpers to run external processes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php index 9182f6472..8d64edd58 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Cursor; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Terminal; +use RectorPrefix202309\Symfony\Component\Console\Cursor; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Terminal; /** * The ProgressBar provides helpers to display progress output. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php index 2b8f14868..89452c543 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Kevin Bond */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php index 4d9b4add8..57f45c2a1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php @@ -8,22 +8,22 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Cursor; -use RectorPrefix202308\Symfony\Component\Console\Exception\MissingInputException; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterStyle; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Input\StreamableInputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202308\Symfony\Component\Console\Question\Question; -use RectorPrefix202308\Symfony\Component\Console\Terminal; -use function RectorPrefix202308\Symfony\Component\String\s; +use RectorPrefix202309\Symfony\Component\Console\Cursor; +use RectorPrefix202309\Symfony\Component\Console\Exception\MissingInputException; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterStyle; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Input\StreamableInputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202309\Symfony\Component\Console\Question\Question; +use RectorPrefix202309\Symfony\Component\Console\Terminal; +use function RectorPrefix202309\Symfony\Component\String\s; /** * The QuestionHelper class provides helpers to interact with the user. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php index f482e2d91..4a0c00d69 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202308\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202308\Symfony\Component\Console\Question\Question; -use RectorPrefix202308\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202309\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202309\Symfony\Component\Console\Question\Question; +use RectorPrefix202309\Symfony\Component\Console\Style\SymfonyStyle; /** * Symfony Style Guide compliant question helper. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Table.php b/vendor/rector/rector/vendor/symfony/console/Helper/Table.php index 9124f8109..41d727168 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Table.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Table.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Provides helpers to display a table. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php index 995825755..98a933511 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Abdellatif Ait boudad */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php index 9f3e4164a..0729d7b9a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Yewhen Khoptynskyi */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php index 8048dec88..a75591f6c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; /** * @internal diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php index 86335733a..4278c4884 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; /** * Marks a row as being a separator. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php index dc9756e39..b47656df8 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Helper; +namespace RectorPrefix202309\Symfony\Component\Console\Helper; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; /** * Defines the styles for a Table. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php b/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php index 2f993ec2a..42aad3c47 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; /** * ArgvInput represents an input coming from the CLI arguments. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php b/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php index 45186bf0c..087089fb4 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidOptionException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidOptionException; /** * ArrayInput represents an input provided as an array. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/Input.php b/vendor/rector/rector/vendor/symfony/console/Input/Input.php index 74ebc92f1..964874633 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/Input.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/Input.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; /** * Input is the base class for all concrete Input classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php b/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php index c346b8113..4dae0998b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line argument. * @@ -104,7 +104,7 @@ public function isArray() : bool public function setDefault($default = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } if ($this->isRequired() && null !== $default) { throw new LogicException('Cannot set a default value except for InputArgument::OPTIONAL mode.'); diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php index f82c0f655..3891e5285 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; /** * InputAwareInterface should be implemented by classes that depends on the diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php b/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php index 13e99a108..f7f55b9e1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; /** * A InputDefinition represents a set of valid command line arguments and options. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php index a68afc612..c765ad8ae 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; /** * InputInterface is the interface implemented by all input classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php b/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php index e5203ba61..db88f2052 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202308\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202308\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202309\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202309\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line option. * @@ -179,7 +179,7 @@ public function isNegatable() : bool public function setDefault($default = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } if (self::VALUE_NONE === (self::VALUE_NONE & $this->mode) && null !== $default) { throw new LogicException('Cannot set a default value when using InputOption::VALUE_NONE mode.'); diff --git a/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php index 81af8e4ab..cda040d2e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; /** * StreamableInputInterface is the interface implemented by all input classes diff --git a/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php b/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php index c2744fd96..eec8ff26e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Input; +namespace RectorPrefix202309\Symfony\Component\Console\Input; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; /** * StringInput represents an input provided as a string. * diff --git a/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php b/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php index f1e2c8ad9..0b4c39dc2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php +++ b/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Logger; +namespace RectorPrefix202309\Symfony\Component\Console\Logger; -use RectorPrefix202308\Psr\Log\AbstractLogger; -use RectorPrefix202308\Psr\Log\InvalidArgumentException; -use RectorPrefix202308\Psr\Log\LogLevel; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Psr\Log\AbstractLogger; +use RectorPrefix202309\Psr\Log\InvalidArgumentException; +use RectorPrefix202309\Psr\Log\LogLevel; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * PSR-3 compliant console logger. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php b/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php index cb3a1e851..ca0ca6cc0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; class AnsiColorMode { public const Ansi4 = 'ansi4'; diff --git a/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php index dcbbe9da6..4b836dbe4 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; /** * @author Jean-François Simon diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php index 0cbced2a4..95c5f4e19 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * ConsoleOutput is the default class for all CLI output. It uses STDOUT and STDERR. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php index 10f9998d2..c9d237d58 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; /** * ConsoleOutputInterface is the interface implemented by ConsoleOutput class. diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php index bce67308d..beb479380 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202308\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202308\Symfony\Component\Console\Terminal; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202309\Symfony\Component\Console\Terminal; /** * @author Pierre du Plessis * @author Gabriel Ostrolucký @@ -59,8 +59,9 @@ public function __construct($stream, array &$sections, int $verbosity, bool $dec public function setMaxHeight(int $maxHeight) : void { // when changing max height, clear output of current section and redraw again with the new height - $existingContent = $this->popStreamContentUntilCurrentSection($this->maxHeight ? \min($this->maxHeight, $this->lines) : $this->lines); + $previousMaxHeight = $this->maxHeight; $this->maxHeight = $maxHeight; + $existingContent = $this->popStreamContentUntilCurrentSection($previousMaxHeight ? \min($previousMaxHeight, $this->lines) : $this->lines); parent::doWrite($this->getVisibleContent(), \false); parent::doWrite($existingContent, \false); } @@ -120,8 +121,7 @@ public function addContent(string $input, bool $newline = \true) : int // re-add the line break (that has been removed in the above `explode()` for // - every line that is not the last line // - if $newline is required, also add it to the last line - // - if it's not new line, but input ending with `\PHP_EOL` - if ($i < $count || $newline || \substr_compare($input, \PHP_EOL, -\strlen(\PHP_EOL)) === 0) { + if ($i < $count || $newline) { $lineContent .= \PHP_EOL; } // skip line if there is no text (or newline for that matter) @@ -159,6 +159,11 @@ public function addNewLineOfInputSubmit() : void */ protected function doWrite(string $message, bool $newline) { + // Simulate newline behavior for consistent output formatting, avoiding extra logic + if (!$newline && \substr_compare($message, \PHP_EOL, -\strlen(\PHP_EOL)) === 0) { + $message = \substr($message, 0, -\strlen(\PHP_EOL)); + $newline = \true; + } if (!$this->isDecorated()) { parent::doWrite($message, $newline); return; @@ -194,7 +199,7 @@ private function popStreamContentUntilCurrentSection(int $numberOfLinesToClearFr if ($section === $this) { break; } - $numberOfLinesToClear += $section->lines; + $numberOfLinesToClear += $section->maxHeight ? \min($section->lines, $section->maxHeight) : $section->lines; if ('' !== ($sectionContent = $section->getVisibleContent())) { if (\substr_compare($sectionContent, \PHP_EOL, -\strlen(\PHP_EOL)) !== 0) { $sectionContent .= \PHP_EOL; diff --git a/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php index 1b0fffb36..ec26b03bc 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Formatter\NullOutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Formatter\NullOutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * NullOutput suppresses all output. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/Output.php b/vendor/rector/rector/vendor/symfony/console/Output/Output.php index c040a53ed..0c3ed2b22 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/Output.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/Output.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * Base class for output classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php index 087ef536b..e996be03f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * OutputInterface is the interface implemented by all Output classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php index c483b5e14..9db8eda06 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * StreamOutput writes the output to a given stream. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php index 78217942d..785feaa47 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Output; +namespace RectorPrefix202309\Symfony\Component\Console\Output; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * A BufferedOutput that keeps only the last N chars. * diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/PATCHES.txt b/vendor/rector/rector/vendor/symfony/console/PATCHES.txt similarity index 54% rename from vendor/rector/rector/vendor/symfony/dependency-injection/PATCHES.txt rename to vendor/rector/rector/vendor/symfony/console/PATCHES.txt index b910adf72..ed64ff53d 100644 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/PATCHES.txt +++ b/vendor/rector/rector/vendor/symfony/console/PATCHES.txt @@ -2,6 +2,6 @@ This file was automatically generated by Composer Patches (https://github.com/cw Patches applied to this directory: 0 -Source: https://raw.githubusercontent.com/symplify/vendor-patch-files/main/patches/generic-php-config-loader.patch +Source: https://raw.githubusercontent.com/rectorphp/vendor-patches/main/patches/symfony-console-helper-helper-php.patch diff --git a/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php b/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php index b0e6a7c64..73bdf3c52 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Question; +namespace RectorPrefix202309\Symfony\Component\Console\Question; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; /** * Represents a choice question. * diff --git a/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php b/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php index b2d4c5193..57b6a9e2b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Question; +namespace RectorPrefix202309\Symfony\Component\Console\Question; /** * Represents a yes/no question. diff --git a/vendor/rector/rector/vendor/symfony/console/Question/Question.php b/vendor/rector/rector/vendor/symfony/console/Question/Question.php index 73145d98c..06651c137 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/Question.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/Question.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Question; +namespace RectorPrefix202309\Symfony\Component\Console\Question; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\LogicException; /** * Represents a Question. * @@ -188,7 +188,7 @@ public function getAutocompleterCallback() : ?callable public function setAutocompleterCallback(callable $callback = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } if ($this->hidden && null !== $callback) { throw new LogicException('A hidden question cannot use the autocompleter.'); @@ -204,7 +204,7 @@ public function setAutocompleterCallback(callable $callback = null) public function setValidator(callable $validator = null) { if (1 > \func_num_args()) { - \RectorPrefix202308\trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); + // \trigger_deprecation('symfony/console', '6.2', 'Calling "%s()" without any arguments is deprecated, pass null explicitly instead.', __METHOD__); } $this->validator = null === $validator ? null : \Closure::fromCallable($validator); return $this; diff --git a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php index 3fa694814..38e4cd528 100644 --- a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php +++ b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202309\Symfony\Component\Console\SignalRegistry; final class SignalRegistry { diff --git a/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php b/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php index f9e2869bd..cd86898b0 100644 --- a/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php +++ b/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console; +namespace RectorPrefix202309\Symfony\Component\Console; -use RectorPrefix202308\Symfony\Component\Console\Command\Command; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Command\Command; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * @author Grégoire Pineau */ diff --git a/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php b/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php index d9fc90265..3d75dc3bb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Style; +namespace RectorPrefix202309\Symfony\Component\Console\Style; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202308\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202309\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; /** * Decorates output to add console style guide helpers. * diff --git a/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php b/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php index 870ac0b20..e4239254c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Style; +namespace RectorPrefix202309\Symfony\Component\Console\Style; /** * Output style helpers. diff --git a/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php b/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php index 15af06028..a43aca613 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php @@ -8,27 +8,27 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console\Style; +namespace RectorPrefix202309\Symfony\Component\Console\Style; -use RectorPrefix202308\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202308\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202308\Symfony\Component\Console\Helper\OutputWrapper; -use RectorPrefix202308\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202308\Symfony\Component\Console\Helper\SymfonyQuestionHelper; -use RectorPrefix202308\Symfony\Component\Console\Helper\Table; -use RectorPrefix202308\Symfony\Component\Console\Helper\TableCell; -use RectorPrefix202308\Symfony\Component\Console\Helper\TableSeparator; -use RectorPrefix202308\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202308\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202308\Symfony\Component\Console\Output\TrimmedBufferOutput; -use RectorPrefix202308\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202308\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202308\Symfony\Component\Console\Question\Question; -use RectorPrefix202308\Symfony\Component\Console\Terminal; +use RectorPrefix202309\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202309\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202309\Symfony\Component\Console\Helper\OutputWrapper; +use RectorPrefix202309\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202309\Symfony\Component\Console\Helper\SymfonyQuestionHelper; +use RectorPrefix202309\Symfony\Component\Console\Helper\Table; +use RectorPrefix202309\Symfony\Component\Console\Helper\TableCell; +use RectorPrefix202309\Symfony\Component\Console\Helper\TableSeparator; +use RectorPrefix202309\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202309\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202309\Symfony\Component\Console\Output\TrimmedBufferOutput; +use RectorPrefix202309\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202309\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202309\Symfony\Component\Console\Question\Question; +use RectorPrefix202309\Symfony\Component\Console\Terminal; /** * Output decorator helpers for the Symfony Style Guide. * diff --git a/vendor/rector/rector/vendor/symfony/console/Terminal.php b/vendor/rector/rector/vendor/symfony/console/Terminal.php index aba831d41..32d70b575 100644 --- a/vendor/rector/rector/vendor/symfony/console/Terminal.php +++ b/vendor/rector/rector/vendor/symfony/console/Terminal.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Console; +namespace RectorPrefix202309\Symfony\Component\Console; -use RectorPrefix202308\Symfony\Component\Console\Output\AnsiColorMode; +use RectorPrefix202309\Symfony\Component\Console\Output\AnsiColorMode; class Terminal { public const DEFAULT_COLOR_MODE = AnsiColorMode::Ansi4; diff --git a/vendor/rector/rector/vendor/symfony/console/composer.json b/vendor/rector/rector/vendor/symfony/console/composer.json index bdaad5498..d49bf4fdd 100644 --- a/vendor/rector/rector/vendor/symfony/console/composer.json +++ b/vendor/rector/rector/vendor/symfony/console/composer.json @@ -48,7 +48,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Console\\": "" + "RectorPrefix202309\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/contracts/Cache/CacheInterface.php b/vendor/rector/rector/vendor/symfony/contracts/Cache/CacheInterface.php deleted file mode 100644 index 55bfdf05b..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Cache/CacheInterface.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\Cache; - -use RectorPrefix202308\Psr\Cache\CacheItemInterface; -use RectorPrefix202308\Psr\Cache\InvalidArgumentException; -/** - * Covers most simple to advanced caching needs. - * - * @author Nicolas Grekas - */ -interface CacheInterface -{ - /** - * Fetches a value from the pool or computes it if not found. - * - * On cache misses, a callback is called that should return the missing value. - * This callback is given a PSR-6 CacheItemInterface instance corresponding to the - * requested key, that could be used e.g. for expiration control. It could also - * be an ItemInterface instance when its additional features are needed. - * - * @template T - * - * @param string $key The key of the item to retrieve from the cache - * @param (callable(CacheItemInterface,bool):T)|(callable(ItemInterface,bool):T)|CallbackInterface $callback - * @param float|null $beta A float that, as it grows, controls the likeliness of triggering - * early expiration. 0 disables it, INF forces immediate expiration. - * The default (or providing null) is implementation dependent but should - * typically be 1.0, which should provide optimal stampede protection. - * See https://en.wikipedia.org/wiki/Cache_stampede#Probabilistic_early_expiration - * @param array &$metadata The metadata of the cached item {@see ItemInterface::getMetadata()} - * - * @return T - * - * @throws InvalidArgumentException When $key is not valid or when $beta is negative - */ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) : mixed; - /** - * Removes an item from the pool. - * - * @param string $key The key to delete - * - * @return bool True if the item was successfully removed, false if there was any error - * - * @throws InvalidArgumentException When $key is not valid - */ - public function delete(string $key) : bool; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Cache/CacheTrait.php b/vendor/rector/rector/vendor/symfony/contracts/Cache/CacheTrait.php deleted file mode 100644 index 5768530a6..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Cache/CacheTrait.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\Cache; - -use RectorPrefix202308\Psr\Cache\CacheItemPoolInterface; -use RectorPrefix202308\Psr\Cache\InvalidArgumentException; -use RectorPrefix202308\Psr\Log\LoggerInterface; -// Help opcache.preload discover always-needed symbols -\class_exists(InvalidArgumentException::class); -/** - * An implementation of CacheInterface for PSR-6 CacheItemPoolInterface classes. - * - * @author Nicolas Grekas - */ -trait CacheTrait -{ - public function get(string $key, callable $callback, float $beta = null, array &$metadata = null) : mixed - { - return $this->doGet($this, $key, $callback, $beta, $metadata); - } - public function delete(string $key) : bool - { - return $this->deleteItem($key); - } - private function doGet(CacheItemPoolInterface $pool, string $key, callable $callback, ?float $beta, array &$metadata = null, LoggerInterface $logger = null) : mixed - { - if (0 > ($beta ??= 1.0)) { - throw new class(\sprintf('Argument "$beta" provided to "%s::get()" must be a positive number, %f given.', static::class, $beta)) extends \InvalidArgumentException implements InvalidArgumentException - { - }; - } - $item = $pool->getItem($key); - $recompute = !$item->isHit() || \INF === $beta; - $metadata = $item instanceof ItemInterface ? $item->getMetadata() : []; - if (!$recompute && $metadata) { - $expiry = $metadata[ItemInterface::METADATA_EXPIRY] ?? \false; - $ctime = $metadata[ItemInterface::METADATA_CTIME] ?? \false; - if ($recompute = $ctime && $expiry && $expiry <= ($now = \microtime(\true)) - $ctime / 1000 * $beta * \log(\random_int(1, \PHP_INT_MAX) / \PHP_INT_MAX)) { - // force applying defaultLifetime to expiry - $item->expiresAt(null); - $logger?->info('Item "{key}" elected for early recomputation {delta}s before its expiration', ['key' => $key, 'delta' => \sprintf('%.1f', $expiry - $now)]); - } - } - if ($recompute) { - $save = \true; - $item->set($callback($item, $save)); - if ($save) { - $pool->save($item); - } - } - return $item->get(); - } -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Cache/CallbackInterface.php b/vendor/rector/rector/vendor/symfony/contracts/Cache/CallbackInterface.php deleted file mode 100644 index 399625cc4..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Cache/CallbackInterface.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\Cache; - -use RectorPrefix202308\Psr\Cache\CacheItemInterface; -/** - * Computes and returns the cached value of an item. - * - * @author Nicolas Grekas - * - * @template T - */ -interface CallbackInterface -{ - /** - * @param CacheItemInterface|ItemInterface $item The item to compute the value for - * @param bool &$save Should be set to false when the value should not be saved in the pool - * - * @return T The computed value for the passed item - */ - public function __invoke(CacheItemInterface $item, bool &$save) : mixed; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Cache/README.md b/vendor/rector/rector/vendor/symfony/contracts/Cache/README.md deleted file mode 100644 index ffe0833af..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Cache/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Symfony Cache Contracts -======================= - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful and -that already have battle tested implementations. - -See https://github.com/symfony/contracts/blob/main/README.md for more information. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Cache/TagAwareCacheInterface.php b/vendor/rector/rector/vendor/symfony/contracts/Cache/TagAwareCacheInterface.php deleted file mode 100644 index d1db2c50f..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Cache/TagAwareCacheInterface.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 RectorPrefix202308\Symfony\Contracts\Cache; - -use RectorPrefix202308\Psr\Cache\InvalidArgumentException; -/** - * Allows invalidating cached items using tags. - * - * @author Nicolas Grekas - */ -interface TagAwareCacheInterface extends CacheInterface -{ - /** - * Invalidates cached items using tags. - * - * When implemented on a PSR-6 pool, invalidation should not apply - * to deferred items. Instead, they should be committed as usual. - * This allows replacing old tagged values by new ones without - * race conditions. - * - * @param string[] $tags An array of tags to invalidate - * - * @return bool True on success - * - * @throws InvalidArgumentException When $tags is not valid - */ - public function invalidateTags(array $tags) : bool; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Cache/composer.json b/vendor/rector/rector/vendor/symfony/contracts/Cache/composer.json deleted file mode 100644 index 92c7ea2aa..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Cache/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "symfony\/cache-contracts", - "type": "library", - "description": "Generic abstractions related to caching", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1", - "psr\/cache": "^3.0" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Contracts\\Cache\\": "" - } - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony\/contracts", - "url": "https:\/\/github.com\/symfony\/contracts" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/LICENSE b/vendor/rector/rector/vendor/symfony/contracts/Deprecation/LICENSE deleted file mode 100644 index 0ed3a2465..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2020-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/README.md b/vendor/rector/rector/vendor/symfony/contracts/Deprecation/README.md deleted file mode 100644 index 9814864c0..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/README.md +++ /dev/null @@ -1,26 +0,0 @@ -Symfony Deprecation Contracts -============================= - -A generic function and convention to trigger deprecation notices. - -This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices. - -By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component, -the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments. - -The function requires at least 3 arguments: - - the name of the Composer package that is triggering the deprecation - - the version of the package that introduced the deprecation - - the message of the deprecation - - more arguments can be provided: they will be inserted in the message using `printf()` formatting - -Example: -```php -trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin'); -``` - -This will generate the following message: -`Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.` - -While not recommended, the deprecation notices can be completely ignored by declaring an empty -`function trigger_deprecation() {}` in your application. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/composer.json b/vendor/rector/rector/vendor/symfony/contracts/Deprecation/composer.json deleted file mode 100644 index 768470a95..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/composer.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "symfony\/deprecation-contracts", - "type": "library", - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1" - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony\/contracts", - "url": "https:\/\/github.com\/symfony\/contracts" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/function.php b/vendor/rector/rector/vendor/symfony/contracts/Deprecation/function.php deleted file mode 100644 index eae983079..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Deprecation/function.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -if (!\function_exists('RectorPrefix202308\\trigger_deprecation')) { - /** - * Triggers a silenced deprecation notice. - * - * @param string $package The name of the Composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The message of the deprecation - * @param mixed ...$args Values to insert in the message using printf() formatting - * - * @author Nicolas Grekas - */ - function trigger_deprecation(string $package, string $version, string $message, ...$args) : void - { - // @\trigger_error(($package || $version ? "Since {$package} {$version}: " : '') . ($args ? \vsprintf($message, $args) : $message), \E_USER_DEPRECATED); - } -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/Event.php b/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/Event.php deleted file mode 100644 index 0ec31eb73..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/Event.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 RectorPrefix202308\Symfony\Contracts\EventDispatcher; - -use RectorPrefix202308\Psr\EventDispatcher\StoppableEventInterface; -/** - * Event is the base class for classes containing event data. - * - * This class contains no event data. It is used by events that do not pass - * state information to an event handler when an event is raised. - * - * You can call the method stopPropagation() to abort the execution of - * further listeners in your event listener. - * - * @author Guilherme Blanco - * @author Jonathan Wage - * @author Roman Borschel - * @author Bernhard Schussek - * @author Nicolas Grekas - */ -class Event implements StoppableEventInterface -{ - /** - * @var bool - */ - private $propagationStopped = \false; - public function isPropagationStopped() : bool - { - return $this->propagationStopped; - } - /** - * Stops the propagation of the event to further event listeners. - * - * If multiple event listeners are connected to the same event, no - * further event listener will be triggered once any trigger calls - * stopPropagation(). - */ - public function stopPropagation() : void - { - $this->propagationStopped = \true; - } -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/EventDispatcherInterface.php b/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/EventDispatcherInterface.php deleted file mode 100644 index f219b999c..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/EventDispatcherInterface.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 RectorPrefix202308\Symfony\Contracts\EventDispatcher; - -use RectorPrefix202308\Psr\EventDispatcher\EventDispatcherInterface as PsrEventDispatcherInterface; -/** - * Allows providing hooks on domain-specific lifecycles by dispatching events. - */ -interface EventDispatcherInterface extends PsrEventDispatcherInterface -{ - /** - * Dispatches an event to all registered listeners. - * - * @template T of object - * - * @param T $event The event to pass to the event handlers/listeners - * @param string|null $eventName The name of the event to dispatch. If not supplied, - * the class of $event should be used instead. - * - * @return T The passed $event MUST be returned - */ - public function dispatch(object $event, string $eventName = null) : object; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/LICENSE b/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/LICENSE deleted file mode 100644 index 7536caeae..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/README.md b/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/README.md deleted file mode 100644 index 332b961cb..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Symfony EventDispatcher Contracts -================================= - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful and -that already have battle tested implementations. - -See https://github.com/symfony/contracts/blob/main/README.md for more information. diff --git a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/composer.json b/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/composer.json deleted file mode 100644 index 5b260884d..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/EventDispatcher/composer.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "symfony\/event-dispatcher-contracts", - "type": "library", - "description": "Generic abstractions related to dispatching event", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1", - "psr\/event-dispatcher": "^1" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony\/contracts", - "url": "https:\/\/github.com\/symfony\/contracts" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ChunkInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ChunkInterface.php deleted file mode 100644 index 873799ee9..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ChunkInterface.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient; - -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface; -/** - * The interface of chunks returned by ResponseStreamInterface::current(). - * - * When the chunk is first, last or timeout, the content MUST be empty. - * When an unchecked timeout or a network error occurs, a TransportExceptionInterface - * MUST be thrown by the destructor unless one was already thrown by another method. - * - * @author Nicolas Grekas - */ -interface ChunkInterface -{ - /** - * Tells when the idle timeout has been reached. - * - * @throws TransportExceptionInterface on a network error - */ - public function isTimeout() : bool; - /** - * Tells when headers just arrived. - * - * @throws TransportExceptionInterface on a network error or when the idle timeout is reached - */ - public function isFirst() : bool; - /** - * Tells when the body just completed. - * - * @throws TransportExceptionInterface on a network error or when the idle timeout is reached - */ - public function isLast() : bool; - /** - * Returns a [status code, headers] tuple when a 1xx status code was just received. - * - * @throws TransportExceptionInterface on a network error or when the idle timeout is reached - */ - public function getInformationalStatus() : ?array; - /** - * Returns the content of the response chunk. - * - * @throws TransportExceptionInterface on a network error or when the idle timeout is reached - */ - public function getContent() : string; - /** - * Returns the offset of the chunk in the response body. - */ - public function getOffset() : int; - /** - * In case of error, returns the message that describes it. - */ - public function getError() : ?string; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ClientExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ClientExceptionInterface.php deleted file mode 100644 index 43b138092..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ClientExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -/** - * When a 4xx response is returned. - * - * @author Nicolas Grekas - */ -interface ClientExceptionInterface extends HttpExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/DecodingExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/DecodingExceptionInterface.php deleted file mode 100644 index 60fb49b88..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/DecodingExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -/** - * When a content-type cannot be decoded to the expected representation. - * - * @author Nicolas Grekas - */ -interface DecodingExceptionInterface extends ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ExceptionInterface.php deleted file mode 100644 index 61bcd422c..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -/** - * The base interface for all exceptions in the contract. - * - * @author Nicolas Grekas - */ -interface ExceptionInterface extends \Throwable -{ -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/HttpExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/HttpExceptionInterface.php deleted file mode 100644 index 8be842d81..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/HttpExceptionInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -use RectorPrefix202308\Symfony\Contracts\HttpClient\ResponseInterface; -/** - * Base interface for HTTP-related exceptions. - * - * @author Anton Chernikov - */ -interface HttpExceptionInterface extends ExceptionInterface -{ - public function getResponse() : ResponseInterface; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/RedirectionExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/RedirectionExceptionInterface.php deleted file mode 100644 index 0b0d07dd7..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/RedirectionExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -/** - * When a 3xx response is returned and the "max_redirects" option has been reached. - * - * @author Nicolas Grekas - */ -interface RedirectionExceptionInterface extends HttpExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ServerExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ServerExceptionInterface.php deleted file mode 100644 index 8e51ebf8c..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/ServerExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -/** - * When a 5xx response is returned. - * - * @author Nicolas Grekas - */ -interface ServerExceptionInterface extends HttpExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TimeoutExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TimeoutExceptionInterface.php deleted file mode 100644 index 4cbd9810d..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TimeoutExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -/** - * When an idle timeout occurs. - * - * @author Nicolas Grekas - */ -interface TimeoutExceptionInterface extends TransportExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TransportExceptionInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TransportExceptionInterface.php deleted file mode 100644 index ff09631f8..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Exception/TransportExceptionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Exception; - -/** - * When any error happens at the transport level. - * - * @author Nicolas Grekas - */ -interface TransportExceptionInterface extends ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/HttpClientInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/HttpClientInterface.php deleted file mode 100644 index 4437d34d1..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/HttpClientInterface.php +++ /dev/null @@ -1,115 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient; - -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Test\HttpClientTestCase; -/** - * Provides flexible methods for requesting HTTP resources synchronously or asynchronously. - * - * @see HttpClientTestCase for a reference test suite - * - * @author Nicolas Grekas - */ -interface HttpClientInterface -{ - public const OPTIONS_DEFAULTS = [ - 'auth_basic' => null, - // array|string - an array containing the username as first value, and optionally the - // password as the second one; or string like username:password - enabling HTTP Basic - // authentication (RFC 7617) - 'auth_bearer' => null, - // string - a token enabling HTTP Bearer authorization (RFC 6750) - 'query' => [], - // string[] - associative array of query string values to merge with the request's URL - 'headers' => [], - // iterable|string[]|string[][] - headers names provided as keys or as part of values - 'body' => '', - // array|string|resource|\Traversable|\Closure - the callback SHOULD yield a string - // smaller than the amount requested as argument; the empty string signals EOF; if - // an array is passed, it is meant as a form payload of field names and values - 'json' => null, - // mixed - if set, implementations MUST set the "body" option to the JSON-encoded - // value and set the "content-type" header to a JSON-compatible value if it is not - // explicitly defined in the headers option - typically "application/json" - 'user_data' => null, - // mixed - any extra data to attach to the request (scalar, callable, object...) that - // MUST be available via $response->getInfo('user_data') - not used internally - 'max_redirects' => 20, - // int - the maximum number of redirects to follow; a value lower than or equal to 0 - // means redirects should not be followed; "Authorization" and "Cookie" headers MUST - // NOT follow except for the initial host name - 'http_version' => null, - // string - defaults to the best supported version, typically 1.1 or 2.0 - 'base_uri' => null, - // string - the URI to resolve relative URLs, following rules in RFC 3986, section 2 - 'buffer' => \true, - // bool|resource|\Closure - whether the content of the response should be buffered or not, - // or a stream resource where the response body should be written, - // or a closure telling if/where the response should be buffered based on its headers - 'on_progress' => null, - // callable(int $dlNow, int $dlSize, array $info) - throwing any exceptions MUST abort - // the request; it MUST be called on DNS resolution, on arrival of headers and on - // completion; it SHOULD be called on upload/download of data and at least 1/s - 'resolve' => [], - // string[] - a map of host to IP address that SHOULD replace DNS resolution - 'proxy' => null, - // string - by default, the proxy-related env vars handled by curl SHOULD be honored - 'no_proxy' => null, - // string - a comma separated list of hosts that do not require a proxy to be reached - 'timeout' => null, - // float - the idle timeout (in seconds) - defaults to ini_get('default_socket_timeout') - 'max_duration' => 0, - // float - the maximum execution time (in seconds) for the request+response as a whole; - // a value lower than or equal to 0 means it is unlimited - 'bindto' => '0', - // string - the interface or the local socket to bind to - 'verify_peer' => \true, - // see https://php.net/context.ssl for the following options - 'verify_host' => \true, - 'cafile' => null, - 'capath' => null, - 'local_cert' => null, - 'local_pk' => null, - 'passphrase' => null, - 'ciphers' => null, - 'peer_fingerprint' => null, - 'capture_peer_cert_chain' => \false, - 'crypto_method' => \STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, - // STREAM_CRYPTO_METHOD_TLSv*_CLIENT - minimum TLS version - 'extra' => [], - ]; - /** - * Requests an HTTP resource. - * - * Responses MUST be lazy, but their status code MUST be - * checked even if none of their public methods are called. - * - * Implementations are not required to support all options described above; they can also - * support more custom options; but in any case, they MUST throw a TransportExceptionInterface - * when an unsupported option is passed. - * - * @throws TransportExceptionInterface When an unsupported option is passed - */ - public function request(string $method, string $url, array $options = []) : ResponseInterface; - /** - * Yields responses chunk by chunk as they complete. - * - * @param ResponseInterface|iterable $responses One or more responses created by the current HTTP client - * @param float|null $timeout The idle timeout before yielding timeout chunks - */ - public function stream($responses, float $timeout = null) : ResponseStreamInterface; - /** - * Returns a new instance of the client with new default options. - * @return static - */ - public function withOptions(array $options); -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/LICENSE b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/LICENSE deleted file mode 100644 index 7536caeae..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/README.md b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/README.md deleted file mode 100644 index 24d72f566..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Symfony HttpClient Contracts -============================ - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful and -that already have battle tested implementations. - -See https://github.com/symfony/contracts/blob/main/README.md for more information. diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseInterface.php deleted file mode 100644 index f889002a4..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseInterface.php +++ /dev/null @@ -1,102 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient; - -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\DecodingExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface; -/** - * A (lazily retrieved) HTTP response. - * - * @author Nicolas Grekas - */ -interface ResponseInterface -{ - /** - * Gets the HTTP status code of the response. - * - * @throws TransportExceptionInterface when a network error occurs - */ - public function getStatusCode() : int; - /** - * Gets the HTTP headers of the response. - * - * @param bool $throw Whether an exception should be thrown on 3/4/5xx status codes - * - * @return string[][] The headers of the response keyed by header names in lowercase - * - * @throws TransportExceptionInterface When a network error occurs - * @throws RedirectionExceptionInterface On a 3xx when $throw is true and the "max_redirects" option has been reached - * @throws ClientExceptionInterface On a 4xx when $throw is true - * @throws ServerExceptionInterface On a 5xx when $throw is true - */ - public function getHeaders(bool $throw = \true) : array; - /** - * Gets the response body as a string. - * - * @param bool $throw Whether an exception should be thrown on 3/4/5xx status codes - * - * @throws TransportExceptionInterface When a network error occurs - * @throws RedirectionExceptionInterface On a 3xx when $throw is true and the "max_redirects" option has been reached - * @throws ClientExceptionInterface On a 4xx when $throw is true - * @throws ServerExceptionInterface On a 5xx when $throw is true - */ - public function getContent(bool $throw = \true) : string; - /** - * Gets the response body decoded as array, typically from a JSON payload. - * - * @param bool $throw Whether an exception should be thrown on 3/4/5xx status codes - * - * @throws DecodingExceptionInterface When the body cannot be decoded to an array - * @throws TransportExceptionInterface When a network error occurs - * @throws RedirectionExceptionInterface On a 3xx when $throw is true and the "max_redirects" option has been reached - * @throws ClientExceptionInterface On a 4xx when $throw is true - * @throws ServerExceptionInterface On a 5xx when $throw is true - */ - public function toArray(bool $throw = \true) : array; - /** - * Closes the response stream and all related buffers. - * - * No further chunk will be yielded after this method has been called. - */ - public function cancel() : void; - /** - * Returns info coming from the transport layer. - * - * This method SHOULD NOT throw any ExceptionInterface and SHOULD be non-blocking. - * The returned info is "live": it can be empty and can change from one call to - * another, as the request/response progresses. - * - * The following info MUST be returned: - * - canceled (bool) - true if the response was canceled using ResponseInterface::cancel(), false otherwise - * - error (string|null) - the error message when the transfer was aborted, null otherwise - * - http_code (int) - the last response code or 0 when it is not known yet - * - http_method (string) - the HTTP verb of the last request - * - redirect_count (int) - the number of redirects followed while executing the request - * - redirect_url (string|null) - the resolved location of redirect responses, null otherwise - * - response_headers (array) - an array modelled after the special $http_response_header variable - * - start_time (float) - the time when the request was sent or 0.0 when it's pending - * - url (string) - the last effective URL of the request - * - user_data (mixed) - the value of the "user_data" request option, null if not set - * - * When the "capture_peer_cert_chain" option is true, the "peer_certificate_chain" - * attribute SHOULD list the peer certificates as an array of OpenSSL X.509 resources. - * - * Other info SHOULD be named after curl_getinfo()'s associative return value. - * - * @return mixed An array of all available info, or one of them when $type is - * provided, or null when an unsupported type is requested - */ - public function getInfo(string $type = null); -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseStreamInterface.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseStreamInterface.php deleted file mode 100644 index 0ede35413..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/ResponseStreamInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient; - -/** - * Yields response chunks, returned by HttpClientInterface::stream(). - * - * @author Nicolas Grekas - * - * @extends \Iterator - */ -interface ResponseStreamInterface extends \Iterator -{ - public function key() : ResponseInterface; - public function current() : ChunkInterface; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/Fixtures/web/index.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/Fixtures/web/index.php deleted file mode 100644 index 82ec1c037..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/Fixtures/web/index.php +++ /dev/null @@ -1,159 +0,0 @@ - $v) { - switch ($k) { - default: - if (!\str_starts_with($k, 'HTTP_')) { - continue 2; - } - // no break - case 'SERVER_NAME': - case 'SERVER_PROTOCOL': - case 'REQUEST_URI': - case 'REQUEST_METHOD': - case 'PHP_AUTH_USER': - case 'PHP_AUTH_PW': - $vars[$k] = $v; - } -} -$json = \json_encode($vars, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE); -switch ($vars['REQUEST_URI']) { - default: - exit; - case '/head': - \header('Content-Length: ' . \strlen($json), \true); - break; - case '/': - case '/?a=a&b=b': - case 'http://127.0.0.1:8057/': - case 'http://localhost:8057/': - \ob_start('ob_gzhandler'); - break; - case '/103': - \header('HTTP/1.1 103 Early Hints'); - \header('Link: ; rel=preload; as=style', \false); - \header('Link: ; rel=preload; as=script', \false); - \flush(); - \usleep(1000); - echo "HTTP/1.1 200 OK\r\n"; - echo "Date: Fri, 26 May 2017 10:02:11 GMT\r\n"; - echo "Content-Length: 13\r\n"; - echo "\r\n"; - echo 'Here the body'; - exit; - case '/404': - \header('Content-Type: application/json', \true, 404); - break; - case '/404-gzipped': - \header('Content-Type: text/plain', \true, 404); - \ob_start('ob_gzhandler'); - @\ob_flush(); - \flush(); - \usleep(300000); - echo 'some text'; - exit; - case '/301': - if ('Basic Zm9vOmJhcg==' === $vars['HTTP_AUTHORIZATION']) { - \header('Location: http://127.0.0.1:8057/302', \true, 301); - } - break; - case '/301/bad-tld': - \header('Location: http://foo.example.', \true, 301); - break; - case '/301/invalid': - \header('Location: //?foo=bar', \true, 301); - break; - case '/301/proxy': - case 'http://localhost:8057/301/proxy': - case 'http://127.0.0.1:8057/301/proxy': - \header('Location: http://localhost:8057/', \true, 301); - break; - case '/302': - if (!isset($vars['HTTP_AUTHORIZATION'])) { - \header('Location: http://localhost:8057/', \true, 302); - } - break; - case '/302/relative': - \header('Location: ..', \true, 302); - break; - case '/304': - \header('Content-Length: 10', \true, 304); - echo '12345'; - return; - case '/307': - \header('Location: http://localhost:8057/post', \true, 307); - break; - case '/length-broken': - \header('Content-Length: 1000'); - break; - case '/post': - $output = \json_encode($_POST + ['REQUEST_METHOD' => $vars['REQUEST_METHOD']], \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE); - \header('Content-Type: application/json', \true); - \header('Content-Length: ' . \strlen($output)); - echo $output; - exit; - case '/timeout-header': - \usleep(300000); - break; - case '/timeout-body': - echo '<1>'; - @\ob_flush(); - \flush(); - \usleep(500000); - echo '<2>'; - exit; - case '/timeout-long': - \ignore_user_abort(\false); - \sleep(1); - while (\true) { - echo '<1>'; - @\ob_flush(); - \flush(); - \usleep(500); - } - exit; - case '/chunked': - \header('Transfer-Encoding: chunked'); - echo "8\r\nSymfony \r\n5\r\nis aw\r\n6\r\nesome!\r\n0\r\n\r\n"; - exit; - case '/chunked-broken': - \header('Transfer-Encoding: chunked'); - echo "8\r\nSymfony \r\n5\r\nis aw\r\n6\r\ne"; - exit; - case '/gzip-broken': - \header('Content-Encoding: gzip'); - echo \str_repeat('-', 1000); - exit; - case '/max-duration': - \ignore_user_abort(\false); - while (\true) { - echo '<1>'; - @\ob_flush(); - \flush(); - \usleep(500); - } - exit; - case '/json': - \header('Content-Type: application/json'); - echo \json_encode(['documents' => [['id' => '/json/1'], ['id' => '/json/2'], ['id' => '/json/3']]]); - exit; - case '/json/1': - case '/json/2': - case '/json/3': - \header('Content-Type: application/json'); - echo \json_encode(['title' => $vars['REQUEST_URI']]); - exit; -} -\header('Content-Type: application/json', \true); -echo $json; diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/HttpClientTestCase.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/HttpClientTestCase.php deleted file mode 100644 index e9a3a2d45..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/HttpClientTestCase.php +++ /dev/null @@ -1,807 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Test; - -use PHPUnit\Framework\TestCase; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\TimeoutExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface; -use RectorPrefix202308\Symfony\Contracts\HttpClient\HttpClientInterface; -/** - * A reference test suite for HttpClientInterface implementations. - */ -abstract class HttpClientTestCase extends TestCase -{ - public static function setUpBeforeClass() : void - { - TestHttpServer::start(); - } - protected abstract function getHttpClient(string $testCase) : HttpClientInterface; - public function testGetRequest() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057', ['headers' => ['Foo' => 'baR'], 'user_data' => $data = new \stdClass()]); - $this->assertSame([], $response->getInfo('response_headers')); - $this->assertSame($data, $response->getInfo()['user_data']); - $this->assertSame(200, $response->getStatusCode()); - $info = $response->getInfo(); - $this->assertNull($info['error']); - $this->assertSame(0, $info['redirect_count']); - $this->assertSame('HTTP/1.1 200 OK', $info['response_headers'][0]); - $this->assertSame('Host: localhost:8057', $info['response_headers'][1]); - $this->assertSame('http://localhost:8057/', $info['url']); - $headers = $response->getHeaders(); - $this->assertSame('localhost:8057', $headers['host'][0]); - $this->assertSame(['application/json'], $headers['content-type']); - $body = \json_decode($response->getContent(), \true); - $this->assertSame($body, $response->toArray()); - $this->assertSame('HTTP/1.1', $body['SERVER_PROTOCOL']); - $this->assertSame('/', $body['REQUEST_URI']); - $this->assertSame('GET', $body['REQUEST_METHOD']); - $this->assertSame('localhost:8057', $body['HTTP_HOST']); - $this->assertSame('baR', $body['HTTP_FOO']); - $response = $client->request('GET', 'http://localhost:8057/length-broken'); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testHeadRequest() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('HEAD', 'http://localhost:8057/head', ['headers' => ['Foo' => 'baR'], 'user_data' => $data = new \stdClass(), 'buffer' => \false]); - $this->assertSame([], $response->getInfo('response_headers')); - $this->assertSame(200, $response->getStatusCode()); - $info = $response->getInfo(); - $this->assertSame('HTTP/1.1 200 OK', $info['response_headers'][0]); - $this->assertSame('Host: localhost:8057', $info['response_headers'][1]); - $headers = $response->getHeaders(); - $this->assertSame('localhost:8057', $headers['host'][0]); - $this->assertSame(['application/json'], $headers['content-type']); - $this->assertTrue(0 < $headers['content-length'][0]); - $this->assertSame('', $response->getContent()); - } - public function testNonBufferedGetRequest() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057', ['buffer' => \false, 'headers' => ['Foo' => 'baR']]); - $body = $response->toArray(); - $this->assertSame('baR', $body['HTTP_FOO']); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testBufferSink() - { - $sink = \fopen('php://temp', 'w+'); - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057', ['buffer' => $sink, 'headers' => ['Foo' => 'baR']]); - $body = $response->toArray(); - $this->assertSame('baR', $body['HTTP_FOO']); - \rewind($sink); - $sink = \stream_get_contents($sink); - $this->assertSame($sink, $response->getContent()); - } - public function testConditionalBuffering() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057'); - $firstContent = $response->getContent(); - $secondContent = $response->getContent(); - $this->assertSame($firstContent, $secondContent); - $response = $client->request('GET', 'http://localhost:8057', ['buffer' => function () { - return \false; - }]); - $response->getContent(); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testReentrantBufferCallback() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057', ['buffer' => function () use(&$response) { - $response->cancel(); - return \true; - }]); - $this->assertSame(200, $response->getStatusCode()); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testThrowingBufferCallback() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057', ['buffer' => function () { - throw new \Exception('Boo.'); - }]); - $this->assertSame(200, $response->getStatusCode()); - $this->expectException(TransportExceptionInterface::class); - $this->expectExceptionMessage('Boo'); - $response->getContent(); - } - public function testUnsupportedOption() - { - $client = $this->getHttpClient(__FUNCTION__); - $this->expectException(\InvalidArgumentException::class); - $client->request('GET', 'http://localhost:8057', ['capture_peer_cert' => 1.0]); - } - public function testHttpVersion() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057', ['http_version' => 1.0]); - $this->assertSame(200, $response->getStatusCode()); - $this->assertSame('HTTP/1.0 200 OK', $response->getInfo('response_headers')[0]); - $body = $response->toArray(); - $this->assertSame('HTTP/1.0', $body['SERVER_PROTOCOL']); - $this->assertSame('GET', $body['REQUEST_METHOD']); - $this->assertSame('/', $body['REQUEST_URI']); - } - public function testChunkedEncoding() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/chunked'); - $this->assertSame(['chunked'], $response->getHeaders()['transfer-encoding']); - $this->assertSame('Symfony is awesome!', $response->getContent()); - $response = $client->request('GET', 'http://localhost:8057/chunked-broken'); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testClientError() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/404'); - $client->stream($response)->valid(); - $this->assertSame(404, $response->getInfo('http_code')); - try { - $response->getHeaders(); - $this->fail(ClientExceptionInterface::class . ' expected'); - } catch (ClientExceptionInterface) { - } - try { - $response->getContent(); - $this->fail(ClientExceptionInterface::class . ' expected'); - } catch (ClientExceptionInterface) { - } - $this->assertSame(404, $response->getStatusCode()); - $this->assertSame(['application/json'], $response->getHeaders(\false)['content-type']); - $this->assertNotEmpty($response->getContent(\false)); - $response = $client->request('GET', 'http://localhost:8057/404'); - try { - foreach ($client->stream($response) as $chunk) { - $this->assertTrue($chunk->isFirst()); - } - $this->fail(ClientExceptionInterface::class . ' expected'); - } catch (ClientExceptionInterface) { - } - } - public function testIgnoreErrors() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/404'); - $this->assertSame(404, $response->getStatusCode()); - } - public function testDnsError() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/301/bad-tld'); - try { - $response->getStatusCode(); - $this->fail(TransportExceptionInterface::class . ' expected'); - } catch (TransportExceptionInterface) { - $this->addToAssertionCount(1); - } - try { - $response->getStatusCode(); - $this->fail(TransportExceptionInterface::class . ' still expected'); - } catch (TransportExceptionInterface) { - $this->addToAssertionCount(1); - } - $response = $client->request('GET', 'http://localhost:8057/301/bad-tld'); - try { - foreach ($client->stream($response) as $r => $chunk) { - } - $this->fail(TransportExceptionInterface::class . ' expected'); - } catch (TransportExceptionInterface) { - $this->addToAssertionCount(1); - } - $this->assertSame($response, $r); - $this->assertNotNull($chunk->getError()); - $this->expectException(TransportExceptionInterface::class); - foreach ($client->stream($response) as $chunk) { - } - } - public function testInlineAuth() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://foo:bar%3Dbar@localhost:8057'); - $body = $response->toArray(); - $this->assertSame('foo', $body['PHP_AUTH_USER']); - $this->assertSame('bar=bar', $body['PHP_AUTH_PW']); - } - public function testBadRequestBody() - { - $client = $this->getHttpClient(__FUNCTION__); - $this->expectException(TransportExceptionInterface::class); - $response = $client->request('POST', 'http://localhost:8057/', ['body' => function () { - (yield []); - }]); - $response->getStatusCode(); - } - public function test304() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/304', ['headers' => ['If-Match' => '"abc"'], 'buffer' => \false]); - $this->assertSame(304, $response->getStatusCode()); - $this->assertSame('', $response->getContent(\false)); - } - /** - * @testWith [[]] - * [["Content-Length: 7"]] - */ - public function testRedirects(array $headers = []) - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('POST', 'http://localhost:8057/301', ['auth_basic' => 'foo:bar', 'headers' => $headers, 'body' => function () { - (yield 'foo=bar'); - }]); - $body = $response->toArray(); - $this->assertSame('GET', $body['REQUEST_METHOD']); - $this->assertSame('Basic Zm9vOmJhcg==', $body['HTTP_AUTHORIZATION']); - $this->assertSame('http://localhost:8057/', $response->getInfo('url')); - $this->assertSame(2, $response->getInfo('redirect_count')); - $this->assertNull($response->getInfo('redirect_url')); - $expected = ['HTTP/1.1 301 Moved Permanently', 'Location: http://127.0.0.1:8057/302', 'Content-Type: application/json', 'HTTP/1.1 302 Found', 'Location: http://localhost:8057/', 'Content-Type: application/json', 'HTTP/1.1 200 OK', 'Content-Type: application/json']; - $filteredHeaders = \array_values(\array_filter($response->getInfo('response_headers'), function ($h) { - return \in_array(\substr($h, 0, 4), ['HTTP', 'Loca', 'Cont'], \true) && 'Content-Encoding: gzip' !== $h; - })); - $this->assertSame($expected, $filteredHeaders); - } - public function testInvalidRedirect() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/301/invalid'); - $this->assertSame(301, $response->getStatusCode()); - $this->assertSame(['//?foo=bar'], $response->getHeaders(\false)['location']); - $this->assertSame(0, $response->getInfo('redirect_count')); - $this->assertNull($response->getInfo('redirect_url')); - $this->expectException(RedirectionExceptionInterface::class); - $response->getHeaders(); - } - public function testRelativeRedirects() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/302/relative'); - $body = $response->toArray(); - $this->assertSame('/', $body['REQUEST_URI']); - $this->assertNull($response->getInfo('redirect_url')); - $response = $client->request('GET', 'http://localhost:8057/302/relative', ['max_redirects' => 0]); - $this->assertSame(302, $response->getStatusCode()); - $this->assertSame('http://localhost:8057/', $response->getInfo('redirect_url')); - } - public function testRedirect307() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('POST', 'http://localhost:8057/307', ['body' => function () { - (yield 'foo=bar'); - }, 'max_redirects' => 0]); - $this->assertSame(307, $response->getStatusCode()); - $response = $client->request('POST', 'http://localhost:8057/307', ['body' => 'foo=bar']); - $body = $response->toArray(); - $this->assertSame(['foo' => 'bar', 'REQUEST_METHOD' => 'POST'], $body); - } - public function testMaxRedirects() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/301', ['max_redirects' => 1, 'auth_basic' => 'foo:bar']); - try { - $response->getHeaders(); - $this->fail(RedirectionExceptionInterface::class . ' expected'); - } catch (RedirectionExceptionInterface) { - } - $this->assertSame(302, $response->getStatusCode()); - $this->assertSame(1, $response->getInfo('redirect_count')); - $this->assertSame('http://localhost:8057/', $response->getInfo('redirect_url')); - $expected = ['HTTP/1.1 301 Moved Permanently', 'Location: http://127.0.0.1:8057/302', 'Content-Type: application/json', 'HTTP/1.1 302 Found', 'Location: http://localhost:8057/', 'Content-Type: application/json']; - $filteredHeaders = \array_values(\array_filter($response->getInfo('response_headers'), function ($h) { - return \in_array(\substr($h, 0, 4), ['HTTP', 'Loca', 'Cont'], \true); - })); - $this->assertSame($expected, $filteredHeaders); - } - public function testStream() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057'); - $chunks = $client->stream($response); - $result = []; - foreach ($chunks as $r => $chunk) { - if ($chunk->isTimeout()) { - $result[] = 't'; - } elseif ($chunk->isLast()) { - $result[] = 'l'; - } elseif ($chunk->isFirst()) { - $result[] = 'f'; - } - } - $this->assertSame($response, $r); - $this->assertSame(['f', 'l'], $result); - $chunk = null; - $i = 0; - foreach ($client->stream($response) as $chunk) { - ++$i; - } - $this->assertSame(1, $i); - $this->assertTrue($chunk->isLast()); - } - public function testAddToStream() - { - $client = $this->getHttpClient(__FUNCTION__); - $r1 = $client->request('GET', 'http://localhost:8057'); - $completed = []; - $pool = [$r1]; - while ($pool) { - $chunks = $client->stream($pool); - $pool = []; - foreach ($chunks as $r => $chunk) { - if (!$chunk->isLast()) { - continue; - } - if ($r1 === $r) { - $r2 = $client->request('GET', 'http://localhost:8057'); - $pool[] = $r2; - } - $completed[] = $r; - } - } - $this->assertSame([$r1, $r2], $completed); - } - public function testCompleteTypeError() - { - $client = $this->getHttpClient(__FUNCTION__); - $this->expectException(\TypeError::class); - $client->stream(123); - } - public function testOnProgress() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('POST', 'http://localhost:8057/post', ['headers' => ['Content-Length' => 14], 'body' => 'foo=0123456789', 'on_progress' => function (...$state) use(&$steps) { - $steps[] = $state; - }]); - $body = $response->toArray(); - $this->assertSame(['foo' => '0123456789', 'REQUEST_METHOD' => 'POST'], $body); - $this->assertSame([0, 0], \array_slice($steps[0], 0, 2)); - $lastStep = \array_slice($steps, -1)[0]; - $this->assertSame([57, 57], \array_slice($lastStep, 0, 2)); - $this->assertSame('http://localhost:8057/post', $steps[0][2]['url']); - } - public function testPostJson() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('POST', 'http://localhost:8057/post', ['json' => ['foo' => 'bar']]); - $body = $response->toArray(); - $this->assertStringContainsString('json', $body['content-type']); - unset($body['content-type']); - $this->assertSame(['foo' => 'bar', 'REQUEST_METHOD' => 'POST'], $body); - } - public function testPostArray() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('POST', 'http://localhost:8057/post', ['body' => ['foo' => 'bar']]); - $this->assertSame(['foo' => 'bar', 'REQUEST_METHOD' => 'POST'], $response->toArray()); - } - public function testPostResource() - { - $client = $this->getHttpClient(__FUNCTION__); - $h = \fopen('php://temp', 'w+'); - \fwrite($h, 'foo=0123456789'); - \rewind($h); - $response = $client->request('POST', 'http://localhost:8057/post', ['body' => $h]); - $body = $response->toArray(); - $this->assertSame(['foo' => '0123456789', 'REQUEST_METHOD' => 'POST'], $body); - } - public function testPostCallback() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('POST', 'http://localhost:8057/post', ['body' => function () { - (yield 'foo'); - (yield ''); - (yield '='); - (yield '0123456789'); - }]); - $this->assertSame(['foo' => '0123456789', 'REQUEST_METHOD' => 'POST'], $response->toArray()); - } - public function testCancel() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-header'); - $response->cancel(); - $this->expectException(TransportExceptionInterface::class); - $response->getHeaders(); - } - public function testInfoOnCanceledResponse() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-header'); - $this->assertFalse($response->getInfo('canceled')); - $response->cancel(); - $this->assertTrue($response->getInfo('canceled')); - } - public function testCancelInStream() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/404'); - foreach ($client->stream($response) as $chunk) { - $response->cancel(); - } - $this->expectException(TransportExceptionInterface::class); - foreach ($client->stream($response) as $chunk) { - } - } - public function testOnProgressCancel() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-body', ['on_progress' => function ($dlNow) { - if (0 < $dlNow) { - throw new \Exception('Aborting the request.'); - } - }]); - try { - foreach ($client->stream([$response]) as $chunk) { - } - $this->fail(ClientExceptionInterface::class . ' expected'); - } catch (TransportExceptionInterface $e) { - $this->assertSame('Aborting the request.', $e->getPrevious()->getMessage()); - } - $this->assertNotNull($response->getInfo('error')); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testOnProgressError() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-body', ['on_progress' => function ($dlNow) { - if (0 < $dlNow) { - throw new \Error('BUG.'); - } - }]); - try { - foreach ($client->stream([$response]) as $chunk) { - } - $this->fail('Error expected'); - } catch (\Error $e) { - $this->assertSame('BUG.', $e->getMessage()); - } - $this->assertNotNull($response->getInfo('error')); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testResolve() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://symfony.com:8057/', ['resolve' => ['symfony.com' => '127.0.0.1']]); - $this->assertSame(200, $response->getStatusCode()); - $this->assertSame(200, $client->request('GET', 'http://symfony.com:8057/')->getStatusCode()); - $response = null; - $this->expectException(TransportExceptionInterface::class); - $client->request('GET', 'http://symfony.com:8057/', ['timeout' => 1]); - } - public function testIdnResolve() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://0-------------------------------------------------------------0.com:8057/', ['resolve' => ['0-------------------------------------------------------------0.com' => '127.0.0.1']]); - $this->assertSame(200, $response->getStatusCode()); - $response = $client->request('GET', 'http://Bücher.example:8057/', ['resolve' => ['xn--bcher-kva.example' => '127.0.0.1']]); - $this->assertSame(200, $response->getStatusCode()); - } - public function testNotATimeout() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-header', ['timeout' => 0.9]); - \sleep(1); - $this->assertSame(200, $response->getStatusCode()); - } - public function testTimeoutOnAccess() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-header', ['timeout' => 0.1]); - $this->expectException(TransportExceptionInterface::class); - $response->getHeaders(); - } - public function testTimeoutIsNotAFatalError() - { - \usleep(300000); - // wait for the previous test to release the server - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-body', ['timeout' => 0.25]); - try { - $response->getContent(); - $this->fail(TimeoutExceptionInterface::class . ' expected'); - } catch (TimeoutExceptionInterface $e) { - } - for ($i = 0; $i < 10; ++$i) { - try { - $this->assertSame('<1><2>', $response->getContent()); - break; - } catch (TimeoutExceptionInterface $e) { - } - } - if (10 === $i) { - throw $e; - } - } - public function testTimeoutOnStream() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-body'); - $this->assertSame(200, $response->getStatusCode()); - $chunks = $client->stream([$response], 0.2); - $result = []; - foreach ($chunks as $r => $chunk) { - if ($chunk->isTimeout()) { - $result[] = 't'; - } else { - $result[] = $chunk->getContent(); - } - } - $this->assertSame(['<1>', 't'], $result); - $chunks = $client->stream([$response]); - foreach ($chunks as $r => $chunk) { - $this->assertSame('<2>', $chunk->getContent()); - $this->assertSame('<1><2>', $r->getContent()); - return; - } - $this->fail('The response should have completed'); - } - public function testUncheckedTimeoutThrows() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/timeout-body'); - $chunks = $client->stream([$response], 0.1); - $this->expectException(TransportExceptionInterface::class); - foreach ($chunks as $r => $chunk) { - } - } - public function testTimeoutWithActiveConcurrentStream() - { - $p1 = TestHttpServer::start(8067); - $p2 = TestHttpServer::start(8077); - $client = $this->getHttpClient(__FUNCTION__); - $streamingResponse = $client->request('GET', 'http://localhost:8067/max-duration'); - $blockingResponse = $client->request('GET', 'http://localhost:8077/timeout-body', ['timeout' => 0.25]); - $this->assertSame(200, $streamingResponse->getStatusCode()); - $this->assertSame(200, $blockingResponse->getStatusCode()); - $this->expectException(TransportExceptionInterface::class); - try { - $blockingResponse->getContent(); - } finally { - $p1->stop(); - $p2->stop(); - } - } - public function testTimeoutOnInitialize() - { - $p1 = TestHttpServer::start(8067); - $p2 = TestHttpServer::start(8077); - $client = $this->getHttpClient(__FUNCTION__); - $start = \microtime(\true); - $responses = []; - $responses[] = $client->request('GET', 'http://localhost:8067/timeout-header', ['timeout' => 0.25]); - $responses[] = $client->request('GET', 'http://localhost:8077/timeout-header', ['timeout' => 0.25]); - $responses[] = $client->request('GET', 'http://localhost:8067/timeout-header', ['timeout' => 0.25]); - $responses[] = $client->request('GET', 'http://localhost:8077/timeout-header', ['timeout' => 0.25]); - try { - foreach ($responses as $response) { - try { - $response->getContent(); - $this->fail(TransportExceptionInterface::class . ' expected'); - } catch (TransportExceptionInterface) { - } - } - $responses = []; - $duration = \microtime(\true) - $start; - $this->assertLessThan(1.0, $duration); - } finally { - $p1->stop(); - $p2->stop(); - } - } - public function testTimeoutOnDestruct() - { - $p1 = TestHttpServer::start(8067); - $p2 = TestHttpServer::start(8077); - $client = $this->getHttpClient(__FUNCTION__); - $start = \microtime(\true); - $responses = []; - $responses[] = $client->request('GET', 'http://localhost:8067/timeout-header', ['timeout' => 0.25]); - $responses[] = $client->request('GET', 'http://localhost:8077/timeout-header', ['timeout' => 0.25]); - $responses[] = $client->request('GET', 'http://localhost:8067/timeout-header', ['timeout' => 0.25]); - $responses[] = $client->request('GET', 'http://localhost:8077/timeout-header', ['timeout' => 0.25]); - try { - while ($response = \array_shift($responses)) { - try { - unset($response); - $this->fail(TransportExceptionInterface::class . ' expected'); - } catch (TransportExceptionInterface) { - } - } - $duration = \microtime(\true) - $start; - $this->assertLessThan(1.0, $duration); - } finally { - $p1->stop(); - $p2->stop(); - } - } - public function testDestruct() - { - $client = $this->getHttpClient(__FUNCTION__); - $start = \microtime(\true); - $client->request('GET', 'http://localhost:8057/timeout-long'); - $client = null; - $duration = \microtime(\true) - $start; - $this->assertGreaterThan(1, $duration); - $this->assertLessThan(4, $duration); - } - public function testGetContentAfterDestruct() - { - $client = $this->getHttpClient(__FUNCTION__); - try { - $client->request('GET', 'http://localhost:8057/404'); - $this->fail(ClientExceptionInterface::class . ' expected'); - } catch (ClientExceptionInterface $e) { - $this->assertSame('GET', $e->getResponse()->toArray(\false)['REQUEST_METHOD']); - } - } - public function testGetEncodedContentAfterDestruct() - { - $client = $this->getHttpClient(__FUNCTION__); - try { - $client->request('GET', 'http://localhost:8057/404-gzipped'); - $this->fail(ClientExceptionInterface::class . ' expected'); - } catch (ClientExceptionInterface $e) { - $this->assertSame('some text', $e->getResponse()->getContent(\false)); - } - } - public function testProxy() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/', ['proxy' => 'http://localhost:8057']); - $body = $response->toArray(); - $this->assertSame('localhost:8057', $body['HTTP_HOST']); - $this->assertMatchesRegularExpression('#^http://(localhost|127\\.0\\.0\\.1):8057/$#', $body['REQUEST_URI']); - $response = $client->request('GET', 'http://localhost:8057/', ['proxy' => 'http://foo:b%3Dar@localhost:8057']); - $body = $response->toArray(); - $this->assertSame('Basic Zm9vOmI9YXI=', $body['HTTP_PROXY_AUTHORIZATION']); - $_SERVER['http_proxy'] = 'http://localhost:8057'; - try { - $response = $client->request('GET', 'http://localhost:8057/'); - $body = $response->toArray(); - $this->assertSame('localhost:8057', $body['HTTP_HOST']); - $this->assertMatchesRegularExpression('#^http://(localhost|127\\.0\\.0\\.1):8057/$#', $body['REQUEST_URI']); - } finally { - unset($_SERVER['http_proxy']); - } - $response = $client->request('GET', 'http://localhost:8057/301/proxy', ['proxy' => 'http://localhost:8057']); - $body = $response->toArray(); - $this->assertSame('localhost:8057', $body['HTTP_HOST']); - $this->assertMatchesRegularExpression('#^http://(localhost|127\\.0\\.0\\.1):8057/$#', $body['REQUEST_URI']); - } - public function testNoProxy() - { - \putenv('no_proxy=' . ($_SERVER['no_proxy'] = 'example.com, localhost')); - try { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/', ['proxy' => 'http://localhost:8057']); - $body = $response->toArray(); - $this->assertSame('HTTP/1.1', $body['SERVER_PROTOCOL']); - $this->assertSame('/', $body['REQUEST_URI']); - $this->assertSame('GET', $body['REQUEST_METHOD']); - } finally { - \putenv('no_proxy'); - unset($_SERVER['no_proxy']); - } - } - /** - * @requires extension zlib - */ - public function testAutoEncodingRequest() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057'); - $this->assertSame(200, $response->getStatusCode()); - $headers = $response->getHeaders(); - $this->assertSame(['Accept-Encoding'], $headers['vary']); - $this->assertStringContainsString('gzip', $headers['content-encoding'][0]); - $body = $response->toArray(); - $this->assertStringContainsString('gzip', $body['HTTP_ACCEPT_ENCODING']); - } - public function testBaseUri() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', '../404', ['base_uri' => 'http://localhost:8057/abc/']); - $this->assertSame(404, $response->getStatusCode()); - $this->assertSame(['application/json'], $response->getHeaders(\false)['content-type']); - } - public function testQuery() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/?a=a', ['query' => ['b' => 'b']]); - $body = $response->toArray(); - $this->assertSame('GET', $body['REQUEST_METHOD']); - $this->assertSame('/?a=a&b=b', $body['REQUEST_URI']); - } - public function testInformationalResponse() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/103'); - $this->assertSame('Here the body', $response->getContent()); - $this->assertSame(200, $response->getStatusCode()); - } - public function testInformationalResponseStream() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/103'); - $chunks = []; - foreach ($client->stream($response) as $chunk) { - $chunks[] = $chunk; - } - $this->assertSame(103, $chunks[0]->getInformationalStatus()[0]); - $this->assertSame(['; rel=preload; as=style', '; rel=preload; as=script'], $chunks[0]->getInformationalStatus()[1]['link']); - $this->assertTrue($chunks[1]->isFirst()); - $this->assertSame('Here the body', $chunks[2]->getContent()); - $this->assertTrue($chunks[3]->isLast()); - $this->assertNull($chunks[3]->getInformationalStatus()); - $this->assertSame(['date', 'content-length'], \array_keys($response->getHeaders())); - $this->assertContains('Link: ; rel=preload; as=style', $response->getInfo('response_headers')); - } - /** - * @requires extension zlib - */ - public function testUserlandEncodingRequest() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057', ['headers' => ['Accept-Encoding' => 'gzip']]); - $headers = $response->getHeaders(); - $this->assertSame(['Accept-Encoding'], $headers['vary']); - $this->assertStringContainsString('gzip', $headers['content-encoding'][0]); - $body = $response->getContent(); - $this->assertSame("\x1f", $body[0]); - $body = \json_decode(\gzdecode($body), \true); - $this->assertSame('gzip', $body['HTTP_ACCEPT_ENCODING']); - } - /** - * @requires extension zlib - */ - public function testGzipBroken() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/gzip-broken'); - $this->expectException(TransportExceptionInterface::class); - $response->getContent(); - } - public function testMaxDuration() - { - $client = $this->getHttpClient(__FUNCTION__); - $response = $client->request('GET', 'http://localhost:8057/max-duration', ['max_duration' => 0.1]); - $start = \microtime(\true); - try { - $response->getContent(); - } catch (TransportExceptionInterface) { - $this->addToAssertionCount(1); - } - $duration = \microtime(\true) - $start; - $this->assertLessThan(10, $duration); - } - public function testWithOptions() - { - $client = $this->getHttpClient(__FUNCTION__); - $client2 = $client->withOptions(['base_uri' => 'http://localhost:8057/']); - $this->assertNotSame($client, $client2); - $this->assertSame($client::class, $client2::class); - $response = $client2->request('GET', '/'); - $this->assertSame(200, $response->getStatusCode()); - } -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/TestHttpServer.php b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/TestHttpServer.php deleted file mode 100644 index 46fa3f790..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/Test/TestHttpServer.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\HttpClient\Test; - -use RectorPrefix202308\Symfony\Component\Process\PhpExecutableFinder; -use RectorPrefix202308\Symfony\Component\Process\Process; -class TestHttpServer -{ - private static $process = []; - public static function start(int $port = 8057) : Process - { - if (isset(self::$process[$port])) { - self::$process[$port]->stop(); - } else { - \register_shutdown_function(static function () use($port) { - self::$process[$port]->stop(); - }); - } - $finder = new PhpExecutableFinder(); - $process = new Process(\array_merge([$finder->find(\false)], $finder->findArguments(), ['-dopcache.enable=0', '-dvariables_order=EGPCS', '-S', '127.0.0.1:' . $port])); - $process->setWorkingDirectory(__DIR__ . '/Fixtures/web'); - $process->start(); - self::$process[$port] = $process; - do { - \usleep(50000); - } while (!@\fopen('http://127.0.0.1:' . $port, 'r')); - return $process; - } -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/composer.json b/vendor/rector/rector/vendor/symfony/contracts/HttpClient/composer.json deleted file mode 100644 index f854f8e05..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/HttpClient/composer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "symfony\/http-client-contracts", - "type": "library", - "description": "Generic abstractions related to HTTP clients", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Contracts\\HttpClient\\": "" - }, - "exclude-from-classmap": [ - "\/Test\/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony\/contracts", - "url": "https:\/\/github.com\/symfony\/contracts" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/contracts/LICENSE b/vendor/rector/rector/vendor/symfony/contracts/LICENSE deleted file mode 100644 index 7536caeae..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/contracts/README.md b/vendor/rector/rector/vendor/symfony/contracts/README.md deleted file mode 100644 index 617a78f28..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/README.md +++ /dev/null @@ -1,54 +0,0 @@ -Symfony Contracts -================= - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful - and -that already have battle tested implementations. - -Design Principles ------------------ - - * contracts are split by domain, each into their own sub-namespaces; - * contracts are small and consistent sets of PHP interfaces, traits, normative - docblocks and reference test suites when applicable; - * all contracts must have a proven implementation to enter this repository; - * they must be backward compatible with existing Symfony components. - -Packages that implement specific contracts should list them in the "provide" -section of their "composer.json" file, using the `symfony/*-implementation` -convention (e.g. `"provide": { "symfony/cache-implementation": "1.0" }`). - -FAQ ---- - -### How to use this package? - -The abstractions in this package are useful to achieve loose coupling and -interoperability. By using the provided interfaces as type hints, you are able -to reuse any implementations that match their contracts. It could be a Symfony -component, or another one provided by the PHP community at large. - -Depending on their semantics, some interfaces can be combined with autowiring to -seamlessly inject a service in your classes. - -Others might be useful as labeling interfaces, to hint about a specific behavior -that could be enabled when using autoconfiguration or manual service tagging (or -any other means provided by your framework.) - -### How is this different from PHP-FIG's PSRs? - -When applicable, the provided contracts are built on top of PHP-FIG's PSRs. But -the group has different goals and different processes. Here, we're focusing on -providing abstractions that are useful on their own while still compatible with -implementations provided by Symfony. Although not the main target, we hope that -the declared contracts will directly or indirectly contribute to the PHP-FIG. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/contracts.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/LICENSE b/vendor/rector/rector/vendor/symfony/contracts/Service/LICENSE deleted file mode 100644 index 7536caeae..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/LICENSE b/vendor/rector/rector/vendor/symfony/contracts/Translation/LICENSE deleted file mode 100644 index 7536caeae..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2018-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/LocaleAwareInterface.php b/vendor/rector/rector/vendor/symfony/contracts/Translation/LocaleAwareInterface.php deleted file mode 100644 index cc7723786..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/LocaleAwareInterface.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\Translation; - -interface LocaleAwareInterface -{ - /** - * Sets the current locale. - * - * @return void - * - * @throws \InvalidArgumentException If the locale contains invalid characters - */ - public function setLocale(string $locale); - /** - * Returns the current locale. - */ - public function getLocale() : string; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/README.md b/vendor/rector/rector/vendor/symfony/contracts/Translation/README.md deleted file mode 100644 index b211d5849..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Symfony Translation Contracts -============================= - -A set of abstractions extracted out of the Symfony components. - -Can be used to build on semantics that the Symfony components proved useful and -that already have battle tested implementations. - -See https://github.com/symfony/contracts/blob/main/README.md for more information. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/Test/TranslatorTest.php b/vendor/rector/rector/vendor/symfony/contracts/Translation/Test/TranslatorTest.php deleted file mode 100644 index 4d9f5cb1d..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/Test/TranslatorTest.php +++ /dev/null @@ -1,306 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\Translation\Test; - -use PHPUnit\Framework\TestCase; -use RectorPrefix202308\Symfony\Contracts\Translation\TranslatorInterface; -use RectorPrefix202308\Symfony\Contracts\Translation\TranslatorTrait; -/** - * Test should cover all languages mentioned on http://translate.sourceforge.net/wiki/l10n/pluralforms - * and Plural forms mentioned on http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms. - * - * See also https://developer.mozilla.org/en/Localization_and_Plurals which mentions 15 rules having a maximum of 6 forms. - * The mozilla code is also interesting to check for. - * - * As mentioned by chx http://drupal.org/node/1273968 we can cover all by testing number from 0 to 199 - * - * The goal to cover all languages is to far fetched so this test case is smaller. - * - * @author Clemens Tolboom clemens@build2be.nl - */ -class TranslatorTest extends TestCase -{ - private $defaultLocale; - protected function setUp() : void - { - $this->defaultLocale = \Locale::getDefault(); - \Locale::setDefault('en'); - } - protected function tearDown() : void - { - \Locale::setDefault($this->defaultLocale); - } - public function getTranslator() : TranslatorInterface - { - return new class implements TranslatorInterface - { - use TranslatorTrait; - }; - } - /** - * @dataProvider getTransTests - */ - public function testTrans($expected, $id, $parameters) - { - $translator = $this->getTranslator(); - $this->assertEquals($expected, $translator->trans($id, $parameters)); - } - /** - * @dataProvider getTransChoiceTests - */ - public function testTransChoiceWithExplicitLocale($expected, $id, $number) - { - $translator = $this->getTranslator(); - $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number])); - } - /** - * @requires extension intl - * - * @dataProvider getTransChoiceTests - */ - public function testTransChoiceWithDefaultLocale($expected, $id, $number) - { - $translator = $this->getTranslator(); - $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number])); - } - /** - * @dataProvider getTransChoiceTests - */ - public function testTransChoiceWithEnUsPosix($expected, $id, $number) - { - $translator = $this->getTranslator(); - $translator->setLocale('en_US_POSIX'); - $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number])); - } - public function testGetSetLocale() - { - $translator = $this->getTranslator(); - $this->assertEquals('en', $translator->getLocale()); - } - /** - * @requires extension intl - */ - public function testGetLocaleReturnsDefaultLocaleIfNotSet() - { - $translator = $this->getTranslator(); - \Locale::setDefault('pt_BR'); - $this->assertEquals('pt_BR', $translator->getLocale()); - \Locale::setDefault('en'); - $this->assertEquals('en', $translator->getLocale()); - } - public static function getTransTests() - { - return [['Symfony is great!', 'Symfony is great!', []], ['Symfony is awesome!', 'Symfony is %what%!', ['%what%' => 'awesome']]]; - } - public static function getTransChoiceTests() - { - return [ - ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], - ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1], - ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10], - ['There are 0 apples', 'There is 1 apple|There are %count% apples', 0], - ['There is 1 apple', 'There is 1 apple|There are %count% apples', 1], - ['There are 10 apples', 'There is 1 apple|There are %count% apples', 10], - // custom validation messages may be coded with a fixed value - ['There are 2 apples', 'There are 2 apples', 2], - ]; - } - /** - * @dataProvider getInterval - */ - public function testInterval($expected, $number, $interval) - { - $translator = $this->getTranslator(); - $this->assertEquals($expected, $translator->trans($interval . ' foo|[1,Inf[ bar', ['%count%' => $number])); - } - public static function getInterval() - { - return [['foo', 3, '{1,2, 3 ,4}'], ['bar', 10, '{1,2, 3 ,4}'], ['bar', 3, '[1,2]'], ['foo', 1, '[1,2]'], ['foo', 2, '[1,2]'], ['bar', 1, ']1,2['], ['bar', 2, ']1,2['], ['foo', \log(0), '[-Inf,2['], ['foo', -\log(0), '[-2,+Inf]']]; - } - /** - * @dataProvider getChooseTests - */ - public function testChoose($expected, $id, $number, $locale = null) - { - $translator = $this->getTranslator(); - $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number], null, $locale)); - } - public function testReturnMessageIfExactlyOneStandardRuleIsGiven() - { - $translator = $this->getTranslator(); - $this->assertEquals('There are two apples', $translator->trans('There are two apples', ['%count%' => 2])); - } - /** - * @dataProvider getNonMatchingMessages - */ - public function testThrowExceptionIfMatchingMessageCannotBeFound($id, $number) - { - $this->expectException(\InvalidArgumentException::class); - $translator = $this->getTranslator(); - $translator->trans($id, ['%count%' => $number]); - } - public static function getNonMatchingMessages() - { - return [['{0} There are no apples|{1} There is one apple', 2], ['{1} There is one apple|]1,Inf] There are %count% apples', 0], ['{1} There is one apple|]2,Inf] There are %count% apples', 2], ['{0} There are no apples|There is one apple', 2]]; - } - public static function getChooseTests() - { - return [ - ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], - ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], - ['There are no apples', '{0}There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0], - ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1], - ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10], - ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf]There are %count% apples', 10], - ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10], - ['There are 0 apples', 'There is one apple|There are %count% apples', 0], - ['There is one apple', 'There is one apple|There are %count% apples', 1], - ['There are 10 apples', 'There is one apple|There are %count% apples', 10], - ['There are 0 apples', 'one: There is one apple|more: There are %count% apples', 0], - ['There is one apple', 'one: There is one apple|more: There are %count% apples', 1], - ['There are 10 apples', 'one: There is one apple|more: There are %count% apples', 10], - ['There are no apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 0], - ['There is one apple', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 1], - ['There are 10 apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 10], - ['', '{0}|{1} There is one apple|]1,Inf] There are %count% apples', 0], - ['', '{0} There are no apples|{1}|]1,Inf] There are %count% apples', 1], - // Indexed only tests which are Gettext PoFile* compatible strings. - ['There are 0 apples', 'There is one apple|There are %count% apples', 0], - ['There is one apple', 'There is one apple|There are %count% apples', 1], - ['There are 2 apples', 'There is one apple|There are %count% apples', 2], - // Tests for float numbers - ['There is almost one apple', '{0} There are no apples|]0,1[ There is almost one apple|{1} There is one apple|[1,Inf] There is more than one apple', 0.7], - ['There is one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1], - ['There is more than one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1.7], - ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0], - ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0.0], - ['There are no apples', '{0.0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0], - // Test texts with new-lines - // with double-quotes and \n in id & double-quotes and actual newlines in text - ["This is a text with a\n new-line in it. Selector = 0.", '{0}This is a text with a - new-line in it. Selector = 0.|{1}This is a text with a - new-line in it. Selector = 1.|[1,Inf]This is a text with a - new-line in it. Selector > 1.', 0], - // with double-quotes and \n in id and single-quotes and actual newlines in text - ["This is a text with a\n new-line in it. Selector = 1.", '{0}This is a text with a - new-line in it. Selector = 0.|{1}This is a text with a - new-line in it. Selector = 1.|[1,Inf]This is a text with a - new-line in it. Selector > 1.', 1], - ["This is a text with a\n new-line in it. Selector > 1.", '{0}This is a text with a - new-line in it. Selector = 0.|{1}This is a text with a - new-line in it. Selector = 1.|[1,Inf]This is a text with a - new-line in it. Selector > 1.', 5], - // with double-quotes and id split across lines - ['This is a text with a - new-line in it. Selector = 1.', '{0}This is a text with a - new-line in it. Selector = 0.|{1}This is a text with a - new-line in it. Selector = 1.|[1,Inf]This is a text with a - new-line in it. Selector > 1.', 1], - // with single-quotes and id split across lines - ['This is a text with a - new-line in it. Selector > 1.', '{0}This is a text with a - new-line in it. Selector = 0.|{1}This is a text with a - new-line in it. Selector = 1.|[1,Inf]This is a text with a - new-line in it. Selector > 1.', 5], - // with single-quotes and \n in text - ['This is a text with a\\nnew-line in it. Selector = 0.', '{0}This is a text with a\\nnew-line in it. Selector = 0.|{1}This is a text with a\\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\\nnew-line in it. Selector > 1.', 0], - // with double-quotes and id split across lines - ["This is a text with a\nnew-line in it. Selector = 1.", "{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.", 1], - // escape pipe - ['This is a text with | in it. Selector = 0.', '{0}This is a text with || in it. Selector = 0.|{1}This is a text with || in it. Selector = 1.', 0], - // Empty plural set (2 plural forms) from a .PO file - ['', '|', 1], - // Empty plural set (3 plural forms) from a .PO file - ['', '||', 1], - // Floating values - ['1.5 liters', '%count% liter|%count% liters', 1.5], - ['1.5 litre', '%count% litre|%count% litres', 1.5, 'fr'], - // Negative values - ['-1 degree', '%count% degree|%count% degrees', -1], - ['-1 degré', '%count% degré|%count% degrés', -1], - ['-1.5 degrees', '%count% degree|%count% degrees', -1.5], - ['-1.5 degré', '%count% degré|%count% degrés', -1.5, 'fr'], - ['-2 degrees', '%count% degree|%count% degrees', -2], - ['-2 degrés', '%count% degré|%count% degrés', -2], - ]; - } - /** - * @dataProvider failingLangcodes - */ - public function testFailedLangcodes($nplural, $langCodes) - { - $matrix = $this->generateTestData($langCodes); - $this->validateMatrix($nplural, $matrix, \false); - } - /** - * @dataProvider successLangcodes - */ - public function testLangcodes($nplural, $langCodes) - { - $matrix = $this->generateTestData($langCodes); - $this->validateMatrix($nplural, $matrix); - } - /** - * This array should contain all currently known langcodes. - * - * As it is impossible to have this ever complete we should try as hard as possible to have it almost complete. - */ - public static function successLangcodes() : array - { - return [['1', ['ay', 'bo', 'cgg', 'dz', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky']], ['2', ['nl', 'fr', 'en', 'de', 'de_GE', 'hy', 'hy_AM', 'en_US_POSIX']], ['3', ['be', 'bs', 'cs', 'hr']], ['4', ['cy', 'mt', 'sl']], ['6', ['ar']]]; - } - /** - * This array should be at least empty within the near future. - * - * This both depends on a complete list trying to add above as understanding - * the plural rules of the current failing languages. - * - * @return array with nplural together with langcodes - */ - public static function failingLangcodes() : array - { - return [['1', ['fa']], ['2', ['jbo']], ['3', ['cbs']], ['4', ['gd', 'kw']], ['5', ['ga']]]; - } - /** - * We validate only on the plural coverage. Thus the real rules is not tested. - * - * @param string $nplural Plural expected - * @param array $matrix Containing langcodes and their plural index values - */ - protected function validateMatrix(string $nplural, array $matrix, bool $expectSuccess = \true) - { - foreach ($matrix as $langCode => $data) { - $indexes = \array_flip($data); - if ($expectSuccess) { - $this->assertCount($nplural, $indexes, "Langcode '{$langCode}' has '{$nplural}' plural forms."); - } else { - $this->assertNotEquals((int) $nplural, \count($indexes), "Langcode '{$langCode}' has '{$nplural}' plural forms."); - } - } - } - protected function generateTestData($langCodes) - { - $translator = new class - { - use TranslatorTrait { - getPluralizationRule as public; - } - }; - $matrix = []; - foreach ($langCodes as $langCode) { - for ($count = 0; $count < 200; ++$count) { - $plural = $translator->getPluralizationRule($count, $langCode); - $matrix[$langCode][$count] = $plural; - } - } - return $matrix; - } -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatableInterface.php b/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatableInterface.php deleted file mode 100644 index 7ad79d978..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatableInterface.php +++ /dev/null @@ -1,19 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\Translation; - -/** - * @author Nicolas Grekas - */ -interface TranslatableInterface -{ - public function trans(TranslatorInterface $translator, string $locale = null) : string; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorInterface.php b/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorInterface.php deleted file mode 100644 index a1f79418f..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorInterface.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 RectorPrefix202308\Symfony\Contracts\Translation; - -/** - * @author Fabien Potencier - */ -interface TranslatorInterface -{ - /** - * Translates the given message. - * - * When a number is provided as a parameter named "%count%", the message is parsed for plural - * forms and a translation is chosen according to this number using the following rules: - * - * Given a message with different plural translations separated by a - * pipe (|), this method returns the correct portion of the message based - * on the given number, locale and the pluralization rules in the message - * itself. - * - * The message supports two different types of pluralization rules: - * - * interval: {0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples - * indexed: There is one apple|There are %count% apples - * - * The indexed solution can also contain labels (e.g. one: There is one apple). - * This is purely for making the translations more clear - it does not - * affect the functionality. - * - * The two methods can also be mixed: - * {0} There are no apples|one: There is one apple|more: There are %count% apples - * - * An interval can represent a finite set of numbers: - * {1,2,3,4} - * - * An interval can represent numbers between two numbers: - * [1, +Inf] - * ]-1,2[ - * - * The left delimiter can be [ (inclusive) or ] (exclusive). - * The right delimiter can be [ (exclusive) or ] (inclusive). - * Beside numbers, you can use -Inf and +Inf for the infinite. - * - * @see https://en.wikipedia.org/wiki/ISO_31-11 - * - * @param string $id The message id (may also be an object that can be cast to string) - * @param array $parameters An array of parameters for the message - * @param string|null $domain The domain for the message or null to use the default - * @param string|null $locale The locale or null to use the default - * - * @throws \InvalidArgumentException If the locale contains invalid characters - */ - public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null) : string; - /** - * Returns the default locale. - */ - public function getLocale() : string; -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorTrait.php b/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorTrait.php deleted file mode 100644 index 887bd4ae5..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/TranslatorTrait.php +++ /dev/null @@ -1,221 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Contracts\Translation; - -use RectorPrefix202308\Symfony\Component\Translation\Exception\InvalidArgumentException; -/** - * A trait to help implement TranslatorInterface and LocaleAwareInterface. - * - * @author Fabien Potencier - */ -trait TranslatorTrait -{ - /** - * @var string|null - */ - private $locale; - /** - * @return void - */ - public function setLocale(string $locale) - { - $this->locale = $locale; - } - public function getLocale() : string - { - return $this->locale ?: (\class_exists(\Locale::class) ? \Locale::getDefault() : 'en'); - } - public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null) : string - { - if (null === $id || '' === $id) { - return ''; - } - if (!isset($parameters['%count%']) || !\is_numeric($parameters['%count%'])) { - return \strtr($id, $parameters); - } - $number = (float) $parameters['%count%']; - $locale = $locale ?: $this->getLocale(); - $parts = []; - if (\preg_match('/^\\|++$/', $id)) { - $parts = \explode('|', $id); - } elseif (\preg_match_all('/(?:\\|\\||[^\\|])++/', $id, $matches)) { - $parts = $matches[0]; - } - $intervalRegexp = <<<'EOF' -/^(?P - ({\s* - (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*) - \s*}) - - | - - (?P[\[\]]) - \s* - (?P-Inf|\-?\d+(\.\d+)?) - \s*,\s* - (?P\+?Inf|\-?\d+(\.\d+)?) - \s* - (?P[\[\]]) -)\s*(?P.*?)$/xs -EOF; - $standardRules = []; - foreach ($parts as $part) { - $part = \trim(\str_replace('||', '|', $part)); - // try to match an explicit rule, then fallback to the standard ones - if (\preg_match($intervalRegexp, $part, $matches)) { - if ($matches[2]) { - foreach (\explode(',', $matches[3]) as $n) { - if ($number == $n) { - return \strtr($matches['message'], $parameters); - } - } - } else { - $leftNumber = '-Inf' === $matches['left'] ? -\INF : (float) $matches['left']; - $rightNumber = \is_numeric($matches['right']) ? (float) $matches['right'] : \INF; - if (('[' === $matches['left_delimiter'] ? $number >= $leftNumber : $number > $leftNumber) && (']' === $matches['right_delimiter'] ? $number <= $rightNumber : $number < $rightNumber)) { - return \strtr($matches['message'], $parameters); - } - } - } elseif (\preg_match('/^\\w+\\:\\s*(.*?)$/', $part, $matches)) { - $standardRules[] = $matches[1]; - } else { - $standardRules[] = $part; - } - } - $position = $this->getPluralizationRule($number, $locale); - if (!isset($standardRules[$position])) { - // when there's exactly one rule given, and that rule is a standard - // rule, use this rule - if (1 === \count($parts) && isset($standardRules[0])) { - return \strtr($standardRules[0], $parameters); - } - $message = \sprintf('Unable to choose a translation for "%s" with locale "%s" for value "%d". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %%count%% apples").', $id, $locale, $number); - if (\class_exists(InvalidArgumentException::class)) { - throw new InvalidArgumentException($message); - } - throw new \InvalidArgumentException($message); - } - return \strtr($standardRules[$position], $parameters); - } - /** - * Returns the plural position to use for the given locale and number. - * - * 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) - */ - private function getPluralizationRule(float $number, string $locale) : int - { - $number = \abs($number); - switch ('pt_BR' !== $locale && 'en_US_POSIX' !== $locale && \strlen($locale) > 3 ? \substr($locale, 0, \strrpos($locale, '_')) : $locale) { - case 'af': - case 'bn': - case 'bg': - case 'ca': - case 'da': - case 'de': - case 'el': - case 'en': - case 'en_US_POSIX': - case 'eo': - case 'es': - case 'et': - case 'eu': - case 'fa': - case 'fi': - case 'fo': - case 'fur': - case 'fy': - case 'gl': - case 'gu': - case 'ha': - case 'he': - case 'hu': - case 'is': - case 'it': - case 'ku': - case 'lb': - case 'ml': - case 'mn': - case 'mr': - case 'nah': - case 'nb': - case 'ne': - case 'nl': - case 'nn': - case 'no': - case 'oc': - case 'om': - case 'or': - case 'pa': - case 'pap': - case 'ps': - case 'pt': - case 'so': - case 'sq': - case 'sv': - case 'sw': - case 'ta': - case 'te': - case 'tk': - case 'ur': - case 'zu': - return 1 == $number ? 0 : 1; - case 'am': - case 'bh': - case 'fil': - case 'fr': - case 'gun': - case 'hi': - case 'hy': - case 'ln': - case 'mg': - case 'nso': - case 'pt_BR': - case 'ti': - case 'wa': - return $number < 2 ? 0 : 1; - case 'be': - case 'bs': - case 'hr': - case 'ru': - case 'sh': - case 'sr': - case 'uk': - return 1 == $number % 10 && 11 != $number % 100 ? 0 : ($number % 10 >= 2 && $number % 10 <= 4 && ($number % 100 < 10 || $number % 100 >= 20) ? 1 : 2); - case 'cs': - case 'sk': - return 1 == $number ? 0 : ($number >= 2 && $number <= 4 ? 1 : 2); - case 'ga': - return 1 == $number ? 0 : (2 == $number ? 1 : 2); - case 'lt': - return 1 == $number % 10 && 11 != $number % 100 ? 0 : ($number % 10 >= 2 && ($number % 100 < 10 || $number % 100 >= 20) ? 1 : 2); - case 'sl': - return 1 == $number % 100 ? 0 : (2 == $number % 100 ? 1 : (3 == $number % 100 || 4 == $number % 100 ? 2 : 3)); - case 'mk': - return 1 == $number % 10 ? 0 : 1; - case 'mt': - return 1 == $number ? 0 : (0 == $number || $number % 100 > 1 && $number % 100 < 11 ? 1 : ($number % 100 > 10 && $number % 100 < 20 ? 2 : 3)); - case 'lv': - return 0 == $number ? 0 : (1 == $number % 10 && 11 != $number % 100 ? 1 : 2); - case 'pl': - return 1 == $number ? 0 : ($number % 10 >= 2 && $number % 10 <= 4 && ($number % 100 < 12 || $number % 100 > 14) ? 1 : 2); - case 'cy': - return 1 == $number ? 0 : (2 == $number ? 1 : (8 == $number || 11 == $number ? 2 : 3)); - case 'ro': - return 1 == $number ? 0 : (0 == $number || $number % 100 > 0 && $number % 100 < 20 ? 1 : 2); - case 'ar': - return 0 == $number ? 0 : (1 == $number ? 1 : (2 == $number ? 2 : ($number % 100 >= 3 && $number % 100 <= 10 ? 3 : ($number % 100 >= 11 && $number % 100 <= 99 ? 4 : 5)))); - default: - return 0; - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/contracts/Translation/composer.json b/vendor/rector/rector/vendor/symfony/contracts/Translation/composer.json deleted file mode 100644 index 52f7d9a98..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/Translation/composer.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "symfony\/translation-contracts", - "type": "library", - "description": "Generic abstractions related to translation", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Contracts\\Translation\\": "" - }, - "exclude-from-classmap": [ - "\/Test\/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - }, - "thanks": { - "name": "symfony\/contracts", - "url": "https:\/\/github.com\/symfony\/contracts" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/contracts/composer.json b/vendor/rector/rector/vendor/symfony/contracts/composer.json deleted file mode 100644 index f418e1c3f..000000000 --- a/vendor/rector/rector/vendor/symfony/contracts/composer.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "name": "symfony\/contracts", - "type": "library", - "description": "A set of abstractions extracted out of the Symfony components", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1", - "psr\/cache": "^3.0", - "psr\/container": "^2.0", - "psr\/event-dispatcher": "^1.0" - }, - "require-dev": { - "symfony\/polyfill-intl-idn": "^1.10" - }, - "conflict": { - "ext-psr": "<1.1|>=2" - }, - "replace": { - "symfony\/cache-contracts": "self.version", - "symfony\/deprecation-contracts": "self.version", - "symfony\/event-dispatcher-contracts": "self.version", - "symfony\/http-client-contracts": "self.version", - "symfony\/service-contracts": "self.version", - "symfony\/translation-contracts": "self.version" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Contracts\\": "" - }, - "files": [ - "Deprecation\/function.php" - ], - "exclude-from-classmap": [ - "**\/Tests\/" - ] - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "3.4-dev" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Alias.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Alias.php deleted file mode 100644 index 243702778..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Alias.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -class Alias -{ - private const DEFAULT_DEPRECATION_TEMPLATE = 'The "%alias_id%" service alias is deprecated. You should stop using it, as it will be removed in the future.'; - /** - * @var string - */ - private $id; - /** - * @var bool - */ - private $public; - /** - * @var mixed[] - */ - private $deprecation = []; - public function __construct(string $id, bool $public = \false) - { - $this->id = $id; - $this->public = $public; - } - /** - * Checks if this DI Alias should be public or not. - */ - public function isPublic() : bool - { - return $this->public; - } - /** - * Sets if this Alias is public. - * - * @return $this - */ - public function setPublic(bool $boolean) - { - $this->public = $boolean; - return $this; - } - /** - * Whether this alias is private. - */ - public function isPrivate() : bool - { - return !$this->public; - } - /** - * Whether this alias is deprecated, that means it should not be referenced - * anymore. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The deprecation message to use - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - public function setDeprecated(string $package, string $version, string $message) - { - if ('' !== $message) { - if (\preg_match('#[\\r\\n]|\\*/#', $message)) { - throw new InvalidArgumentException('Invalid characters found in deprecation template.'); - } - if (\strpos($message, '%alias_id%') === \false) { - throw new InvalidArgumentException('The deprecation template must contain the "%alias_id%" placeholder.'); - } - } - $this->deprecation = ['package' => $package, 'version' => $version, 'message' => $message ?: self::DEFAULT_DEPRECATION_TEMPLATE]; - return $this; - } - public function isDeprecated() : bool - { - return (bool) $this->deprecation; - } - /** - * @param string $id Service id relying on this definition - */ - public function getDeprecation(string $id) : array - { - return ['package' => $this->deprecation['package'], 'version' => $this->deprecation['version'], 'message' => \str_replace('%alias_id%', $id, $this->deprecation['message'])]; - } - public function __toString() : string - { - return $this->id; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/AbstractArgument.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/AbstractArgument.php deleted file mode 100644 index 93531839b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/AbstractArgument.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -/** - * Represents an abstract service argument, which have to be set by a compiler pass or a DI extension. - */ -final class AbstractArgument -{ - /** - * @var string - */ - private $text; - /** - * @var string - */ - private $context = ''; - public function __construct(string $text = '') - { - $this->text = \trim($text, '. '); - } - public function setContext(string $context) : void - { - $this->context = $context . ' is abstract' . ('' === $this->text ? '' : ': '); - } - public function getText() : string - { - return $this->text; - } - public function getTextWithContext() : string - { - return $this->context . $this->text . '.'; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php deleted file mode 100644 index 19cf3c3ec..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ArgumentInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a complex argument containing nested values. - * - * @author Titouan Galopin - */ -interface ArgumentInterface -{ - public function getValues() : array; - public function setValues(array $values); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/BoundArgument.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/BoundArgument.php deleted file mode 100644 index 614e3a2b3..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/BoundArgument.php +++ /dev/null @@ -1,77 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -/** - * @author Guilhem Niot - */ -final class BoundArgument implements ArgumentInterface -{ - public const SERVICE_BINDING = 0; - public const DEFAULTS_BINDING = 1; - public const INSTANCEOF_BINDING = 2; - /** - * @var int - */ - private static $sequence = 0; - /** - * @var mixed - */ - private $value; - /** - * @var int|null - */ - private $identifier; - /** - * @var bool|null - */ - private $used; - /** - * @var int - */ - private $type; - /** - * @var string|null - */ - private $file; - /** - * @param mixed $value - */ - public function __construct($value, bool $trackUsage = \true, int $type = 0, string $file = null) - { - $this->value = $value; - if ($trackUsage) { - $this->identifier = ++self::$sequence; - } else { - $this->used = \true; - } - $this->type = $type; - $this->file = $file; - } - /** - * {@inheritdoc} - */ - public function getValues() : array - { - return [$this->value, $this->identifier, $this->used, $this->type, $this->file]; - } - /** - * {@inheritdoc} - */ - public function setValues(array $values) - { - if (5 === \count($values)) { - [$this->value, $this->identifier, $this->used, $this->type, $this->file] = $values; - } else { - [$this->value, $this->identifier, $this->used] = $values; - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/IteratorArgument.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/IteratorArgument.php deleted file mode 100644 index 80068a1f2..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/IteratorArgument.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a collection of values to lazily iterate over. - * - * @author Titouan Galopin - */ -class IteratorArgument implements ArgumentInterface -{ - /** - * @var mixed[] - */ - private $values; - public function __construct(array $values) - { - $this->setValues($values); - } - public function getValues() : array - { - return $this->values; - } - public function setValues(array $values) - { - $this->values = $values; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php deleted file mode 100644 index 489d57fc0..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ReferenceSetArgumentTrait.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -\RectorPrefix202308\trigger_deprecation('symfony/dependency-injection', '6.1', '"%s" is deprecated.', ReferenceSetArgumentTrait::class); -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * @author Titouan Galopin - * @author Nicolas Grekas - * - * @deprecated since Symfony 6.1 - */ -trait ReferenceSetArgumentTrait -{ - /** - * @var mixed[] - */ - private $values; - /** - * @param Reference[] $values - */ - public function __construct(array $values) - { - $this->setValues($values); - } - /** - * @return Reference[] - */ - public function getValues() : array - { - return $this->values; - } - /** - * @param Reference[] $values The service references to put in the set - */ - public function setValues(array $values) - { - foreach ($values as $k => $v) { - if (null !== $v && !$v instanceof Reference) { - throw new InvalidArgumentException(\sprintf('A "%s" must hold only Reference instances, "%s" given.', __CLASS__, \get_debug_type($v))); - } - } - $this->values = $values; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php deleted file mode 100644 index 07d03072f..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/RewindableGenerator.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -/** - * @internal - */ -class RewindableGenerator implements \IteratorAggregate, \Countable -{ - /** - * @var \Closure - */ - private $generator; - /** - * @var \Closure|int - */ - private $count; - /** - * @param int|callable $count - */ - public function __construct(callable $generator, $count) - { - $this->generator = \Closure::fromCallable($generator); - $this->count = \is_int($count) ? $count : \Closure::fromCallable($count); - } - public function getIterator() : \Traversable - { - $g = $this->generator; - return $g(); - } - public function count() : int - { - if (!\is_int($count = $this->count)) { - $this->count = $count(); - } - return $this->count; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php deleted file mode 100644 index 030adc0a1..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceClosureArgument.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * Represents a service wrapped in a memoizing closure. - * - * @author Nicolas Grekas - */ -class ServiceClosureArgument implements ArgumentInterface -{ - /** - * @var mixed[] - */ - private $values; - /** - * @param mixed $value - */ - public function __construct($value) - { - $this->values = [$value]; - } - /** - * {@inheritdoc} - */ - public function getValues() : array - { - return $this->values; - } - /** - * {@inheritdoc} - */ - public function setValues(array $values) - { - if ([0] !== \array_keys($values)) { - throw new InvalidArgumentException('A ServiceClosureArgument must hold one and only one value.'); - } - $this->values = $values; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocator.php deleted file mode 100644 index 47afce86b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocator.php +++ /dev/null @@ -1,64 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ServiceLocator as BaseServiceLocator; -/** - * @author Nicolas Grekas - * - * @internal - */ -class ServiceLocator extends BaseServiceLocator -{ - /** - * @var \Closure - */ - private $factory; - /** - * @var mixed[] - */ - private $serviceMap; - /** - * @var mixed[]|null - */ - private $serviceTypes; - public function __construct(\Closure $factory, array $serviceMap, array $serviceTypes = null) - { - $this->factory = $factory; - $this->serviceMap = $serviceMap; - $this->serviceTypes = $serviceTypes; - parent::__construct($serviceMap); - } - /** - * {@inheritdoc} - * @return mixed - */ - public function get(string $id) - { - switch (\count($this->serviceMap[$id] ?? [])) { - case 0: - return parent::get($id); - case 1: - return $this->serviceMap[$id][0]; - default: - return ($this->factory)(...$this->serviceMap[$id]); - } - } - /** - * {@inheritdoc} - */ - public function getProvidedServices() : array - { - return $this->serviceTypes = $this->serviceTypes ?? \array_map(function () { - return '?'; - }, $this->serviceMap); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php deleted file mode 100644 index 278bb8433..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/ServiceLocatorArgument.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a closure acting as a service locator. - * - * @author Nicolas Grekas - */ -class ServiceLocatorArgument implements ArgumentInterface -{ - /** - * @var mixed[] - */ - private $values; - /** - * @var \Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument|null - */ - private $taggedIteratorArgument; - /** - * @param mixed[]|\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument $values - */ - public function __construct($values = []) - { - if ($values instanceof TaggedIteratorArgument) { - $this->taggedIteratorArgument = $values; - $values = []; - } - $this->setValues($values); - } - public function getTaggedIteratorArgument() : ?TaggedIteratorArgument - { - return $this->taggedIteratorArgument; - } - public function getValues() : array - { - return $this->values; - } - public function setValues(array $values) - { - $this->values = $values; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php deleted file mode 100644 index a0d08eb5c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Argument/TaggedIteratorArgument.php +++ /dev/null @@ -1,89 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Argument; - -/** - * Represents a collection of services found by tag name to lazily iterate over. - * - * @author Roland Franssen - */ -class TaggedIteratorArgument extends IteratorArgument -{ - /** - * @var string - */ - private $tag; - /** - * @var mixed - */ - private $indexAttribute; - /** - * @var string|null - */ - private $defaultIndexMethod; - /** - * @var string|null - */ - private $defaultPriorityMethod; - /** - * @var bool - */ - private $needsIndexes; - /** - * @var mixed[] - */ - private $exclude; - /** - * @param string $tag The name of the tag identifying the target services - * @param string|null $indexAttribute The name of the attribute that defines the key referencing each service in the tagged collection - * @param string|null $defaultIndexMethod The static method that should be called to get each service's key when their tag doesn't define the previous attribute - * @param bool $needsIndexes Whether indexes are required and should be generated when computing the map - * @param string|null $defaultPriorityMethod The static method that should be called to get each service's priority when their tag doesn't define the "priority" attribute - * @param array $exclude Services to exclude from the iterator - */ - public function __construct(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null, bool $needsIndexes = \false, string $defaultPriorityMethod = null, array $exclude = []) - { - parent::__construct([]); - if (null === $indexAttribute && $needsIndexes) { - $indexAttribute = \preg_match('/[^.]++$/', $tag, $m) ? $m[0] : $tag; - } - $this->tag = $tag; - $this->indexAttribute = $indexAttribute; - $this->defaultIndexMethod = $defaultIndexMethod ?: ($indexAttribute ? 'getDefault' . \str_replace(' ', '', \ucwords(\preg_replace('/[^a-zA-Z0-9\\x7f-\\xff]++/', ' ', $indexAttribute))) . 'Name' : null); - $this->needsIndexes = $needsIndexes; - $this->defaultPriorityMethod = $defaultPriorityMethod ?: ($indexAttribute ? 'getDefault' . \str_replace(' ', '', \ucwords(\preg_replace('/[^a-zA-Z0-9\\x7f-\\xff]++/', ' ', $indexAttribute))) . 'Priority' : null); - $this->exclude = $exclude; - } - public function getTag() - { - return $this->tag; - } - public function getIndexAttribute() : ?string - { - return $this->indexAttribute; - } - public function getDefaultIndexMethod() : ?string - { - return $this->defaultIndexMethod; - } - public function needsIndexes() : bool - { - return $this->needsIndexes; - } - public function getDefaultPriorityMethod() : ?string - { - return $this->defaultPriorityMethod; - } - public function getExclude() : array - { - return $this->exclude; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsDecorator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsDecorator.php deleted file mode 100644 index 3613a53df..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsDecorator.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -#[\Attribute(\Attribute::TARGET_CLASS)] -class AsDecorator -{ - /** - * @var string - */ - public $decorates; - /** - * @var int - */ - public $priority = 0; - /** - * @var int - */ - public $onInvalid = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - public function __construct(string $decorates, int $priority = 0, int $onInvalid = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) - { - $this->decorates = $decorates; - $this->priority = $priority; - $this->onInvalid = $onInvalid; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php deleted file mode 100644 index 2e377e194..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AsTaggedItem.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell under which index and priority a service class should be found in tagged iterators/locators. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS)] -class AsTaggedItem -{ - /** - * @var string|null - */ - public $index; - /** - * @var int|null - */ - public $priority; - public function __construct(?string $index = null, ?int $priority = null) - { - $this->index = $index; - $this->priority = $priority; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php deleted file mode 100644 index 04618e35c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autoconfigure.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell how a base type should be autoconfigured. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -class Autoconfigure -{ - /** - * @var mixed[]|null - */ - public $tags; - /** - * @var mixed[]|null - */ - public $calls; - /** - * @var mixed[]|null - */ - public $bind; - /** - * @var bool|string|null - */ - public $lazy = null; - /** - * @var bool|null - */ - public $public; - /** - * @var bool|null - */ - public $shared; - /** - * @var bool|null - */ - public $autowire; - /** - * @var mixed[]|null - */ - public $properties; - /** - * @var mixed[]|string|null - */ - public $configurator = null; - /** - * @param bool|string|null $lazy - * @param mixed[]|string|null $configurator - */ - public function __construct(?array $tags = null, ?array $calls = null, ?array $bind = null, $lazy = null, ?bool $public = null, ?bool $shared = null, ?bool $autowire = null, ?array $properties = null, $configurator = null) - { - $this->tags = $tags; - $this->calls = $calls; - $this->bind = $bind; - $this->lazy = $lazy; - $this->public = $public; - $this->shared = $shared; - $this->autowire = $autowire; - $this->properties = $properties; - $this->configurator = $configurator; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php deleted file mode 100644 index 8c0395bfe..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/AutoconfigureTag.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell how a base type should be tagged. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -class AutoconfigureTag extends Autoconfigure -{ - public function __construct(string $name = null, array $attributes = []) - { - parent::__construct([[$name ?? 0 => $attributes]]); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autowire.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autowire.php deleted file mode 100644 index bee82a1ba..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Autowire.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * Attribute to tell a parameter how to be autowired. - * - * @author Kevin Bond - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class Autowire -{ - /** - * @readonly - * @var string|\Symfony\Component\ExpressionLanguage\Expression|\Symfony\Component\DependencyInjection\Reference - */ - public $value; - /** - * Use only ONE of the following. - * - * @param string|null $value Parameter value (ie "%kernel.project_dir%/some/path") - * @param string|null $service Service ID (ie "some.service") - * @param string|null $expression Expression (ie 'service("some.service").someMethod()') - */ - public function __construct(string $value = null, string $service = null, string $expression = null) - { - if (!($service xor $expression xor null !== $value)) { - throw new LogicException('#[Autowire] attribute must declare exactly one of $service, $expression, or $value.'); - } - if (null !== $value && \strncmp($value, '@', \strlen('@')) === 0) { - switch (\true) { - case \strncmp($value, '@@', \strlen('@@')) === 0: - $value = \substr($value, 1); - break; - case \strncmp($value, '@=', \strlen('@=')) === 0: - $expression = \substr($value, 2); - break; - default: - $service = \substr($value, 1); - break; - } - } - switch (\true) { - case null !== $service: - $this->value = new Reference($service); - break; - case null !== $expression: - if (!\class_exists(Expression::class)) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed. Try running "composer require symfony/expression-language".'); - } - $this->value = new Expression($expression); - break; - case null !== $value: - $this->value = $value; - break; - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/MapDecorated.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/MapDecorated.php deleted file mode 100644 index a8678903c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/MapDecorated.php +++ /dev/null @@ -1,16 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class MapDecorated -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedIterator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedIterator.php deleted file mode 100644 index dfff20510..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedIterator.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class TaggedIterator -{ - /** - * @var string - */ - public $tag; - /** - * @var string|null - */ - public $indexAttribute; - /** - * @var string|null - */ - public $defaultIndexMethod; - /** - * @var string|null - */ - public $defaultPriorityMethod; - /** - * @var string|mixed[] - */ - public $exclude = []; - /** - * @param string|mixed[] $exclude - */ - public function __construct(string $tag, ?string $indexAttribute = null, ?string $defaultIndexMethod = null, ?string $defaultPriorityMethod = null, $exclude = []) - { - $this->tag = $tag; - $this->indexAttribute = $indexAttribute; - $this->defaultIndexMethod = $defaultIndexMethod; - $this->defaultPriorityMethod = $defaultPriorityMethod; - $this->exclude = $exclude; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedLocator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedLocator.php deleted file mode 100644 index 65b39bbd5..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/TaggedLocator.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -#[\Attribute(\Attribute::TARGET_PARAMETER)] -class TaggedLocator -{ - /** - * @var string - */ - public $tag; - /** - * @var string|null - */ - public $indexAttribute; - /** - * @var string|null - */ - public $defaultIndexMethod; - /** - * @var string|null - */ - public $defaultPriorityMethod; - /** - * @var string|mixed[] - */ - public $exclude = []; - /** - * @param string|mixed[] $exclude - */ - public function __construct(string $tag, ?string $indexAttribute = null, ?string $defaultIndexMethod = null, ?string $defaultPriorityMethod = null, $exclude = []) - { - $this->tag = $tag; - $this->indexAttribute = $indexAttribute; - $this->defaultIndexMethod = $defaultIndexMethod; - $this->defaultPriorityMethod = $defaultPriorityMethod; - $this->exclude = $exclude; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Target.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Target.php deleted file mode 100644 index 4b9faef80..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/Target.php +++ /dev/null @@ -1,46 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * An attribute to tell how a dependency is used and hint named autowiring aliases. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_PARAMETER)] -final class Target -{ - /** - * @var string - */ - public $name; - public function __construct(string $name) - { - $this->name = \lcfirst(\str_replace(' ', '', \ucwords(\preg_replace('/[^a-zA-Z0-9\\x7f-\\xff]++/', ' ', $name)))); - } - public static function parseName(\ReflectionParameter $parameter) : string - { - if (!($target = (\method_exists($parameter, 'getAttributes') ? $parameter->getAttributes(self::class) : [])[0] ?? null)) { - return $parameter->name; - } - $name = $target->newInstance()->name; - if (!\preg_match('/^[a-zA-Z_\\x7f-\\xff]/', $name)) { - if (($function = $parameter->getDeclaringFunction()) instanceof \ReflectionMethod) { - $function = $function->class . '::' . $function->name; - } else { - $function = $function->name; - } - throw new InvalidArgumentException(\sprintf('Invalid #[Target] name "%s" on parameter "$%s" of "%s()": the first character must be a letter.', $name, $parameter->name, $function)); - } - return $name; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/When.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/When.php deleted file mode 100644 index cd1ea7780..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Attribute/When.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute; - -/** - * An attribute to tell under which environment this class should be registered as a service. - * - * @author Nicolas Grekas - */ -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::TARGET_FUNCTION | \Attribute::IS_REPEATABLE)] -class When -{ - /** - * @var string - */ - public $env; - public function __construct(string $env) - { - $this->env = $env; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ChildDefinition.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ChildDefinition.php deleted file mode 100644 index c30352f2a..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ChildDefinition.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\OutOfBoundsException; -/** - * This definition extends another definition. - * - * @author Johannes M. Schmitt - */ -class ChildDefinition extends Definition -{ - /** - * @var string - */ - private $parent; - /** - * @param string $parent The id of Definition instance to decorate - */ - public function __construct(string $parent) - { - $this->parent = $parent; - } - /** - * Returns the Definition to inherit from. - */ - public function getParent() : string - { - return $this->parent; - } - /** - * Sets the Definition to inherit from. - * - * @return $this - */ - public function setParent(string $parent) - { - $this->parent = $parent; - return $this; - } - /** - * Gets an argument to pass to the service constructor/factory method. - * - * If replaceArgument() has been used to replace an argument, this method - * will return the replacement value. - * - * @throws OutOfBoundsException When the argument does not exist - * @param int|string $index - * @return mixed - */ - public function getArgument($index) - { - if (\array_key_exists('index_' . $index, $this->arguments)) { - return $this->arguments['index_' . $index]; - } - return parent::getArgument($index); - } - /** - * You should always use this method when overwriting existing arguments - * of the parent definition. - * - * If you directly call setArguments() keep in mind that you must follow - * certain conventions when you want to overwrite the arguments of the - * parent definition, otherwise your arguments will only be appended. - * - * @return $this - * - * @throws InvalidArgumentException when $index isn't an integer - * @param int|string $index - * @param mixed $value - */ - public function replaceArgument($index, $value) - { - if (\is_int($index)) { - $this->arguments['index_' . $index] = $value; - } elseif (\strncmp($index, '$', \strlen('$')) === 0) { - $this->arguments[$index] = $value; - } else { - throw new InvalidArgumentException('The argument must be an existing index or the name of a constructor\'s parameter.'); - } - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php deleted file mode 100644 index cc69e6151..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php +++ /dev/null @@ -1,226 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ExpressionLanguage; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * @author Nicolas Grekas - */ -abstract class AbstractRecursivePass implements CompilerPassInterface -{ - /** - * @var ContainerBuilder - */ - protected $container; - protected $currentId; - /** - * @var bool - */ - private $processExpressions = \false; - /** - * @var \Symfony\Component\DependencyInjection\ExpressionLanguage - */ - private $expressionLanguage; - /** - * @var bool - */ - private $inExpression = \false; - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - try { - $this->processValue($container->getDefinitions(), \true); - } finally { - $this->container = null; - } - } - protected function enableExpressionProcessing() - { - $this->processExpressions = \true; - } - protected function inExpression(bool $reset = \true) : bool - { - $inExpression = $this->inExpression; - if ($reset) { - $this->inExpression = \false; - } - return $inExpression; - } - /** - * Processes a value found in a definition tree. - * - * @return mixed - * @param mixed $value - */ - protected function processValue($value, bool $isRoot = \false) - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - if ($isRoot) { - $this->currentId = $k; - } - if ($v !== ($processedValue = $this->processValue($v, $isRoot))) { - $value[$k] = $processedValue; - } - } - } elseif ($value instanceof ArgumentInterface) { - $value->setValues($this->processValue($value->getValues())); - } elseif ($value instanceof Expression && $this->processExpressions) { - $this->getExpressionLanguage()->compile((string) $value, ['this' => 'container', 'args' => 'args']); - } elseif ($value instanceof Definition) { - $value->setArguments($this->processValue($value->getArguments())); - $value->setProperties($this->processValue($value->getProperties())); - $value->setMethodCalls($this->processValue($value->getMethodCalls())); - $changes = $value->getChanges(); - if (isset($changes['factory'])) { - if (\is_string($factory = $value->getFactory()) && \strncmp($factory, '@=', \strlen('@=')) === 0) { - if (!\class_exists(Expression::class)) { - throw new LogicException('Expressions cannot be used in service factories without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $factory = new Expression(\substr($factory, 2)); - } - if (($factory = $this->processValue($factory)) instanceof Expression) { - $factory = '@=' . $factory; - } - $value->setFactory($factory); - } - if (isset($changes['configurator'])) { - $value->setConfigurator($this->processValue($value->getConfigurator())); - } - } - return $value; - } - /** - * @throws RuntimeException - */ - protected function getConstructor(Definition $definition, bool $required) : ?\ReflectionFunctionAbstract - { - if ($definition->isSynthetic()) { - return null; - } - if (\is_string($factory = $definition->getFactory())) { - if (\strncmp($factory, '@=', \strlen('@=')) === 0) { - return new \ReflectionFunction(static function (...$args) { - }); - } - if (!\function_exists($factory)) { - throw new RuntimeException(\sprintf('Invalid service "%s": function "%s" does not exist.', $this->currentId, $factory)); - } - $r = new \ReflectionFunction($factory); - if (\false !== $r->getFileName() && \file_exists($r->getFileName())) { - $this->container->fileExists($r->getFileName()); - } - return $r; - } - if ($factory) { - [$class, $method] = $factory; - if ('__construct' === $method) { - throw new RuntimeException(\sprintf('Invalid service "%s": "__construct()" cannot be used as a factory method.', $this->currentId)); - } - if ($class instanceof Reference) { - $factoryDefinition = $this->container->findDefinition((string) $class); - while (null === ($class = $factoryDefinition->getClass()) && $factoryDefinition instanceof ChildDefinition) { - $factoryDefinition = $this->container->findDefinition($factoryDefinition->getParent()); - } - } elseif ($class instanceof Definition) { - $class = $class->getClass(); - } elseif (null === $class) { - $class = $definition->getClass(); - } - return $this->getReflectionMethod(new Definition($class), $method); - } - while (null === ($class = $definition->getClass()) && $definition instanceof ChildDefinition) { - $definition = $this->container->findDefinition($definition->getParent()); - } - try { - if (!($r = $this->container->getReflectionClass($class))) { - if (null === $class) { - throw new RuntimeException(\sprintf('Invalid service "%s": the class is not set.', $this->currentId)); - } - throw new RuntimeException(\sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class)); - } - } catch (\ReflectionException $e) { - throw new RuntimeException(\sprintf('Invalid service "%s": ', $this->currentId) . \lcfirst($e->getMessage())); - } - if (!($r = $r->getConstructor())) { - if ($required) { - throw new RuntimeException(\sprintf('Invalid service "%s": class%s has no constructor.', $this->currentId, \sprintf($class !== $this->currentId ? ' "%s"' : '', $class))); - } - } elseif (!$r->isPublic()) { - throw new RuntimeException(\sprintf('Invalid service "%s": ', $this->currentId) . \sprintf($class !== $this->currentId ? 'constructor of class "%s"' : 'its constructor', $class) . ' must be public.'); - } - return $r; - } - /** - * @throws RuntimeException - */ - protected function getReflectionMethod(Definition $definition, string $method) : \ReflectionFunctionAbstract - { - if ('__construct' === $method) { - return $this->getConstructor($definition, \true); - } - while (null === ($class = $definition->getClass()) && $definition instanceof ChildDefinition) { - $definition = $this->container->findDefinition($definition->getParent()); - } - if (null === $class) { - throw new RuntimeException(\sprintf('Invalid service "%s": the class is not set.', $this->currentId)); - } - if (!($r = $this->container->getReflectionClass($class))) { - throw new RuntimeException(\sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class)); - } - if (!$r->hasMethod($method)) { - if ($r->hasMethod('__call') && ($r = $r->getMethod('__call')) && $r->isPublic()) { - return new \ReflectionMethod(static function (...$arguments) { - }, '__invoke'); - } - throw new RuntimeException(\sprintf('Invalid service "%s": method "%s()" does not exist.', $this->currentId, $class !== $this->currentId ? $class . '::' . $method : $method)); - } - $r = $r->getMethod($method); - if (!$r->isPublic()) { - throw new RuntimeException(\sprintf('Invalid service "%s": method "%s()" must be public.', $this->currentId, $class !== $this->currentId ? $class . '::' . $method : $method)); - } - return $r; - } - private function getExpressionLanguage() : ExpressionLanguage - { - if (!isset($this->expressionLanguage)) { - if (!\class_exists(ExpressionLanguage::class)) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed. Try running "composer require symfony/expression-language".'); - } - $providers = $this->container->getExpressionLanguageProviders(); - $this->expressionLanguage = new ExpressionLanguage(null, $providers, function (string $arg) : string { - if ('""' === \substr_replace($arg, '', 1, -1)) { - $id = \stripcslashes(\substr($arg, 1, -1)); - $this->inExpression = \true; - $arg = $this->processValue(new Reference($id)); - $this->inExpression = \false; - if (!$arg instanceof Reference) { - throw new RuntimeException(\sprintf('"%s::processValue()" must return a Reference when processing an expression, "%s" returned for service("%s").', static::class, \get_debug_type($arg), $id)); - } - $arg = \sprintf('"%s"', $arg); - } - return \sprintf('$this->get(%s)', $arg); - }); - } - return $this->expressionLanguage; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php deleted file mode 100644 index 52ca0a2cd..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AliasDeprecatedPublicServicesPass.php +++ /dev/null @@ -1,56 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -final class AliasDeprecatedPublicServicesPass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $aliases = []; - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof Reference && isset($this->aliases[$id = (string) $value])) { - return new Reference($this->aliases[$id], $value->getInvalidBehavior()); - } - return parent::processValue($value, $isRoot); - } - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->findTaggedServiceIds('container.private') as $id => $tags) { - if (null === ($package = $tags[0]['package'] ?? null)) { - throw new InvalidArgumentException(\sprintf('The "package" attribute is mandatory for the "container.private" tag on the "%s" service.', $id)); - } - if (null === ($version = $tags[0]['version'] ?? null)) { - throw new InvalidArgumentException(\sprintf('The "version" attribute is mandatory for the "container.private" tag on the "%s" service.', $id)); - } - $definition = $container->getDefinition($id); - if (!$definition->isPublic() || $definition->isPrivate()) { - continue; - } - $container->setAlias($id, $aliasId = '.container.private.' . $id)->setPublic(\true)->setDeprecated($package, $version, 'Accessing the "%alias_id%" service directly from the container is deprecated, use dependency injection instead.'); - $container->setDefinition($aliasId, $definition); - $this->aliases[$id] = $aliasId; - } - parent::process($container); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php deleted file mode 100644 index cda7952f5..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php +++ /dev/null @@ -1,188 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * Run this pass before passes that need to know more about the relation of - * your services. - * - * This class will populate the ServiceReferenceGraph with information. You can - * retrieve the graph in other passes from the compiler. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class AnalyzeServiceReferencesPass extends AbstractRecursivePass -{ - /** - * @var \Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraph - */ - private $graph; - /** - * @var \Symfony\Component\DependencyInjection\Definition|null - */ - private $currentDefinition; - /** - * @var bool - */ - private $onlyConstructorArguments; - /** - * @var bool - */ - private $hasProxyDumper; - /** - * @var bool - */ - private $lazy; - /** - * @var bool - */ - private $byConstructor; - /** - * @var bool - */ - private $byFactory; - /** - * @var mixed[] - */ - private $definitions; - /** - * @var mixed[] - */ - private $aliases; - /** - * @param bool $onlyConstructorArguments Sets this Service Reference pass to ignore method calls - */ - public function __construct(bool $onlyConstructorArguments = \false, bool $hasProxyDumper = \true) - { - $this->onlyConstructorArguments = $onlyConstructorArguments; - $this->hasProxyDumper = $hasProxyDumper; - $this->enableExpressionProcessing(); - } - /** - * Processes a ContainerBuilder object to populate the service reference graph. - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - $this->graph = $container->getCompiler()->getServiceReferenceGraph(); - $this->graph->clear(); - $this->lazy = \false; - $this->byConstructor = \false; - $this->byFactory = \false; - $this->definitions = $container->getDefinitions(); - $this->aliases = $container->getAliases(); - foreach ($this->aliases as $id => $alias) { - $targetId = $this->getDefinitionId((string) $alias); - $this->graph->connect($id, $alias, $targetId, null !== $targetId ? $this->container->getDefinition($targetId) : null, null); - } - try { - parent::process($container); - } finally { - $this->aliases = $this->definitions = []; - } - } - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - $lazy = $this->lazy; - $inExpression = $this->inExpression(); - if ($value instanceof ArgumentInterface) { - $this->lazy = !$this->byFactory || !$value instanceof IteratorArgument; - parent::processValue($value->getValues()); - $this->lazy = $lazy; - return $value; - } - if ($value instanceof Reference) { - $targetId = $this->getDefinitionId((string) $value); - $targetDefinition = null !== $targetId ? $this->container->getDefinition($targetId) : null; - $this->graph->connect($this->currentId, $this->currentDefinition, $targetId, $targetDefinition, $value, $this->lazy || $this->hasProxyDumper && (($nullsafeVariable1 = $targetDefinition) ? $nullsafeVariable1->isLazy() : null), ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior(), $this->byConstructor); - if ($inExpression) { - $this->graph->connect('.internal.reference_in_expression', null, $targetId, $targetDefinition, $value, $this->lazy || (($nullsafeVariable2 = $targetDefinition) ? $nullsafeVariable2->isLazy() : null), \true); - } - return $value; - } - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - if ($isRoot) { - if ($value->isSynthetic() || $value->isAbstract()) { - return $value; - } - $this->currentDefinition = $value; - } elseif ($this->currentDefinition === $value) { - return $value; - } - $this->lazy = \false; - $byConstructor = $this->byConstructor; - $this->byConstructor = $isRoot || $byConstructor; - $byFactory = $this->byFactory; - $this->byFactory = \true; - if (\is_string($factory = $value->getFactory()) && \strncmp($factory, '@=', \strlen('@=')) === 0) { - if (!\class_exists(Expression::class)) { - throw new LogicException('Expressions cannot be used in service factories without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $factory = new Expression(\substr($factory, 2)); - } - $this->processValue($factory); - $this->byFactory = $byFactory; - $this->processValue($value->getArguments()); - $properties = $value->getProperties(); - $setters = $value->getMethodCalls(); - // Any references before a "wither" are part of the constructor-instantiation graph - $lastWitherIndex = null; - foreach ($setters as $k => $call) { - if ($call[2] ?? \false) { - $lastWitherIndex = $k; - } - } - if (null !== $lastWitherIndex) { - $this->processValue($properties); - $setters = $properties = []; - foreach ($value->getMethodCalls() as $k => $call) { - if (null === $lastWitherIndex) { - $setters[] = $call; - continue; - } - if ($lastWitherIndex === $k) { - $lastWitherIndex = null; - } - $this->processValue($call); - } - } - $this->byConstructor = $byConstructor; - if (!$this->onlyConstructorArguments) { - $this->processValue($properties); - $this->processValue($setters); - $this->processValue($value->getConfigurator()); - } - $this->lazy = $lazy; - return $value; - } - private function getDefinitionId(string $id) : ?string - { - while (isset($this->aliases[$id])) { - $id = (string) $this->aliases[$id]; - } - return isset($this->definitions[$id]) ? $id : null; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php deleted file mode 100644 index d0f604546..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AttributeAutoconfigurationPass.php +++ /dev/null @@ -1,146 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * @author Alexander M. Turek - */ -final class AttributeAutoconfigurationPass extends AbstractRecursivePass -{ - private $classAttributeConfigurators = []; - private $methodAttributeConfigurators = []; - private $propertyAttributeConfigurators = []; - private $parameterAttributeConfigurators = []; - public function process(ContainerBuilder $container) : void - { - if (!$container->getAutoconfiguredAttributes()) { - return; - } - foreach ($container->getAutoconfiguredAttributes() as $attributeName => $callable) { - $callableReflector = new \ReflectionFunction(\Closure::fromCallable($callable)); - if ($callableReflector->getNumberOfParameters() <= 2) { - $this->classAttributeConfigurators[$attributeName] = $callable; - continue; - } - $reflectorParameter = $callableReflector->getParameters()[2]; - $parameterType = $reflectorParameter->getType(); - $types = []; - if ($parameterType instanceof \ReflectionUnionType) { - foreach ($parameterType->getTypes() as $type) { - $types[] = $type->getName(); - } - } elseif ($parameterType instanceof \ReflectionNamedType) { - $types[] = $parameterType->getName(); - } else { - throw new LogicException(\sprintf('Argument "$%s" of attribute autoconfigurator should have a type, use one or more of "\\ReflectionClass|\\ReflectionMethod|\\ReflectionProperty|\\ReflectionParameter|\\Reflector" in "%s" on line "%d".', $reflectorParameter->getName(), $callableReflector->getFileName(), $callableReflector->getStartLine())); - } - try { - $attributeReflector = new \ReflectionClass($attributeName); - } catch (\ReflectionException $exception) { - continue; - } - $targets = (\method_exists($attributeReflector, 'getAttributes') ? $attributeReflector->getAttributes(\Attribute::class) : [])[0] ?? 0; - $targets = $targets ? $targets->getArguments()[0] ?? -1 : 0; - foreach (['class', 'method', 'property', 'parameter'] as $symbol) { - if (['Reflector'] !== $types) { - if (!\in_array('Reflection' . \ucfirst($symbol), $types, \true)) { - continue; - } - if (!($targets & \constant('Attribute::TARGET_' . \strtoupper($symbol)))) { - throw new LogicException(\sprintf('Invalid type "Reflection%s" on argument "$%s": attribute "%s" cannot target a ' . $symbol . ' in "%s" on line "%d".', \ucfirst($symbol), $reflectorParameter->getName(), $attributeName, $callableReflector->getFileName(), $callableReflector->getStartLine())); - } - } - $this->{$symbol . 'AttributeConfigurators'}[$attributeName] = $callable; - } - } - parent::process($container); - } - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Definition || !$value->isAutoconfigured() || $value->isAbstract() || $value->hasTag('container.ignore_attributes') || !($classReflector = $this->container->getReflectionClass($value->getClass(), \false))) { - return parent::processValue($value, $isRoot); - } - $instanceof = $value->getInstanceofConditionals(); - $conditionals = $instanceof[$classReflector->getName()] ?? new ChildDefinition(''); - if ($this->classAttributeConfigurators) { - foreach (\method_exists($classReflector, 'getAttributes') ? $classReflector->getAttributes() : [] as $attribute) { - if ($configurator = $this->classAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $classReflector); - } - } - } - if ($this->parameterAttributeConfigurators) { - try { - $constructorReflector = $this->getConstructor($value, \false); - } catch (RuntimeException $exception) { - $constructorReflector = null; - } - if ($constructorReflector) { - foreach ($constructorReflector->getParameters() as $parameterReflector) { - foreach (\method_exists($parameterReflector, 'getAttributes') ? $parameterReflector->getAttributes() : [] as $attribute) { - if ($configurator = $this->parameterAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $parameterReflector); - } - } - } - } - } - if ($this->methodAttributeConfigurators || $this->parameterAttributeConfigurators) { - foreach ($classReflector->getMethods(\ReflectionMethod::IS_PUBLIC) as $methodReflector) { - if ($methodReflector->isStatic() || $methodReflector->isConstructor() || $methodReflector->isDestructor()) { - continue; - } - if ($this->methodAttributeConfigurators) { - foreach (\method_exists($methodReflector, 'getAttributes') ? $methodReflector->getAttributes() : [] as $attribute) { - if ($configurator = $this->methodAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $methodReflector); - } - } - } - if ($this->parameterAttributeConfigurators) { - foreach ($methodReflector->getParameters() as $parameterReflector) { - foreach (\method_exists($parameterReflector, 'getAttributes') ? $parameterReflector->getAttributes() : [] as $attribute) { - if ($configurator = $this->parameterAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $parameterReflector); - } - } - } - } - } - } - if ($this->propertyAttributeConfigurators) { - foreach ($classReflector->getProperties(\ReflectionProperty::IS_PUBLIC) as $propertyReflector) { - if ($propertyReflector->isStatic()) { - continue; - } - foreach (\method_exists($propertyReflector, 'getAttributes') ? $propertyReflector->getAttributes() : [] as $attribute) { - if ($configurator = $this->propertyAttributeConfigurators[$attribute->getName()] ?? null) { - $configurator($conditionals, $attribute->newInstance(), $propertyReflector); - } - } - } - } - if (!isset($instanceof[$classReflector->getName()]) && new ChildDefinition('') != $conditionals) { - $instanceof[$classReflector->getName()] = $conditionals; - $value->setInstanceofConditionals($instanceof); - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php deleted file mode 100644 index 6654b9792..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * Sets a service to be an alias of another one, given a format pattern. - */ -class AutoAliasServicePass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->findTaggedServiceIds('auto_alias') as $serviceId => $tags) { - foreach ($tags as $tag) { - if (!isset($tag['format'])) { - throw new InvalidArgumentException(\sprintf('Missing tag information "format" on auto_alias service "%s".', $serviceId)); - } - $aliasId = $container->getParameterBag()->resolveValue($tag['format']); - if ($container->hasDefinition($aliasId) || $container->hasAlias($aliasId)) { - $alias = new Alias($aliasId, $container->getDefinition($serviceId)->isPublic()); - $container->setAlias($serviceId, $alias); - } - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php deleted file mode 100644 index e2e9c4486..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireAsDecoratorPass.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\AsDecorator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * Reads #[AsDecorator] attributes on definitions that are autowired - * and don't have the "container.ignore_attributes" tag. - */ -final class AutowireAsDecoratorPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $definition) { - if ($this->accept($definition) && ($reflectionClass = $container->getReflectionClass($definition->getClass(), \false))) { - $this->processClass($definition, $reflectionClass); - } - } - } - private function accept(Definition $definition) : bool - { - return !$definition->hasTag('container.ignore_attributes') && $definition->isAutowired(); - } - private function processClass(Definition $definition, \ReflectionClass $reflectionClass) - { - foreach (\method_exists($reflectionClass, 'getAttributes') ? $reflectionClass->getAttributes(AsDecorator::class, \ReflectionAttribute::IS_INSTANCEOF) : [] as $attribute) { - $attribute = $attribute->newInstance(); - $definition->setDecoratedService($attribute->decorates, null, $attribute->priority, $attribute->onInvalid); - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowirePass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowirePass.php deleted file mode 100644 index c93b13338..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowirePass.php +++ /dev/null @@ -1,588 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\Config\Resource\ClassExistenceResource; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\Autowire; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\MapDecorated; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\TaggedIterator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\TaggedLocator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\Target; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\AutowiringFailedException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; -/** - * Inspects existing service definitions and wires the autowired ones using the type hints of their classes. - * - * @author Kévin Dunglas - * @author Nicolas Grekas - */ -class AutowirePass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $types; - /** - * @var mixed[] - */ - private $ambiguousServiceTypes; - /** - * @var mixed[] - */ - private $autowiringAliases; - /** - * @var string|null - */ - private $lastFailure; - /** - * @var bool - */ - private $throwOnAutowiringException; - /** - * @var string|null - */ - private $decoratedClass; - /** - * @var string|null - */ - private $decoratedId; - /** - * @var mixed[]|null - */ - private $methodCalls; - /** - * @var object - */ - private $defaultArgument; - /** - * @var \Closure|null - */ - private $getPreviousValue; - /** - * @var int|null - */ - private $decoratedMethodIndex; - /** - * @var int|null - */ - private $decoratedMethodArgumentIndex; - /** - * @var $this|null - */ - private $typesClone; - /** - * @var mixed[] - */ - private $combinedAliases; - public function __construct(bool $throwOnAutowireException = \true) - { - $this->throwOnAutowiringException = $throwOnAutowireException; - $this->defaultArgument = new class - { - public $value; - public $names; - }; - } - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->populateCombinedAliases($container); - try { - $this->typesClone = clone $this; - parent::process($container); - } finally { - $this->decoratedClass = null; - $this->decoratedId = null; - $this->methodCalls = null; - $this->defaultArgument->names = null; - $this->getPreviousValue = null; - $this->decoratedMethodIndex = null; - $this->decoratedMethodArgumentIndex = null; - $this->typesClone = null; - $this->combinedAliases = []; - } - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - try { - return $this->doProcessValue($value, $isRoot); - } catch (AutowiringFailedException $e) { - if ($this->throwOnAutowiringException) { - throw $e; - } - $this->container->getDefinition($this->currentId)->addError($e->getMessageCallback() ?? $e->getMessage()); - return parent::processValue($value, $isRoot); - } - } - /** - * @param mixed $value - * @return mixed - */ - private function doProcessValue($value, bool $isRoot = \false) - { - if ($value instanceof TypedReference) { - if ($ref = $this->getAutowiredReference($value, \true)) { - return $ref; - } - if (ContainerBuilder::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) { - $message = $this->createTypeNotFoundMessageCallback($value, 'it'); - // since the error message varies by referenced id and $this->currentId, so should the id of the dummy errored definition - $this->container->register($id = \sprintf('.errored.%s.%s', $this->currentId, (string) $value), $value->getType())->addError($message); - return new TypedReference($id, $value->getType(), $value->getInvalidBehavior(), $value->getName()); - } - } - $value = parent::processValue($value, $isRoot); - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!($reflectionClass = $this->container->getReflectionClass($value->getClass(), \false))) { - $this->container->log($this, \sprintf('Skipping service "%s": Class or interface "%s" cannot be loaded.', $this->currentId, $value->getClass())); - return $value; - } - $this->methodCalls = $value->getMethodCalls(); - try { - $constructor = $this->getConstructor($value, \false); - } catch (RuntimeException $e) { - throw new AutowiringFailedException($this->currentId, $e->getMessage(), 0, $e); - } - if ($constructor) { - \array_unshift($this->methodCalls, [$constructor, $value->getArguments()]); - } - $checkAttributes = !$value->hasTag('container.ignore_attributes'); - $this->methodCalls = $this->autowireCalls($reflectionClass, $isRoot, $checkAttributes); - if ($constructor) { - [, $arguments] = \array_shift($this->methodCalls); - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - } - if ($this->methodCalls !== $value->getMethodCalls()) { - $value->setMethodCalls($this->methodCalls); - } - return $value; - } - private function autowireCalls(\ReflectionClass $reflectionClass, bool $isRoot, bool $checkAttributes) : array - { - $this->decoratedId = null; - $this->decoratedClass = null; - $this->getPreviousValue = null; - if ($isRoot && ($definition = $this->container->getDefinition($this->currentId)) && null !== ($this->decoratedId = $definition->innerServiceId) && $this->container->has($this->decoratedId)) { - $this->decoratedClass = $this->container->findDefinition($this->decoratedId)->getClass(); - } - $patchedIndexes = []; - foreach ($this->methodCalls as $i => $call) { - [$method, $arguments] = $call; - if ($method instanceof \ReflectionFunctionAbstract) { - $reflectionMethod = $method; - } else { - $definition = new Definition($reflectionClass->name); - try { - $reflectionMethod = $this->getReflectionMethod($definition, $method); - } catch (RuntimeException $e) { - if ($definition->getFactory()) { - continue; - } - throw $e; - } - } - $arguments = $this->autowireMethod($reflectionMethod, $arguments, $checkAttributes, $i); - if ($arguments !== $call[1]) { - $this->methodCalls[$i][1] = $arguments; - $patchedIndexes[] = $i; - } - } - // use named arguments to skip complex default values - foreach ($patchedIndexes as $i) { - $namedArguments = null; - $arguments = $this->methodCalls[$i][1]; - foreach ($arguments as $j => $value) { - if ($namedArguments && !$value instanceof $this->defaultArgument) { - unset($arguments[$j]); - $arguments[$namedArguments[$j]] = $value; - } - if ($namedArguments || !$value instanceof $this->defaultArgument) { - continue; - } - if (\is_array($value->value) ? $value->value : \is_object($value->value)) { - unset($arguments[$j]); - $namedArguments = $value->names; - } else { - $arguments[$j] = $value->value; - } - } - $this->methodCalls[$i][1] = $arguments; - } - return $this->methodCalls; - } - /** - * Autowires the constructor or a method. - * - * @throws AutowiringFailedException - */ - private function autowireMethod(\ReflectionFunctionAbstract $reflectionMethod, array $arguments, bool $checkAttributes, int $methodIndex) : array - { - $class = $reflectionMethod instanceof \ReflectionMethod ? $reflectionMethod->class : $this->currentId; - $method = $reflectionMethod->name; - $parameters = $reflectionMethod->getParameters(); - if ($reflectionMethod->isVariadic()) { - \array_pop($parameters); - } - $this->defaultArgument->names = new \ArrayObject(); - foreach ($parameters as $index => $parameter) { - $this->defaultArgument->names[$index] = $parameter->name; - if (\array_key_exists($parameter->name, $arguments)) { - $arguments[$index] = $arguments[$parameter->name]; - unset($arguments[$parameter->name]); - } - if (\array_key_exists($index, $arguments) && '' !== $arguments[$index]) { - continue; - } - $type = ProxyHelper::getTypeHint($reflectionMethod, $parameter, \true); - if ($checkAttributes) { - foreach (\method_exists($parameter, 'getAttributes') ? $parameter->getAttributes() : [] as $attribute) { - if (TaggedIterator::class === $attribute->getName()) { - $attribute = $attribute->newInstance(); - $arguments[$index] = new TaggedIteratorArgument($attribute->tag, $attribute->indexAttribute, $attribute->defaultIndexMethod, \false, $attribute->defaultPriorityMethod, (array) $attribute->exclude); - break; - } - if (TaggedLocator::class === $attribute->getName()) { - $attribute = $attribute->newInstance(); - $arguments[$index] = new ServiceLocatorArgument(new TaggedIteratorArgument($attribute->tag, $attribute->indexAttribute, $attribute->defaultIndexMethod, \true, $attribute->defaultPriorityMethod, (array) $attribute->exclude)); - break; - } - if (Autowire::class === $attribute->getName()) { - $value = $attribute->newInstance()->value; - $value = $this->container->getParameterBag()->resolveValue($value); - if ($value instanceof Reference && $parameter->allowsNull()) { - $value = new Reference($value, ContainerInterface::NULL_ON_INVALID_REFERENCE); - } - $arguments[$index] = $value; - break; - } - if (MapDecorated::class === $attribute->getName()) { - $definition = $this->container->getDefinition($this->currentId); - $arguments[$index] = new Reference($definition->innerServiceId ?? $this->currentId . '.inner', $definition->decorationOnInvalid ?? ContainerInterface::NULL_ON_INVALID_REFERENCE); - break; - } - } - if ('' !== ($arguments[$index] ?? '')) { - continue; - } - } - if (!$type) { - if (isset($arguments[$index])) { - continue; - } - // no default value? Then fail - if (!$parameter->isDefaultValueAvailable()) { - // For core classes, isDefaultValueAvailable() can - // be false when isOptional() returns true. If the - // argument *is* optional, allow it to be missing - if ($parameter->isOptional()) { - --$index; - break; - } - $type = ProxyHelper::getTypeHint($reflectionMethod, $parameter, \false); - $type = $type ? \sprintf('is type-hinted "%s"', \ltrim($type, '\\')) : 'has no type-hint'; - throw new AutowiringFailedException($this->currentId, \sprintf('Cannot autowire service "%s": argument "$%s" of method "%s()" %s, you should configure its value explicitly.', $this->currentId, $parameter->name, $class !== $this->currentId ? $class . '::' . $method : $method, $type)); - } - // specifically pass the default value - $arguments[$index] = clone $this->defaultArgument; - $arguments[$index]->value = $parameter->getDefaultValue(); - continue; - } - $getValue = function () use($type, $parameter, $class, $method) { - if (!($value = $this->getAutowiredReference($ref = new TypedReference($type, $type, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, Target::parseName($parameter)), \true))) { - $failureMessage = $this->createTypeNotFoundMessageCallback($ref, \sprintf('argument "$%s" of method "%s()"', $parameter->name, $class !== $this->currentId ? $class . '::' . $method : $method)); - if ($parameter->isDefaultValueAvailable()) { - $value = clone $this->defaultArgument; - $value->value = $parameter->getDefaultValue(); - } elseif (!$parameter->allowsNull()) { - throw new AutowiringFailedException($this->currentId, $failureMessage); - } - } - return $value; - }; - if ($this->decoratedClass && ($isDecorated = \is_a($this->decoratedClass, $type, \true))) { - if ($this->getPreviousValue) { - // The inner service is injected only if there is only 1 argument matching the type of the decorated class - // across all arguments of all autowired methods. - // If a second matching argument is found, the default behavior is restored. - $getPreviousValue = $this->getPreviousValue; - $this->methodCalls[$this->decoratedMethodIndex][1][$this->decoratedMethodArgumentIndex] = $getPreviousValue(); - $this->decoratedClass = null; - // Prevent further checks - } else { - $arguments[$index] = new TypedReference($this->decoratedId, $this->decoratedClass); - $this->getPreviousValue = $getValue; - $this->decoratedMethodIndex = $methodIndex; - $this->decoratedMethodArgumentIndex = $index; - continue; - } - } - $arguments[$index] = $getValue(); - } - if ($parameters && !isset($arguments[++$index])) { - while (0 <= --$index) { - if (!$arguments[$index] instanceof $this->defaultArgument) { - break; - } - unset($arguments[$index]); - } - } - // it's possible index 1 was set, then index 0, then 2, etc - // make sure that we re-order so they're injected as expected - \ksort($arguments, \SORT_NATURAL); - return $arguments; - } - /** - * Returns a reference to the service matching the given type, if any. - */ - private function getAutowiredReference(TypedReference $reference, bool $filterType) : ?TypedReference - { - $this->lastFailure = null; - $type = $reference->getType(); - if ($type !== (string) $reference) { - return $reference; - } - if ($filterType && \false !== ($m = \strpbrk($type, '&|'))) { - $types = \array_diff(\explode($m[0], $type), ['int', 'string', 'array', 'bool', 'float', 'iterable', 'object', 'callable', 'null']); - \sort($types); - $type = \implode($m[0], $types); - } - if (null !== ($name = $reference->getName())) { - if ($this->container->has($alias = $type . ' $' . $name) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - if (null !== ($alias = $this->combinedAliases[$alias] ?? null) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - if ($this->container->has($name) && !$this->container->findDefinition($name)->isAbstract()) { - foreach ($this->container->getAliases() + $this->combinedAliases as $id => $alias) { - if ($name === (string) $alias && \strncmp($id, $type . ' $', \strlen($type . ' $')) === 0) { - return new TypedReference($name, $type, $reference->getInvalidBehavior()); - } - } - } - } - if ($this->container->has($type) && !$this->container->findDefinition($type)->isAbstract()) { - return new TypedReference($type, $type, $reference->getInvalidBehavior()); - } - if (null !== ($alias = $this->combinedAliases[$type] ?? null) && !$this->container->findDefinition($alias)->isAbstract()) { - return new TypedReference($alias, $type, $reference->getInvalidBehavior()); - } - return null; - } - /** - * Populates the list of available types. - */ - private function populateAvailableTypes(ContainerBuilder $container) - { - $this->types = []; - $this->ambiguousServiceTypes = []; - $this->autowiringAliases = []; - foreach ($container->getDefinitions() as $id => $definition) { - $this->populateAvailableType($container, $id, $definition); - } - foreach ($container->getAliases() as $id => $alias) { - $this->populateAutowiringAlias($id); - } - } - /** - * Populates the list of available types for a given definition. - */ - private function populateAvailableType(ContainerBuilder $container, string $id, Definition $definition) - { - // Never use abstract services - if ($definition->isAbstract()) { - return; - } - if ('' === $id || '.' === $id[0] || $definition->isDeprecated() || !($reflectionClass = $container->getReflectionClass($definition->getClass(), \false))) { - return; - } - foreach ($reflectionClass->getInterfaces() as $reflectionInterface) { - $this->set($reflectionInterface->name, $id); - } - do { - $this->set($reflectionClass->name, $id); - } while ($reflectionClass = $reflectionClass->getParentClass()); - $this->populateAutowiringAlias($id); - } - /** - * Associates a type and a service id if applicable. - */ - private function set(string $type, string $id) - { - // is this already a type/class that is known to match multiple services? - if (isset($this->ambiguousServiceTypes[$type])) { - $this->ambiguousServiceTypes[$type][] = $id; - return; - } - // check to make sure the type doesn't match multiple services - if (!isset($this->types[$type]) || $this->types[$type] === $id) { - $this->types[$type] = $id; - return; - } - // keep an array of all services matching this type - if (!isset($this->ambiguousServiceTypes[$type])) { - $this->ambiguousServiceTypes[$type] = [$this->types[$type]]; - unset($this->types[$type]); - } - $this->ambiguousServiceTypes[$type][] = $id; - } - private function createTypeNotFoundMessageCallback(TypedReference $reference, string $label) : \Closure - { - if (null === $this->typesClone->container) { - $this->typesClone->container = new ContainerBuilder($this->container->getParameterBag()); - $this->typesClone->container->setAliases($this->container->getAliases()); - $this->typesClone->container->setDefinitions($this->container->getDefinitions()); - $this->typesClone->container->setResourceTracking(\false); - } - $currentId = $this->currentId; - return (function () use($reference, $label, $currentId) { - return $this->createTypeNotFoundMessage($reference, $label, $currentId); - })->bindTo($this->typesClone); - } - private function createTypeNotFoundMessage(TypedReference $reference, string $label, string $currentId) : string - { - if (!($r = $this->container->getReflectionClass($type = $reference->getType(), \false))) { - // either $type does not exist or a parent class does not exist - try { - $resource = new ClassExistenceResource($type, \false); - // isFresh() will explode ONLY if a parent class/trait does not exist - $resource->isFresh(0); - $parentMsg = \false; - } catch (\ReflectionException $e) { - $parentMsg = $e->getMessage(); - } - $message = \sprintf('has type "%s" but this class %s.', $type, $parentMsg ? \sprintf('is missing a parent class (%s)', $parentMsg) : 'was not found'); - } else { - $alternatives = $this->createTypeAlternatives($this->container, $reference); - $message = $this->container->has($type) ? 'this service is abstract' : 'no such service exists'; - $message = \sprintf('references %s "%s" but %s.%s', $r->isInterface() ? 'interface' : 'class', $type, $message, $alternatives); - if ($r->isInterface() && !$alternatives) { - $message .= ' Did you create a class that implements this interface?'; - } - } - $message = \sprintf('Cannot autowire service "%s": %s %s', $currentId, $label, $message); - if (null !== $this->lastFailure) { - $message = $this->lastFailure . "\n" . $message; - $this->lastFailure = null; - } - return $message; - } - private function createTypeAlternatives(ContainerBuilder $container, TypedReference $reference) : string - { - // try suggesting available aliases first - if ($message = $this->getAliasesSuggestionForType($container, $type = $reference->getType())) { - return ' ' . $message; - } - if (!isset($this->ambiguousServiceTypes)) { - $this->populateAvailableTypes($container); - } - $servicesAndAliases = $container->getServiceIds(); - if (null !== ($autowiringAliases = $this->autowiringAliases[$type] ?? null) && !isset($autowiringAliases[''])) { - return \sprintf(' Available autowiring aliases for this %s are: "$%s".', \class_exists($type, \false) ? 'class' : 'interface', \implode('", "$', $autowiringAliases)); - } - if (!$container->has($type) && \false !== ($key = \array_search(\strtolower($type), \array_map('strtolower', $servicesAndAliases)))) { - return \sprintf(' Did you mean "%s"?', $servicesAndAliases[$key]); - } elseif (isset($this->ambiguousServiceTypes[$type])) { - $message = \sprintf('one of these existing services: "%s"', \implode('", "', $this->ambiguousServiceTypes[$type])); - } elseif (isset($this->types[$type])) { - $message = \sprintf('the existing "%s" service', $this->types[$type]); - } else { - return ''; - } - return \sprintf(' You should maybe alias this %s to %s.', \class_exists($type, \false) ? 'class' : 'interface', $message); - } - private function getAliasesSuggestionForType(ContainerBuilder $container, string $type) : ?string - { - $aliases = []; - foreach (\class_parents($type) + \class_implements($type) as $parent) { - if ($container->has($parent) && !$container->findDefinition($parent)->isAbstract()) { - $aliases[] = $parent; - } - } - if (1 < ($len = \count($aliases))) { - $message = 'Try changing the type-hint to one of its parents: '; - for ($i = 0, --$len; $i < $len; ++$i) { - $message .= \sprintf('%s "%s", ', \class_exists($aliases[$i], \false) ? 'class' : 'interface', $aliases[$i]); - } - $message .= \sprintf('or %s "%s".', \class_exists($aliases[$i], \false) ? 'class' : 'interface', $aliases[$i]); - return $message; - } - if ($aliases) { - return \sprintf('Try changing the type-hint to "%s" instead.', $aliases[0]); - } - return null; - } - private function populateAutowiringAlias(string $id) : void - { - if (!\preg_match('/(?(DEFINE)(?[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+))^((?&V)(?:\\\\(?&V))*+)(?: \\$((?&V)))?$/', $id, $m)) { - return; - } - $type = $m[2]; - $name = $m[3] ?? ''; - if (\class_exists($type, \false) || \interface_exists($type, \false)) { - $this->autowiringAliases[$type][$name] = $name; - } - } - private function populateCombinedAliases(ContainerBuilder $container) : void - { - $this->combinedAliases = []; - $reverseAliases = []; - foreach ($container->getAliases() as $id => $alias) { - if (!\preg_match('/(?(DEFINE)(?[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+))^((?&V)(?:\\\\(?&V))*+)(?: \\$((?&V)))?$/', $id, $m)) { - continue; - } - $type = $m[2]; - $name = $m[3] ?? ''; - $reverseAliases[(string) $alias][$name][] = $type; - } - foreach ($reverseAliases as $alias => $names) { - foreach ($names as $name => $types) { - if (2 > ($count = \count($types))) { - continue; - } - \sort($types); - $i = 1 << $count; - // compute the powerset of the list of types - while ($i--) { - $set = []; - for ($j = 0; $j < $count; ++$j) { - if ($i & 1 << $j) { - $set[] = $types[$j]; - } - } - if (2 <= \count($set)) { - $this->combinedAliases[\implode('&', $set) . ('' === $name ? '' : ' $' . $name)] = $alias; - $this->combinedAliases[\implode('|', $set) . ('' === $name ? '' : ' $' . $name)] = $alias; - } - } - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php deleted file mode 100644 index 298b7f725..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -/** - * Looks for definitions with autowiring enabled and registers their corresponding "@required" methods as setters. - * - * @author Nicolas Grekas - */ -class AutowireRequiredMethodsPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - $value = parent::processValue($value, $isRoot); - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!($reflectionClass = $this->container->getReflectionClass($value->getClass(), \false))) { - return $value; - } - $alreadyCalledMethods = []; - $withers = []; - foreach ($value->getMethodCalls() as [$method]) { - $alreadyCalledMethods[\strtolower($method)] = \true; - } - foreach ($reflectionClass->getMethods() as $reflectionMethod) { - $r = $reflectionMethod; - if ($r->isConstructor() || isset($alreadyCalledMethods[\strtolower($r->name)])) { - continue; - } - while (\true) { - if (\method_exists($r, 'getAttributes') ? $r->getAttributes(Required::class) : []) { - if ($this->isWither($r, $r->getDocComment() ?: '')) { - $withers[] = [$r->name, [], \true]; - } else { - $value->addMethodCall($r->name, []); - } - break; - } - if (\false !== ($doc = $r->getDocComment())) { - if (\false !== \stripos($doc, '@required') && \preg_match('#(?:^/\\*\\*|\\n\\s*+\\*)\\s*+@required(?:\\s|\\*/$)#i', $doc)) { - if ($this->isWither($reflectionMethod, $doc)) { - $withers[] = [$reflectionMethod->name, [], \true]; - } else { - $value->addMethodCall($reflectionMethod->name, []); - } - break; - } - if (\false === \stripos($doc, '@inheritdoc') || !\preg_match('#(?:^/\\*\\*|\\n\\s*+\\*)\\s*+(?:\\{@inheritdoc\\}|@inheritdoc)(?:\\s|\\*/$)#i', $doc)) { - break; - } - } - try { - $r = $r->getPrototype(); - } catch (\ReflectionException $exception) { - break; - // method has no prototype - } - } - } - if ($withers) { - // Prepend withers to prevent creating circular loops - $setters = $value->getMethodCalls(); - $value->setMethodCalls($withers); - foreach ($setters as $call) { - $value->addMethodCall($call[0], $call[1], $call[2] ?? \false); - } - } - return $value; - } - private function isWither(\ReflectionMethod $reflectionMethod, string $doc) : bool - { - $match = \preg_match('#(?:^/\\*\\*|\\n\\s*+\\*)\\s*+@return\\s++(static|\\$this)[\\s\\*]#i', $doc, $matches); - if ($match && 'static' === $matches[1]) { - return \true; - } - if ($match && '$this' === $matches[1]) { - return \false; - } - $reflectionType = $reflectionMethod->hasReturnType() ? $reflectionMethod->getReturnType() : null; - return $reflectionType instanceof \ReflectionNamedType && 'static' === $reflectionType->getName(); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.php deleted file mode 100644 index 4706ec43d..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/AutowireRequiredPropertiesPass.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -/** - * Looks for definitions with autowiring enabled and registers their corresponding "@required" properties. - * - * @author Sebastien Morel (Plopix) - * @author Nicolas Grekas - */ -class AutowireRequiredPropertiesPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - $value = parent::processValue($value, $isRoot); - if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) { - return $value; - } - if (!($reflectionClass = $this->container->getReflectionClass($value->getClass(), \false))) { - return $value; - } - $properties = $value->getProperties(); - foreach ($reflectionClass->getProperties() as $reflectionProperty) { - if (!($type = \method_exists($reflectionProperty, 'getType') ? $reflectionProperty->getType() : null) instanceof \ReflectionNamedType) { - continue; - } - if (!(\method_exists($reflectionProperty, 'getAttributes') ? $reflectionProperty->getAttributes(Required::class) : []) && (\false === ($doc = $reflectionProperty->getDocComment()) || \false === \stripos($doc, '@required') || !\preg_match('#(?:^/\\*\\*|\\n\\s*+\\*)\\s*+@required(?:\\s|\\*/$)#i', $doc))) { - continue; - } - if (\array_key_exists($name = $reflectionProperty->getName(), $properties)) { - continue; - } - $type = $type->getName(); - $value->setProperty($name, new TypedReference($type, $type, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name)); - } - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php deleted file mode 100644 index 027208ef3..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * Checks if arguments of methods are properly configured. - * - * @author Kévin Dunglas - * @author Nicolas Grekas - */ -class CheckArgumentsValidityPass extends AbstractRecursivePass -{ - /** - * @var bool - */ - private $throwExceptions; - public function __construct(bool $throwExceptions = \true) - { - $this->throwExceptions = $throwExceptions; - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - $i = 0; - $hasNamedArgs = \false; - foreach ($value->getArguments() as $k => $v) { - if (\preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*$/', $k)) { - $hasNamedArgs = \true; - continue; - } - if ($k !== $i++) { - if (!\is_int($k)) { - $msg = \sprintf('Invalid constructor argument for service "%s": integer expected but found string "%s". Check your service definition.', $this->currentId, $k); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - break; - } - $msg = \sprintf('Invalid constructor argument %d for service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $this->currentId, $i); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - } - if ($hasNamedArgs) { - $msg = \sprintf('Invalid constructor argument for service "%s": cannot use positional argument after named argument. Check your service definition.', $this->currentId); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - break; - } - } - foreach ($value->getMethodCalls() as $methodCall) { - $i = 0; - $hasNamedArgs = \false; - foreach ($methodCall[1] as $k => $v) { - if (\preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*$/', $k)) { - $hasNamedArgs = \true; - continue; - } - if ($k !== $i++) { - if (!\is_int($k)) { - $msg = \sprintf('Invalid argument for method call "%s" of service "%s": integer expected but found string "%s". Check your service definition.', $methodCall[0], $this->currentId, $k); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - break; - } - $msg = \sprintf('Invalid argument %d for method call "%s" of service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $methodCall[0], $this->currentId, $i); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - } - if ($hasNamedArgs) { - $msg = \sprintf('Invalid argument for method call "%s" of service "%s": cannot use positional argument after named argument. Check your service definition.', $methodCall[0], $this->currentId); - $value->addError($msg); - if ($this->throwExceptions) { - throw new RuntimeException($msg); - } - break; - } - } - } - return null; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php deleted file mode 100644 index d31864d39..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php +++ /dev/null @@ -1,74 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -/** - * Checks your services for circular references. - * - * References from method calls are ignored since we might be able to resolve - * these references depending on the order in which services are called. - * - * Circular reference from method calls will only be detected at run-time. - * - * @author Johannes M. Schmitt - */ -class CheckCircularReferencesPass implements CompilerPassInterface -{ - /** - * @var mixed[] - */ - private $currentPath; - /** - * @var mixed[] - */ - private $checkedNodes; - /** - * Checks the ContainerBuilder object for circular references. - */ - public function process(ContainerBuilder $container) - { - $graph = $container->getCompiler()->getServiceReferenceGraph(); - $this->checkedNodes = []; - foreach ($graph->getNodes() as $id => $node) { - $this->currentPath = [$id]; - $this->checkOutEdges($node->getOutEdges()); - } - } - /** - * Checks for circular references. - * - * @param ServiceReferenceGraphEdge[] $edges An array of Edges - * - * @throws ServiceCircularReferenceException when a circular reference is found - */ - private function checkOutEdges(array $edges) - { - foreach ($edges as $edge) { - $node = $edge->getDestNode(); - $id = $node->getId(); - if (empty($this->checkedNodes[$id])) { - // Don't check circular references for lazy edges - if (!$node->getValue() || !$edge->isLazy() && !$edge->isWeak()) { - $searchKey = \array_search($id, $this->currentPath); - $this->currentPath[] = $id; - if (\false !== $searchKey) { - throw new ServiceCircularReferenceException($id, \array_slice($this->currentPath, $searchKey)); - } - $this->checkOutEdges($node->getOutEdges()); - } - $this->checkedNodes[$id] = \true; - \array_pop($this->currentPath); - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php deleted file mode 100644 index 38c040375..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\EnvParameterException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\FileLoader; -/** - * This pass validates each definition individually only taking the information - * into account which is contained in the definition itself. - * - * Later passes can rely on the following, and specifically do not need to - * perform these checks themselves: - * - * - non synthetic, non abstract services always have a class set - * - synthetic services are always public - * - * @author Johannes M. Schmitt - */ -class CheckDefinitionValidityPass implements CompilerPassInterface -{ - /** - * Processes the ContainerBuilder to validate the Definition. - * - * @throws RuntimeException When the Definition is invalid - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - // synthetic service is public - if ($definition->isSynthetic() && !$definition->isPublic()) { - throw new RuntimeException(\sprintf('A synthetic service ("%s") must be public.', $id)); - } - // non-synthetic, non-abstract service has class - if (!$definition->isAbstract() && !$definition->isSynthetic() && !$definition->getClass() && !$definition->hasTag('container.service_locator') && (!$definition->getFactory() || !\preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id))) { - if ($definition->getFactory()) { - throw new RuntimeException(\sprintf('Please add the class to service "%s" even if it is constructed by a factory since we might need to add method calls based on compile-time checks.', $id)); - } - if (\class_exists($id) || \interface_exists($id, \false)) { - if (\strncmp($id, '\\', \strlen('\\')) === 0 && 1 < \substr_count($id, '\\')) { - throw new RuntimeException(\sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface. Please specify the class attribute explicitly or remove the leading backslash by renaming the service to "%s" to get rid of this error.', $id, \substr($id, 1))); - } - throw new RuntimeException(\sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface in the global namespace. Leaving out the "class" attribute is only allowed for namespaced classes. Please specify the class attribute explicitly to get rid of this error.', $id)); - } - throw new RuntimeException(\sprintf('The definition for "%s" has no class. If you intend to inject this service dynamically at runtime, please mark it as synthetic=true. If this is an abstract definition solely used by child definitions, please add abstract=true, otherwise specify a class to get rid of this error.', $id)); - } - // tag attribute values must be scalars - foreach ($definition->getTags() as $name => $tags) { - foreach ($tags as $attributes) { - foreach ($attributes as $attribute => $value) { - if (!\is_scalar($value) && null !== $value) { - throw new RuntimeException(\sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $id, $name, $attribute)); - } - } - } - } - if ($definition->isPublic() && !$definition->isPrivate()) { - $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs); - if (null !== $usedEnvs) { - throw new EnvParameterException([$resolvedId], null, 'A service name ("%s") cannot contain dynamic values.'); - } - } - } - foreach ($container->getAliases() as $id => $alias) { - if ($alias->isPublic() && !$alias->isPrivate()) { - $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs); - if (null !== $usedEnvs) { - throw new EnvParameterException([$resolvedId], null, 'An alias name ("%s") cannot contain dynamic values.'); - } - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php deleted file mode 100644 index 2e120da10..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Checks that all references are pointing to a valid service. - * - * @author Johannes M. Schmitt - */ -class CheckExceptionOnInvalidReferenceBehaviorPass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $serviceLocatorContextIds = []; - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->serviceLocatorContextIds = []; - foreach ($container->findTaggedServiceIds('container.service_locator_context') as $id => $tags) { - $this->serviceLocatorContextIds[$id] = $tags[0]['id']; - $container->getDefinition($id)->clearTag('container.service_locator_context'); - } - try { - return parent::process($container); - } finally { - $this->serviceLocatorContextIds = []; - } - } - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $value->getInvalidBehavior() || $this->container->has($id = (string) $value)) { - return $value; - } - $currentId = $this->currentId; - $graph = $this->container->getCompiler()->getServiceReferenceGraph(); - if (isset($this->serviceLocatorContextIds[$currentId])) { - $currentId = $this->serviceLocatorContextIds[$currentId]; - $locator = $this->container->getDefinition($this->currentId)->getFactory()[0]; - foreach ($locator->getArgument(0) as $k => $v) { - if ($v->getValues()[0] === $value) { - if ($k !== $id) { - $currentId = $k . '" in the container provided to "' . $currentId; - } - throw new ServiceNotFoundException($id, $currentId, null, $this->getAlternatives($id)); - } - } - } - if ('.' === $currentId[0] && $graph->hasNode($currentId)) { - foreach ($graph->getNode($currentId)->getInEdges() as $edge) { - if (!$edge->getValue() instanceof Reference || ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $edge->getValue()->getInvalidBehavior()) { - continue; - } - $sourceId = $edge->getSourceNode()->getId(); - if ('.' !== $sourceId[0]) { - $currentId = $sourceId; - break; - } - } - } - throw new ServiceNotFoundException($id, $currentId, null, $this->getAlternatives($id)); - } - private function getAlternatives(string $id) : array - { - $alternatives = []; - foreach ($this->container->getServiceIds() as $knownId) { - if ('' === $knownId || '.' === $knownId[0]) { - continue; - } - $lev = \levenshtein($id, $knownId); - if ($lev <= \strlen($id) / 3 || \strpos($knownId, $id) !== \false) { - $alternatives[] = $knownId; - } - } - return $alternatives; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php deleted file mode 100644 index ff9eaf7a7..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Checks the validity of references. - * - * The following checks are performed by this pass: - * - target definitions are not abstract - * - * @author Johannes M. Schmitt - */ -class CheckReferenceValidityPass extends AbstractRecursivePass -{ - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($isRoot && $value instanceof Definition && ($value->isSynthetic() || $value->isAbstract())) { - return $value; - } - if ($value instanceof Reference && $this->container->hasDefinition((string) $value)) { - $targetDefinition = $this->container->getDefinition((string) $value); - if ($targetDefinition->isAbstract()) { - throw new RuntimeException(\sprintf('The definition "%s" has a reference to an abstract definition "%s". Abstract definitions cannot be the target of references.', $this->currentId, $value)); - } - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php deleted file mode 100644 index 48aca10a0..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php +++ /dev/null @@ -1,270 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Container; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidParameterTypeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ExpressionLanguage; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Parameter; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ServiceLocator; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * Checks whether injected parameters are compatible with type declarations. - * - * This pass should be run after all optimization passes. - * - * It can be added either: - * * before removing passes to check all services even if they are not currently used, - * * after removing passes to check only services are used in the app. - * - * @author Nicolas Grekas - * @author Julien Maulny - */ -final class CheckTypeDeclarationsPass extends AbstractRecursivePass -{ - private const SCALAR_TYPES = ['int' => \true, 'float' => \true, 'bool' => \true, 'string' => \true]; - private const BUILTIN_TYPES = ['array' => \true, 'bool' => \true, 'callable' => \true, 'float' => \true, 'int' => \true, 'iterable' => \true, 'object' => \true, 'string' => \true]; - /** - * @var bool - */ - private $autoload; - /** - * @var mixed[] - */ - private $skippedIds; - /** - * @var \Symfony\Component\DependencyInjection\ExpressionLanguage - */ - private $expressionLanguage; - /** - * @param bool $autoload Whether services who's class in not loaded should be checked or not. - * Defaults to false to save loading code during compilation. - * @param array $skippedIds An array indexed by the service ids to skip - */ - public function __construct(bool $autoload = \false, array $skippedIds = []) - { - $this->autoload = $autoload; - $this->skippedIds = $skippedIds; - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (isset($this->skippedIds[$this->currentId])) { - return $value; - } - if (!$value instanceof Definition || $value->hasErrors() || $value->isDeprecated()) { - return parent::processValue($value, $isRoot); - } - if (!$this->autoload) { - if (!($class = $value->getClass())) { - return parent::processValue($value, $isRoot); - } - if (!\class_exists($class, \false) && !\interface_exists($class, \false)) { - return parent::processValue($value, $isRoot); - } - } - if (ServiceLocator::class === $value->getClass()) { - return parent::processValue($value, $isRoot); - } - if ($constructor = $this->getConstructor($value, \false)) { - $this->checkTypeDeclarations($value, $constructor, $value->getArguments()); - } - foreach ($value->getMethodCalls() as $methodCall) { - try { - $reflectionMethod = $this->getReflectionMethod($value, $methodCall[0]); - } catch (RuntimeException $e) { - if ($value->getFactory()) { - continue; - } - throw $e; - } - $this->checkTypeDeclarations($value, $reflectionMethod, $methodCall[1]); - } - return parent::processValue($value, $isRoot); - } - /** - * @throws InvalidArgumentException When not enough parameters are defined for the method - */ - private function checkTypeDeclarations(Definition $checkedDefinition, \ReflectionFunctionAbstract $reflectionFunction, array $values) : void - { - $numberOfRequiredParameters = $reflectionFunction->getNumberOfRequiredParameters(); - if (\count($values) < $numberOfRequiredParameters) { - throw new InvalidArgumentException(\sprintf('Invalid definition for service "%s": "%s::%s()" requires %d arguments, %d passed.', $this->currentId, $reflectionFunction->class, $reflectionFunction->name, $numberOfRequiredParameters, \count($values))); - } - $reflectionParameters = $reflectionFunction->getParameters(); - $checksCount = \min($reflectionFunction->getNumberOfParameters(), \count($values)); - $envPlaceholderUniquePrefix = $this->container->getParameterBag() instanceof EnvPlaceholderParameterBag ? $this->container->getParameterBag()->getEnvPlaceholderUniquePrefix() : null; - for ($i = 0; $i < $checksCount; ++$i) { - if (!$reflectionParameters[$i]->hasType() || $reflectionParameters[$i]->isVariadic()) { - continue; - } - $this->checkType($checkedDefinition, $values[$i], $reflectionParameters[$i], $envPlaceholderUniquePrefix); - } - if ($reflectionFunction->isVariadic() && ($lastParameter = \end($reflectionParameters))->hasType()) { - $variadicParameters = \array_slice($values, $lastParameter->getPosition()); - foreach ($variadicParameters as $variadicParameter) { - $this->checkType($checkedDefinition, $variadicParameter, $lastParameter, $envPlaceholderUniquePrefix); - } - } - } - /** - * @throws InvalidParameterTypeException When a parameter is not compatible with the declared type - * @param mixed $value - */ - private function checkType(Definition $checkedDefinition, $value, \ReflectionParameter $parameter, ?string $envPlaceholderUniquePrefix, \ReflectionType $reflectionType = null) : void - { - $reflectionType = $reflectionType ?? $parameter->getType(); - if ($reflectionType instanceof \ReflectionUnionType) { - foreach ($reflectionType->getTypes() as $t) { - try { - $this->checkType($checkedDefinition, $value, $parameter, $envPlaceholderUniquePrefix, $t); - return; - } catch (InvalidParameterTypeException $e) { - } - } - throw new InvalidParameterTypeException($this->currentId, $e->getCode(), $parameter); - } - if ($reflectionType instanceof \ReflectionIntersectionType) { - foreach ($reflectionType->getTypes() as $t) { - $this->checkType($checkedDefinition, $value, $parameter, $envPlaceholderUniquePrefix, $t); - } - return; - } - if (!$reflectionType instanceof \ReflectionNamedType) { - return; - } - $type = $reflectionType->getName(); - if ($value instanceof Reference) { - if (!$this->container->has($value = (string) $value)) { - return; - } - if ('service_container' === $value && \is_a($type, Container::class, \true)) { - return; - } - $value = $this->container->findDefinition($value); - } - if ('self' === $type) { - $type = $parameter->getDeclaringClass()->getName(); - } - if ('static' === $type) { - $type = $checkedDefinition->getClass(); - } - $class = null; - if ($value instanceof Definition) { - if ($value->getFactory()) { - return; - } - $class = $value->getClass(); - if ($class && isset(self::BUILTIN_TYPES[\strtolower($class)])) { - $class = \strtolower($class); - } elseif (!$class || !$this->autoload && !\class_exists($class, \false) && !\interface_exists($class, \false)) { - return; - } - } elseif ($value instanceof Parameter) { - $value = $this->container->getParameter($value); - } elseif ($value instanceof Expression) { - try { - $value = $this->getExpressionLanguage()->evaluate($value, ['container' => $this->container]); - } catch (\Exception $exception) { - // If a service from the expression cannot be fetched from the container, we skip the validation. - return; - } - } elseif (\is_string($value)) { - if ('%' === ($value[0] ?? '') && \preg_match('/^%([^%]+)%$/', $value, $match)) { - $value = $this->container->getParameter(\substr($value, 1, -1)); - } - if ($envPlaceholderUniquePrefix && \is_string($value) && \strpos($value, 'env_') !== \false) { - // If the value is an env placeholder that is either mixed with a string or with another env placeholder, then its resolved value will always be a string, so we don't need to resolve it. - // We don't need to change the value because it is already a string. - if ('' === \preg_replace('/' . $envPlaceholderUniquePrefix . '_\\w+_[a-f0-9]{32}/U', '', $value, -1, $c) && 1 === $c) { - try { - $value = $this->container->resolveEnvPlaceholders($value, \true); - } catch (\Exception $exception) { - // If an env placeholder cannot be resolved, we skip the validation. - return; - } - } - } - } - if (null === $value && $parameter->allowsNull()) { - return; - } - if (null === $class) { - if ($value instanceof IteratorArgument) { - $class = RewindableGenerator::class; - } elseif ($value instanceof ServiceClosureArgument) { - $class = \Closure::class; - } elseif ($value instanceof ServiceLocatorArgument) { - $class = ServiceLocator::class; - } elseif (\is_object($value)) { - $class = \get_class($value); - } else { - $class = \gettype($value); - $class = ['integer' => 'int', 'double' => 'float', 'boolean' => 'bool'][$class] ?? $class; - } - } - if (isset(self::SCALAR_TYPES[$type]) && isset(self::SCALAR_TYPES[$class])) { - return; - } - if ('string' === $type && \method_exists($class, '__toString')) { - return; - } - if ('callable' === $type && (\Closure::class === $class || \method_exists($class, '__invoke'))) { - return; - } - if ('callable' === $type && \is_array($value) && isset($value[0]) && ($value[0] instanceof Reference || $value[0] instanceof Definition || \is_string($value[0]))) { - return; - } - if ('iterable' === $type && (\is_array($value) || 'array' === $class || \is_subclass_of($class, \Traversable::class))) { - return; - } - if ($type === $class) { - return; - } - if ('object' === $type && !isset(self::BUILTIN_TYPES[$class])) { - return; - } - if ('mixed' === $type) { - return; - } - if (\is_a($class, $type, \true)) { - return; - } - if ('false' === $type) { - if (\false === $value) { - return; - } - } elseif ($reflectionType->isBuiltin()) { - $checkFunction = \sprintf('is_%s', $type); - if ($checkFunction($value)) { - return; - } - } - throw new InvalidParameterTypeException($this->currentId, \is_object($value) ? $class : \get_debug_type($value), $parameter); - } - private function getExpressionLanguage() : ExpressionLanguage - { - return $this->expressionLanguage = $this->expressionLanguage ?? new ExpressionLanguage(null, $this->container->getExpressionLanguageProviders()); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/Compiler.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/Compiler.php deleted file mode 100644 index 5973376c9..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/Compiler.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\EnvParameterException; -/** - * This class is used to remove circular dependencies between individual passes. - * - * @author Johannes M. Schmitt - */ -class Compiler -{ - /** - * @var \Symfony\Component\DependencyInjection\Compiler\PassConfig - */ - private $passConfig; - /** - * @var mixed[] - */ - private $log = []; - /** - * @var \Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraph - */ - private $serviceReferenceGraph; - public function __construct() - { - $this->passConfig = new PassConfig(); - $this->serviceReferenceGraph = new ServiceReferenceGraph(); - } - public function getPassConfig() : PassConfig - { - return $this->passConfig; - } - public function getServiceReferenceGraph() : ServiceReferenceGraph - { - return $this->serviceReferenceGraph; - } - public function addPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $this->passConfig->addPass($pass, $type, $priority); - } - /** - * @final - */ - public function log(CompilerPassInterface $pass, string $message) - { - if (\strpos($message, "\n") !== \false) { - $message = \str_replace("\n", "\n" . \get_class($pass) . ': ', \trim($message)); - } - $this->log[] = \get_class($pass) . ': ' . $message; - } - public function getLog() : array - { - return $this->log; - } - /** - * Run the Compiler and process all Passes. - */ - public function compile(ContainerBuilder $container) - { - try { - foreach ($this->passConfig->getPasses() as $pass) { - $pass->process($container); - } - } catch (\Exception $e) { - $usedEnvs = []; - $prev = $e; - do { - $msg = $prev->getMessage(); - if ($msg !== ($resolvedMsg = $container->resolveEnvPlaceholders($msg, null, $usedEnvs))) { - $r = new \ReflectionProperty($prev, 'message'); - $r->setAccessible(\true); - $r->setValue($prev, $resolvedMsg); - } - } while ($prev = $prev->getPrevious()); - if ($usedEnvs) { - $e = new EnvParameterException($usedEnvs, $e); - } - throw $e; - } finally { - $this->getServiceReferenceGraph()->clear(); - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php deleted file mode 100644 index b938d1463..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * Interface that must be implemented by compilation passes. - * - * @author Johannes M. Schmitt - */ -interface CompilerPassInterface -{ - /** - * You can modify the container here before it is dumped to PHP code. - */ - public function process(ContainerBuilder $container); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php deleted file mode 100644 index 535fbf9b2..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php +++ /dev/null @@ -1,106 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Overwrites a service but keeps the overridden one. - * - * @author Christophe Coevoet - * @author Fabien Potencier - * @author Diego Saint Esteben - */ -class DecoratorServicePass extends AbstractRecursivePass -{ - public function process(ContainerBuilder $container) - { - $definitions = new \SplPriorityQueue(); - $order = \PHP_INT_MAX; - foreach ($container->getDefinitions() as $id => $definition) { - if (!($decorated = $definition->getDecoratedService())) { - continue; - } - $definitions->insert([$id, $definition], [$decorated[2], --$order]); - } - $decoratingDefinitions = []; - $tagsToKeep = $container->hasParameter('container.behavior_describing_tags') ? $container->getParameter('container.behavior_describing_tags') : ['container.do_not_inline', 'container.service_locator', 'container.service_subscriber', 'container.service_subscriber.locator']; - foreach ($definitions as [$id, $definition]) { - $decoratedService = $definition->getDecoratedService(); - [$inner, $renamedId] = $decoratedService; - $invalidBehavior = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - $definition->setDecoratedService(null); - if (!$renamedId) { - $renamedId = $id . '.inner'; - } - $this->currentId = $renamedId; - $this->processValue($definition); - $definition->innerServiceId = $renamedId; - $definition->decorationOnInvalid = $invalidBehavior; - // we create a new alias/service for the service we are replacing - // to be able to reference it in the new one - if ($container->hasAlias($inner)) { - $alias = $container->getAlias($inner); - $public = $alias->isPublic(); - $container->setAlias($renamedId, new Alias((string) $alias, \false)); - $decoratedDefinition = $container->findDefinition($alias); - } elseif ($container->hasDefinition($inner)) { - $decoratedDefinition = $container->getDefinition($inner); - $public = $decoratedDefinition->isPublic(); - $decoratedDefinition->setPublic(\false); - $container->setDefinition($renamedId, $decoratedDefinition); - $decoratingDefinitions[$inner] = $decoratedDefinition; - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) { - $container->removeDefinition($id); - continue; - } elseif (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) { - $public = $definition->isPublic(); - $decoratedDefinition = null; - } else { - throw new ServiceNotFoundException($inner, $id); - } - if (($nullsafeVariable1 = $decoratedDefinition) ? $nullsafeVariable1->isSynthetic() : null) { - throw new InvalidArgumentException(\sprintf('A synthetic service cannot be decorated: service "%s" cannot decorate "%s".', $id, $inner)); - } - if (isset($decoratingDefinitions[$inner])) { - $decoratingDefinition = $decoratingDefinitions[$inner]; - $decoratingTags = $decoratingDefinition->getTags(); - $resetTags = []; - // Behavior-describing tags must not be transferred out to decorators - foreach ($tagsToKeep as $containerTag) { - if (isset($decoratingTags[$containerTag])) { - $resetTags[$containerTag] = $decoratingTags[$containerTag]; - unset($decoratingTags[$containerTag]); - } - } - $definition->setTags(\array_merge($decoratingTags, $definition->getTags())); - $decoratingDefinition->setTags($resetTags); - $decoratingDefinitions[$inner] = $definition; - } - $container->setAlias($inner, $id)->setPublic($public); - } - } - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof Reference && '.inner' === (string) $value) { - return new Reference($this->currentId, $value->getInvalidBehavior()); - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php deleted file mode 100644 index 05ea67536..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Throws an exception for any Definitions that have errors and still exist. - * - * @author Ryan Weaver - */ -class DefinitionErrorExceptionPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Definition || !$value->hasErrors()) { - return parent::processValue($value, $isRoot); - } - if ($isRoot && !$value->isPublic()) { - $graph = $this->container->getCompiler()->getServiceReferenceGraph(); - $runtimeException = \false; - foreach ($graph->getNode($this->currentId)->getInEdges() as $edge) { - if (!$edge->getValue() instanceof Reference || ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE !== $edge->getValue()->getInvalidBehavior()) { - $runtimeException = \false; - break; - } - $runtimeException = \true; - } - if ($runtimeException) { - return parent::processValue($value, $isRoot); - } - } - // only show the first error so the user can focus on it - $errors = $value->getErrors(); - $message = \reset($errors); - throw new RuntimeException($message); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php deleted file mode 100644 index 7169b46f4..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * A pass to automatically process extensions if they implement - * CompilerPassInterface. - * - * @author Wouter J - */ -class ExtensionCompilerPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getExtensions() as $extension) { - if (!$extension instanceof CompilerPassInterface) { - continue; - } - $extension->process($container); - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php deleted file mode 100644 index ad28cdf08..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php +++ /dev/null @@ -1,214 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Inline service definitions where this is possible. - * - * @author Johannes M. Schmitt - */ -class InlineServiceDefinitionsPass extends AbstractRecursivePass -{ - /** - * @var \Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass|null - */ - private $analyzingPass; - /** - * @var mixed[] - */ - private $cloningIds = []; - /** - * @var mixed[] - */ - private $connectedIds = []; - /** - * @var mixed[] - */ - private $notInlinedIds = []; - /** - * @var mixed[] - */ - private $inlinedIds = []; - /** - * @var mixed[] - */ - private $notInlinableIds = []; - /** - * @var \Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraph|null - */ - private $graph; - public function __construct(AnalyzeServiceReferencesPass $analyzingPass = null) - { - $this->analyzingPass = $analyzingPass; - } - public function process(ContainerBuilder $container) - { - $this->container = $container; - if ($this->analyzingPass) { - $analyzedContainer = new ContainerBuilder(); - $analyzedContainer->setAliases($container->getAliases()); - $analyzedContainer->setDefinitions($container->getDefinitions()); - foreach ($container->getExpressionLanguageProviders() as $provider) { - $analyzedContainer->addExpressionLanguageProvider($provider); - } - } else { - $analyzedContainer = $container; - } - try { - $remainingInlinedIds = []; - $this->connectedIds = $this->notInlinedIds = $container->getDefinitions(); - do { - if ($this->analyzingPass) { - $analyzedContainer->setDefinitions(\array_intersect_key($analyzedContainer->getDefinitions(), $this->connectedIds)); - $this->analyzingPass->process($analyzedContainer); - } - $this->graph = $analyzedContainer->getCompiler()->getServiceReferenceGraph(); - $notInlinedIds = $this->notInlinedIds; - $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = []; - foreach ($analyzedContainer->getDefinitions() as $id => $definition) { - if (!$this->graph->hasNode($id)) { - continue; - } - foreach ($this->graph->getNode($id)->getOutEdges() as $edge) { - if (isset($notInlinedIds[$edge->getSourceNode()->getId()])) { - $this->currentId = $id; - $this->processValue($definition, \true); - break; - } - } - } - foreach ($this->inlinedIds as $id => $isPublicOrNotShared) { - if ($isPublicOrNotShared) { - $remainingInlinedIds[$id] = $id; - } else { - $container->removeDefinition($id); - $analyzedContainer->removeDefinition($id); - } - } - } while ($this->inlinedIds && $this->analyzingPass); - foreach ($remainingInlinedIds as $id) { - if (isset($this->notInlinableIds[$id])) { - continue; - } - $definition = $container->getDefinition($id); - if (!$definition->isShared() && !$definition->isPublic()) { - $container->removeDefinition($id); - } - } - } finally { - $this->container = null; - $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = []; - $this->notInlinableIds = []; - $this->graph = null; - } - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof ArgumentInterface) { - // References found in ArgumentInterface::getValues() are not inlineable - return $value; - } - if ($value instanceof Definition && $this->cloningIds) { - if ($value->isShared()) { - return $value; - } - $value = clone $value; - } - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } elseif (!$this->container->hasDefinition($id = (string) $value)) { - return $value; - } - $definition = $this->container->getDefinition($id); - if (!$this->isInlineableDefinition($id, $definition)) { - $this->notInlinableIds[$id] = \true; - return $value; - } - $this->container->log($this, \sprintf('Inlined service "%s" to "%s".', $id, $this->currentId)); - $this->inlinedIds[$id] = $definition->isPublic() || !$definition->isShared(); - $this->notInlinedIds[$this->currentId] = \true; - if ($definition->isShared()) { - return $definition; - } - if (isset($this->cloningIds[$id])) { - $ids = \array_keys($this->cloningIds); - $ids[] = $id; - throw new ServiceCircularReferenceException($id, \array_slice($ids, \array_search($id, $ids))); - } - $this->cloningIds[$id] = \true; - try { - return $this->processValue($definition); - } finally { - unset($this->cloningIds[$id]); - } - } - /** - * Checks if the definition is inlineable. - */ - private function isInlineableDefinition(string $id, Definition $definition) : bool - { - if ($definition->hasErrors() || $definition->isDeprecated() || $definition->isLazy() || $definition->isSynthetic() || $definition->hasTag('container.do_not_inline')) { - return \false; - } - if (!$definition->isShared()) { - if (!$this->graph->hasNode($id)) { - return \true; - } - foreach ($this->graph->getNode($id)->getInEdges() as $edge) { - $srcId = $edge->getSourceNode()->getId(); - $this->connectedIds[$srcId] = \true; - if ($edge->isWeak() || $edge->isLazy()) { - return !($this->connectedIds[$id] = \true); - } - } - return \true; - } - if ($definition->isPublic()) { - return \false; - } - if (!$this->graph->hasNode($id)) { - return \true; - } - if ($this->currentId == $id) { - return \false; - } - $this->connectedIds[$id] = \true; - $srcIds = []; - $srcCount = 0; - foreach ($this->graph->getNode($id)->getInEdges() as $edge) { - $srcId = $edge->getSourceNode()->getId(); - $this->connectedIds[$srcId] = \true; - if ($edge->isWeak() || $edge->isLazy()) { - return \false; - } - $srcIds[$srcId] = \true; - ++$srcCount; - } - if (1 !== \count($srcIds)) { - $this->notInlinedIds[$id] = \true; - return \false; - } - if ($srcCount > 1 && \is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) { - return \false; - } - return $this->container->getDefinition($srcId)->isShared(); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php deleted file mode 100644 index be5021f3d..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php +++ /dev/null @@ -1,197 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\Config\Definition\BaseNode; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\Extension; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -/** - * Merges extension configs into the container builder. - * - * @author Fabien Potencier - */ -class MergeExtensionConfigurationPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $parameters = $container->getParameterBag()->all(); - $definitions = $container->getDefinitions(); - $aliases = $container->getAliases(); - $exprLangProviders = $container->getExpressionLanguageProviders(); - $configAvailable = \class_exists(BaseNode::class); - foreach ($container->getExtensions() as $extension) { - if ($extension instanceof PrependExtensionInterface) { - $extension->prepend($container); - } - } - foreach ($container->getExtensions() as $name => $extension) { - if (!($config = $container->getExtensionConfig($name))) { - // this extension was not called - continue; - } - $resolvingBag = $container->getParameterBag(); - if ($resolvingBag instanceof EnvPlaceholderParameterBag && $extension instanceof Extension) { - // create a dedicated bag so that we can track env vars per-extension - $resolvingBag = new MergeExtensionConfigurationParameterBag($resolvingBag); - if ($configAvailable) { - BaseNode::setPlaceholderUniquePrefix($resolvingBag->getEnvPlaceholderUniquePrefix()); - } - } - $config = $resolvingBag->resolveValue($config); - try { - $tmpContainer = new MergeExtensionConfigurationContainerBuilder($extension, $resolvingBag); - $tmpContainer->setResourceTracking($container->isTrackingResources()); - $tmpContainer->addObjectResource($extension); - if ($extension instanceof ConfigurationExtensionInterface && null !== ($configuration = $extension->getConfiguration($config, $tmpContainer))) { - $tmpContainer->addObjectResource($configuration); - } - foreach ($exprLangProviders as $provider) { - $tmpContainer->addExpressionLanguageProvider($provider); - } - $extension->load($config, $tmpContainer); - } catch (\Exception $e) { - if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) { - $container->getParameterBag()->mergeEnvPlaceholders($resolvingBag); - } - throw $e; - } - if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) { - // don't keep track of env vars that are *overridden* when configs are merged - $resolvingBag->freezeAfterProcessing($extension, $tmpContainer); - } - $container->merge($tmpContainer); - $container->getParameterBag()->add($parameters); - } - $container->addDefinitions($definitions); - $container->addAliases($aliases); - } -} -/** - * @internal - */ -class MergeExtensionConfigurationParameterBag extends EnvPlaceholderParameterBag -{ - /** - * @var mixed[] - */ - private $processedEnvPlaceholders; - public function __construct(parent $parameterBag) - { - parent::__construct($parameterBag->all()); - $this->mergeEnvPlaceholders($parameterBag); - } - public function freezeAfterProcessing(Extension $extension, ContainerBuilder $container) - { - if (!($config = $extension->getProcessedConfigs())) { - // Extension::processConfiguration() wasn't called, we cannot know how configs were merged - return; - } - $this->processedEnvPlaceholders = []; - // serialize config and container to catch env vars nested in object graphs - $config = \serialize($config) . \serialize($container->getDefinitions()) . \serialize($container->getAliases()) . \serialize($container->getParameterBag()->all()); - foreach (parent::getEnvPlaceholders() as $env => $placeholders) { - foreach ($placeholders as $placeholder) { - if (\false !== \stripos($config, $placeholder)) { - $this->processedEnvPlaceholders[$env] = $placeholders; - break; - } - } - } - } - /** - * {@inheritdoc} - */ - public function getEnvPlaceholders() : array - { - return $this->processedEnvPlaceholders ?? parent::getEnvPlaceholders(); - } - public function getUnusedEnvPlaceholders() : array - { - return !isset($this->processedEnvPlaceholders) ? [] : \array_diff_key(parent::getEnvPlaceholders(), $this->processedEnvPlaceholders); - } -} -/** - * A container builder preventing using methods that wouldn't have any effect from extensions. - * - * @internal - */ -class MergeExtensionConfigurationContainerBuilder extends ContainerBuilder -{ - /** - * @var string - */ - private $extensionClass; - public function __construct(ExtensionInterface $extension, ParameterBagInterface $parameterBag = null) - { - parent::__construct($parameterBag); - $this->extensionClass = \get_class($extension); - } - /** - * {@inheritdoc} - * @return static - */ - public function addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - throw new LogicException(\sprintf('You cannot add compiler pass "%s" from extension "%s". Compiler passes must be registered before the container is compiled.', \get_debug_type($pass), $this->extensionClass)); - } - /** - * {@inheritdoc} - */ - public function registerExtension(ExtensionInterface $extension) - { - throw new LogicException(\sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', \get_debug_type($extension), $this->extensionClass)); - } - /** - * {@inheritdoc} - */ - public function compile(bool $resolveEnvPlaceholders = \false) - { - throw new LogicException(\sprintf('Cannot compile the container in extension "%s".', $this->extensionClass)); - } - /** - * {@inheritdoc} - * @param string|bool $format - * @param mixed $value - * @return mixed - */ - public function resolveEnvPlaceholders($value, $format = null, array &$usedEnvs = null) - { - if (\true !== $format || !\is_string($value)) { - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } - $bag = $this->getParameterBag(); - $value = $bag->resolveValue($value); - if (!$bag instanceof EnvPlaceholderParameterBag) { - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } - foreach ($bag->getEnvPlaceholders() as $env => $placeholders) { - if (\strpos($env, ':') === \false) { - continue; - } - foreach ($placeholders as $placeholder) { - if (\false !== \stripos($value, $placeholder)) { - throw new RuntimeException(\sprintf('Using a cast in "env(%s)" is incompatible with resolution at compile time in "%s". The logic in the extension should be moved to a compiler pass, or an env parameter with no cast should be used instead.', $env, $this->extensionClass)); - } - } - } - return parent::resolveEnvPlaceholders($value, $format, $usedEnvs); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PassConfig.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PassConfig.php deleted file mode 100644 index 56b1948f7..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PassConfig.php +++ /dev/null @@ -1,203 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * Compiler Pass Configuration. - * - * This class has a default configuration embedded. - * - * @author Johannes M. Schmitt - */ -class PassConfig -{ - public const TYPE_AFTER_REMOVING = 'afterRemoving'; - public const TYPE_BEFORE_OPTIMIZATION = 'beforeOptimization'; - public const TYPE_BEFORE_REMOVING = 'beforeRemoving'; - public const TYPE_OPTIMIZE = 'optimization'; - public const TYPE_REMOVE = 'removing'; - /** - * @var \Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass - */ - private $mergePass; - /** - * @var mixed[] - */ - private $afterRemovingPasses; - /** - * @var mixed[] - */ - private $beforeOptimizationPasses; - /** - * @var mixed[] - */ - private $beforeRemovingPasses = []; - /** - * @var mixed[] - */ - private $optimizationPasses; - /** - * @var mixed[] - */ - private $removingPasses; - public function __construct() - { - $this->mergePass = new MergeExtensionConfigurationPass(); - $this->beforeOptimizationPasses = [100 => [new ResolveClassPass(), new RegisterAutoconfigureAttributesPass(), new AutowireAsDecoratorPass(), new AttributeAutoconfigurationPass(), new ResolveInstanceofConditionalsPass(), new RegisterEnvVarProcessorsPass()], -1000 => [new ExtensionCompilerPass()]]; - $this->optimizationPasses = [[new AutoAliasServicePass(), new ValidateEnvPlaceholdersPass(), new ResolveDecoratorStackPass(), new ResolveChildDefinitionsPass(), new RegisterServiceSubscribersPass(), new ResolveParameterPlaceHoldersPass(\false, \false), new ResolveFactoryClassPass(), new ResolveNamedArgumentsPass(), new AutowireRequiredMethodsPass(), new AutowireRequiredPropertiesPass(), new ResolveBindingsPass(), new ServiceLocatorTagPass(), new DecoratorServicePass(), new CheckDefinitionValidityPass(), new AutowirePass(\false), new ServiceLocatorTagPass(), new ResolveTaggedIteratorArgumentPass(), new ResolveServiceSubscribersPass(), new ResolveReferencesToAliasesPass(), new ResolveInvalidReferencesPass(), new AnalyzeServiceReferencesPass(\true), new CheckCircularReferencesPass(), new CheckReferenceValidityPass(), new CheckArgumentsValidityPass(\false)]]; - $this->removingPasses = [[new RemovePrivateAliasesPass(), new ReplaceAliasByActualDefinitionPass(), new RemoveAbstractDefinitionsPass(), new RemoveUnusedDefinitionsPass(), new AnalyzeServiceReferencesPass(), new CheckExceptionOnInvalidReferenceBehaviorPass(), new InlineServiceDefinitionsPass(new AnalyzeServiceReferencesPass()), new AnalyzeServiceReferencesPass(), new DefinitionErrorExceptionPass()]]; - $this->afterRemovingPasses = [[new ResolveHotPathPass(), new ResolveNoPreloadPass(), new AliasDeprecatedPublicServicesPass()]]; - } - /** - * Returns all passes in order to be processed. - * - * @return CompilerPassInterface[] - */ - public function getPasses() : array - { - return \array_merge([$this->mergePass], $this->getBeforeOptimizationPasses(), $this->getOptimizationPasses(), $this->getBeforeRemovingPasses(), $this->getRemovingPasses(), $this->getAfterRemovingPasses()); - } - /** - * Adds a pass. - * - * @throws InvalidArgumentException when a pass type doesn't exist - */ - public function addPass(CompilerPassInterface $pass, string $type = self::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $property = $type . 'Passes'; - if (!isset($this->{$property})) { - throw new InvalidArgumentException(\sprintf('Invalid type "%s".', $type)); - } - $passes =& $this->{$property}; - if (!isset($passes[$priority])) { - $passes[$priority] = []; - } - $passes[$priority][] = $pass; - } - /** - * Gets all passes for the AfterRemoving pass. - * - * @return CompilerPassInterface[] - */ - public function getAfterRemovingPasses() : array - { - return $this->sortPasses($this->afterRemovingPasses); - } - /** - * Gets all passes for the BeforeOptimization pass. - * - * @return CompilerPassInterface[] - */ - public function getBeforeOptimizationPasses() : array - { - return $this->sortPasses($this->beforeOptimizationPasses); - } - /** - * Gets all passes for the BeforeRemoving pass. - * - * @return CompilerPassInterface[] - */ - public function getBeforeRemovingPasses() : array - { - return $this->sortPasses($this->beforeRemovingPasses); - } - /** - * Gets all passes for the Optimization pass. - * - * @return CompilerPassInterface[] - */ - public function getOptimizationPasses() : array - { - return $this->sortPasses($this->optimizationPasses); - } - /** - * Gets all passes for the Removing pass. - * - * @return CompilerPassInterface[] - */ - public function getRemovingPasses() : array - { - return $this->sortPasses($this->removingPasses); - } - /** - * Gets the Merge pass. - */ - public function getMergePass() : CompilerPassInterface - { - return $this->mergePass; - } - public function setMergePass(CompilerPassInterface $pass) - { - $this->mergePass = $pass; - } - /** - * Sets the AfterRemoving passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setAfterRemovingPasses(array $passes) - { - $this->afterRemovingPasses = [$passes]; - } - /** - * Sets the BeforeOptimization passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setBeforeOptimizationPasses(array $passes) - { - $this->beforeOptimizationPasses = [$passes]; - } - /** - * Sets the BeforeRemoving passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setBeforeRemovingPasses(array $passes) - { - $this->beforeRemovingPasses = [$passes]; - } - /** - * Sets the Optimization passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setOptimizationPasses(array $passes) - { - $this->optimizationPasses = [$passes]; - } - /** - * Sets the Removing passes. - * - * @param CompilerPassInterface[] $passes - */ - public function setRemovingPasses(array $passes) - { - $this->removingPasses = [$passes]; - } - /** - * Sort passes by priority. - * - * @param array $passes CompilerPassInterface instances with their priority as key - * - * @return CompilerPassInterface[] - */ - private function sortPasses(array $passes) : array - { - if (0 === \count($passes)) { - return []; - } - \krsort($passes); - // Flatten the array - return \array_merge(...$passes); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php deleted file mode 100644 index 900ebbfdd..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php +++ /dev/null @@ -1,151 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\AsTaggedItem; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; -/** - * Trait that allows a generic method to find and sort service by priority option in the tag. - * - * @author Iltar van der Berg - */ -trait PriorityTaggedServiceTrait -{ - /** - * Finds all services with the given tag name and order them by their priority. - * - * The order of additions must be respected for services having the same priority, - * and knowing that the \SplPriorityQueue class does not respect the FIFO method, - * we should not use that class. - * - * @see https://bugs.php.net/53710 - * @see https://bugs.php.net/60926 - * - * @return Reference[] - * @param string|\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument $tagName - */ - private function findAndSortTaggedServices($tagName, ContainerBuilder $container) : array - { - $exclude = []; - $indexAttribute = $defaultIndexMethod = $needsIndexes = $defaultPriorityMethod = null; - if ($tagName instanceof TaggedIteratorArgument) { - $indexAttribute = $tagName->getIndexAttribute(); - $defaultIndexMethod = $tagName->getDefaultIndexMethod(); - $needsIndexes = $tagName->needsIndexes(); - $defaultPriorityMethod = $tagName->getDefaultPriorityMethod() ?? 'getDefaultPriority'; - $exclude = $tagName->getExclude(); - $tagName = $tagName->getTag(); - } - $i = 0; - $services = []; - foreach ($container->findTaggedServiceIds($tagName, \true) as $serviceId => $attributes) { - if (\in_array($serviceId, $exclude, \true)) { - continue; - } - $defaultPriority = null; - $defaultIndex = null; - $definition = $container->getDefinition($serviceId); - $class = $definition->getClass(); - $class = $container->getParameterBag()->resolveValue($class) ?: null; - $checkTaggedItem = !$definition->hasTag($definition->isAutoconfigured() ? 'container.ignore_attributes' : $tagName); - foreach ($attributes as $attribute) { - $index = $priority = null; - if (isset($attribute['priority'])) { - $priority = $attribute['priority']; - } elseif (null === $defaultPriority && $defaultPriorityMethod && $class) { - $defaultPriority = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $class, $defaultPriorityMethod, $tagName, 'priority', $checkTaggedItem); - } - $priority = $priority ?? ($defaultPriority = $defaultPriority ?? 0); - if (null === $indexAttribute && !$defaultIndexMethod && !$needsIndexes) { - $services[] = [$priority, ++$i, null, $serviceId, null]; - continue 2; - } - if (null !== $indexAttribute && isset($attribute[$indexAttribute])) { - $index = $attribute[$indexAttribute]; - } elseif (null === $defaultIndex && $defaultPriorityMethod && $class) { - $defaultIndex = PriorityTaggedServiceUtil::getDefault($container, $serviceId, $class, $defaultIndexMethod ?? 'getDefaultName', $tagName, $indexAttribute, $checkTaggedItem); - } - $index = $index ?? ($defaultIndex = $defaultIndex ?? $serviceId); - $services[] = [$priority, ++$i, $index, $serviceId, $class]; - } - } - \uasort($services, static function ($a, $b) { - return $b[0] <=> $a[0] ?: $a[1] <=> $b[1]; - }); - $refs = []; - foreach ($services as [, , $index, $serviceId, $class]) { - if (!$class) { - $reference = new Reference($serviceId); - } elseif ($index === $serviceId) { - $reference = new TypedReference($serviceId, $class); - } else { - $reference = new TypedReference($serviceId, $class, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $index); - } - if (null === $index) { - $refs[] = $reference; - } else { - $refs[$index] = $reference; - } - } - return $refs; - } -} -/** - * @internal - */ -class PriorityTaggedServiceUtil -{ - /** - * @return string|int|null - */ - public static function getDefault(ContainerBuilder $container, string $serviceId, string $class, string $defaultMethod, string $tagName, ?string $indexAttribute, bool $checkTaggedItem) - { - if (!($r = $container->getReflectionClass($class)) || !$checkTaggedItem && !$r->hasMethod($defaultMethod)) { - return null; - } - if ($checkTaggedItem && !$r->hasMethod($defaultMethod)) { - foreach (\method_exists($r, 'getAttributes') ? $r->getAttributes(AsTaggedItem::class) : [] as $attribute) { - return 'priority' === $indexAttribute ? $attribute->newInstance()->priority : $attribute->newInstance()->index; - } - return null; - } - if (null !== $indexAttribute) { - $service = $class !== $serviceId ? \sprintf('service "%s"', $serviceId) : 'on the corresponding service'; - $message = [\sprintf('Either method "%s::%s()" should ', $class, $defaultMethod), \sprintf(' or tag "%s" on %s is missing attribute "%s".', $tagName, $service, $indexAttribute)]; - } else { - $message = [\sprintf('Method "%s::%s()" should ', $class, $defaultMethod), '.']; - } - if (!($rm = $r->getMethod($defaultMethod))->isStatic()) { - throw new InvalidArgumentException(\implode('be static', $message)); - } - if (!$rm->isPublic()) { - throw new InvalidArgumentException(\implode('be public', $message)); - } - $default = $rm->invoke(null); - if ('priority' === $indexAttribute) { - if (!\is_int($default)) { - throw new InvalidArgumentException(\implode(\sprintf('return int (got "%s")', \get_debug_type($default)), $message)); - } - return $default; - } - if (\is_int($default)) { - $default = (string) $default; - } - if (!\is_string($default)) { - throw new InvalidArgumentException(\implode(\sprintf('return string|int (got "%s")', \get_debug_type($default)), $message)); - } - return $default; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php deleted file mode 100644 index db3e067b0..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterAutoconfigureAttributesPass.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\Autoconfigure; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\YamlFileLoader; -/** - * Reads #[Autoconfigure] attributes on definitions that are autoconfigured - * and don't have the "container.ignore_attributes" tag. - * - * @author Nicolas Grekas - */ -final class RegisterAutoconfigureAttributesPass implements CompilerPassInterface -{ - private static $registerForAutoconfiguration; - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($this->accept($definition) && ($class = $container->getReflectionClass($definition->getClass(), \false))) { - $this->processClass($container, $class); - } - } - } - public function accept(Definition $definition) : bool - { - return $definition->isAutoconfigured() && !$definition->hasTag('container.ignore_attributes'); - } - public function processClass(ContainerBuilder $container, \ReflectionClass $class) - { - foreach (\method_exists($class, 'getAttributes') ? $class->getAttributes(Autoconfigure::class, \ReflectionAttribute::IS_INSTANCEOF) : [] as $attribute) { - self::registerForAutoconfiguration($container, $class, $attribute); - } - } - private static function registerForAutoconfiguration(ContainerBuilder $container, \ReflectionClass $class, \ReflectionAttribute $attribute) - { - if (self::$registerForAutoconfiguration) { - return (self::$registerForAutoconfiguration)($container, $class, $attribute); - } - $parseDefinitions = new \ReflectionMethod(YamlFileLoader::class, 'parseDefinitions'); - $yamlLoader = $parseDefinitions->getDeclaringClass()->newInstanceWithoutConstructor(); - self::$registerForAutoconfiguration = static function (ContainerBuilder $container, \ReflectionClass $class, \ReflectionAttribute $attribute) use($parseDefinitions, $yamlLoader) { - $attribute = (array) $attribute->newInstance(); - foreach ($attribute['tags'] ?? [] as $i => $tag) { - if (\is_array($tag) && [0] === \array_keys($tag)) { - $attribute['tags'][$i] = [$class->name => $tag[0]]; - } - } - $parseDefinitions->invoke($yamlLoader, ['services' => ['_instanceof' => [$class->name => [$container->registerForAutoconfiguration($class->name)] + $attribute]]], $class->getFileName(), \false); - }; - return (self::$registerForAutoconfiguration)($container, $class, $attribute); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php deleted file mode 100644 index 1b5f3d35b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php +++ /dev/null @@ -1,65 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\EnvVarProcessor; -use RectorPrefix202308\Symfony\Component\DependencyInjection\EnvVarProcessorInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Creates the container.env_var_processors_locator service. - * - * @author Nicolas Grekas - */ -class RegisterEnvVarProcessorsPass implements CompilerPassInterface -{ - private const ALLOWED_TYPES = ['array', 'bool', 'float', 'int', 'string']; - public function process(ContainerBuilder $container) - { - $bag = $container->getParameterBag(); - $types = []; - $processors = []; - foreach ($container->findTaggedServiceIds('container.env_var_processor') as $id => $tags) { - if (!($r = $container->getReflectionClass($class = $container->getDefinition($id)->getClass()))) { - throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id)); - } elseif (!$r->isSubclassOf(EnvVarProcessorInterface::class)) { - throw new InvalidArgumentException(\sprintf('Service "%s" must implement interface "%s".', $id, EnvVarProcessorInterface::class)); - } - foreach ($class::getProvidedTypes() as $prefix => $type) { - $processors[$prefix] = new Reference($id); - $types[$prefix] = self::validateProvidedTypes($type, $class); - } - } - if ($bag instanceof EnvPlaceholderParameterBag) { - foreach (EnvVarProcessor::getProvidedTypes() as $prefix => $type) { - if (!isset($types[$prefix])) { - $types[$prefix] = self::validateProvidedTypes($type, EnvVarProcessor::class); - } - } - $bag->setProvidedTypes($types); - } - if ($processors) { - $container->setAlias('container.env_var_processors_locator', (string) ServiceLocatorTagPass::register($container, $processors))->setPublic(\true); - } - } - private static function validateProvidedTypes(string $types, string $class) : array - { - $types = \explode('|', $types); - foreach ($types as $type) { - if (!\in_array($type, self::ALLOWED_TYPES)) { - throw new InvalidArgumentException(\sprintf('Invalid type "%s" returned by "%s::getProvidedTypes()", expected one of "%s".', $type, $class, \implode('", "', self::ALLOWED_TYPES))); - } - } - return $types; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php deleted file mode 100644 index 24b39b171..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * @author Nicolas Grekas - */ -class RegisterReverseContainerPass implements CompilerPassInterface -{ - /** - * @var bool - */ - private $beforeRemoving; - public function __construct(bool $beforeRemoving) - { - $this->beforeRemoving = $beforeRemoving; - } - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition('reverse_container')) { - return; - } - $refType = $this->beforeRemoving ? ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE : ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - $services = []; - foreach ($container->findTaggedServiceIds('container.reversible') as $id => $tags) { - $services[$id] = new Reference($id, $refType); - } - if ($this->beforeRemoving) { - // prevent inlining of the reverse container - $services['reverse_container'] = new Reference('reverse_container', $refType); - } - $locator = $container->getDefinition('reverse_container')->getArgument(1); - if ($locator instanceof Reference) { - $locator = $container->getDefinition((string) $locator); - } - if ($locator instanceof Definition) { - foreach ($services as $id => $ref) { - $services[$id] = new ServiceClosureArgument($ref); - } - $locator->replaceArgument(0, $services); - } else { - $locator->setValues($services); - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php deleted file mode 100644 index 191ce1c9c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php +++ /dev/null @@ -1,119 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Psr\Container\ContainerInterface as PsrContainerInterface; -use RectorPrefix202308\Symfony\Bundle\FrameworkBundle\Controller\AbstractController; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\BoundArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; -use RectorPrefix202308\Symfony\Component\HttpFoundation\Session\SessionInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceProviderInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceSubscriberInterface; -/** - * Compiler pass to register tagged services that require a service locator. - * - * @author Nicolas Grekas - */ -class RegisterServiceSubscribersPass extends AbstractRecursivePass -{ - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Definition || $value->isAbstract() || $value->isSynthetic() || !$value->hasTag('container.service_subscriber')) { - return parent::processValue($value, $isRoot); - } - $serviceMap = []; - $autowire = $value->isAutowired(); - foreach ($value->getTag('container.service_subscriber') as $attributes) { - if (!$attributes) { - $autowire = \true; - continue; - } - \ksort($attributes); - if ([] !== \array_diff(\array_keys($attributes), ['id', 'key'])) { - throw new InvalidArgumentException(\sprintf('The "container.service_subscriber" tag accepts only the "key" and "id" attributes, "%s" given for service "%s".', \implode('", "', \array_keys($attributes)), $this->currentId)); - } - if (!\array_key_exists('id', $attributes)) { - throw new InvalidArgumentException(\sprintf('Missing "id" attribute on "container.service_subscriber" tag with key="%s" for service "%s".', $attributes['key'], $this->currentId)); - } - if (!\array_key_exists('key', $attributes)) { - $attributes['key'] = $attributes['id']; - } - if (isset($serviceMap[$attributes['key']])) { - continue; - } - $serviceMap[$attributes['key']] = new Reference($attributes['id']); - } - $class = $value->getClass(); - if (!($r = $this->container->getReflectionClass($class))) { - throw new InvalidArgumentException(\sprintf('Class "%s" used for service "%s" cannot be found.', $class, $this->currentId)); - } - if (!$r->isSubclassOf(ServiceSubscriberInterface::class)) { - throw new InvalidArgumentException(\sprintf('Service "%s" must implement interface "%s".', $this->currentId, ServiceSubscriberInterface::class)); - } - $class = $r->name; - // to remove when symfony/dependency-injection will stop being compatible with symfony/framework-bundle<6.0 - $replaceDeprecatedSession = $this->container->has('.session.deprecated') && $r->isSubclassOf(AbstractController::class); - $subscriberMap = []; - foreach ($class::getSubscribedServices() as $key => $type) { - if (!\is_string($type) || !\preg_match('/(?(DEFINE)(?[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+))(?(DEFINE)(?(?&cn)(?:\\\\(?&cn))*+))^\\??(?&fqcn)(?:(?:\\|(?&fqcn))*+|(?:&(?&fqcn))*+)$/', $type)) { - throw new InvalidArgumentException(\sprintf('"%s::getSubscribedServices()" must return valid PHP types for service "%s" key "%s", "%s" returned.', $class, $this->currentId, $key, \is_string($type) ? $type : \get_debug_type($type))); - } - if ($optionalBehavior = '?' === $type[0]) { - $type = \substr($type, 1); - $optionalBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } - if (\is_int($name = $key)) { - $key = $type; - $name = null; - } - if (!isset($serviceMap[$key])) { - if (!$autowire) { - throw new InvalidArgumentException(\sprintf('Service "%s" misses a "container.service_subscriber" tag with "key"/"id" attributes corresponding to entry "%s" as returned by "%s::getSubscribedServices()".', $this->currentId, $key, $class)); - } - if ($replaceDeprecatedSession && SessionInterface::class === $type) { - // This prevents triggering the deprecation when building the container - // to remove when symfony/dependency-injection will stop being compatible with symfony/framework-bundle<6.0 - $type = '.session.deprecated'; - } - $serviceMap[$key] = new Reference($type); - } - if ($name) { - if (\false !== ($i = \strpos($name, '::get'))) { - $name = \lcfirst(\substr($name, 5 + $i)); - } elseif (\strpos($name, '::') !== \false) { - $name = null; - } - } - if (null !== $name && !$this->container->has($name) && !$this->container->has($type . ' $' . $name)) { - $camelCaseName = \lcfirst(\str_replace(' ', '', \ucwords(\preg_replace('/[^a-zA-Z0-9\\x7f-\\xff]++/', ' ', $name)))); - $name = $this->container->has($type . ' $' . $camelCaseName) ? $camelCaseName : $name; - } - $subscriberMap[$key] = new TypedReference((string) $serviceMap[$key], $type, $optionalBehavior ?: ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name); - unset($serviceMap[$key]); - } - if ($serviceMap = \array_keys($serviceMap)) { - $message = \sprintf(1 < \count($serviceMap) ? 'keys "%s" do' : 'key "%s" does', \str_replace('%', '%%', \implode('", "', $serviceMap))); - throw new InvalidArgumentException(\sprintf('Service %s not exist in the map returned by "%s::getSubscribedServices()" for service "%s".', $message, $class, $this->currentId)); - } - $locatorRef = ServiceLocatorTagPass::register($this->container, $subscriberMap, $this->currentId); - $value->addTag('container.service_subscriber.locator', ['id' => (string) $locatorRef]); - $value->setBindings([PsrContainerInterface::class => new BoundArgument($locatorRef, \false), ServiceProviderInterface::class => new BoundArgument($locatorRef, \false)] + $value->getBindings()); - return parent::processValue($value); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php deleted file mode 100644 index 488d04e63..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * Removes abstract Definitions. - */ -class RemoveAbstractDefinitionsPass implements CompilerPassInterface -{ - /** - * Removes abstract definitions from the ContainerBuilder. - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isAbstract()) { - $container->removeDefinition($id); - $container->log($this, \sprintf('Removed service "%s"; reason: abstract.', $id)); - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php deleted file mode 100644 index fe4806663..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * Remove private aliases from the container. They were only used to establish - * dependencies between services, and these dependencies have been resolved in - * one of the previous passes. - * - * @author Johannes M. Schmitt - */ -class RemovePrivateAliasesPass implements CompilerPassInterface -{ - /** - * Removes private aliases from the ContainerBuilder. - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getAliases() as $id => $alias) { - if ($alias->isPublic()) { - continue; - } - $container->removeAlias($id); - $container->log($this, \sprintf('Removed service "%s"; reason: private alias.', $id)); - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php deleted file mode 100644 index df0668334..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Removes unused service definitions from the container. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class RemoveUnusedDefinitionsPass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $connectedIds = []; - /** - * Processes the ContainerBuilder to remove unused definitions. - */ - public function process(ContainerBuilder $container) - { - try { - $this->enableExpressionProcessing(); - $this->container = $container; - $connectedIds = []; - $aliases = $container->getAliases(); - foreach ($aliases as $id => $alias) { - if ($alias->isPublic()) { - $this->connectedIds[] = (string) $aliases[$id]; - } - } - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isPublic()) { - $connectedIds[$id] = \true; - $this->processValue($definition); - } - } - while ($this->connectedIds) { - $ids = $this->connectedIds; - $this->connectedIds = []; - foreach ($ids as $id) { - if (!isset($connectedIds[$id]) && $container->hasDefinition($id)) { - $connectedIds[$id] = \true; - $this->processValue($container->getDefinition($id)); - } - } - } - foreach ($container->getDefinitions() as $id => $definition) { - if (!isset($connectedIds[$id])) { - $container->removeDefinition($id); - $container->resolveEnvPlaceholders(!$definition->hasErrors() ? \serialize($definition) : $definition); - $container->log($this, \sprintf('Removed service "%s"; reason: unused.', $id)); - } - } - } finally { - $this->container = null; - $this->connectedIds = []; - } - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - if (ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior()) { - $this->connectedIds[] = (string) $value; - } - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php deleted file mode 100644 index c063dce4f..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php +++ /dev/null @@ -1,97 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Replaces aliases with actual service definitions, effectively removing these - * aliases. - * - * @author Johannes M. Schmitt - */ -class ReplaceAliasByActualDefinitionPass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $replacements; - /** - * Process the Container to replace aliases with service definitions. - * - * @throws InvalidArgumentException if the service definition does not exist - */ - public function process(ContainerBuilder $container) - { - // First collect all alias targets that need to be replaced - $seenAliasTargets = []; - $replacements = []; - foreach ($container->getAliases() as $definitionId => $target) { - $targetId = (string) $target; - // Special case: leave this target alone - if ('service_container' === $targetId) { - continue; - } - // Check if target needs to be replaced - if (isset($replacements[$targetId])) { - $container->setAlias($definitionId, $replacements[$targetId])->setPublic($target->isPublic()); - if ($target->isDeprecated()) { - $container->getAlias($definitionId)->setDeprecated(...\array_values($target->getDeprecation('%alias_id%'))); - } - } - // No need to process the same target twice - if (isset($seenAliasTargets[$targetId])) { - continue; - } - // Process new target - $seenAliasTargets[$targetId] = \true; - try { - $definition = $container->getDefinition($targetId); - } catch (ServiceNotFoundException $e) { - if ('' !== $e->getId() && '@' === $e->getId()[0]) { - throw new ServiceNotFoundException($e->getId(), $e->getSourceId(), null, [\substr($e->getId(), 1)]); - } - throw $e; - } - if ($definition->isPublic()) { - continue; - } - // Remove private definition and schedule for replacement - $definition->setPublic($target->isPublic()); - $container->setDefinition($definitionId, $definition); - $container->removeDefinition($targetId); - $replacements[$targetId] = $definitionId; - if ($target->isPublic() && $target->isDeprecated()) { - $definition->addTag('container.private', $target->getDeprecation('%service_id%')); - } - } - $this->replacements = $replacements; - parent::process($container); - $this->replacements = []; - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof Reference && isset($this->replacements[$referenceId = (string) $value])) { - // Perform the replacement - $newId = $this->replacements[$referenceId]; - $value = new Reference($newId, $value->getInvalidBehavior()); - $this->container->log($this, \sprintf('Changed reference of service "%s" previously pointing to "%s" to "%s".', $this->currentId, $referenceId, $newId)); - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php deleted file mode 100644 index 661c80ca9..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php +++ /dev/null @@ -1,222 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\BoundArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\Target; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; -/** - * @author Guilhem Niot - */ -class ResolveBindingsPass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $usedBindings = []; - /** - * @var mixed[] - */ - private $unusedBindings = []; - /** - * @var mixed[] - */ - private $errorMessages = []; - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->usedBindings = $container->getRemovedBindingIds(); - try { - parent::process($container); - foreach ($this->unusedBindings as [$key, $serviceId, $bindingType, $file]) { - $argumentType = $argumentName = $message = null; - if (\strpos($key, ' ') !== \false) { - [$argumentType, $argumentName] = \explode(' ', $key, 2); - } elseif ('$' === $key[0]) { - $argumentName = $key; - } else { - $argumentType = $key; - } - if ($argumentType) { - $message .= \sprintf('of type "%s" ', $argumentType); - } - if ($argumentName) { - $message .= \sprintf('named "%s" ', $argumentName); - } - if (BoundArgument::DEFAULTS_BINDING === $bindingType) { - $message .= 'under "_defaults"'; - } elseif (BoundArgument::INSTANCEOF_BINDING === $bindingType) { - $message .= 'under "_instanceof"'; - } else { - $message .= \sprintf('for service "%s"', $serviceId); - } - if ($file) { - $message .= \sprintf(' in file "%s"', $file); - } - $message = \sprintf('A binding is configured for an argument %s, but no corresponding argument has been found. It may be unused and should be removed, or it may have a typo.', $message); - if ($this->errorMessages) { - $message .= \sprintf("\nCould be related to%s:", 1 < \count($this->errorMessages) ? ' one of' : ''); - } - foreach ($this->errorMessages as $m) { - $message .= "\n - " . $m; - } - throw new InvalidArgumentException($message); - } - } finally { - $this->usedBindings = []; - $this->unusedBindings = []; - $this->errorMessages = []; - } - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof TypedReference && $value->getType() === (string) $value) { - // Already checked - $bindings = $this->container->getDefinition($this->currentId)->getBindings(); - $name = $value->getName(); - if (isset($name, $bindings[$name = $value . ' $' . $name])) { - return $this->getBindingValue($bindings[$name]); - } - if (isset($bindings[$value->getType()])) { - return $this->getBindingValue($bindings[$value->getType()]); - } - return parent::processValue($value, $isRoot); - } - if (!$value instanceof Definition || !($bindings = $value->getBindings())) { - return parent::processValue($value, $isRoot); - } - $bindingNames = []; - foreach ($bindings as $key => $binding) { - [$bindingValue, $bindingId, $used, $bindingType, $file] = $binding->getValues(); - if ($used) { - $this->usedBindings[$bindingId] = \true; - unset($this->unusedBindings[$bindingId]); - } elseif (!isset($this->usedBindings[$bindingId])) { - $this->unusedBindings[$bindingId] = [$key, $this->currentId, $bindingType, $file]; - } - if (\preg_match('/^(?:(?:array|bool|float|int|string|iterable|([^ $]++)) )\\$/', $key, $m)) { - $bindingNames[\substr($key, \strlen($m[0]))] = $binding; - } - if (!isset($m[1])) { - continue; - } - if (\is_subclass_of($m[1], \UnitEnum::class)) { - $bindingNames[\substr($key, \strlen($m[0]))] = $binding; - continue; - } - if (null !== $bindingValue && !$bindingValue instanceof Reference && !$bindingValue instanceof Definition && !$bindingValue instanceof TaggedIteratorArgument && !$bindingValue instanceof ServiceLocatorArgument) { - throw new InvalidArgumentException(\sprintf('Invalid value for binding key "%s" for service "%s": expected "%s", "%s", "%s", "%s" or null, "%s" given.', $key, $this->currentId, Reference::class, Definition::class, TaggedIteratorArgument::class, ServiceLocatorArgument::class, \get_debug_type($bindingValue))); - } - } - if ($value->isAbstract()) { - return parent::processValue($value, $isRoot); - } - $calls = $value->getMethodCalls(); - try { - if ($constructor = $this->getConstructor($value, \false)) { - $calls[] = [$constructor, $value->getArguments()]; - } - } catch (RuntimeException $e) { - $this->errorMessages[] = $e->getMessage(); - $this->container->getDefinition($this->currentId)->addError($e->getMessage()); - return parent::processValue($value, $isRoot); - } - foreach ($calls as $i => $call) { - [$method, $arguments] = $call; - if ($method instanceof \ReflectionFunctionAbstract) { - $reflectionMethod = $method; - } else { - try { - $reflectionMethod = $this->getReflectionMethod($value, $method); - } catch (RuntimeException $e) { - if ($value->getFactory()) { - continue; - } - throw $e; - } - } - $names = []; - foreach ($reflectionMethod->getParameters() as $key => $parameter) { - $names[$key] = $parameter->name; - if (\array_key_exists($key, $arguments) && '' !== $arguments[$key]) { - continue; - } - if (\array_key_exists($parameter->name, $arguments) && '' !== $arguments[$parameter->name]) { - continue; - } - $typeHint = ProxyHelper::getTypeHint($reflectionMethod, $parameter); - $name = Target::parseName($parameter); - if ($typeHint && \array_key_exists($k = \ltrim($typeHint, '\\') . ' $' . $name, $bindings)) { - $arguments[$key] = $this->getBindingValue($bindings[$k]); - continue; - } - if (\array_key_exists('$' . $name, $bindings)) { - $arguments[$key] = $this->getBindingValue($bindings['$' . $name]); - continue; - } - if ($typeHint && '\\' === $typeHint[0] && isset($bindings[$typeHint = \substr($typeHint, 1)])) { - $arguments[$key] = $this->getBindingValue($bindings[$typeHint]); - continue; - } - if (isset($bindingNames[$name]) || isset($bindingNames[$parameter->name])) { - $bindingKey = \array_search($binding, $bindings, \true); - $argumentType = \substr($bindingKey, 0, \strpos($bindingKey, ' ')); - $this->errorMessages[] = \sprintf('Did you forget to add the type "%s" to argument "$%s" of method "%s::%s()"?', $argumentType, $parameter->name, $reflectionMethod->class, $reflectionMethod->name); - } - } - foreach ($names as $key => $name) { - if (\array_key_exists($name, $arguments) && (0 === $key || \array_key_exists($key - 1, $arguments))) { - $arguments[$key] = $arguments[$name]; - unset($arguments[$name]); - } - } - if ($arguments !== $call[1]) { - \ksort($arguments, \SORT_NATURAL); - $calls[$i][1] = $arguments; - } - } - if ($constructor) { - [, $arguments] = \array_pop($calls); - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - } - if ($calls !== $value->getMethodCalls()) { - $value->setMethodCalls($calls); - } - return parent::processValue($value, $isRoot); - } - /** - * @return mixed - */ - private function getBindingValue(BoundArgument $binding) - { - [$bindingValue, $bindingId] = $binding->getValues(); - $this->usedBindings[$bindingId] = \true; - unset($this->unusedBindings[$bindingId]); - return $bindingValue; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php deleted file mode 100644 index 9b7e64fb3..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php +++ /dev/null @@ -1,185 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -/** - * This replaces all ChildDefinition instances with their equivalent fully - * merged Definition instance. - * - * @author Johannes M. Schmitt - * @author Nicolas Grekas - */ -class ResolveChildDefinitionsPass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $currentPath; - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - if ($isRoot) { - // yes, we are specifically fetching the definition from the - // container to ensure we are not operating on stale data - $value = $this->container->getDefinition($this->currentId); - } - if ($value instanceof ChildDefinition) { - $this->currentPath = []; - $value = $this->resolveDefinition($value); - if ($isRoot) { - $this->container->setDefinition($this->currentId, $value); - } - } - return parent::processValue($value, $isRoot); - } - /** - * Resolves the definition. - * - * @throws RuntimeException When the definition is invalid - */ - private function resolveDefinition(ChildDefinition $definition) : Definition - { - try { - return $this->doResolveDefinition($definition); - } catch (ServiceCircularReferenceException $e) { - throw $e; - } catch (ExceptionInterface $e) { - $r = new \ReflectionProperty($e, 'message'); - $r->setAccessible(\true); - $r->setValue($e, \sprintf('Service "%s": %s', $this->currentId, $e->getMessage())); - throw $e; - } - } - private function doResolveDefinition(ChildDefinition $definition) : Definition - { - if (!$this->container->has($parent = $definition->getParent())) { - throw new RuntimeException(\sprintf('Parent definition "%s" does not exist.', $parent)); - } - $searchKey = \array_search($parent, $this->currentPath); - $this->currentPath[] = $parent; - if (\false !== $searchKey) { - throw new ServiceCircularReferenceException($parent, \array_slice($this->currentPath, $searchKey)); - } - $parentDef = $this->container->findDefinition($parent); - if ($parentDef instanceof ChildDefinition) { - $id = $this->currentId; - $this->currentId = $parent; - $parentDef = $this->resolveDefinition($parentDef); - $this->container->setDefinition($parent, $parentDef); - $this->currentId = $id; - } - $this->container->log($this, \sprintf('Resolving inheritance for "%s" (parent: %s).', $this->currentId, $parent)); - $def = new Definition(); - // merge in parent definition - // purposely ignored attributes: abstract, shared, tags, autoconfigured - $def->setClass($parentDef->getClass()); - $def->setArguments($parentDef->getArguments()); - $def->setMethodCalls($parentDef->getMethodCalls()); - $def->setProperties($parentDef->getProperties()); - if ($parentDef->isDeprecated()) { - $deprecation = $parentDef->getDeprecation('%service_id%'); - $def->setDeprecated($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - $def->setFactory($parentDef->getFactory()); - $def->setConfigurator($parentDef->getConfigurator()); - $def->setFile($parentDef->getFile()); - $def->setPublic($parentDef->isPublic()); - $def->setLazy($parentDef->isLazy()); - $def->setAutowired($parentDef->isAutowired()); - $def->setChanges($parentDef->getChanges()); - $def->setBindings($definition->getBindings() + $parentDef->getBindings()); - $def->setSynthetic($definition->isSynthetic()); - // overwrite with values specified in the decorator - $changes = $definition->getChanges(); - if (isset($changes['class'])) { - $def->setClass($definition->getClass()); - } - if (isset($changes['factory'])) { - $def->setFactory($definition->getFactory()); - } - if (isset($changes['configurator'])) { - $def->setConfigurator($definition->getConfigurator()); - } - if (isset($changes['file'])) { - $def->setFile($definition->getFile()); - } - if (isset($changes['public'])) { - $def->setPublic($definition->isPublic()); - } else { - $def->setPublic($parentDef->isPublic()); - } - if (isset($changes['lazy'])) { - $def->setLazy($definition->isLazy()); - } - if (isset($changes['deprecated']) && $definition->isDeprecated()) { - $deprecation = $definition->getDeprecation('%service_id%'); - $def->setDeprecated($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - if (isset($changes['autowired'])) { - $def->setAutowired($definition->isAutowired()); - } - if (isset($changes['shared'])) { - $def->setShared($definition->isShared()); - } - if (isset($changes['decorated_service'])) { - $decoratedService = $definition->getDecoratedService(); - if (null === $decoratedService) { - $def->setDecoratedService($decoratedService); - } else { - $def->setDecoratedService($decoratedService[0], $decoratedService[1], $decoratedService[2], $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } - } - // merge arguments - foreach ($definition->getArguments() as $k => $v) { - if (\is_numeric($k)) { - $def->addArgument($v); - } elseif (\strncmp($k, 'index_', \strlen('index_')) === 0) { - $def->replaceArgument((int) \substr($k, \strlen('index_')), $v); - } else { - $def->setArgument($k, $v); - } - } - // merge properties - foreach ($definition->getProperties() as $k => $v) { - $def->setProperty($k, $v); - } - // append method calls - if ($calls = $definition->getMethodCalls()) { - $def->setMethodCalls(\array_merge($def->getMethodCalls(), $calls)); - } - $def->addError($parentDef); - $def->addError($definition); - // these attributes are always taken from the child - $def->setAbstract($definition->isAbstract()); - $def->setTags($definition->getTags()); - // autoconfigure is never taken from parent (on purpose) - // and it's not legal on an instanceof - $def->setAutoconfigured($definition->isAutoconfigured()); - if (!$def->hasTag('proxy')) { - foreach ($parentDef->getTag('proxy') as $v) { - $def->addTag('proxy', $v); - } - } - return $def; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php deleted file mode 100644 index 0380e9b29..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * @author Nicolas Grekas - */ -class ResolveClassPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isSynthetic() || null !== $definition->getClass()) { - continue; - } - if (\preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+(?:\\\\[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+)++$/', $id)) { - if ($definition instanceof ChildDefinition && !\class_exists($id)) { - throw new InvalidArgumentException(\sprintf('Service definition "%s" has a parent but no class, and its name looks like an FQCN. Either the class is missing or you want to inherit it from the parent service. To resolve this ambiguity, please rename this service to a non-FQCN (e.g. using dots), or create the missing class.', $id)); - } - $definition->setClass($id); - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php deleted file mode 100644 index 945ea4cb4..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveDecoratorStackPass.php +++ /dev/null @@ -1,99 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * @author Nicolas Grekas - */ -class ResolveDecoratorStackPass implements CompilerPassInterface -{ - public function process(ContainerBuilder $container) - { - $stacks = []; - foreach ($container->findTaggedServiceIds('container.stack') as $id => $tags) { - $definition = $container->getDefinition($id); - if (!$definition instanceof ChildDefinition) { - throw new InvalidArgumentException(\sprintf('Invalid service "%s": only definitions with a "parent" can have the "container.stack" tag.', $id)); - } - if (!($stack = $definition->getArguments())) { - throw new InvalidArgumentException(\sprintf('Invalid service "%s": the stack of decorators is empty.', $id)); - } - $stacks[$id] = $stack; - } - if (!$stacks) { - return; - } - $resolvedDefinitions = []; - foreach ($container->getDefinitions() as $id => $definition) { - if (!isset($stacks[$id])) { - $resolvedDefinitions[$id] = $definition; - continue; - } - foreach (\array_reverse($this->resolveStack($stacks, [$id]), \true) as $k => $v) { - $resolvedDefinitions[$k] = $v; - } - $alias = $container->setAlias($id, $k); - if ($definition->getChanges()['public'] ?? \false) { - $alias->setPublic($definition->isPublic()); - } - if ($definition->isDeprecated()) { - $alias->setDeprecated(...\array_values($definition->getDeprecation('%alias_id%'))); - } - } - $container->setDefinitions($resolvedDefinitions); - } - private function resolveStack(array $stacks, array $path) : array - { - $definitions = []; - $id = \end($path); - $prefix = '.' . $id . '.'; - if (!isset($stacks[$id])) { - return [$id => new ChildDefinition($id)]; - } - if (\key($path) !== ($searchKey = \array_search($id, $path))) { - throw new ServiceCircularReferenceException($id, \array_slice($path, $searchKey)); - } - foreach ($stacks[$id] as $k => $definition) { - if ($definition instanceof ChildDefinition && isset($stacks[$definition->getParent()])) { - $path[] = $definition->getParent(); - $definition = \unserialize(\serialize($definition)); - // deep clone - } elseif ($definition instanceof Definition) { - $definitions[$decoratedId = $prefix . $k] = $definition; - continue; - } elseif ($definition instanceof Reference || $definition instanceof Alias) { - $path[] = (string) $definition; - } else { - throw new InvalidArgumentException(\sprintf('Invalid service "%s": unexpected value of type "%s" found in the stack of decorators.', $id, \get_debug_type($definition))); - } - $p = $prefix . $k; - foreach ($this->resolveStack($stacks, $path) as $k => $v) { - $definitions[$decoratedId = $p . $k] = $definition instanceof ChildDefinition ? $definition->setParent($k) : new ChildDefinition($k); - $definition = null; - } - \array_pop($path); - } - if (1 === \count($path)) { - foreach ($definitions as $k => $definition) { - $definition->setPublic(\false)->setTags([])->setDecoratedService($decoratedId); - } - $definition->setDecoratedService(null); - } - return $definitions; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php deleted file mode 100644 index 26248381b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * Replaces env var placeholders by their current values. - */ -class ResolveEnvPlaceholdersPass extends AbstractRecursivePass -{ - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (\is_string($value)) { - return $this->container->resolveEnvPlaceholders($value, \true); - } - if ($value instanceof Definition) { - $changes = $value->getChanges(); - if (isset($changes['class'])) { - $value->setClass($this->container->resolveEnvPlaceholders($value->getClass(), \true)); - } - if (isset($changes['file'])) { - $value->setFile($this->container->resolveEnvPlaceholders($value->getFile(), \true)); - } - } - $value = parent::processValue($value, $isRoot); - if ($value && \is_array($value) && !$isRoot) { - $value = \array_combine($this->container->resolveEnvPlaceholders(\array_keys($value), \true), $value); - } - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php deleted file mode 100644 index 61e3975d1..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * @author Maxime Steinhausser - */ -class ResolveFactoryClassPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof Definition && \is_array($factory = $value->getFactory()) && null === $factory[0]) { - if (null === ($class = $value->getClass())) { - throw new RuntimeException(\sprintf('The "%s" service is defined to be created by a factory, but is missing the factory class. Did you forget to define the factory or service class?', $this->currentId)); - } - $factory[0] = $class; - $value->setFactory($factory); - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php deleted file mode 100644 index f2d87fcfc..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php +++ /dev/null @@ -1,72 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Propagate "container.hot_path" tags to referenced services. - * - * @author Nicolas Grekas - */ -class ResolveHotPathPass extends AbstractRecursivePass -{ - /** - * @var mixed[] - */ - private $resolvedIds = []; - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - try { - parent::process($container); - $container->getDefinition('service_container')->clearTag('container.hot_path'); - } finally { - $this->resolvedIds = []; - } - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof ArgumentInterface) { - return $value; - } - if ($value instanceof Definition && $isRoot) { - if ($value->isDeprecated()) { - return $value->clearTag('container.hot_path'); - } - $this->resolvedIds[$this->currentId] = \true; - if (!$value->hasTag('container.hot_path')) { - return $value; - } - } - if ($value instanceof Reference && ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior() && $this->container->hasDefinition($id = (string) $value)) { - $definition = $this->container->getDefinition($id); - if ($definition->isDeprecated() || $definition->hasTag('container.hot_path')) { - return $value; - } - $definition->addTag('container.hot_path'); - if (isset($this->resolvedIds[$id])) { - parent::processValue($definition, \false); - } - return $value; - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php deleted file mode 100644 index 3ee85a29c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php +++ /dev/null @@ -1,145 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * Applies instanceof conditionals to definitions. - * - * @author Nicolas Grekas - */ -class ResolveInstanceofConditionalsPass implements CompilerPassInterface -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - foreach ($container->getAutoconfiguredInstanceof() as $interface => $definition) { - if ($definition->getArguments()) { - throw new InvalidArgumentException(\sprintf('Autoconfigured instanceof for type "%s" defines arguments but these are not supported and should be removed.', $interface)); - } - } - $tagsToKeep = []; - if ($container->hasParameter('container.behavior_describing_tags')) { - $tagsToKeep = $container->getParameter('container.behavior_describing_tags'); - } - foreach ($container->getDefinitions() as $id => $definition) { - $container->setDefinition($id, $this->processDefinition($container, $id, $definition, $tagsToKeep)); - } - if ($container->hasParameter('container.behavior_describing_tags')) { - $container->getParameterBag()->remove('container.behavior_describing_tags'); - } - } - private function processDefinition(ContainerBuilder $container, string $id, Definition $definition, array $tagsToKeep) : Definition - { - $instanceofConditionals = $definition->getInstanceofConditionals(); - $autoconfiguredInstanceof = $definition->isAutoconfigured() ? $container->getAutoconfiguredInstanceof() : []; - if (!$instanceofConditionals && !$autoconfiguredInstanceof) { - return $definition; - } - if (!($class = $container->getParameterBag()->resolveValue($definition->getClass()))) { - return $definition; - } - $conditionals = $this->mergeConditionals($autoconfiguredInstanceof, $instanceofConditionals, $container); - $definition->setInstanceofConditionals([]); - $shared = null; - $instanceofTags = []; - $instanceofCalls = []; - $instanceofBindings = []; - $reflectionClass = null; - $parent = $definition instanceof ChildDefinition ? $definition->getParent() : null; - foreach ($conditionals as $interface => $instanceofDefs) { - if ($interface !== $class && !($reflectionClass = $reflectionClass ?? ($container->getReflectionClass($class, \false) ?: \false))) { - continue; - } - if ($interface !== $class && !\is_subclass_of($class, $interface)) { - continue; - } - foreach ($instanceofDefs as $key => $instanceofDef) { - /** @var ChildDefinition $instanceofDef */ - $instanceofDef = clone $instanceofDef; - $instanceofDef->setAbstract(\true)->setParent($parent ?: '.abstract.instanceof.' . $id); - $parent = '.instanceof.' . $interface . '.' . $key . '.' . $id; - $container->setDefinition($parent, $instanceofDef); - $instanceofTags[] = $instanceofDef->getTags(); - $instanceofBindings = $instanceofDef->getBindings() + $instanceofBindings; - foreach ($instanceofDef->getMethodCalls() as $methodCall) { - $instanceofCalls[] = $methodCall; - } - $instanceofDef->setTags([]); - $instanceofDef->setMethodCalls([]); - $instanceofDef->setBindings([]); - if (isset($instanceofDef->getChanges()['shared'])) { - $shared = $instanceofDef->isShared(); - } - } - } - if ($parent) { - $bindings = $definition->getBindings(); - $abstract = $container->setDefinition('.abstract.instanceof.' . $id, $definition); - $definition->setBindings([]); - $definition = \serialize($definition); - if (Definition::class === \get_class($abstract)) { - // cast Definition to ChildDefinition - $definition = \substr_replace($definition, '72', 2, 2); - $definition = \substr_replace($definition, 'Child', 63, 0); - } - /** @var ChildDefinition $definition */ - $definition = \unserialize($definition); - $definition->setParent($parent); - if (null !== $shared && !isset($definition->getChanges()['shared'])) { - $definition->setShared($shared); - } - // Don't add tags to service decorators - $i = \count($instanceofTags); - while (0 <= --$i) { - foreach ($instanceofTags[$i] as $k => $v) { - if (null === $definition->getDecoratedService() || \in_array($k, $tagsToKeep, \true)) { - foreach ($v as $v) { - if ($definition->hasTag($k) && \in_array($v, $definition->getTag($k))) { - continue; - } - $definition->addTag($k, $v); - } - } - } - } - $definition->setMethodCalls(\array_merge($instanceofCalls, $definition->getMethodCalls())); - $definition->setBindings($bindings + $instanceofBindings); - // reset fields with "merge" behavior - $abstract->setBindings([])->setArguments([])->setMethodCalls([])->setDecoratedService(null)->setTags([])->setAbstract(\true); - } - return $definition; - } - private function mergeConditionals(array $autoconfiguredInstanceof, array $instanceofConditionals, ContainerBuilder $container) : array - { - // make each value an array of ChildDefinition - $conditionals = \array_map(function ($childDef) { - return [$childDef]; - }, $autoconfiguredInstanceof); - foreach ($instanceofConditionals as $interface => $instanceofDef) { - // make sure the interface/class exists (but don't validate automaticInstanceofConditionals) - if (!$container->getReflectionClass($interface)) { - throw new RuntimeException(\sprintf('"%s" is set as an "instanceof" conditional, but it does not exist.', $interface)); - } - if (!isset($autoconfiguredInstanceof[$interface])) { - $conditionals[$interface] = []; - } - $conditionals[$interface][] = $instanceofDef; - } - return $conditionals; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php deleted file mode 100644 index ac419c285..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php +++ /dev/null @@ -1,129 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; -/** - * Emulates the invalid behavior if the reference is not found within the - * container. - * - * @author Johannes M. Schmitt - */ -class ResolveInvalidReferencesPass implements CompilerPassInterface -{ - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder - */ - private $container; - /** - * @var \Symfony\Component\DependencyInjection\Exception\RuntimeException - */ - private $signalingException; - /** - * @var string - */ - private $currentId; - /** - * Process the ContainerBuilder to resolve invalid references. - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - $this->signalingException = new RuntimeException('Invalid reference.'); - try { - foreach ($container->getDefinitions() as $this->currentId => $definition) { - $this->processValue($definition); - } - } finally { - unset($this->container, $this->signalingException); - } - } - /** - * Processes arguments to determine invalid references. - * - * @throws RuntimeException When an invalid reference is found - * @param mixed $value - * @return mixed - */ - private function processValue($value, int $rootLevel = 0, int $level = 0) - { - if ($value instanceof ServiceClosureArgument) { - $value->setValues($this->processValue($value->getValues(), 1, 1)); - } elseif ($value instanceof ArgumentInterface) { - $value->setValues($this->processValue($value->getValues(), $rootLevel, 1 + $level)); - } elseif ($value instanceof Definition) { - if ($value->isSynthetic() || $value->isAbstract()) { - return $value; - } - $value->setArguments($this->processValue($value->getArguments(), 0)); - $value->setProperties($this->processValue($value->getProperties(), 1)); - $value->setMethodCalls($this->processValue($value->getMethodCalls(), 2)); - } elseif (\is_array($value)) { - $i = 0; - foreach ($value as $k => $v) { - try { - if (\false !== $i && $k !== $i++) { - $i = \false; - } - if ($v !== ($processedValue = $this->processValue($v, $rootLevel, 1 + $level))) { - $value[$k] = $processedValue; - } - } catch (RuntimeException $e) { - if ($rootLevel < $level || $rootLevel && !$level) { - unset($value[$k]); - } elseif ($rootLevel) { - throw $e; - } else { - $value[$k] = null; - } - } - } - // Ensure numerically indexed arguments have sequential numeric keys. - if (\false !== $i) { - $value = \array_values($value); - } - } elseif ($value instanceof Reference) { - if ($this->container->has($id = (string) $value)) { - return $value; - } - $currentDefinition = $this->container->getDefinition($this->currentId); - // resolve decorated service behavior depending on decorator service - if ($currentDefinition->innerServiceId === $id && ContainerInterface::NULL_ON_INVALID_REFERENCE === $currentDefinition->decorationOnInvalid) { - return null; - } - $invalidBehavior = $value->getInvalidBehavior(); - if (ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior && $value instanceof TypedReference && !$this->container->has($id)) { - $e = new ServiceNotFoundException($id, $this->currentId); - // since the error message varies by $id and $this->currentId, so should the id of the dummy errored definition - $this->container->register($id = \sprintf('.errored.%s.%s', $this->currentId, $id), $value->getType())->addError($e->getMessage()); - return new TypedReference($id, $value->getType(), $value->getInvalidBehavior()); - } - // resolve invalid behavior - if (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) { - $value = null; - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) { - if (0 < $level || $rootLevel) { - throw $this->signalingException; - } - $value = null; - } - } - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php deleted file mode 100644 index 48b288139..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php +++ /dev/null @@ -1,134 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Resolves named arguments to their corresponding numeric index. - * - * @author Kévin Dunglas - */ -class ResolveNamedArgumentsPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof AbstractArgument && $value->getText() . '.' === $value->getTextWithContext()) { - $value->setContext(\sprintf('A value found in service "%s"', $this->currentId)); - } - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - $calls = $value->getMethodCalls(); - $calls[] = ['__construct', $value->getArguments()]; - foreach ($calls as $i => $call) { - [$method, $arguments] = $call; - $parameters = null; - $resolvedKeys = []; - $resolvedArguments = []; - foreach ($arguments as $key => $argument) { - if ($argument instanceof AbstractArgument && $argument->getText() . '.' === $argument->getTextWithContext()) { - $argument->setContext(\sprintf('Argument ' . (\is_int($key) ? 1 + $key : '"%3$s"') . ' of ' . ('__construct' === $method ? 'service "%s"' : 'method call "%s::%s()"'), $this->currentId, $method, $key)); - } - if (\is_int($key)) { - $resolvedKeys[$key] = $key; - $resolvedArguments[$key] = $argument; - continue; - } - if (null === $parameters) { - $r = $this->getReflectionMethod($value, $method); - $class = $r instanceof \ReflectionMethod ? $r->class : $this->currentId; - $method = $r->getName(); - $parameters = $r->getParameters(); - } - if (isset($key[0]) && '$' !== $key[0] && !\class_exists($key) && !\interface_exists($key, \false)) { - throw new InvalidArgumentException(\sprintf('Invalid service "%s": did you forget to add the "$" prefix to argument "%s"?', $this->currentId, $key)); - } - if (isset($key[0]) && '$' === $key[0]) { - foreach ($parameters as $j => $p) { - if ($key === '$' . $p->name) { - if ($p->isVariadic() && \is_array($argument)) { - foreach ($argument as $variadicArgument) { - $resolvedKeys[$j] = $j; - $resolvedArguments[$j++] = $variadicArgument; - } - } else { - $resolvedKeys[$j] = $p->name; - $resolvedArguments[$j] = $argument; - } - continue 2; - } - } - throw new InvalidArgumentException(\sprintf('Invalid service "%s": method "%s()" has no argument named "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class . '::' . $method : $method, $key)); - } - if (null !== $argument && !$argument instanceof Reference && !$argument instanceof Definition) { - throw new InvalidArgumentException(\sprintf('Invalid service "%s": the value of argument "%s" of method "%s()" must be null, an instance of "%s" or an instance of "%s", "%s" given.', $this->currentId, $key, $class !== $this->currentId ? $class . '::' . $method : $method, Reference::class, Definition::class, \get_debug_type($argument))); - } - $typeFound = \false; - foreach ($parameters as $j => $p) { - if (!\array_key_exists($j, $resolvedArguments) && ProxyHelper::getTypeHint($r, $p, \true) === $key) { - $resolvedKeys[$j] = $p->name; - $resolvedArguments[$j] = $argument; - $typeFound = \true; - } - } - if (!$typeFound) { - throw new InvalidArgumentException(\sprintf('Invalid service "%s": method "%s()" has no argument type-hinted as "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class . '::' . $method : $method, $key)); - } - } - if ($resolvedArguments !== $call[1]) { - \ksort($resolvedArguments); - $arrayIsList = function (array $array) : bool { - if (\function_exists('array_is_list')) { - return \array_is_list($array); - } - if ($array === []) { - return \true; - } - $current_key = 0; - foreach ($array as $key => $noop) { - if ($key !== $current_key) { - return \false; - } - ++$current_key; - } - return \true; - }; - if (!$value->isAutowired() && !$arrayIsList($resolvedArguments)) { - \ksort($resolvedKeys); - $resolvedArguments = \array_combine($resolvedKeys, $resolvedArguments); - } - $calls[$i][1] = $resolvedArguments; - } - } - [, $arguments] = \array_pop($calls); - if ($arguments !== $value->getArguments()) { - $value->setArguments($arguments); - } - if ($calls !== $value->getMethodCalls()) { - $value->setMethodCalls($calls); - } - foreach ($value->getProperties() as $key => $argument) { - if ($argument instanceof AbstractArgument && $argument->getText() . '.' === $argument->getTextWithContext()) { - $argument->setContext(\sprintf('Property "%s" of service "%s"', $key, $this->currentId)); - } - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php deleted file mode 100644 index 4cbf55a2f..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveNoPreloadPass.php +++ /dev/null @@ -1,85 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Propagate the "container.no_preload" tag. - * - * @author Nicolas Grekas - */ -class ResolveNoPreloadPass extends AbstractRecursivePass -{ - private const DO_PRELOAD_TAG = '.container.do_preload'; - /** - * @var mixed[] - */ - private $resolvedIds = []; - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->container = $container; - try { - foreach ($container->getDefinitions() as $id => $definition) { - if ($definition->isPublic() && !$definition->isPrivate() && !isset($this->resolvedIds[$id])) { - $this->resolvedIds[$id] = \true; - $this->processValue($definition, \true); - } - } - foreach ($container->getAliases() as $alias) { - if ($alias->isPublic() && !$alias->isPrivate() && !isset($this->resolvedIds[$id = (string) $alias]) && $container->hasDefinition($id)) { - $this->resolvedIds[$id] = \true; - $this->processValue($container->getDefinition($id), \true); - } - } - } finally { - $this->resolvedIds = []; - $this->container = null; - } - foreach ($container->getDefinitions() as $definition) { - if ($definition->hasTag(self::DO_PRELOAD_TAG)) { - $definition->clearTag(self::DO_PRELOAD_TAG); - } elseif (!$definition->isDeprecated() && !$definition->hasErrors()) { - $definition->addTag('container.no_preload'); - } - } - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof Reference && ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior() && $this->container->hasDefinition($id = (string) $value)) { - $definition = $this->container->getDefinition($id); - if (!isset($this->resolvedIds[$id]) && (!$definition->isPublic() || $definition->isPrivate())) { - $this->resolvedIds[$id] = \true; - $this->processValue($definition, \true); - } - return $value; - } - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - if ($value->hasTag('container.no_preload') || $value->isDeprecated() || $value->hasErrors()) { - return $value; - } - if ($isRoot) { - $value->addTag(self::DO_PRELOAD_TAG); - } - return parent::processValue($value, $isRoot); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php deleted file mode 100644 index 0500eb98f..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php +++ /dev/null @@ -1,103 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -/** - * Resolves all parameter placeholders "%somevalue%" to their real values. - * - * @author Johannes M. Schmitt - */ -class ResolveParameterPlaceHoldersPass extends AbstractRecursivePass -{ - /** - * @var bool - */ - private $resolveArrays = \true; - /** - * @var bool - */ - private $throwOnResolveException = \true; - /** - * @var \Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface - */ - private $bag; - public function __construct(bool $resolveArrays = \true, bool $throwOnResolveException = \true) - { - $this->resolveArrays = $resolveArrays; - $this->throwOnResolveException = $throwOnResolveException; - } - /** - * {@inheritdoc} - * - * @throws ParameterNotFoundException - */ - public function process(ContainerBuilder $container) - { - $this->bag = $container->getParameterBag(); - try { - parent::process($container); - $aliases = []; - foreach ($container->getAliases() as $name => $target) { - $this->currentId = $name; - $aliases[$this->bag->resolveValue($name)] = $target; - } - $container->setAliases($aliases); - } catch (ParameterNotFoundException $e) { - $e->setSourceId($this->currentId); - throw $e; - } - $this->bag->resolve(); - unset($this->bag); - } - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (\is_string($value)) { - try { - $v = $this->bag->resolveValue($value); - } catch (ParameterNotFoundException $e) { - if ($this->throwOnResolveException) { - throw $e; - } - $v = null; - $this->container->getDefinition($this->currentId)->addError($e->getMessage()); - } - return $this->resolveArrays || !$v || !\is_array($v) ? $v : $value; - } - if ($value instanceof Definition) { - $value->setBindings($this->processValue($value->getBindings())); - $changes = $value->getChanges(); - if (isset($changes['class'])) { - $value->setClass($this->bag->resolveValue($value->getClass())); - } - if (isset($changes['file'])) { - $value->setFile($this->bag->resolveValue($value->getFile())); - } - $tags = $value->getTags(); - if (isset($tags['proxy'])) { - $tags['proxy'] = $this->bag->resolveValue($tags['proxy']); - $value->setTags($tags); - } - } - $value = parent::processValue($value, $isRoot); - if ($value && \is_array($value)) { - $value = \array_combine($this->bag->resolveValue(\array_keys($value)), $value); - } - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php deleted file mode 100644 index 3e3fe0bfc..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php +++ /dev/null @@ -1,73 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * Replaces all references to aliases with references to the actual service. - * - * @author Johannes M. Schmitt - */ -class ResolveReferencesToAliasesPass extends AbstractRecursivePass -{ - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - parent::process($container); - foreach ($container->getAliases() as $id => $alias) { - $aliasId = (string) $alias; - $this->currentId = $id; - if ($aliasId !== ($defId = $this->getDefinitionId($aliasId, $container))) { - $container->setAlias($id, $defId)->setPublic($alias->isPublic()); - } - } - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof Reference) { - return parent::processValue($value, $isRoot); - } - $defId = $this->getDefinitionId($id = (string) $value, $this->container); - return $defId !== $id ? new Reference($defId, $value->getInvalidBehavior()) : $value; - } - private function getDefinitionId(string $id, ContainerBuilder $container) : string - { - if (!$container->hasAlias($id)) { - return $id; - } - $alias = $container->getAlias($id); - if ($alias->isDeprecated()) { - $referencingDefinition = $container->hasDefinition($this->currentId) ? $container->getDefinition($this->currentId) : $container->getAlias($this->currentId); - if (!$referencingDefinition->isDeprecated()) { - $deprecation = $alias->getDeprecation($id); - \RectorPrefix202308\trigger_deprecation($deprecation['package'], $deprecation['version'], \rtrim($deprecation['message'], '. ') . '. It is being referenced by the "%s" ' . ($container->hasDefinition($this->currentId) ? 'service.' : 'alias.'), $this->currentId); - } - } - $seen = []; - do { - if (isset($seen[$id])) { - throw new ServiceCircularReferenceException($id, \array_merge(\array_keys($seen), [$id])); - } - $seen[$id] = \true; - $id = (string) $container->getAlias($id); - } while ($container->hasAlias($id)); - return $id; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php deleted file mode 100644 index e4ec2c054..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php +++ /dev/null @@ -1,52 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Psr\Container\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceProviderInterface; -/** - * Compiler pass to inject their service locator to service subscribers. - * - * @author Nicolas Grekas - */ -class ResolveServiceSubscribersPass extends AbstractRecursivePass -{ - /** - * @var string|null - */ - private $serviceLocator; - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof Reference && $this->serviceLocator && \in_array((string) $value, [ContainerInterface::class, ServiceProviderInterface::class], \true)) { - return new Reference($this->serviceLocator); - } - if (!$value instanceof Definition) { - return parent::processValue($value, $isRoot); - } - $serviceLocator = $this->serviceLocator; - $this->serviceLocator = null; - if ($value->hasTag('container.service_subscriber.locator')) { - $this->serviceLocator = $value->getTag('container.service_subscriber.locator')[0]['id']; - $value->clearTag('container.service_subscriber.locator'); - } - try { - return parent::processValue($value); - } finally { - $this->serviceLocator = $serviceLocator; - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php deleted file mode 100644 index 4f91e5562..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php +++ /dev/null @@ -1,35 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -/** - * Resolves all TaggedIteratorArgument arguments. - * - * @author Roland Franssen - */ -class ResolveTaggedIteratorArgumentPass extends AbstractRecursivePass -{ - use PriorityTaggedServiceTrait; - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if (!$value instanceof TaggedIteratorArgument) { - return parent::processValue($value, $isRoot); - } - $value->setValues($this->findAndSortTaggedServices($value, $this->container)); - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php deleted file mode 100644 index 7ef8e6f67..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php +++ /dev/null @@ -1,107 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ServiceLocator; -/** - * Applies the "container.service_locator" tag by wrapping references into ServiceClosureArgument instances. - * - * @author Nicolas Grekas - */ -final class ServiceLocatorTagPass extends AbstractRecursivePass -{ - use PriorityTaggedServiceTrait; - /** - * @param mixed $value - * @return mixed - */ - protected function processValue($value, bool $isRoot = \false) - { - if ($value instanceof ServiceLocatorArgument) { - if ($value->getTaggedIteratorArgument()) { - $value->setValues($this->findAndSortTaggedServices($value->getTaggedIteratorArgument(), $this->container)); - } - return self::register($this->container, $value->getValues()); - } - if ($value instanceof Definition) { - $value->setBindings(parent::processValue($value->getBindings())); - } - if (!$value instanceof Definition || !$value->hasTag('container.service_locator')) { - return parent::processValue($value, $isRoot); - } - if (!$value->getClass()) { - $value->setClass(ServiceLocator::class); - } - $services = $value->getArguments()[0] ?? null; - if ($services instanceof TaggedIteratorArgument) { - $services = $this->findAndSortTaggedServices($services, $this->container); - } - if (!\is_array($services)) { - throw new InvalidArgumentException(\sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set.', $this->currentId)); - } - $i = 0; - foreach ($services as $k => $v) { - if ($v instanceof ServiceClosureArgument) { - continue; - } - if ($i === $k) { - if ($v instanceof Reference) { - unset($services[$k]); - $k = (string) $v; - } - ++$i; - } elseif (\is_int($k)) { - $i = null; - } - $services[$k] = new ServiceClosureArgument($v); - } - \ksort($services); - $value->setArgument(0, $services); - $id = '.service_locator.' . ContainerBuilder::hash($value); - if ($isRoot) { - if ($id !== $this->currentId) { - $this->container->setAlias($id, new Alias($this->currentId, \false)); - } - return $value; - } - $this->container->setDefinition($id, $value->setPublic(\false)); - return new Reference($id); - } - public static function register(ContainerBuilder $container, array $map, string $callerId = null) : Reference - { - foreach ($map as $k => $v) { - $map[$k] = new ServiceClosureArgument($v); - } - $locator = (new Definition(ServiceLocator::class))->addArgument($map)->addTag('container.service_locator'); - if (null !== $callerId && $container->hasDefinition($callerId)) { - $locator->setBindings($container->getDefinition($callerId)->getBindings()); - } - if (!$container->hasDefinition($id = '.service_locator.' . ContainerBuilder::hash($locator))) { - $container->setDefinition($id, $locator); - } - if (null !== $callerId) { - $locatorId = $id; - // Locators are shared when they hold the exact same list of factories; - // to have them specialized per consumer service, we use a cloning factory - // to derivate customized instances from the prototype one. - $container->register($id .= '.' . $callerId, ServiceLocator::class)->setFactory([new Reference($locatorId), 'withContext'])->addTag('container.service_locator_context', ['id' => $callerId])->addArgument($callerId)->addArgument(new Reference('service_container')); - } - return new Reference($id); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php deleted file mode 100644 index d903daff0..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php +++ /dev/null @@ -1,92 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * This is a directed graph of your services. - * - * This information can be used by your compiler passes instead of collecting - * it themselves which improves performance quite a lot. - * - * @author Johannes M. Schmitt - * - * @final - */ -class ServiceReferenceGraph -{ - /** - * @var ServiceReferenceGraphNode[] - */ - private $nodes = []; - public function hasNode(string $id) : bool - { - return isset($this->nodes[$id]); - } - /** - * Gets a node by identifier. - * - * @throws InvalidArgumentException if no node matches the supplied identifier - */ - public function getNode(string $id) : ServiceReferenceGraphNode - { - if (!isset($this->nodes[$id])) { - throw new InvalidArgumentException(\sprintf('There is no node with id "%s".', $id)); - } - return $this->nodes[$id]; - } - /** - * Returns all nodes. - * - * @return ServiceReferenceGraphNode[] - */ - public function getNodes() : array - { - return $this->nodes; - } - /** - * Clears all nodes. - */ - public function clear() - { - foreach ($this->nodes as $node) { - $node->clear(); - } - $this->nodes = []; - } - /** - * Connects 2 nodes together in the Graph. - * @param mixed $sourceValue - * @param mixed $destValue - */ - public function connect(?string $sourceId, $sourceValue, ?string $destId, $destValue = null, Reference $reference = null, bool $lazy = \false, bool $weak = \false, bool $byConstructor = \false) - { - if (null === $sourceId || null === $destId) { - return; - } - $sourceNode = $this->createNode($sourceId, $sourceValue); - $destNode = $this->createNode($destId, $destValue); - $edge = new ServiceReferenceGraphEdge($sourceNode, $destNode, $reference, $lazy, $weak, $byConstructor); - $sourceNode->addOutEdge($edge); - $destNode->addInEdge($edge); - } - /** - * @param mixed $value - */ - private function createNode(string $id, $value) : ServiceReferenceGraphNode - { - if (isset($this->nodes[$id]) && $this->nodes[$id]->getValue() === $value) { - return $this->nodes[$id]; - } - return $this->nodes[$id] = new ServiceReferenceGraphNode($id, $value); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php deleted file mode 100644 index 153be7a65..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -/** - * Represents an edge in your service graph. - * - * Value is typically a reference. - * - * @author Johannes M. Schmitt - */ -class ServiceReferenceGraphEdge -{ - /** - * @var \Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraphNode - */ - private $sourceNode; - /** - * @var \Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraphNode - */ - private $destNode; - /** - * @var mixed - */ - private $value; - /** - * @var bool - */ - private $lazy; - /** - * @var bool - */ - private $weak; - /** - * @var bool - */ - private $byConstructor; - /** - * @param mixed $value - */ - public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, $value = null, bool $lazy = \false, bool $weak = \false, bool $byConstructor = \false) - { - $this->sourceNode = $sourceNode; - $this->destNode = $destNode; - $this->value = $value; - $this->lazy = $lazy; - $this->weak = $weak; - $this->byConstructor = $byConstructor; - } - /** - * Returns the value of the edge. - * @return mixed - */ - public function getValue() - { - return $this->value; - } - /** - * Returns the source node. - */ - public function getSourceNode() : ServiceReferenceGraphNode - { - return $this->sourceNode; - } - /** - * Returns the destination node. - */ - public function getDestNode() : ServiceReferenceGraphNode - { - return $this->destNode; - } - /** - * Returns true if the edge is lazy, meaning it's a dependency not requiring direct instantiation. - */ - public function isLazy() : bool - { - return $this->lazy; - } - /** - * Returns true if the edge is weak, meaning it shouldn't prevent removing the target service. - */ - public function isWeak() : bool - { - return $this->weak; - } - /** - * Returns true if the edge links with a constructor argument. - */ - public function isReferencedByConstructor() : bool - { - return $this->byConstructor; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php deleted file mode 100644 index 8d8c0412b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php +++ /dev/null @@ -1,110 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * Represents a node in your service graph. - * - * Value is typically a definition, or an alias. - * - * @author Johannes M. Schmitt - */ -class ServiceReferenceGraphNode -{ - /** - * @var string - */ - private $id; - /** - * @var mixed[] - */ - private $inEdges = []; - /** - * @var mixed[] - */ - private $outEdges = []; - /** - * @var mixed - */ - private $value; - /** - * @param mixed $value - */ - public function __construct(string $id, $value) - { - $this->id = $id; - $this->value = $value; - } - public function addInEdge(ServiceReferenceGraphEdge $edge) - { - $this->inEdges[] = $edge; - } - public function addOutEdge(ServiceReferenceGraphEdge $edge) - { - $this->outEdges[] = $edge; - } - /** - * Checks if the value of this node is an Alias. - */ - public function isAlias() : bool - { - return $this->value instanceof Alias; - } - /** - * Checks if the value of this node is a Definition. - */ - public function isDefinition() : bool - { - return $this->value instanceof Definition; - } - /** - * Returns the identifier. - */ - public function getId() : string - { - return $this->id; - } - /** - * Returns the in edges. - * - * @return ServiceReferenceGraphEdge[] - */ - public function getInEdges() : array - { - return $this->inEdges; - } - /** - * Returns the out edges. - * - * @return ServiceReferenceGraphEdge[] - */ - public function getOutEdges() : array - { - return $this->outEdges; - } - /** - * Returns the value of this Node. - * @return mixed - */ - public function getValue() - { - return $this->value; - } - /** - * Clears all edges. - */ - public function clear() - { - $this->inEdges = $this->outEdges = []; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php deleted file mode 100644 index 0d6bfcf5b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler; - -use RectorPrefix202308\Symfony\Component\Config\Definition\BaseNode; -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\Processor; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -/** - * Validates environment variable placeholders used in extension configuration with dummy values. - * - * @author Roland Franssen - */ -class ValidateEnvPlaceholdersPass implements CompilerPassInterface -{ - private const TYPE_FIXTURES = ['array' => [], 'bool' => \false, 'float' => 0.0, 'int' => 0, 'string' => '']; - /** - * @var mixed[] - */ - private $extensionConfig = []; - /** - * {@inheritdoc} - */ - public function process(ContainerBuilder $container) - { - $this->extensionConfig = []; - if (!\class_exists(BaseNode::class) || !($extensions = $container->getExtensions())) { - return; - } - $resolvingBag = $container->getParameterBag(); - if (!$resolvingBag instanceof EnvPlaceholderParameterBag) { - return; - } - $defaultBag = new ParameterBag($resolvingBag->all()); - $envTypes = $resolvingBag->getProvidedTypes(); - foreach ($resolvingBag->getEnvPlaceholders() + $resolvingBag->getUnusedEnvPlaceholders() as $env => $placeholders) { - $values = []; - if (\false === ($i = \strpos($env, ':'))) { - $default = $defaultBag->has("env({$env})") ? $defaultBag->get("env({$env})") : self::TYPE_FIXTURES['string']; - $defaultType = null !== $default ? \get_debug_type($default) : 'string'; - $values[$defaultType] = $default; - } else { - $prefix = \substr($env, 0, $i); - foreach ($envTypes[$prefix] ?? ['string'] as $type) { - $values[$type] = self::TYPE_FIXTURES[$type] ?? null; - } - } - foreach ($placeholders as $placeholder) { - BaseNode::setPlaceholder($placeholder, $values); - } - } - $processor = new Processor(); - foreach ($extensions as $name => $extension) { - if (!($extension instanceof ConfigurationExtensionInterface || $extension instanceof ConfigurationInterface) || !($config = \array_filter($container->getExtensionConfig($name)))) { - // this extension has no semantic configuration or was not called - continue; - } - $config = $resolvingBag->resolveValue($config); - if ($extension instanceof ConfigurationInterface) { - $configuration = $extension; - } elseif (null === ($configuration = $extension->getConfiguration($config, $container))) { - continue; - } - $this->extensionConfig[$name] = $processor->processConfiguration($configuration, $config); - } - $resolvingBag->clearUnusedEnvPlaceholders(); - } - /** - * @internal - */ - public function getExtensionConfig() : array - { - try { - return $this->extensionConfig; - } finally { - $this->extensionConfig = []; - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php deleted file mode 100644 index 8135ad1ba..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResource.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Config; - -use RectorPrefix202308\Symfony\Component\Config\Resource\ResourceInterface; -/** - * Tracks container parameters. - * - * @author Maxime Steinhausser - * - * @final - */ -class ContainerParametersResource implements ResourceInterface -{ - /** - * @var mixed[] - */ - private $parameters; - /** - * @param array $parameters The container parameters to track - */ - public function __construct(array $parameters) - { - $this->parameters = $parameters; - } - public function __toString() : string - { - return 'container_parameters_' . \md5(\serialize($this->parameters)); - } - public function getParameters() : array - { - return $this->parameters; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.php deleted file mode 100644 index 2d2b27d52..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Config/ContainerParametersResourceChecker.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Config; - -use RectorPrefix202308\Symfony\Component\Config\Resource\ResourceInterface; -use RectorPrefix202308\Symfony\Component\Config\ResourceCheckerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -/** - * @author Maxime Steinhausser - */ -class ContainerParametersResourceChecker implements ResourceCheckerInterface -{ - /** - * @var \Symfony\Component\DependencyInjection\ContainerInterface - */ - private $container; - public function __construct(ContainerInterface $container) - { - $this->container = $container; - } - /** - * {@inheritdoc} - */ - public function supports(ResourceInterface $metadata) : bool - { - return $metadata instanceof ContainerParametersResource; - } - /** - * {@inheritdoc} - */ - public function isFresh(ResourceInterface $resource, int $timestamp) : bool - { - foreach ($resource->getParameters() as $key => $value) { - if (!$this->container->hasParameter($key) || $this->container->getParameter($key) !== $value) { - return \false; - } - } - return \true; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Container.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Container.php deleted file mode 100644 index 63458b888..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Container.php +++ /dev/null @@ -1,362 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocator as ArgumentServiceLocator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\EnvNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ResetInterface; -// Help opcache.preload discover always-needed symbols -\class_exists(RewindableGenerator::class); -\class_exists(ArgumentServiceLocator::class); -/** - * Container is a dependency injection container. - * - * It gives access to object instances (services). - * Services and parameters are simple key/pair stores. - * The container can have four possible behaviors when a service - * does not exist (or is not initialized for the last case): - * - * * EXCEPTION_ON_INVALID_REFERENCE: Throws an exception (the default) - * * NULL_ON_INVALID_REFERENCE: Returns null - * * IGNORE_ON_INVALID_REFERENCE: Ignores the wrapping command asking for the reference - * (for instance, ignore a setter if the service does not exist) - * * IGNORE_ON_UNINITIALIZED_REFERENCE: Ignores/returns null for uninitialized services or invalid references - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class Container implements ContainerInterface, ResetInterface -{ - protected $parameterBag; - protected $services = []; - protected $privates = []; - protected $fileMap = []; - protected $methodMap = []; - protected $factories = []; - protected $aliases = []; - protected $loading = []; - protected $resolving = []; - protected $syntheticIds = []; - /** - * @var mixed[] - */ - private $envCache = []; - /** - * @var bool - */ - private $compiled = \false; - /** - * @var \Closure - */ - private $getEnv; - public function __construct(ParameterBagInterface $parameterBag = null) - { - $this->parameterBag = $parameterBag ?? new EnvPlaceholderParameterBag(); - } - /** - * Compiles the container. - * - * This method does two things: - * - * * Parameter values are resolved; - * * The parameter bag is frozen. - */ - public function compile() - { - $this->parameterBag->resolve(); - $this->parameterBag = new FrozenParameterBag($this->parameterBag->all()); - $this->compiled = \true; - } - /** - * Returns true if the container is compiled. - */ - public function isCompiled() : bool - { - return $this->compiled; - } - /** - * Gets the service container parameter bag. - */ - public function getParameterBag() : ParameterBagInterface - { - return $this->parameterBag; - } - /** - * Gets a parameter. - * - * @return array|bool|string|int|float|\UnitEnum|null - * - * @throws InvalidArgumentException if the parameter is not defined - */ - public function getParameter(string $name) - { - return $this->parameterBag->get($name); - } - public function hasParameter(string $name) : bool - { - return $this->parameterBag->has($name); - } - /** - * @param mixed[]|bool|string|int|float|\UnitEnum|null $value - */ - public function setParameter(string $name, $value) - { - $this->parameterBag->set($name, $value); - } - /** - * Sets a service. - * - * Setting a synthetic service to null resets it: has() returns false and get() - * behaves in the same way as if the service was never created. - */ - public function set(string $id, ?object $service) - { - // Runs the internal initializer; used by the dumped container to include always-needed files - if (isset($this->privates['service_container']) && $this->privates['service_container'] instanceof \Closure) { - $initialize = $this->privates['service_container']; - unset($this->privates['service_container']); - $initialize(); - } - if ('service_container' === $id) { - throw new InvalidArgumentException('You cannot set service "service_container".'); - } - if (!(isset($this->fileMap[$id]) || isset($this->methodMap[$id]))) { - if (isset($this->syntheticIds[$id]) || !isset($this->getRemovedIds()[$id])) { - // no-op - } elseif (null === $service) { - throw new InvalidArgumentException(\sprintf('The "%s" service is private, you cannot unset it.', $id)); - } else { - throw new InvalidArgumentException(\sprintf('The "%s" service is private, you cannot replace it.', $id)); - } - } elseif (isset($this->services[$id])) { - throw new InvalidArgumentException(\sprintf('The "%s" service is already initialized, you cannot replace it.', $id)); - } - if (isset($this->aliases[$id])) { - unset($this->aliases[$id]); - } - if (null === $service) { - unset($this->services[$id]); - return; - } - $this->services[$id] = $service; - } - public function has(string $id) : bool - { - if (isset($this->aliases[$id])) { - $id = $this->aliases[$id]; - } - if (isset($this->services[$id])) { - return \true; - } - if ('service_container' === $id) { - return \true; - } - return isset($this->fileMap[$id]) || isset($this->methodMap[$id]); - } - /** - * Gets a service. - * - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * @throws \Exception if an exception has been thrown when the service has been resolved - * - * @see Reference - */ - public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE) : ?object - { - return $this->services[$id] ?? $this->services[$id = $this->aliases[$id] ?? $id] ?? ('service_container' === $id ? $this : ($this->factories[$id] ?? \Closure::fromCallable([$this, 'make']))($id, $invalidBehavior)); - } - /** - * Creates a service. - * - * As a separate method to allow "get()" to use the really fast `??` operator. - */ - private function make(string $id, int $invalidBehavior) - { - if (isset($this->loading[$id])) { - throw new ServiceCircularReferenceException($id, \array_merge(\array_keys($this->loading), [$id])); - } - $this->loading[$id] = \true; - try { - if (isset($this->fileMap[$id])) { - return 4 === $invalidBehavior ? null : $this->load($this->fileMap[$id]); - } elseif (isset($this->methodMap[$id])) { - return 4 === $invalidBehavior ? null : $this->{$this->methodMap[$id]}(); - } - } catch (\Exception $e) { - unset($this->services[$id]); - throw $e; - } finally { - unset($this->loading[$id]); - } - if (self::EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior) { - if (!$id) { - throw new ServiceNotFoundException($id); - } - if (isset($this->syntheticIds[$id])) { - throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service is synthetic, it needs to be set at boot time before it can be used.', $id)); - } - if (isset($this->getRemovedIds()[$id])) { - throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.', $id)); - } - $alternatives = []; - foreach ($this->getServiceIds() as $knownId) { - if ('' === $knownId || '.' === $knownId[0]) { - continue; - } - $lev = \levenshtein($id, $knownId); - if ($lev <= \strlen($id) / 3 || \strpos($knownId, $id) !== \false) { - $alternatives[] = $knownId; - } - } - throw new ServiceNotFoundException($id, null, null, $alternatives); - } - return null; - } - /** - * Returns true if the given service has actually been initialized. - */ - public function initialized(string $id) : bool - { - if (isset($this->aliases[$id])) { - $id = $this->aliases[$id]; - } - if ('service_container' === $id) { - return \false; - } - return isset($this->services[$id]); - } - /** - * {@inheritdoc} - */ - public function reset() - { - $services = $this->services + $this->privates; - $this->services = $this->factories = $this->privates = []; - foreach ($services as $service) { - try { - if ($service instanceof ResetInterface) { - $service->reset(); - } - } catch (\Throwable $exception) { - continue; - } - } - } - /** - * Gets all service ids. - * - * @return string[] - */ - public function getServiceIds() : array - { - return \array_map('strval', \array_unique(\array_merge(['service_container'], \array_keys($this->fileMap), \array_keys($this->methodMap), \array_keys($this->aliases), \array_keys($this->services)))); - } - /** - * Gets service ids that existed at compile time. - */ - public function getRemovedIds() : array - { - return []; - } - /** - * Camelizes a string. - */ - public static function camelize(string $id) : string - { - return \strtr(\ucwords(\strtr($id, ['_' => ' ', '.' => '_ ', '\\' => '_ '])), [' ' => '']); - } - /** - * A string to underscore. - */ - public static function underscore(string $id) : string - { - return \strtolower(\preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\\d])([A-Z])/'], ['\\1_\\2', '\\1_\\2'], \str_replace('_', '.', $id))); - } - /** - * Creates a service by requiring its factory file. - */ - protected function load(string $file) - { - return require $file; - } - /** - * Fetches a variable from the environment. - * - * @throws EnvNotFoundException When the environment variable is not found and has no default value - * @return mixed - */ - protected function getEnv(string $name) - { - if (isset($this->resolving[$envName = "env({$name})"])) { - throw new ParameterCircularReferenceException(\array_keys($this->resolving)); - } - if (isset($this->envCache[$name]) || \array_key_exists($name, $this->envCache)) { - return $this->envCache[$name]; - } - if (!$this->has($id = 'container.env_var_processors_locator')) { - $this->set($id, new ServiceLocator([])); - } - $this->getEnv = $this->getEnv ?? \Closure::fromCallable([$this, 'getEnv']); - $processors = $this->get($id); - if (\false !== ($i = \strpos($name, ':'))) { - $prefix = \substr($name, 0, $i); - $localName = \substr($name, 1 + $i); - } else { - $prefix = 'string'; - $localName = $name; - } - $processor = $processors->has($prefix) ? $processors->get($prefix) : new EnvVarProcessor($this); - $this->resolving[$envName] = \true; - try { - return $this->envCache[$name] = $processor->getEnv($prefix, $localName, $this->getEnv); - } finally { - unset($this->resolving[$envName]); - } - } - /** - * @internal - * @param string|false $registry - * @param string|bool $load - * @return mixed - */ - protected final function getService($registry, string $id, ?string $method, $load) - { - if ('service_container' === $id) { - return $this; - } - if (\is_string($load)) { - throw new RuntimeException($load); - } - if (null === $method) { - return \false !== $registry ? $this->{$registry}[$id] ?? null : null; - } - if (\false !== $registry) { - return $this->{$registry}[$id] = $this->{$registry}[$id] ?? ($load ? $this->load($method) : $this->{$method}()); - } - if (!$load) { - return $this->{$method}(); - } - return ($factory = $this->factories[$id] ?? $this->factories['service_container'][$id] ?? null) ? $factory() : $this->load($method); - } - private function __clone() - { - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareInterface.php deleted file mode 100644 index 62efa945f..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * ContainerAwareInterface should be implemented by classes that depends on a Container. - * - * @author Fabien Potencier - */ -interface ContainerAwareInterface -{ - /** - * Sets the container. - */ - public function setContainer(ContainerInterface $container = null); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareTrait.php deleted file mode 100644 index dd31c8c56..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerAwareTrait.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * ContainerAware trait. - * - * @author Fabien Potencier - */ -trait ContainerAwareTrait -{ - /** - * @var ContainerInterface - */ - protected $container; - public function setContainer(ContainerInterface $container = null) - { - $this->container = $container; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerBuilder.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerBuilder.php deleted file mode 100644 index f7199b9cc..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerBuilder.php +++ /dev/null @@ -1,1426 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Composer\InstalledVersions; -use RectorPrefix202308\Symfony\Component\Config\Resource\ClassExistenceResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\ComposerResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\DirectoryResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\FileExistenceResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\FileResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\GlobResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\ReflectionClassResource; -use RectorPrefix202308\Symfony\Component\Config\Resource\ResourceInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\RewindableGenerator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\Target; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\Compiler; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\PassConfig; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\ResolveEnvPlaceholdersPass; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\BadMethodCallException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; -/** - * ContainerBuilder is a DI container that provides an API to easily describe services. - * - * @author Fabien Potencier - */ -class ContainerBuilder extends Container implements TaggedContainerInterface -{ - /** - * @var array - */ - private $extensions = []; - /** - * @var array - */ - private $extensionsByNs = []; - /** - * @var array - */ - private $definitions = []; - /** - * @var array - */ - private $aliasDefinitions = []; - /** - * @var array - */ - private $resources = []; - /** - * @var array>> - */ - private $extensionConfigs = []; - /** - * @var \Symfony\Component\DependencyInjection\Compiler\Compiler - */ - private $compiler; - /** - * @var bool - */ - private $trackResources; - /** - * @var \Symfony\Component\DependencyInjection\LazyProxy\Instantiator\InstantiatorInterface|null - */ - private $proxyInstantiator; - /** - * @var \Symfony\Component\DependencyInjection\ExpressionLanguage - */ - private $expressionLanguage; - /** - * @var ExpressionFunctionProviderInterface[] - */ - private $expressionLanguageProviders = []; - /** - * @var string[] with tag names used by findTaggedServiceIds - */ - private $usedTags = []; - /** - * @var string[][] a map of env var names to their placeholders - */ - private $envPlaceholders = []; - /** - * @var int[] a map of env vars to their resolution counter - */ - private $envCounters = []; - /** - * @var string[] the list of vendor directories - */ - private $vendors; - /** - * @var array - */ - private $autoconfiguredInstanceof = []; - /** - * @var array - */ - private $autoconfiguredAttributes = []; - /** - * @var array - */ - private $removedIds = []; - /** - * @var array - */ - private $removedBindingIds = []; - private const INTERNAL_TYPES = ['int' => \true, 'float' => \true, 'string' => \true, 'bool' => \true, 'resource' => \true, 'object' => \true, 'array' => \true, 'null' => \true, 'callable' => \true, 'iterable' => \true, 'mixed' => \true]; - public function __construct(ParameterBagInterface $parameterBag = null) - { - parent::__construct($parameterBag); - $this->trackResources = \interface_exists(ResourceInterface::class); - $this->setDefinition('service_container', (new Definition(ContainerInterface::class))->setSynthetic(\true)->setPublic(\true)); - } - /** - * @var array - */ - private $classReflectors; - /** - * Sets the track resources flag. - * - * If you are not using the loaders and therefore don't want - * to depend on the Config component, set this flag to false. - */ - public function setResourceTracking(bool $track) - { - $this->trackResources = $track; - } - /** - * Checks if resources are tracked. - */ - public function isTrackingResources() : bool - { - return $this->trackResources; - } - /** - * Sets the instantiator to be used when fetching proxies. - */ - public function setProxyInstantiator(InstantiatorInterface $proxyInstantiator) - { - $this->proxyInstantiator = $proxyInstantiator; - } - public function registerExtension(ExtensionInterface $extension) - { - $this->extensions[$extension->getAlias()] = $extension; - if (\false !== $extension->getNamespace()) { - $this->extensionsByNs[$extension->getNamespace()] = $extension; - } - } - /** - * Returns an extension by alias or namespace. - * - * @throws LogicException if the extension is not registered - */ - public function getExtension(string $name) : ExtensionInterface - { - if (isset($this->extensions[$name])) { - return $this->extensions[$name]; - } - if (isset($this->extensionsByNs[$name])) { - return $this->extensionsByNs[$name]; - } - throw new LogicException(\sprintf('Container extension "%s" is not registered.', $name)); - } - /** - * Returns all registered extensions. - * - * @return array - */ - public function getExtensions() : array - { - return $this->extensions; - } - /** - * Checks if we have an extension. - */ - public function hasExtension(string $name) : bool - { - return isset($this->extensions[$name]) || isset($this->extensionsByNs[$name]); - } - /** - * Returns an array of resources loaded to build this configuration. - * - * @return ResourceInterface[] - */ - public function getResources() : array - { - return \array_values($this->resources); - } - /** - * @return $this - */ - public function addResource(ResourceInterface $resource) - { - if (!$this->trackResources) { - return $this; - } - if ($resource instanceof GlobResource && $this->inVendors($resource->getPrefix())) { - return $this; - } - $this->resources[(string) $resource] = $resource; - return $this; - } - /** - * Sets the resources for this configuration. - * - * @param array $resources - * - * @return $this - */ - public function setResources(array $resources) - { - if (!$this->trackResources) { - return $this; - } - $this->resources = $resources; - return $this; - } - /** - * Adds the object class hierarchy as resources. - * - * @param object|string $object An object instance or class name - * - * @return $this - */ - public function addObjectResource($object) - { - if ($this->trackResources) { - if (\is_object($object)) { - $object = \get_class($object); - } - if (!isset($this->classReflectors[$object])) { - $this->classReflectors[$object] = new \ReflectionClass($object); - } - $class = $this->classReflectors[$object]; - foreach ($class->getInterfaceNames() as $name) { - if (null === ($interface =& $this->classReflectors[$name])) { - $interface = new \ReflectionClass($name); - } - $file = $interface->getFileName(); - if (\false !== $file && \file_exists($file)) { - $this->fileExists($file); - } - } - do { - $file = $class->getFileName(); - if (\false !== $file && \file_exists($file)) { - $this->fileExists($file); - } - foreach ($class->getTraitNames() as $name) { - $this->addObjectResource($name); - } - } while ($class = $class->getParentClass()); - } - return $this; - } - /** - * Retrieves the requested reflection class and registers it for resource tracking. - * - * @throws \ReflectionException when a parent class/interface/trait is not found and $throw is true - * - * @final - */ - public function getReflectionClass(?string $class, bool $throw = \true) : ?\ReflectionClass - { - if (!($class = $this->getParameterBag()->resolveValue($class))) { - return null; - } - if (isset(self::INTERNAL_TYPES[$class])) { - return null; - } - $resource = $classReflector = null; - try { - if (isset($this->classReflectors[$class])) { - $classReflector = $this->classReflectors[$class]; - } elseif (\class_exists(ClassExistenceResource::class)) { - $resource = new ClassExistenceResource($class, \false); - $classReflector = $resource->isFresh(0) ? \false : new \ReflectionClass($class); - } else { - $classReflector = \class_exists($class) ? new \ReflectionClass($class) : \false; - } - } catch (\ReflectionException $e) { - if ($throw) { - throw $e; - } - } - if ($this->trackResources) { - if (!$classReflector) { - $this->addResource($resource ?? new ClassExistenceResource($class, \false)); - } elseif (!$classReflector->isInternal()) { - $path = $classReflector->getFileName(); - if (!$this->inVendors($path)) { - $this->addResource(new ReflectionClassResource($classReflector, $this->vendors)); - } - } - $this->classReflectors[$class] = $classReflector; - } - return $classReflector ?: null; - } - /** - * Checks whether the requested file or directory exists and registers the result for resource tracking. - * - * @param string $path The file or directory path for which to check the existence - * @param bool|string $trackContents Whether to track contents of the given resource. If a string is passed, - * it will be used as pattern for tracking contents of the requested directory - * - * @final - */ - public function fileExists(string $path, $trackContents = \true) : bool - { - $exists = \file_exists($path); - if (!$this->trackResources || $this->inVendors($path)) { - return $exists; - } - if (!$exists) { - $this->addResource(new FileExistenceResource($path)); - return $exists; - } - if (\is_dir($path)) { - if ($trackContents) { - $this->addResource(new DirectoryResource($path, \is_string($trackContents) ? $trackContents : null)); - } else { - $this->addResource(new GlobResource($path, '/*', \false)); - } - } elseif ($trackContents) { - $this->addResource(new FileResource($path)); - } - return $exists; - } - /** - * Loads the configuration for an extension. - * - * @param string $extension The extension alias or namespace - * @param array|null $values An array of values that customizes the extension - * - * @return $this - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - * @throws \LogicException if the extension is not registered - */ - public function loadFromExtension(string $extension, array $values = null) - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Cannot load from an extension on a compiled container.'); - } - $namespace = $this->getExtension($extension)->getAlias(); - $this->extensionConfigs[$namespace][] = $values ?? []; - return $this; - } - /** - * Adds a compiler pass. - * - * @param string $type The type of compiler pass - * @param int $priority Used to sort the passes - * - * @return $this - */ - public function addCompilerPass(CompilerPassInterface $pass, string $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0) - { - $this->getCompiler()->addPass($pass, $type, $priority); - $this->addObjectResource($pass); - return $this; - } - /** - * Returns the compiler pass config which can then be modified. - */ - public function getCompilerPassConfig() : PassConfig - { - return $this->getCompiler()->getPassConfig(); - } - /** - * Returns the compiler. - */ - public function getCompiler() : Compiler - { - return $this->compiler = $this->compiler ?? new Compiler(); - } - /** - * Sets a service. - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function set(string $id, ?object $service) - { - if ($this->isCompiled() && (isset($this->definitions[$id]) && !$this->definitions[$id]->isSynthetic())) { - // setting a synthetic service on a compiled container is alright - throw new BadMethodCallException(\sprintf('Setting service "%s" for an unknown or non-synthetic service definition on a compiled container is not allowed.', $id)); - } - unset($this->definitions[$id], $this->aliasDefinitions[$id], $this->removedIds[$id]); - parent::set($id, $service); - } - /** - * Removes a service definition. - */ - public function removeDefinition(string $id) - { - if (isset($this->definitions[$id])) { - unset($this->definitions[$id]); - $this->removedIds[$id] = \true; - } - } - public function has(string $id) : bool - { - return isset($this->definitions[$id]) || isset($this->aliasDefinitions[$id]) || parent::has($id); - } - /** - * @throws InvalidArgumentException when no definitions are available - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * @throws \Exception - * - * @see Reference - */ - public function get(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) : ?object - { - if ($this->isCompiled() && isset($this->removedIds[$id])) { - return ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $invalidBehavior ? parent::get($id) : null; - } - return $this->doGet($id, $invalidBehavior); - } - /** - * @return mixed - */ - private function doGet(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, array &$inlineServices = null, bool $isConstructorArgument = \false) - { - if (isset($inlineServices[$id])) { - return $inlineServices[$id]; - } - if (null === $inlineServices) { - $isConstructorArgument = \true; - $inlineServices = []; - } - try { - if (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $invalidBehavior) { - return $this->privates[$id] ?? parent::get($id, $invalidBehavior); - } - if (null !== ($service = $this->privates[$id] ?? parent::get($id, ContainerInterface::NULL_ON_INVALID_REFERENCE))) { - return $service; - } - } catch (ServiceCircularReferenceException $e) { - if ($isConstructorArgument) { - throw $e; - } - } - if (!isset($this->definitions[$id]) && isset($this->aliasDefinitions[$id])) { - $alias = $this->aliasDefinitions[$id]; - if ($alias->isDeprecated()) { - $deprecation = $alias->getDeprecation($id); - \RectorPrefix202308\trigger_deprecation($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - return $this->doGet((string) $alias, $invalidBehavior, $inlineServices, $isConstructorArgument); - } - try { - $definition = $this->getDefinition($id); - } catch (ServiceNotFoundException $e) { - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $invalidBehavior) { - return null; - } - throw $e; - } - if ($definition->hasErrors() && ($e = $definition->getErrors())) { - throw new RuntimeException(\reset($e)); - } - if ($isConstructorArgument) { - $this->loading[$id] = \true; - } - try { - return $this->createService($definition, $inlineServices, $isConstructorArgument, $id); - } finally { - if ($isConstructorArgument) { - unset($this->loading[$id]); - } - } - } - /** - * Merges a ContainerBuilder with the current ContainerBuilder configuration. - * - * Service definitions overrides the current defined ones. - * - * But for parameters, they are overridden by the current ones. It allows - * the parameters passed to the container constructor to have precedence - * over the loaded ones. - * - * $container = new ContainerBuilder(new ParameterBag(['foo' => 'bar'])); - * $loader = new LoaderXXX($container); - * $loader->load('resource_name'); - * $container->register('foo', 'stdClass'); - * - * In the above example, even if the loaded resource defines a foo - * parameter, the value will still be 'bar' as defined in the ContainerBuilder - * constructor. - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function merge(self $container) - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Cannot merge on a compiled container.'); - } - $this->addDefinitions($container->getDefinitions()); - $this->addAliases($container->getAliases()); - $this->getParameterBag()->add($container->getParameterBag()->all()); - if ($this->trackResources) { - foreach ($container->getResources() as $resource) { - $this->addResource($resource); - } - } - foreach ($this->extensions as $name => $extension) { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - $this->extensionConfigs[$name] = \array_merge($this->extensionConfigs[$name], $container->getExtensionConfig($name)); - } - if ($this->getParameterBag() instanceof EnvPlaceholderParameterBag && $container->getParameterBag() instanceof EnvPlaceholderParameterBag) { - $envPlaceholders = $container->getParameterBag()->getEnvPlaceholders(); - $this->getParameterBag()->mergeEnvPlaceholders($container->getParameterBag()); - } else { - $envPlaceholders = []; - } - foreach ($container->envCounters as $env => $count) { - if (!$count && !isset($envPlaceholders[$env])) { - continue; - } - if (!isset($this->envCounters[$env])) { - $this->envCounters[$env] = $count; - } else { - $this->envCounters[$env] += $count; - } - } - foreach ($container->getAutoconfiguredInstanceof() as $interface => $childDefinition) { - if (isset($this->autoconfiguredInstanceof[$interface])) { - throw new InvalidArgumentException(\sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same class/interface.', $interface)); - } - $this->autoconfiguredInstanceof[$interface] = $childDefinition; - } - foreach ($container->getAutoconfiguredAttributes() as $attribute => $configurator) { - if (isset($this->autoconfiguredAttributes[$attribute])) { - throw new InvalidArgumentException(\sprintf('"%s" has already been autoconfigured and merge() does not support merging autoconfiguration for the same attribute.', $attribute)); - } - $this->autoconfiguredAttributes[$attribute] = $configurator; - } - } - /** - * Returns the configuration array for the given extension. - * - * @return array> - */ - public function getExtensionConfig(string $name) : array - { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - return $this->extensionConfigs[$name]; - } - /** - * Prepends a config array to the configs of the given extension. - * - * @param array $config - */ - public function prependExtensionConfig(string $name, array $config) - { - if (!isset($this->extensionConfigs[$name])) { - $this->extensionConfigs[$name] = []; - } - \array_unshift($this->extensionConfigs[$name], $config); - } - /** - * Compiles the container. - * - * This method passes the container to compiler - * passes whose job is to manipulate and optimize - * the container. - * - * The main compiler passes roughly do four things: - * - * * The extension configurations are merged; - * * Parameter values are resolved; - * * The parameter bag is frozen; - * * Extension loading is disabled. - * - * @param bool $resolveEnvPlaceholders Whether %env()% parameters should be resolved using the current - * env vars or be replaced by uniquely identifiable placeholders. - * Set to "true" when you want to use the current ContainerBuilder - * directly, keep to "false" when the container is dumped instead. - */ - public function compile(bool $resolveEnvPlaceholders = \false) - { - $compiler = $this->getCompiler(); - if ($this->trackResources) { - foreach ($compiler->getPassConfig()->getPasses() as $pass) { - $this->addObjectResource($pass); - } - } - $bag = $this->getParameterBag(); - if ($resolveEnvPlaceholders && $bag instanceof EnvPlaceholderParameterBag) { - $compiler->addPass(new ResolveEnvPlaceholdersPass(), PassConfig::TYPE_AFTER_REMOVING, -1000); - } - $compiler->compile($this); - foreach ($this->definitions as $id => $definition) { - if ($this->trackResources && $definition->isLazy()) { - $this->getReflectionClass($definition->getClass()); - } - } - $this->extensionConfigs = []; - if ($bag instanceof EnvPlaceholderParameterBag) { - if ($resolveEnvPlaceholders) { - $this->parameterBag = new ParameterBag($this->resolveEnvPlaceholders($bag->all(), \true)); - } - $this->envPlaceholders = $bag->getEnvPlaceholders(); - } - parent::compile(); - foreach ($this->definitions + $this->aliasDefinitions as $id => $definition) { - if (!$definition->isPublic() || $definition->isPrivate()) { - $this->removedIds[$id] = \true; - } - } - } - /** - * {@inheritdoc} - */ - public function getServiceIds() : array - { - return \array_map('strval', \array_unique(\array_merge(\array_keys($this->getDefinitions()), \array_keys($this->aliasDefinitions), parent::getServiceIds()))); - } - /** - * Gets removed service or alias ids. - * - * @return array - */ - public function getRemovedIds() : array - { - return $this->removedIds; - } - /** - * Adds the service aliases. - * - * @param array $aliases - */ - public function addAliases(array $aliases) - { - foreach ($aliases as $alias => $id) { - $this->setAlias($alias, $id); - } - } - /** - * Sets the service aliases. - * - * @param array $aliases - */ - public function setAliases(array $aliases) - { - $this->aliasDefinitions = []; - $this->addAliases($aliases); - } - /** - * Sets an alias for an existing service. - * - * @throws InvalidArgumentException if the id is not a string or an Alias - * @throws InvalidArgumentException if the alias is for itself - * @param string|\Symfony\Component\DependencyInjection\Alias $id - */ - public function setAlias(string $alias, $id) : Alias - { - if ('' === $alias || '\\' === $alias[-1] || \strlen($alias) !== \strcspn($alias, "\x00\r\n'")) { - throw new InvalidArgumentException(\sprintf('Invalid alias id: "%s".', $alias)); - } - if (\is_string($id)) { - $id = new Alias($id); - } - if ($alias === (string) $id) { - throw new InvalidArgumentException(\sprintf('An alias cannot reference itself, got a circular reference on "%s".', $alias)); - } - unset($this->definitions[$alias], $this->removedIds[$alias]); - return $this->aliasDefinitions[$alias] = $id; - } - public function removeAlias(string $alias) - { - if (isset($this->aliasDefinitions[$alias])) { - unset($this->aliasDefinitions[$alias]); - $this->removedIds[$alias] = \true; - } - } - public function hasAlias(string $id) : bool - { - return isset($this->aliasDefinitions[$id]); - } - /** - * @return array - */ - public function getAliases() : array - { - return $this->aliasDefinitions; - } - /** - * @throws InvalidArgumentException if the alias does not exist - */ - public function getAlias(string $id) : Alias - { - if (!isset($this->aliasDefinitions[$id])) { - throw new InvalidArgumentException(\sprintf('The service alias "%s" does not exist.', $id)); - } - return $this->aliasDefinitions[$id]; - } - /** - * Registers a service definition. - * - * This methods allows for simple registration of service definition - * with a fluid interface. - */ - public function register(string $id, string $class = null) : Definition - { - return $this->setDefinition($id, new Definition($class)); - } - /** - * Registers an autowired service definition. - * - * This method implements a shortcut for using setDefinition() with - * an autowired definition. - */ - public function autowire(string $id, string $class = null) : Definition - { - return $this->setDefinition($id, (new Definition($class))->setAutowired(\true)); - } - /** - * Adds the service definitions. - * - * @param array $definitions - */ - public function addDefinitions(array $definitions) - { - foreach ($definitions as $id => $definition) { - $this->setDefinition($id, $definition); - } - } - /** - * Sets the service definitions. - * - * @param array $definitions - */ - public function setDefinitions(array $definitions) - { - $this->definitions = []; - $this->addDefinitions($definitions); - } - /** - * Gets all service definitions. - * - * @return array - */ - public function getDefinitions() : array - { - return $this->definitions; - } - /** - * Sets a service definition. - * - * @throws BadMethodCallException When this ContainerBuilder is compiled - */ - public function setDefinition(string $id, Definition $definition) : Definition - { - if ($this->isCompiled()) { - throw new BadMethodCallException('Adding definition to a compiled container is not allowed.'); - } - if ('' === $id || '\\' === $id[-1] || \strlen($id) !== \strcspn($id, "\x00\r\n'")) { - throw new InvalidArgumentException(\sprintf('Invalid service id: "%s".', $id)); - } - unset($this->aliasDefinitions[$id], $this->removedIds[$id]); - return $this->definitions[$id] = $definition; - } - /** - * Returns true if a service definition exists under the given identifier. - */ - public function hasDefinition(string $id) : bool - { - return isset($this->definitions[$id]); - } - /** - * Gets a service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public function getDefinition(string $id) : Definition - { - if (!isset($this->definitions[$id])) { - throw new ServiceNotFoundException($id); - } - return $this->definitions[$id]; - } - /** - * Gets a service definition by id or alias. - * - * The method "unaliases" recursively to return a Definition instance. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public function findDefinition(string $id) : Definition - { - $seen = []; - while (isset($this->aliasDefinitions[$id])) { - $id = (string) $this->aliasDefinitions[$id]; - if (isset($seen[$id])) { - $seen = \array_values($seen); - $seen = \array_slice($seen, \array_search($id, $seen)); - $seen[] = $id; - throw new ServiceCircularReferenceException($id, $seen); - } - $seen[$id] = $id; - } - return $this->getDefinition($id); - } - /** - * Creates a service for a service definition. - * - * @throws RuntimeException When the factory definition is incomplete - * @throws RuntimeException When the service is a synthetic service - * @throws InvalidArgumentException When configure callable is not callable - * @return mixed - */ - private function createService(Definition $definition, array &$inlineServices, bool $isConstructorArgument = \false, string $id = null, bool $tryProxy = \true) - { - if (null === $id && isset($inlineServices[$h = \spl_object_hash($definition)])) { - return $inlineServices[$h]; - } - if ($definition instanceof ChildDefinition) { - throw new RuntimeException(\sprintf('Constructing service "%s" from a parent definition is not supported at build time.', $id)); - } - if ($definition->isSynthetic()) { - throw new RuntimeException(\sprintf('You have requested a synthetic service ("%s"). The DIC does not know how to construct this service.', $id)); - } - if ($definition->isDeprecated()) { - $deprecation = $definition->getDeprecation($id); - \RectorPrefix202308\trigger_deprecation($deprecation['package'], $deprecation['version'], $deprecation['message']); - } - if ($tryProxy && $definition->isLazy() && !($tryProxy = !($proxy = $this->proxyInstantiator) || $proxy instanceof RealServiceInstantiator)) { - $proxy = $proxy->instantiateProxy($this, $definition, $id, function () use($definition, &$inlineServices, $id) { - return $this->createService($definition, $inlineServices, \true, $id, \false); - }); - $this->shareService($definition, $proxy, $id, $inlineServices); - return $proxy; - } - $parameterBag = $this->getParameterBag(); - if (null !== $definition->getFile()) { - require_once $parameterBag->resolveValue($definition->getFile()); - } - $arguments = $definition->getArguments(); - if (null !== ($factory = $definition->getFactory())) { - if (\is_array($factory)) { - $factory = [$this->doResolveServices($parameterBag->resolveValue($factory[0]), $inlineServices, $isConstructorArgument), $factory[1]]; - } elseif (!\is_string($factory)) { - throw new RuntimeException(\sprintf('Cannot create service "%s" because of invalid factory.', $id)); - } elseif (\strncmp($factory, '@=', \strlen('@=')) === 0) { - $factory = function (ServiceLocator $arguments) use($factory) { - return $this->getExpressionLanguage()->evaluate(\substr($factory, 2), ['container' => $this, 'args' => $arguments]); - }; - $arguments = [new ServiceLocatorArgument($arguments)]; - } - } - $arguments = $this->doResolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($arguments)), $inlineServices, $isConstructorArgument); - if (null !== $id && $definition->isShared() && (isset($this->services[$id]) || isset($this->privates[$id])) && ($tryProxy || !$definition->isLazy())) { - return $this->services[$id] ?? $this->privates[$id]; - } - $arrayIsList = function (array $array) : bool { - if (\function_exists('array_is_list')) { - return \array_is_list($array); - } - if ($array === []) { - return \true; - } - $current_key = 0; - foreach ($array as $key => $noop) { - if ($key !== $current_key) { - return \false; - } - ++$current_key; - } - return \true; - }; - if (!$arrayIsList($arguments)) { - $arguments = \array_combine(\array_map(function ($k) { - return \preg_replace('/^.*\\$/', '', $k); - }, \array_keys($arguments)), $arguments); - } - if (null !== $factory) { - $service = $factory(...$arguments); - if (!$definition->isDeprecated() && \is_array($factory) && \is_string($factory[0])) { - $r = new \ReflectionClass($factory[0]); - if (0 < \strpos($r->getDocComment(), "\n * @deprecated ")) { - \RectorPrefix202308\trigger_deprecation('', '', 'The "%s" service relies on the deprecated "%s" factory class. It should either be deprecated or its factory upgraded.', $id, $r->name); - } - } - } else { - $r = new \ReflectionClass($parameterBag->resolveValue($definition->getClass())); - $service = null === $r->getConstructor() ? $r->newInstance() : $r->newInstanceArgs($arguments); - if (!$definition->isDeprecated() && 0 < \strpos($r->getDocComment(), "\n * @deprecated ")) { - \RectorPrefix202308\trigger_deprecation('', '', 'The "%s" service relies on the deprecated "%s" class. It should either be deprecated or its implementation upgraded.', $id, $r->name); - } - } - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? \false) { - $lastWitherIndex = $k; - } - } - if (null === $lastWitherIndex && ($tryProxy || !$definition->isLazy())) { - // share only if proxying failed, or if not a proxy, and if no withers are found - $this->shareService($definition, $service, $id, $inlineServices); - } - $properties = $this->doResolveServices($parameterBag->unescapeValue($parameterBag->resolveValue($definition->getProperties())), $inlineServices); - foreach ($properties as $name => $value) { - $service->{$name} = $value; - } - foreach ($definition->getMethodCalls() as $k => $call) { - $service = $this->callMethod($service, $call, $inlineServices); - if ($lastWitherIndex === $k && ($tryProxy || !$definition->isLazy())) { - // share only if proxying failed, or if not a proxy, and this is the last wither - $this->shareService($definition, $service, $id, $inlineServices); - } - } - if ($callable = $definition->getConfigurator()) { - if (\is_array($callable)) { - $callable[0] = $parameterBag->resolveValue($callable[0]); - if ($callable[0] instanceof Reference) { - $callable[0] = $this->doGet((string) $callable[0], $callable[0]->getInvalidBehavior(), $inlineServices); - } elseif ($callable[0] instanceof Definition) { - $callable[0] = $this->createService($callable[0], $inlineServices); - } - } - if (!\is_callable($callable)) { - throw new InvalidArgumentException(\sprintf('The configure callable for class "%s" is not a callable.', \get_debug_type($service))); - } - $callable($service); - } - return $service; - } - /** - * Replaces service references by the real service instance and evaluates expressions. - * - * @return mixed The same value with all service references replaced by - * the real service instances and all expressions evaluated - * @param mixed $value - */ - public function resolveServices($value) - { - return $this->doResolveServices($value); - } - /** - * @param mixed $value - * @return mixed - */ - private function doResolveServices($value, array &$inlineServices = [], bool $isConstructorArgument = \false) - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = $this->doResolveServices($v, $inlineServices, $isConstructorArgument); - } - } elseif ($value instanceof ServiceClosureArgument) { - $reference = $value->getValues()[0]; - $value = function () use($reference) { - return $this->resolveServices($reference); - }; - } elseif ($value instanceof IteratorArgument) { - $value = new RewindableGenerator(function () use($value, &$inlineServices) { - foreach ($value->getValues() as $k => $v) { - foreach (self::getServiceConditionals($v) as $s) { - if (!$this->has($s)) { - continue 2; - } - } - foreach (self::getInitializedConditionals($v) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE, $inlineServices)) { - continue 2; - } - } - (yield $k => $this->doResolveServices($v, $inlineServices)); - } - }, function () use($value) : int { - $count = 0; - foreach ($value->getValues() as $v) { - foreach (self::getServiceConditionals($v) as $s) { - if (!$this->has($s)) { - continue 2; - } - } - foreach (self::getInitializedConditionals($v) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE)) { - continue 2; - } - } - ++$count; - } - return $count; - }); - } elseif ($value instanceof ServiceLocatorArgument) { - $refs = $types = []; - foreach ($value->getValues() as $k => $v) { - $refs[$k] = [$v, null]; - $types[$k] = $v instanceof TypedReference ? $v->getType() : '?'; - } - $value = new ServiceLocator(\Closure::fromCallable([$this, 'resolveServices']), $refs, $types); - } elseif ($value instanceof Reference) { - $value = $this->doGet((string) $value, $value->getInvalidBehavior(), $inlineServices, $isConstructorArgument); - } elseif ($value instanceof Definition) { - $value = $this->createService($value, $inlineServices, $isConstructorArgument); - } elseif ($value instanceof Parameter) { - $value = $this->getParameter((string) $value); - } elseif ($value instanceof Expression) { - $value = $this->getExpressionLanguage()->evaluate($value, ['container' => $this]); - } elseif ($value instanceof AbstractArgument) { - throw new RuntimeException($value->getTextWithContext()); - } - return $value; - } - /** - * Returns service ids for a given tag. - * - * Example: - * - * $container->register('foo')->addTag('my.tag', ['hello' => 'world']); - * - * $serviceIds = $container->findTaggedServiceIds('my.tag'); - * foreach ($serviceIds as $serviceId => $tags) { - * foreach ($tags as $tag) { - * echo $tag['hello']; - * } - * } - * - * @return array An array of tags with the tagged service as key, holding a list of attribute arrays - */ - public function findTaggedServiceIds(string $name, bool $throwOnAbstract = \false) : array - { - $this->usedTags[] = $name; - $tags = []; - foreach ($this->getDefinitions() as $id => $definition) { - if ($definition->hasTag($name)) { - if ($throwOnAbstract && $definition->isAbstract()) { - throw new InvalidArgumentException(\sprintf('The service "%s" tagged "%s" must not be abstract.', $id, $name)); - } - $tags[$id] = $definition->getTag($name); - } - } - return $tags; - } - /** - * Returns all tags the defined services use. - * - * @return string[] - */ - public function findTags() : array - { - $tags = []; - foreach ($this->getDefinitions() as $id => $definition) { - $tags[] = \array_keys($definition->getTags()); - } - return \array_unique(\array_merge([], ...$tags)); - } - /** - * Returns all tags not queried by findTaggedServiceIds. - * - * @return string[] - */ - public function findUnusedTags() : array - { - return \array_values(\array_diff($this->findTags(), $this->usedTags)); - } - public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) - { - $this->expressionLanguageProviders[] = $provider; - } - /** - * @return ExpressionFunctionProviderInterface[] - */ - public function getExpressionLanguageProviders() : array - { - return $this->expressionLanguageProviders; - } - /** - * Returns a ChildDefinition that will be used for autoconfiguring the interface/class. - */ - public function registerForAutoconfiguration(string $interface) : ChildDefinition - { - if (!isset($this->autoconfiguredInstanceof[$interface])) { - $this->autoconfiguredInstanceof[$interface] = new ChildDefinition(''); - } - return $this->autoconfiguredInstanceof[$interface]; - } - /** - * Registers an attribute that will be used for autoconfiguring annotated classes. - * - * The third argument passed to the callable is the reflector of the - * class/method/property/parameter that the attribute targets. Using one or many of - * \ReflectionClass|\ReflectionMethod|\ReflectionProperty|\ReflectionParameter as a type-hint - * for this argument allows filtering which attributes should be passed to the callable. - * - * @template T - * - * @param class-string $attributeClass - * @param callable(ChildDefinition, T, \Reflector): void $configurator - */ - public function registerAttributeForAutoconfiguration(string $attributeClass, callable $configurator) : void - { - $this->autoconfiguredAttributes[$attributeClass] = $configurator; - } - /** - * Registers an autowiring alias that only binds to a specific argument name. - * - * The argument name is derived from $name if provided (from $id otherwise) - * using camel case: "foo.bar" or "foo_bar" creates an alias bound to - * "$fooBar"-named arguments with $type as type-hint. Such arguments will - * receive the service $id when autowiring is used. - */ - public function registerAliasForArgument(string $id, string $type, string $name = null) : Alias - { - $name = (new Target($name ?? $id))->name; - if (!\preg_match('/^[a-zA-Z_\\x7f-\\xff]/', $name)) { - throw new InvalidArgumentException(\sprintf('Invalid argument name "%s" for service "%s": the first character must be a letter.', $name, $id)); - } - return $this->setAlias($type . ' $' . $name, $id); - } - /** - * Returns an array of ChildDefinition[] keyed by interface. - * - * @return array - */ - public function getAutoconfiguredInstanceof() : array - { - return $this->autoconfiguredInstanceof; - } - /** - * @return array - */ - public function getAutoconfiguredAttributes() : array - { - return $this->autoconfiguredAttributes; - } - /** - * Resolves env parameter placeholders in a string or an array. - * - * @param string|bool $format A sprintf() format returning the replacement for each env var name or - null to resolve back to the original "%env(VAR)%" format or - true to resolve to the actual values of the referenced env vars - * @param array &$usedEnvs Env vars found while resolving are added to this array - * - * @return mixed The value with env parameters resolved if a string or an array is passed - * @param mixed $value - */ - public function resolveEnvPlaceholders($value, $format = null, array &$usedEnvs = null) - { - if (null === $format) { - $format = '%%env(%s)%%'; - } - $bag = $this->getParameterBag(); - if (\true === $format) { - $value = $bag->resolveValue($value); - } - if ($value instanceof Definition) { - $value = (array) $value; - } - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[\is_string($k) ? $this->resolveEnvPlaceholders($k, $format, $usedEnvs) : $k] = $this->resolveEnvPlaceholders($v, $format, $usedEnvs); - } - return $result; - } - if (!\is_string($value) || 38 > \strlen($value) || !\preg_match('/env[_(]/i', $value)) { - return $value; - } - $envPlaceholders = $bag instanceof EnvPlaceholderParameterBag ? $bag->getEnvPlaceholders() : $this->envPlaceholders; - $completed = \false; - foreach ($envPlaceholders as $env => $placeholders) { - foreach ($placeholders as $placeholder) { - if (\false !== \stripos($value, $placeholder)) { - if (\true === $format) { - $resolved = $bag->escapeValue($this->getEnv($env)); - } else { - $resolved = \sprintf($format, $env); - } - if ($placeholder === $value) { - $value = $resolved; - $completed = \true; - } else { - if (!\is_string($resolved) && !\is_numeric($resolved)) { - throw new RuntimeException(\sprintf('A string value must be composed of strings and/or numbers, but found parameter "env(%s)" of type "%s" inside string value "%s".', $env, \get_debug_type($resolved), $this->resolveEnvPlaceholders($value))); - } - $value = \str_ireplace($placeholder, $resolved, $value); - } - $usedEnvs[$env] = $env; - $this->envCounters[$env] = isset($this->envCounters[$env]) ? 1 + $this->envCounters[$env] : 1; - if ($completed) { - break 2; - } - } - } - } - return $value; - } - /** - * Get statistics about env usage. - * - * @return int[] The number of time each env vars has been resolved - */ - public function getEnvCounters() : array - { - $bag = $this->getParameterBag(); - $envPlaceholders = $bag instanceof EnvPlaceholderParameterBag ? $bag->getEnvPlaceholders() : $this->envPlaceholders; - foreach ($envPlaceholders as $env => $placeholders) { - if (!isset($this->envCounters[$env])) { - $this->envCounters[$env] = 0; - } - } - return $this->envCounters; - } - /** - * @final - */ - public function log(CompilerPassInterface $pass, string $message) - { - $this->getCompiler()->log($pass, $this->resolveEnvPlaceholders($message)); - } - /** - * Checks whether a class is available and will remain available in the "no-dev" mode of Composer. - * - * When parent packages are provided and if any of them is in dev-only mode, - * the class will be considered available even if it is also in dev-only mode. - * - * @throws \LogicException If dependencies have been installed with Composer 1 - */ - public static final function willBeAvailable(string $package, string $class, array $parentPackages) : bool - { - if (!\class_exists(InstalledVersions::class)) { - throw new \LogicException(\sprintf('Calling "%s" when dependencies have been installed with Composer 1 is not supported. Consider upgrading to Composer 2.', __METHOD__)); - } - if (!\class_exists($class) && !\interface_exists($class, \false) && !\trait_exists($class, \false)) { - return \false; - } - if (!InstalledVersions::isInstalled($package) || InstalledVersions::isInstalled($package, \false)) { - return \true; - } - // the package is installed but in dev-mode only, check if this applies to one of the parent packages too - $rootPackage = InstalledVersions::getRootPackage()['name'] ?? ''; - if ('symfony/symfony' === $rootPackage) { - return \true; - } - foreach ($parentPackages as $parentPackage) { - if ($rootPackage === $parentPackage || InstalledVersions::isInstalled($parentPackage) && !InstalledVersions::isInstalled($parentPackage, \false)) { - return \true; - } - } - return \false; - } - /** - * Gets removed binding ids. - * - * @return array - * - * @internal - */ - public function getRemovedBindingIds() : array - { - return $this->removedBindingIds; - } - /** - * Removes bindings for a service. - * - * @internal - */ - public function removeBindings(string $id) - { - if ($this->hasDefinition($id)) { - foreach ($this->getDefinition($id)->getBindings() as $key => $binding) { - [, $bindingId] = $binding->getValues(); - $this->removedBindingIds[(int) $bindingId] = \true; - } - } - } - /** - * @return string[] - * - * @internal - * @param mixed $value - */ - public static function getServiceConditionals($value) : array - { - $services = []; - if (\is_array($value)) { - foreach ($value as $v) { - $services = \array_unique(\array_merge($services, self::getServiceConditionals($v))); - } - } elseif ($value instanceof Reference && ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) { - $services[] = (string) $value; - } - return $services; - } - /** - * @return string[] - * - * @internal - * @param mixed $value - */ - public static function getInitializedConditionals($value) : array - { - $services = []; - if (\is_array($value)) { - foreach ($value as $v) { - $services = \array_unique(\array_merge($services, self::getInitializedConditionals($v))); - } - } elseif ($value instanceof Reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior()) { - $services[] = (string) $value; - } - return $services; - } - /** - * Computes a reasonably unique hash of a serializable value. - * @param mixed $value - */ - public static function hash($value) : string - { - $hash = \substr(\base64_encode(\hash('sha256', \serialize($value), \true)), 0, 7); - return \str_replace(['/', '+'], ['.', '_'], $hash); - } - /** - * {@inheritdoc} - * @return mixed - */ - protected function getEnv(string $name) - { - $value = parent::getEnv($name); - $bag = $this->getParameterBag(); - if (!\is_string($value) || !$bag instanceof EnvPlaceholderParameterBag) { - return $value; - } - $envPlaceholders = $bag->getEnvPlaceholders(); - if (isset($envPlaceholders[$name][$value])) { - $bag = new ParameterBag($bag->all()); - return $bag->unescapeValue($bag->get("env({$name})")); - } - foreach ($envPlaceholders as $env => $placeholders) { - if (isset($placeholders[$value])) { - return $this->getEnv($env); - } - } - $this->resolving["env({$name})"] = \true; - try { - return $bag->unescapeValue($this->resolveEnvPlaceholders($bag->escapeValue($value), \true)); - } finally { - unset($this->resolving["env({$name})"]); - } - } - /** - * @return mixed - */ - private function callMethod(object $service, array $call, array &$inlineServices) - { - foreach (self::getServiceConditionals($call[1]) as $s) { - if (!$this->has($s)) { - return $service; - } - } - foreach (self::getInitializedConditionals($call[1]) as $s) { - if (!$this->doGet($s, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE, $inlineServices)) { - return $service; - } - } - $result = $service->{$call[0]}(...$this->doResolveServices($this->getParameterBag()->unescapeValue($this->getParameterBag()->resolveValue($call[1])), $inlineServices)); - return empty($call[2]) ? $service : $result; - } - /** - * @param mixed $service - */ - private function shareService(Definition $definition, $service, ?string $id, array &$inlineServices) - { - $inlineServices[$id ?? \spl_object_hash($definition)] = $service; - if (null !== $id && $definition->isShared()) { - if ($definition->isPrivate() && $this->isCompiled()) { - $this->privates[$id] = $service; - } else { - $this->services[$id] = $service; - } - unset($this->loading[$id]); - } - } - private function getExpressionLanguage() : ExpressionLanguage - { - if (!isset($this->expressionLanguage)) { - if (!\class_exists(Expression::class)) { - throw new LogicException('Expressions cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders, null, \Closure::fromCallable([$this, 'getEnv'])); - } - return $this->expressionLanguage; - } - private function inVendors(string $path) : bool - { - $this->vendors = $this->vendors ?? (new ComposerResource())->getVendors(); - $path = \realpath($path) ?: $path; - foreach ($this->vendors as $vendor) { - if (\strncmp($path, $vendor, \strlen($vendor)) === 0 && \false !== \strpbrk(\substr($path, \strlen($vendor), 1), '/' . \DIRECTORY_SEPARATOR)) { - $this->addResource(new FileResource($vendor . '/composer/installed.json')); - return \true; - } - } - return \false; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerInterface.php deleted file mode 100644 index c5f4375e7..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ContainerInterface.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Psr\Container\ContainerInterface as PsrContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -/** - * ContainerInterface is the interface implemented by service container classes. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -interface ContainerInterface extends PsrContainerInterface -{ - public const RUNTIME_EXCEPTION_ON_INVALID_REFERENCE = 0; - public const EXCEPTION_ON_INVALID_REFERENCE = 1; - public const NULL_ON_INVALID_REFERENCE = 2; - public const IGNORE_ON_INVALID_REFERENCE = 3; - public const IGNORE_ON_UNINITIALIZED_REFERENCE = 4; - public function set(string $id, ?object $service); - /** - * @throws ServiceCircularReferenceException When a circular reference is detected - * @throws ServiceNotFoundException When the service is not defined - * - * @see Reference - */ - public function get(string $id, int $invalidBehavior = self::EXCEPTION_ON_INVALID_REFERENCE) : ?object; - public function has(string $id) : bool; - /** - * Check for whether or not a service has been initialized. - */ - public function initialized(string $id) : bool; - /** - * @return array|bool|string|int|float|\UnitEnum|null - * - * @throws InvalidArgumentException if the parameter is not defined - */ - public function getParameter(string $name); - public function hasParameter(string $name) : bool; - /** - * @param mixed[]|bool|string|int|float|\UnitEnum|null $value - */ - public function setParameter(string $name, $value); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Definition.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Definition.php deleted file mode 100644 index 0348ca35d..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Definition.php +++ /dev/null @@ -1,762 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\BoundArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\OutOfBoundsException; -/** - * Definition represents a service definition. - * - * @author Fabien Potencier - */ -class Definition -{ - private const DEFAULT_DEPRECATION_TEMPLATE = 'The "%service_id%" service is deprecated. You should stop using it, as it will be removed in the future.'; - /** - * @var string|null - */ - private $class; - /** - * @var string|null - */ - private $file; - /** - * @var string|mixed[]|null - */ - private $factory = null; - /** - * @var bool - */ - private $shared = \true; - /** - * @var mixed[] - */ - private $deprecation = []; - /** - * @var mixed[] - */ - private $properties = []; - /** - * @var mixed[] - */ - private $calls = []; - /** - * @var mixed[] - */ - private $instanceof = []; - /** - * @var bool - */ - private $autoconfigured = \false; - /** - * @var string|mixed[]|null - */ - private $configurator = null; - /** - * @var mixed[] - */ - private $tags = []; - /** - * @var bool - */ - private $public = \false; - /** - * @var bool - */ - private $synthetic = \false; - /** - * @var bool - */ - private $abstract = \false; - /** - * @var bool - */ - private $lazy = \false; - /** - * @var mixed[]|null - */ - private $decoratedService; - /** - * @var bool - */ - private $autowired = \false; - /** - * @var mixed[] - */ - private $changes = []; - /** - * @var mixed[] - */ - private $bindings = []; - /** - * @var mixed[] - */ - private $errors = []; - protected $arguments = []; - /** - * @internal - * - * Used to store the name of the inner id when using service decoration together with autowiring - * @var string|null - */ - public $innerServiceId; - /** - * @internal - * - * Used to store the behavior to follow when using service decoration and the decorated service is invalid - * @var int|null - */ - public $decorationOnInvalid; - public function __construct(string $class = null, array $arguments = []) - { - if (null !== $class) { - $this->setClass($class); - } - $this->arguments = $arguments; - } - /** - * Returns all changes tracked for the Definition object. - */ - public function getChanges() : array - { - return $this->changes; - } - /** - * Sets the tracked changes for the Definition object. - * - * @param array $changes An array of changes for this Definition - * - * @return $this - */ - public function setChanges(array $changes) - { - $this->changes = $changes; - return $this; - } - /** - * Sets a factory. - * - * @param string|array|Reference|null $factory A PHP function, reference or an array containing a class/Reference and a method to call - * - * @return $this - */ - public function setFactory($factory) - { - $this->changes['factory'] = \true; - if (\is_string($factory) && \strpos($factory, '::') !== \false) { - $factory = \explode('::', $factory, 2); - } elseif ($factory instanceof Reference) { - $factory = [$factory, '__invoke']; - } - $this->factory = $factory; - return $this; - } - /** - * Gets the factory. - * - * @return string|array|null The PHP function or an array containing a class/Reference and a method to call - */ - public function getFactory() - { - return $this->factory; - } - /** - * Sets the service that this service is decorating. - * - * @param string|null $id The decorated service id, use null to remove decoration - * @param string|null $renamedId The new decorated service id - * - * @return $this - * - * @throws InvalidArgumentException in case the decorated service id and the new decorated service id are equals - */ - public function setDecoratedService(?string $id, string $renamedId = null, int $priority = 0, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) - { - if ($renamedId && $id === $renamedId) { - throw new InvalidArgumentException(\sprintf('The decorated service inner name for "%s" must be different than the service name itself.', $id)); - } - $this->changes['decorated_service'] = \true; - if (null === $id) { - $this->decoratedService = null; - } else { - $this->decoratedService = [$id, $renamedId, $priority]; - if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $invalidBehavior) { - $this->decoratedService[] = $invalidBehavior; - } - } - return $this; - } - /** - * Gets the service that this service is decorating. - * - * @return array|null An array composed of the decorated service id, the new id for it and the priority of decoration, null if no service is decorated - */ - public function getDecoratedService() : ?array - { - return $this->decoratedService; - } - /** - * Sets the service class. - * - * @return $this - */ - public function setClass(?string $class) - { - $this->changes['class'] = \true; - $this->class = $class; - return $this; - } - /** - * Gets the service class. - */ - public function getClass() : ?string - { - return $this->class; - } - /** - * Sets the arguments to pass to the service constructor/factory method. - * - * @return $this - */ - public function setArguments(array $arguments) - { - $this->arguments = $arguments; - return $this; - } - /** - * Sets the properties to define when creating the service. - * - * @return $this - */ - public function setProperties(array $properties) - { - $this->properties = $properties; - return $this; - } - /** - * Gets the properties to define when creating the service. - */ - public function getProperties() : array - { - return $this->properties; - } - /** - * Sets a specific property. - * - * @return $this - * @param mixed $value - */ - public function setProperty(string $name, $value) - { - $this->properties[$name] = $value; - return $this; - } - /** - * Adds an argument to pass to the service constructor/factory method. - * - * @return $this - * @param mixed $argument - */ - public function addArgument($argument) - { - $this->arguments[] = $argument; - return $this; - } - /** - * Replaces a specific argument. - * - * @return $this - * - * @throws OutOfBoundsException When the replaced argument does not exist - * @param int|string $index - * @param mixed $argument - */ - public function replaceArgument($index, $argument) - { - if (0 === \count($this->arguments)) { - throw new OutOfBoundsException(\sprintf('Cannot replace arguments for class "%s" if none have been configured yet.', $this->class)); - } - if (\is_int($index) && ($index < 0 || $index > \count($this->arguments) - 1)) { - throw new OutOfBoundsException(\sprintf('The index "%d" is not in the range [0, %d] of the arguments of class "%s".', $index, \count($this->arguments) - 1, $this->class)); - } - if (!\array_key_exists($index, $this->arguments)) { - throw new OutOfBoundsException(\sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class)); - } - $this->arguments[$index] = $argument; - return $this; - } - /** - * Sets a specific argument. - * - * @return $this - * @param int|string $key - * @param mixed $value - */ - public function setArgument($key, $value) - { - $this->arguments[$key] = $value; - return $this; - } - /** - * Gets the arguments to pass to the service constructor/factory method. - */ - public function getArguments() : array - { - return $this->arguments; - } - /** - * Gets an argument to pass to the service constructor/factory method. - * - * @throws OutOfBoundsException When the argument does not exist - * @param int|string $index - * @return mixed - */ - public function getArgument($index) - { - if (!\array_key_exists($index, $this->arguments)) { - throw new OutOfBoundsException(\sprintf('The argument "%s" doesn\'t exist in class "%s".', $index, $this->class)); - } - return $this->arguments[$index]; - } - /** - * Sets the methods to call after service initialization. - * - * @return $this - */ - public function setMethodCalls(array $calls = []) - { - $this->calls = []; - foreach ($calls as $call) { - $this->addMethodCall($call[0], $call[1], $call[2] ?? \false); - } - return $this; - } - /** - * Adds a method to call after service initialization. - * - * @param string $method The method name to call - * @param array $arguments An array of arguments to pass to the method call - * @param bool $returnsClone Whether the call returns the service instance or not - * - * @return $this - * - * @throws InvalidArgumentException on empty $method param - */ - public function addMethodCall(string $method, array $arguments = [], bool $returnsClone = \false) - { - if (empty($method)) { - throw new InvalidArgumentException('Method name cannot be empty.'); - } - $this->calls[] = $returnsClone ? [$method, $arguments, \true] : [$method, $arguments]; - return $this; - } - /** - * Removes a method to call after service initialization. - * - * @return $this - */ - public function removeMethodCall(string $method) - { - foreach ($this->calls as $i => $call) { - if ($call[0] === $method) { - unset($this->calls[$i]); - } - } - return $this; - } - /** - * Check if the current definition has a given method to call after service initialization. - */ - public function hasMethodCall(string $method) : bool - { - foreach ($this->calls as $call) { - if ($call[0] === $method) { - return \true; - } - } - return \false; - } - /** - * Gets the methods to call after service initialization. - */ - public function getMethodCalls() : array - { - return $this->calls; - } - /** - * Sets the definition templates to conditionally apply on the current definition, keyed by parent interface/class. - * - * @param ChildDefinition[] $instanceof - * - * @return $this - */ - public function setInstanceofConditionals(array $instanceof) - { - $this->instanceof = $instanceof; - return $this; - } - /** - * Gets the definition templates to conditionally apply on the current definition, keyed by parent interface/class. - * - * @return ChildDefinition[] - */ - public function getInstanceofConditionals() : array - { - return $this->instanceof; - } - /** - * Sets whether or not instanceof conditionals should be prepended with a global set. - * - * @return $this - */ - public function setAutoconfigured(bool $autoconfigured) - { - $this->changes['autoconfigured'] = \true; - $this->autoconfigured = $autoconfigured; - return $this; - } - public function isAutoconfigured() : bool - { - return $this->autoconfigured; - } - /** - * Sets tags for this definition. - * - * @return $this - */ - public function setTags(array $tags) - { - $this->tags = $tags; - return $this; - } - /** - * Returns all tags. - */ - public function getTags() : array - { - return $this->tags; - } - /** - * Gets a tag by name. - */ - public function getTag(string $name) : array - { - return $this->tags[$name] ?? []; - } - /** - * Adds a tag for this definition. - * - * @return $this - */ - public function addTag(string $name, array $attributes = []) - { - $this->tags[$name][] = $attributes; - return $this; - } - /** - * Whether this definition has a tag with the given name. - */ - public function hasTag(string $name) : bool - { - return isset($this->tags[$name]); - } - /** - * Clears all tags for a given name. - * - * @return $this - */ - public function clearTag(string $name) - { - unset($this->tags[$name]); - return $this; - } - /** - * Clears the tags for this definition. - * - * @return $this - */ - public function clearTags() - { - $this->tags = []; - return $this; - } - /** - * Sets a file to require before creating the service. - * - * @return $this - */ - public function setFile(?string $file) - { - $this->changes['file'] = \true; - $this->file = $file; - return $this; - } - /** - * Gets the file to require before creating the service. - */ - public function getFile() : ?string - { - return $this->file; - } - /** - * Sets if the service must be shared or not. - * - * @return $this - */ - public function setShared(bool $shared) - { - $this->changes['shared'] = \true; - $this->shared = $shared; - return $this; - } - /** - * Whether this service is shared. - */ - public function isShared() : bool - { - return $this->shared; - } - /** - * Sets the visibility of this service. - * - * @return $this - */ - public function setPublic(bool $boolean) - { - $this->changes['public'] = \true; - $this->public = $boolean; - return $this; - } - /** - * Whether this service is public facing. - */ - public function isPublic() : bool - { - return $this->public; - } - /** - * Whether this service is private. - */ - public function isPrivate() : bool - { - return !$this->public; - } - /** - * Sets the lazy flag of this service. - * - * @return $this - */ - public function setLazy(bool $lazy) - { - $this->changes['lazy'] = \true; - $this->lazy = $lazy; - return $this; - } - /** - * Whether this service is lazy. - */ - public function isLazy() : bool - { - return $this->lazy; - } - /** - * Sets whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - * - * @return $this - */ - public function setSynthetic(bool $boolean) - { - $this->synthetic = $boolean; - if (!isset($this->changes['public'])) { - $this->setPublic(\true); - } - return $this; - } - /** - * Whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - */ - public function isSynthetic() : bool - { - return $this->synthetic; - } - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - * - * @return $this - */ - public function setAbstract(bool $boolean) - { - $this->abstract = $boolean; - return $this; - } - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - */ - public function isAbstract() : bool - { - return $this->abstract; - } - /** - * Whether this definition is deprecated, that means it should not be called - * anymore. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The deprecation message to use - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - public function setDeprecated(string $package, string $version, string $message) - { - if ('' !== $message) { - if (\preg_match('#[\\r\\n]|\\*/#', $message)) { - throw new InvalidArgumentException('Invalid characters found in deprecation template.'); - } - if (\strpos($message, '%service_id%') === \false) { - throw new InvalidArgumentException('The deprecation template must contain the "%service_id%" placeholder.'); - } - } - $this->changes['deprecated'] = \true; - $this->deprecation = ['package' => $package, 'version' => $version, 'message' => $message ?: self::DEFAULT_DEPRECATION_TEMPLATE]; - return $this; - } - /** - * Whether this definition is deprecated, that means it should not be called - * anymore. - */ - public function isDeprecated() : bool - { - return (bool) $this->deprecation; - } - /** - * @param string $id Service id relying on this definition - */ - public function getDeprecation(string $id) : array - { - return ['package' => $this->deprecation['package'], 'version' => $this->deprecation['version'], 'message' => \str_replace('%service_id%', $id, $this->deprecation['message'])]; - } - /** - * Sets a configurator to call after the service is fully initialized. - * - * @param string|array|Reference|null $configurator A PHP function, reference or an array containing a class/Reference and a method to call - * - * @return $this - */ - public function setConfigurator($configurator) - { - $this->changes['configurator'] = \true; - if (\is_string($configurator) && \strpos($configurator, '::') !== \false) { - $configurator = \explode('::', $configurator, 2); - } elseif ($configurator instanceof Reference) { - $configurator = [$configurator, '__invoke']; - } - $this->configurator = $configurator; - return $this; - } - /** - * Gets the configurator to call after the service is fully initialized. - * @return string|mixed[]|null - */ - public function getConfigurator() - { - return $this->configurator; - } - /** - * Is the definition autowired? - */ - public function isAutowired() : bool - { - return $this->autowired; - } - /** - * Enables/disables autowiring. - * - * @return $this - */ - public function setAutowired(bool $autowired) - { - $this->changes['autowired'] = \true; - $this->autowired = $autowired; - return $this; - } - /** - * Gets bindings. - * - * @return BoundArgument[] - */ - public function getBindings() : array - { - return $this->bindings; - } - /** - * Sets bindings. - * - * Bindings map $named or FQCN arguments to values that should be - * injected in the matching parameters (of the constructor, of methods - * called and of controller actions). - * - * @return $this - */ - public function setBindings(array $bindings) - { - foreach ($bindings as $key => $binding) { - if (0 < \strpos($key, '$') && $key !== ($k = \preg_replace('/[ \\t]*\\$/', ' $', $key))) { - unset($bindings[$key]); - $bindings[$key = $k] = $binding; - } - if (!$binding instanceof BoundArgument) { - $bindings[$key] = new BoundArgument($binding); - } - } - $this->bindings = $bindings; - return $this; - } - /** - * Add an error that occurred when building this Definition. - * - * @return $this - * @param string|\Closure|\Symfony\Component\DependencyInjection\Definition $error - */ - public function addError($error) - { - if ($error instanceof self) { - $this->errors = \array_merge($this->errors, $error->errors); - } else { - $this->errors[] = $error; - } - return $this; - } - /** - * Returns any errors that occurred while building this Definition. - */ - public function getErrors() : array - { - foreach ($this->errors as $i => $error) { - if ($error instanceof \Closure) { - $this->errors[$i] = (string) $error(); - } elseif (!\is_string($error)) { - $this->errors[$i] = (string) $error; - } - } - return $this->errors; - } - public function hasErrors() : bool - { - return (bool) $this->errors; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Dumper.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Dumper.php deleted file mode 100644 index ad5d7a6d4..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Dumper.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Dumper; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * Dumper is the abstract class for all built-in dumpers. - * - * @author Fabien Potencier - */ -abstract class Dumper implements DumperInterface -{ - protected $container; - public function __construct(ContainerBuilder $container) - { - $this->container = $container; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/DumperInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/DumperInterface.php deleted file mode 100644 index a5bfc6afb..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/DumperInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Dumper; - -/** - * DumperInterface is the interface implemented by service container dumper classes. - * - * @author Fabien Potencier - */ -interface DumperInterface -{ - /** - * Dumps the service container. - * @return string|mixed[] - */ - public function dump(array $options = []); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php deleted file mode 100644 index fbbcee9ad..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/GraphvizDumper.php +++ /dev/null @@ -1,202 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Dumper; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Parameter; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -/** - * GraphvizDumper dumps a service container as a graphviz file. - * - * You can convert the generated dot file with the dot utility (http://www.graphviz.org/): - * - * dot -Tpng container.dot > foo.png - * - * @author Fabien Potencier - */ -class GraphvizDumper extends Dumper -{ - /** - * @var mixed[] - */ - private $nodes; - /** - * @var mixed[] - */ - private $edges; - // All values should be strings - /** - * @var mixed[] - */ - private $options = ['graph' => ['ratio' => 'compress'], 'node' => ['fontsize' => '11', 'fontname' => 'Arial', 'shape' => 'record'], 'edge' => ['fontsize' => '9', 'fontname' => 'Arial', 'color' => 'grey', 'arrowhead' => 'open', 'arrowsize' => '0.5'], 'node.instance' => ['fillcolor' => '#9999ff', 'style' => 'filled'], 'node.definition' => ['fillcolor' => '#eeeeee'], 'node.missing' => ['fillcolor' => '#ff9999', 'style' => 'filled']]; - /** - * Dumps the service container as a graphviz graph. - * - * Available options: - * - * * graph: The default options for the whole graph - * * node: The default options for nodes - * * edge: The default options for edges - * * node.instance: The default options for services that are defined directly by object instances - * * node.definition: The default options for services that are defined via service definition instances - * * node.missing: The default options for missing services - */ - public function dump(array $options = []) : string - { - foreach (['graph', 'node', 'edge', 'node.instance', 'node.definition', 'node.missing'] as $key) { - if (isset($options[$key])) { - $this->options[$key] = \array_merge($this->options[$key], $options[$key]); - } - } - $this->nodes = $this->findNodes(); - $this->edges = []; - foreach ($this->container->getDefinitions() as $id => $definition) { - $this->edges[$id] = \array_merge($this->findEdges($id, $definition->getArguments(), \true, ''), $this->findEdges($id, $definition->getProperties(), \false, '')); - foreach ($definition->getMethodCalls() as $call) { - $this->edges[$id] = \array_merge($this->edges[$id], $this->findEdges($id, $call[1], \false, $call[0] . '()')); - } - } - return $this->container->resolveEnvPlaceholders($this->startDot() . $this->addNodes() . $this->addEdges() . $this->endDot(), '__ENV_%s__'); - } - private function addNodes() : string - { - $code = ''; - foreach ($this->nodes as $id => $node) { - $aliases = $this->getAliases($id); - $code .= \sprintf(" node_%s [label=\"%s\\n%s\\n\", shape=%s%s];\n", $this->dotize($id), $id . ($aliases ? ' (' . \implode(', ', $aliases) . ')' : ''), $node['class'], $this->options['node']['shape'], $this->addAttributes($node['attributes'])); - } - return $code; - } - private function addEdges() : string - { - $code = ''; - foreach ($this->edges as $id => $edges) { - foreach ($edges as $edge) { - $code .= \sprintf(" node_%s -> node_%s [label=\"%s\" style=\"%s\"%s];\n", $this->dotize($id), $this->dotize($edge['to']), $edge['name'], $edge['required'] ? 'filled' : 'dashed', $edge['lazy'] ? ' color="#9999ff"' : ''); - } - } - return $code; - } - /** - * Finds all edges belonging to a specific service id. - */ - private function findEdges(string $id, array $arguments, bool $required, string $name, bool $lazy = \false) : array - { - $edges = []; - foreach ($arguments as $argument) { - if ($argument instanceof Parameter) { - $argument = $this->container->hasParameter($argument) ? $this->container->getParameter($argument) : null; - } elseif (\is_string($argument) && \preg_match('/^%([^%]+)%$/', $argument, $match)) { - $argument = $this->container->hasParameter($match[1]) ? $this->container->getParameter($match[1]) : null; - } - if ($argument instanceof Reference) { - $lazyEdge = $lazy; - if (!$this->container->has((string) $argument)) { - $this->nodes[(string) $argument] = ['name' => $name, 'required' => $required, 'class' => '', 'attributes' => $this->options['node.missing']]; - } elseif ('service_container' !== (string) $argument) { - $lazyEdge = $lazy || $this->container->getDefinition((string) $argument)->isLazy(); - } - $edges[] = [['name' => $name, 'required' => $required, 'to' => $argument, 'lazy' => $lazyEdge]]; - } elseif ($argument instanceof ArgumentInterface) { - $edges[] = $this->findEdges($id, $argument->getValues(), $required, $name, \true); - } elseif ($argument instanceof Definition) { - $edges[] = $this->findEdges($id, $argument->getArguments(), $required, ''); - $edges[] = $this->findEdges($id, $argument->getProperties(), \false, ''); - foreach ($argument->getMethodCalls() as $call) { - $edges[] = $this->findEdges($id, $call[1], \false, $call[0] . '()'); - } - } elseif (\is_array($argument)) { - $edges[] = $this->findEdges($id, $argument, $required, $name, $lazy); - } - } - return \array_merge([], ...$edges); - } - private function findNodes() : array - { - $nodes = []; - $container = $this->cloneContainer(); - foreach ($container->getDefinitions() as $id => $definition) { - $class = $definition->getClass(); - if (\strncmp($class, '\\', \strlen('\\')) === 0) { - $class = \substr($class, 1); - } - try { - $class = $this->container->getParameterBag()->resolveValue($class); - } catch (ParameterNotFoundException $exception) { - } - $nodes[$id] = ['class' => \str_replace('\\', '\\\\', $class), 'attributes' => \array_merge($this->options['node.definition'], ['style' => $definition->isShared() ? 'filled' : 'dotted'])]; - $container->setDefinition($id, new Definition('stdClass')); - } - foreach ($container->getServiceIds() as $id) { - if (\array_key_exists($id, $container->getAliases())) { - continue; - } - if (!$container->hasDefinition($id)) { - $nodes[$id] = ['class' => \str_replace('\\', '\\\\', \get_class($container->get($id))), 'attributes' => $this->options['node.instance']]; - } - } - return $nodes; - } - private function cloneContainer() : ContainerBuilder - { - $parameterBag = new ParameterBag($this->container->getParameterBag()->all()); - $container = new ContainerBuilder($parameterBag); - $container->setDefinitions($this->container->getDefinitions()); - $container->setAliases($this->container->getAliases()); - $container->setResources($this->container->getResources()); - foreach ($this->container->getExtensions() as $extension) { - $container->registerExtension($extension); - } - return $container; - } - private function startDot() : string - { - return \sprintf("digraph sc {\n %s\n node [%s];\n edge [%s];\n\n", $this->addOptions($this->options['graph']), $this->addOptions($this->options['node']), $this->addOptions($this->options['edge'])); - } - private function endDot() : string - { - return "}\n"; - } - private function addAttributes(array $attributes) : string - { - $code = []; - foreach ($attributes as $k => $v) { - $code[] = \sprintf('%s="%s"', $k, $v); - } - return $code ? ', ' . \implode(', ', $code) : ''; - } - private function addOptions(array $options) : string - { - $code = []; - foreach ($options as $k => $v) { - $code[] = \sprintf('%s="%s"', $k, $v); - } - return \implode(' ', $code); - } - private function dotize(string $id) : string - { - return \preg_replace('/\\W/i', '_', $id); - } - private function getAliases(string $id) : array - { - $aliases = []; - foreach ($this->container->getAliases() as $alias => $origin) { - if ($id == $origin) { - $aliases[] = $alias; - } - } - return $aliases; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/PhpDumper.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/PhpDumper.php deleted file mode 100644 index 1a3b80163..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/PhpDumper.php +++ /dev/null @@ -1,1995 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Dumper; - -use RectorPrefix202308\Composer\Autoload\ClassLoader; -use RectorPrefix202308\Symfony\Component\Debug\DebugClassLoader as LegacyDebugClassLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\AnalyzeServiceReferencesPass; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\ServiceReferenceGraphNode; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Container; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\EnvParameterException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ExpressionLanguage; -use RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\NullDumper; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\FileLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Parameter; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ServiceLocator as BaseServiceLocator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\TypedReference; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Variable; -use RectorPrefix202308\Symfony\Component\ErrorHandler\DebugClassLoader; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -use RectorPrefix202308\Symfony\Component\HttpKernel\Kernel; -/** - * PhpDumper dumps a service container as a PHP class. - * - * @author Fabien Potencier - * @author Johannes M. Schmitt - */ -class PhpDumper extends Dumper -{ - /** - * Characters that might appear in the generated variable name as first character. - */ - public const FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz'; - /** - * Characters that might appear in the generated variable name as any but the first character. - */ - public const NON_FIRST_CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789_'; - /** @var \SplObjectStorage|null */ - private $definitionVariables; - /** - * @var mixed[]|null - */ - private $referenceVariables; - /** - * @var int - */ - private $variableCount; - /** - * @var \SplObjectStorage|null - */ - private $inlinedDefinitions; - /** - * @var mixed[]|null - */ - private $serviceCalls; - /** - * @var mixed[] - */ - private $reservedVariables = ['instance', 'class', 'this', 'container']; - /** - * @var \Symfony\Component\DependencyInjection\ExpressionLanguage - */ - private $expressionLanguage; - /** - * @var string|null - */ - private $targetDirRegex; - /** - * @var int - */ - private $targetDirMaxMatches; - /** - * @var string - */ - private $docStar; - /** - * @var mixed[] - */ - private $serviceIdToMethodNameMap; - /** - * @var mixed[] - */ - private $usedMethodNames; - /** - * @var string - */ - private $namespace; - /** - * @var bool - */ - private $asFiles; - /** - * @var string - */ - private $hotPathTag; - /** - * @var mixed[] - */ - private $preloadTags; - /** - * @var bool - */ - private $inlineFactories; - /** - * @var bool - */ - private $inlineRequires; - /** - * @var mixed[] - */ - private $inlinedRequires = []; - /** - * @var mixed[] - */ - private $circularReferences = []; - /** - * @var mixed[] - */ - private $singleUsePrivateIds = []; - /** - * @var mixed[] - */ - private $preload = []; - /** - * @var bool - */ - private $addGetService = \false; - /** - * @var mixed[] - */ - private $locatedIds = []; - /** - * @var string - */ - private $serviceLocatorTag; - /** - * @var mixed[] - */ - private $exportedVariables = []; - /** - * @var string - */ - private $baseClass; - /** - * @var \Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface - */ - private $proxyDumper; - /** - * @var bool - */ - private $hasProxyDumper = \false; - /** - * {@inheritdoc} - */ - public function __construct(ContainerBuilder $container) - { - if (!$container->isCompiled()) { - throw new LogicException('Cannot dump an uncompiled container.'); - } - parent::__construct($container); - } - /** - * Sets the dumper to be used when dumping proxies in the generated container. - */ - public function setProxyDumper(DumperInterface $proxyDumper) - { - $this->proxyDumper = $proxyDumper; - $this->hasProxyDumper = !$proxyDumper instanceof NullDumper; - } - /** - * Dumps the service container as a PHP class. - * - * Available options: - * - * * class: The class name - * * base_class: The base class name - * * namespace: The class namespace - * * as_files: To split the container in several files - * - * @return string|array A PHP class representing the service container or an array of PHP files if the "as_files" option is set - * - * @throws EnvParameterException When an env var exists but has not been dumped - */ - public function dump(array $options = []) - { - $this->locatedIds = []; - $this->targetDirRegex = null; - $this->inlinedRequires = []; - $this->exportedVariables = []; - $options = \array_merge(['class' => 'ProjectServiceContainer', 'base_class' => 'Container', 'namespace' => '', 'as_files' => \false, 'debug' => \true, 'hot_path_tag' => 'container.hot_path', 'preload_tags' => ['container.preload', 'container.no_preload'], 'inline_factories_parameter' => 'container.dumper.inline_factories', 'inline_class_loader_parameter' => 'container.dumper.inline_class_loader', 'preload_classes' => [], 'service_locator_tag' => 'container.service_locator', 'build_time' => \time()], $options); - $this->addGetService = \false; - $this->namespace = $options['namespace']; - $this->asFiles = $options['as_files']; - $this->hotPathTag = $options['hot_path_tag']; - $this->preloadTags = $options['preload_tags']; - $this->inlineFactories = $this->asFiles && $options['inline_factories_parameter'] && $this->container->hasParameter($options['inline_factories_parameter']) && $this->container->getParameter($options['inline_factories_parameter']); - $this->inlineRequires = $options['inline_class_loader_parameter'] && ($this->container->hasParameter($options['inline_class_loader_parameter']) ? $this->container->getParameter($options['inline_class_loader_parameter']) : $options['debug']); - $this->serviceLocatorTag = $options['service_locator_tag']; - if (\strncmp($baseClass = $options['base_class'], '\\', \strlen('\\')) !== 0 && 'Container' !== $baseClass) { - $baseClass = \sprintf('%s\\%s', $options['namespace'] ? '\\' . $options['namespace'] : '', $baseClass); - $this->baseClass = $baseClass; - } elseif ('Container' === $baseClass) { - $this->baseClass = Container::class; - } else { - $this->baseClass = $baseClass; - } - $this->initializeMethodNamesMap('Container' === $baseClass ? Container::class : $baseClass); - if (!$this->hasProxyDumper) { - (new AnalyzeServiceReferencesPass(\true, \false))->process($this->container); - try { - (new CheckCircularReferencesPass())->process($this->container); - } catch (ServiceCircularReferenceException $e) { - $path = $e->getPath(); - \end($path); - $path[\key($path)] .= '". Try running "composer require symfony/proxy-manager-bridge'; - throw new ServiceCircularReferenceException($e->getServiceId(), $path); - } - } - $this->analyzeReferences(); - $this->docStar = $options['debug'] ? '*' : ''; - if (!empty($options['file']) && \is_dir($dir = \dirname($options['file']))) { - // Build a regexp where the first root dirs are mandatory, - // but every other sub-dir is optional up to the full path in $dir - // Mandate at least 1 root dir and not more than 5 optional dirs. - $dir = \explode(\DIRECTORY_SEPARATOR, \realpath($dir)); - $i = \count($dir); - if (2 + (int) ('\\' === \DIRECTORY_SEPARATOR) <= $i) { - $regex = ''; - $lastOptionalDir = $i > 8 ? $i - 5 : 2 + (int) ('\\' === \DIRECTORY_SEPARATOR); - $this->targetDirMaxMatches = $i - $lastOptionalDir; - while (--$i >= $lastOptionalDir) { - $regex = \sprintf('(%s%s)?', \preg_quote(\DIRECTORY_SEPARATOR . $dir[$i], '#'), $regex); - } - do { - $regex = \preg_quote(\DIRECTORY_SEPARATOR . $dir[$i], '#') . $regex; - } while (0 < --$i); - $this->targetDirRegex = '#(^|file://|[:;, \\|\\r\\n])' . \preg_quote($dir[0], '#') . $regex . '#'; - } - } - $proxyClasses = $this->inlineFactories ? $this->generateProxyClasses() : null; - if ($options['preload_classes']) { - $this->preload = \array_combine($options['preload_classes'], $options['preload_classes']); - } - $code = $this->startClass($options['class'], $baseClass, $this->inlineFactories && $proxyClasses) . $this->addServices($services) . $this->addDeprecatedAliases() . $this->addDefaultParametersMethod(); - $proxyClasses = $proxyClasses ?? $this->generateProxyClasses(); - if ($this->addGetService) { - $code = \preg_replace("/(\r?\n\r?\n public function __construct.+?\\{\r?\n)/s", "\n protected \\Closure \$getService;\$1 \$this->getService = \$this->getService(...);\n", $code, 1); - } - if ($this->asFiles) { - $fileTemplate = <<docStar} - * @internal This class has been auto-generated by the Symfony Dependency Injection Component. - */ -class %s extends {$options['class']} -{%s} - -EOF; - $files = []; - $preloadedFiles = []; - $ids = $this->container->getRemovedIds(); - foreach ($this->container->getDefinitions() as $id => $definition) { - if (!$definition->isPublic()) { - $ids[$id] = \true; - } - } - if ($ids = \array_keys($ids)) { - \sort($ids); - $c = "doExport($id) . " => true,\n"; - } - $files['removed-ids.php'] = $c . "];\n"; - } - if (!$this->inlineFactories) { - foreach ($this->generateServiceFiles($services) as $file => [$c, $preload]) { - $files[$file] = \sprintf($fileTemplate, \substr($file, 0, -4), $c); - if ($preload) { - $preloadedFiles[$file] = $file; - } - } - foreach ($proxyClasses as $file => $c) { - $files[$file] = "endClass(); - if ($this->inlineFactories && $proxyClasses) { - $files['proxy-classes.php'] = " $c) { - $code["Container{$hash}/{$file}"] = \substr_replace($c, "namespace ? "\nnamespace {$this->namespace};\n" : ''; - $time = $options['build_time']; - $id = \hash('crc32', $hash . $time); - $this->asFiles = \false; - if ($this->preload && null !== ($autoloadFile = $this->getAutoloadFile())) { - $autoloadFile = \trim($this->export($autoloadFile), '()\\'); - $preloadedFiles = \array_reverse($preloadedFiles); - if ('' !== ($preloadedFiles = \implode("';\nrequire __DIR__.'/", $preloadedFiles))) { - $preloadedFiles = "require __DIR__.'/{$preloadedFiles}';\n"; - } - $code[$options['class'] . '.preload.php'] = <<= 7.4 when preloading is desired - -use RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\Dumper\\Preloader; - -if (in_array(PHP_SAPI, ['cli', 'phpdbg'], true)) { - return; -} - -require {$autoloadFile}; -(require __DIR__.'/{$options['class']}.php')->set(\\Container{$hash}\\{$options['class']}::class, null); -{$preloadedFiles} -\$classes = []; - -EOF; - foreach ($this->preload as $class) { - if (!$class || \strpos($class, '$') !== \false || \in_array($class, ['int', 'float', 'string', 'bool', 'resource', 'object', 'array', 'null', 'callable', 'iterable', 'mixed', 'void'], \true)) { - continue; - } - if (!(\class_exists($class, \false) || \interface_exists($class, \false) || \trait_exists($class, \false)) || (new \ReflectionClass($class))->isUserDefined()) { - $code[$options['class'] . '.preload.php'] .= \sprintf("\$classes[] = '%s';\n", $class); - } - } - $code[$options['class'] . '.preload.php'] .= <<<'EOF' - -$preloaded = Preloader::preload($classes); - -EOF; - } - $code[$options['class'] . '.php'] = << '{$hash}', - 'container.build_id' => '{$id}', - 'container.build_time' => {$time}, -], __DIR__.\\DIRECTORY_SEPARATOR.'Container{$hash}'); - -EOF; - } else { - $code .= $this->endClass(); - foreach ($proxyClasses as $c) { - $code .= $c; - } - } - $this->targetDirRegex = null; - $this->inlinedRequires = []; - $this->circularReferences = []; - $this->locatedIds = []; - $this->exportedVariables = []; - $this->preload = []; - $unusedEnvs = []; - foreach ($this->container->getEnvCounters() as $env => $use) { - if (!$use) { - $unusedEnvs[] = $env; - } - } - if ($unusedEnvs) { - throw new EnvParameterException($unusedEnvs, null, 'Environment variables "%s" are never used. Please, check your container\'s configuration.'); - } - return $code; - } - /** - * Retrieves the currently set proxy dumper or instantiates one. - */ - private function getProxyDumper() : DumperInterface - { - return $this->proxyDumper = $this->proxyDumper ?? new NullDumper(); - } - private function analyzeReferences() - { - (new AnalyzeServiceReferencesPass(\false, $this->hasProxyDumper))->process($this->container); - $checkedNodes = []; - $this->circularReferences = []; - $this->singleUsePrivateIds = []; - foreach ($this->container->getCompiler()->getServiceReferenceGraph()->getNodes() as $id => $node) { - if (!$node->getValue() instanceof Definition) { - continue; - } - if ($this->isSingleUsePrivateNode($node)) { - $this->singleUsePrivateIds[$id] = $id; - } - $this->collectCircularReferences($id, $node->getOutEdges(), $checkedNodes); - } - $this->container->getCompiler()->getServiceReferenceGraph()->clear(); - $this->singleUsePrivateIds = \array_diff_key($this->singleUsePrivateIds, $this->circularReferences); - } - private function collectCircularReferences(string $sourceId, array $edges, array &$checkedNodes, array &$loops = [], array $path = [], bool $byConstructor = \true) : void - { - $path[$sourceId] = $byConstructor; - $checkedNodes[$sourceId] = \true; - foreach ($edges as $edge) { - $node = $edge->getDestNode(); - $id = $node->getId(); - if ($sourceId === $id || !$node->getValue() instanceof Definition || $edge->isWeak()) { - continue; - } - if (isset($path[$id])) { - $loop = null; - $loopByConstructor = $edge->isReferencedByConstructor() && !$edge->isLazy(); - $pathInLoop = [$id, []]; - foreach ($path as $k => $pathByConstructor) { - if (null !== $loop) { - $loop[] = $k; - $pathInLoop[1][$k] = $pathByConstructor; - $loops[$k][] =& $pathInLoop; - $loopByConstructor = $loopByConstructor && $pathByConstructor; - } elseif ($k === $id) { - $loop = []; - } - } - $this->addCircularReferences($id, $loop, $loopByConstructor); - } elseif (!isset($checkedNodes[$id])) { - $this->collectCircularReferences($id, $node->getOutEdges(), $checkedNodes, $loops, $path, $edge->isReferencedByConstructor() && !$edge->isLazy()); - } elseif (isset($loops[$id])) { - // we already had detected loops for this edge - // let's check if we have a common ancestor in one of the detected loops - foreach ($loops[$id] as [$first, $loopPath]) { - if (!isset($path[$first])) { - continue; - } - // We have a common ancestor, let's fill the current path - $fillPath = null; - foreach ($loopPath as $k => $pathByConstructor) { - if (null !== $fillPath) { - $fillPath[$k] = $pathByConstructor; - } elseif ($k === $id) { - $fillPath = $path; - $fillPath[$k] = $pathByConstructor; - } - } - // we can now build the loop - $loop = null; - $loopByConstructor = $edge->isReferencedByConstructor() && !$edge->isLazy(); - foreach ($fillPath as $k => $pathByConstructor) { - if (null !== $loop) { - $loop[] = $k; - $loopByConstructor = $loopByConstructor && $pathByConstructor; - } elseif ($k === $first) { - $loop = []; - } - } - $this->addCircularReferences($first, $loop, $loopByConstructor); - break; - } - } - } - unset($path[$sourceId]); - } - private function addCircularReferences(string $sourceId, array $currentPath, bool $byConstructor) - { - $currentId = $sourceId; - $currentPath = \array_reverse($currentPath); - $currentPath[] = $currentId; - foreach ($currentPath as $parentId) { - if (empty($this->circularReferences[$parentId][$currentId])) { - $this->circularReferences[$parentId][$currentId] = $byConstructor; - } - $currentId = $parentId; - } - } - private function collectLineage(string $class, array &$lineage) - { - if (isset($lineage[$class])) { - return; - } - if (!($r = $this->container->getReflectionClass($class, \false))) { - return; - } - if (\is_a($class, $this->baseClass, \true)) { - return; - } - $file = $r->getFileName(); - if (\substr_compare($file, ') : eval()\'d code', -\strlen(') : eval()\'d code')) === 0) { - $file = \substr($file, 0, \strrpos($file, '(', -17)); - } - if (!$file || $this->doExport($file) === ($exportedFile = $this->export($file))) { - return; - } - $lineage[$class] = \substr($exportedFile, 1, -1); - if ($parent = $r->getParentClass()) { - $this->collectLineage($parent->name, $lineage); - } - foreach ($r->getInterfaces() as $parent) { - $this->collectLineage($parent->name, $lineage); - } - foreach ($r->getTraits() as $parent) { - $this->collectLineage($parent->name, $lineage); - } - unset($lineage[$class]); - $lineage[$class] = \substr($exportedFile, 1, -1); - } - private function generateProxyClasses() : array - { - $proxyClasses = []; - $alreadyGenerated = []; - $definitions = $this->container->getDefinitions(); - $strip = '' === $this->docStar && \method_exists(Kernel::class, 'stripComments'); - $proxyDumper = $this->getProxyDumper(); - \ksort($definitions); - foreach ($definitions as $definition) { - if (!$proxyDumper->isProxyCandidate($definition)) { - continue; - } - if (isset($alreadyGenerated[$class = $definition->getClass()])) { - continue; - } - $alreadyGenerated[$class] = \true; - // register class' reflector for resource tracking - $this->container->getReflectionClass($class); - if ("\n" === ($proxyCode = "\n" . $proxyDumper->getProxyCode($definition))) { - continue; - } - if ($this->inlineRequires) { - $lineage = []; - $this->collectLineage($class, $lineage); - $code = ''; - foreach (\array_diff_key(\array_flip($lineage), $this->inlinedRequires) as $file => $class) { - if ($this->inlineFactories) { - $this->inlinedRequires[$file] = \true; - } - $code .= \sprintf("include_once %s;\n", $file); - } - $proxyCode = $code . $proxyCode; - } - if ($strip) { - $proxyCode = "inlineRequires ? \substr($proxyCode, \strlen($code)) : $proxyCode, 3)[1]; - if ($this->asFiles || $this->namespace) { - $proxyCode .= "\nif (!\\class_exists('{$proxyClass}', false)) {\n \\class_alias(__NAMESPACE__.'\\\\{$proxyClass}', '{$proxyClass}', false);\n}\n"; - } - $proxyClasses[$proxyClass . '.php'] = $proxyCode; - } - return $proxyClasses; - } - private function addServiceInclude(string $cId, Definition $definition) : string - { - $code = ''; - if ($this->inlineRequires && (!$this->isHotPath($definition) || $this->getProxyDumper()->isProxyCandidate($definition))) { - $lineage = []; - foreach ($this->inlinedDefinitions as $def) { - if (!$def->isDeprecated()) { - foreach ($this->getClasses($def, $cId) as $class) { - $this->collectLineage($class, $lineage); - } - } - } - foreach ($this->serviceCalls as $id => [$callCount, $behavior]) { - if ('service_container' !== $id && $id !== $cId && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE !== $behavior && $this->container->has($id) && $this->isTrivialInstance($def = $this->container->findDefinition($id))) { - foreach ($this->getClasses($def, $cId) as $class) { - $this->collectLineage($class, $lineage); - } - } - } - foreach (\array_diff_key(\array_flip($lineage), $this->inlinedRequires) as $file => $class) { - $code .= \sprintf(" include_once %s;\n", $file); - } - } - foreach ($this->inlinedDefinitions as $def) { - if ($file = $def->getFile()) { - $file = $this->dumpValue($file); - $file = '(' === $file[0] ? \substr($file, 1, -1) : $file; - $code .= \sprintf(" include_once %s;\n", $file); - } - } - if ('' !== $code) { - $code .= "\n"; - } - return $code; - } - /** - * @throws InvalidArgumentException - * @throws RuntimeException - */ - private function addServiceInstance(string $id, Definition $definition, bool $isSimpleInstance) : string - { - $class = $this->dumpValue($definition->getClass()); - if (\strncmp($class, "'", \strlen("'")) === 0 && \strpos($class, '$') === \false && !\preg_match('/^\'(?:\\\\{2})?[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(?:\\\\{2}[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)*\'$/', $class)) { - throw new InvalidArgumentException(\sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id)); - } - $isProxyCandidate = $this->getProxyDumper()->isProxyCandidate($definition); - $instantiation = ''; - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? \false) { - $lastWitherIndex = $k; - } - } - if (!$isProxyCandidate && $definition->isShared() && !isset($this->singleUsePrivateIds[$id]) && null === $lastWitherIndex) { - $instantiation = \sprintf('$this->%s[%s] = %s', $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', $this->doExport($id), $isSimpleInstance ? '' : '$instance'); - } elseif (!$isSimpleInstance) { - $instantiation = '$instance'; - } - $return = ''; - if ($isSimpleInstance) { - $return = 'return '; - } else { - $instantiation .= ' = '; - } - return $this->addNewInstance($definition, ' ' . $return . $instantiation, $id); - } - private function isTrivialInstance(Definition $definition) : bool - { - if ($definition->hasErrors()) { - return \true; - } - if ($definition->isSynthetic() || $definition->getFile() || $definition->getMethodCalls() || $definition->getProperties() || $definition->getConfigurator()) { - return \false; - } - if ($definition->isDeprecated() || $definition->isLazy() || $definition->getFactory() || 3 < \count($definition->getArguments())) { - return \false; - } - foreach ($definition->getArguments() as $arg) { - if (!$arg || $arg instanceof Parameter) { - continue; - } - if (\is_array($arg) && 3 >= \count($arg)) { - foreach ($arg as $k => $v) { - if ($this->dumpValue($k) !== $this->dumpValue($k, \false)) { - return \false; - } - if (!$v || $v instanceof Parameter) { - continue; - } - if ($v instanceof Reference && $this->container->has($id = (string) $v) && $this->container->findDefinition($id)->isSynthetic()) { - continue; - } - if (!\is_scalar($v) || $this->dumpValue($v) !== $this->dumpValue($v, \false)) { - return \false; - } - } - } elseif ($arg instanceof Reference && $this->container->has($id = (string) $arg) && $this->container->findDefinition($id)->isSynthetic()) { - continue; - } elseif (!\is_scalar($arg) || $this->dumpValue($arg) !== $this->dumpValue($arg, \false)) { - return \false; - } - } - return \true; - } - private function addServiceMethodCalls(Definition $definition, string $variableName, ?string $sharedNonLazyId) : string - { - $lastWitherIndex = null; - foreach ($definition->getMethodCalls() as $k => $call) { - if ($call[2] ?? \false) { - $lastWitherIndex = $k; - } - } - $calls = ''; - foreach ($definition->getMethodCalls() as $k => $call) { - $arguments = []; - foreach ($call[1] as $i => $value) { - $arguments[] = (\is_string($i) ? $i . ': ' : '') . $this->dumpValue($value); - } - $witherAssignation = ''; - if ($call[2] ?? \false) { - if (null !== $sharedNonLazyId && $lastWitherIndex === $k && 'instance' === $variableName) { - $witherAssignation = \sprintf('$this->%s[\'%s\'] = ', $definition->isPublic() ? 'services' : 'privates', $sharedNonLazyId); - } - $witherAssignation .= \sprintf('$%s = ', $variableName); - } - $calls .= $this->wrapServiceConditionals($call[1], \sprintf(" %s\$%s->%s(%s);\n", $witherAssignation, $variableName, $call[0], \implode(', ', $arguments))); - } - return $calls; - } - private function addServiceProperties(Definition $definition, string $variableName = 'instance') : string - { - $code = ''; - foreach ($definition->getProperties() as $name => $value) { - $code .= \sprintf(" \$%s->%s = %s;\n", $variableName, $name, $this->dumpValue($value)); - } - return $code; - } - private function addServiceConfigurator(Definition $definition, string $variableName = 'instance') : string - { - if (!($callable = $definition->getConfigurator())) { - return ''; - } - if (\is_array($callable)) { - if ($callable[0] instanceof Reference || $callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0])) { - return \sprintf(" %s->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - $class = $this->dumpValue($callable[0]); - // If the class is a string we can optimize away - if (\strncmp($class, "'", \strlen("'")) === 0 && \strpos($class, '$') === \false) { - return \sprintf(" %s::%s(\$%s);\n", $this->dumpLiteralClass($class), $callable[1], $variableName); - } - if (\strncmp($class, 'new ', \strlen('new ')) === 0) { - return \sprintf(" (%s)->%s(\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - return \sprintf(" [%s, '%s'](\$%s);\n", $this->dumpValue($callable[0]), $callable[1], $variableName); - } - return \sprintf(" %s(\$%s);\n", $callable, $variableName); - } - private function addService(string $id, Definition $definition) : array - { - $this->definitionVariables = new \SplObjectStorage(); - $this->referenceVariables = []; - $this->variableCount = 0; - $this->referenceVariables[$id] = new Variable('instance'); - $return = []; - if ($class = $definition->getClass()) { - $class = $class instanceof Parameter ? '%' . $class . '%' : $this->container->resolveEnvPlaceholders($class); - $return[] = \sprintf(\strncmp($class, '%', \strlen('%')) === 0 ? '@return object A %1$s instance' : '@return \\%s', \ltrim($class, '\\')); - } elseif ($definition->getFactory()) { - $factory = $definition->getFactory(); - if (\is_string($factory) && \strncmp($factory, '@=', \strlen('@=')) !== 0) { - $return[] = \sprintf('@return object An instance returned by %s()', $factory); - } elseif (\is_array($factory) && (\is_string($factory[0]) || $factory[0] instanceof Definition || $factory[0] instanceof Reference)) { - $class = $factory[0] instanceof Definition ? $factory[0]->getClass() : (string) $factory[0]; - $class = $class instanceof Parameter ? '%' . $class . '%' : $this->container->resolveEnvPlaceholders($class); - $return[] = \sprintf('@return object An instance returned by %s::%s()', $class, $factory[1]); - } - } - if ($definition->isDeprecated()) { - if ($return && \strncmp($return[\count($return) - 1], '@return', \strlen('@return')) === 0) { - $return[] = ''; - } - $deprecation = $definition->getDeprecation($id); - $return[] = \sprintf('@deprecated %s', ($deprecation['package'] || $deprecation['version'] ? "Since {$deprecation['package']} {$deprecation['version']}: " : '') . $deprecation['message']); - } - $return = \str_replace("\n * \n", "\n *\n", \implode("\n * ", $return)); - $return = $this->container->resolveEnvPlaceholders($return); - $shared = $definition->isShared() ? ' shared' : ''; - $public = $definition->isPublic() ? 'public' : 'private'; - $autowired = $definition->isAutowired() ? ' autowired' : ''; - $asFile = $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition); - $methodName = $this->generateMethodName($id); - if ($asFile || $definition->isLazy()) { - $lazyInitialization = '$lazyLoad = true'; - } else { - $lazyInitialization = ''; - } - $code = <<docStar} - * Gets the {$public} '{$id}'{$shared}{$autowired} service. - * - * {$return} -EOF; - $code = \str_replace('*/', ' ', $code) . <<hasErrors() && ($e = $definition->getErrors())) { - $code .= \sprintf(" throw new RuntimeException(%s);\n", $this->export(\reset($e))); - } else { - $this->serviceCalls = []; - $this->inlinedDefinitions = $this->getDefinitionsFromArguments([$definition], null, $this->serviceCalls); - if ($definition->isDeprecated()) { - $deprecation = $definition->getDeprecation($id); - $code .= \sprintf(" trigger_deprecation(%s, %s, %s);\n\n", $this->export($deprecation['package']), $this->export($deprecation['version']), $this->export($deprecation['message'])); - } elseif ($definition->hasTag($this->hotPathTag) || !$definition->hasTag($this->preloadTags[1])) { - foreach ($this->inlinedDefinitions as $def) { - foreach ($this->getClasses($def, $id) as $class) { - $this->preload[$class] = $class; - } - } - } - if (!$definition->isShared()) { - $factory = \sprintf('$this->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id)); - } - if ($isProxyCandidate = $this->getProxyDumper()->isProxyCandidate($definition)) { - if (!$definition->isShared()) { - $code .= \sprintf(' %s = %1$s ?? ', $factory); - if ($asFile) { - $code .= "function () {\n"; - $code .= " return self::do(\$container);\n"; - $code .= " };\n\n"; - } else { - $code .= \sprintf("\$this->%s(...);\n\n", $methodName); - } - } - $factoryCode = $asFile ? 'self::do($container, false)' : \sprintf('$this->%s(false)', $methodName); - $factoryCode = $this->getProxyDumper()->getProxyFactoryCode($definition, $id, $factoryCode); - $code .= $asFile ? \preg_replace('/function \\(([^)]*+)\\)( {|:)/', 'function (\\1) use ($container)\\2', $factoryCode) : $factoryCode; - } - $c = $this->addServiceInclude($id, $definition); - if ('' !== $c && $isProxyCandidate && !$definition->isShared()) { - $c = \implode("\n", \array_map(function ($line) { - return $line ? ' ' . $line : $line; - }, \explode("\n", $c))); - $code .= " static \$include = true;\n\n"; - $code .= " if (\$include) {\n"; - $code .= $c; - $code .= " \$include = false;\n"; - $code .= " }\n\n"; - } else { - $code .= $c; - } - $c = $this->addInlineService($id, $definition); - if (!$isProxyCandidate && !$definition->isShared()) { - $c = \implode("\n", \array_map(function ($line) { - return $line ? ' ' . $line : $line; - }, \explode("\n", $c))); - $lazyloadInitialization = $definition->isLazy() ? '$lazyLoad = true' : ''; - $c = \sprintf(" %s = function (%s) {\n%s };\n\n return %1\$s();\n", $factory, $lazyloadInitialization, $c); - } - $code .= $c; - } - if ($asFile) { - $code = \str_replace('$this', '$container', $code); - $code = \preg_replace('/function \\(([^)]*+)\\)( {|:)/', 'function (\\1) use ($container)\\2', $code); - } - $code .= " }\n"; - $this->definitionVariables = $this->inlinedDefinitions = null; - $this->referenceVariables = $this->serviceCalls = null; - return [$file, $code]; - } - private function addInlineVariables(string $id, Definition $definition, array $arguments, bool $forConstructor) : string - { - $code = ''; - foreach ($arguments as $argument) { - if (\is_array($argument)) { - $code .= $this->addInlineVariables($id, $definition, $argument, $forConstructor); - } elseif ($argument instanceof Reference) { - $code .= $this->addInlineReference($id, $definition, $argument, $forConstructor); - } elseif ($argument instanceof Definition) { - $code .= $this->addInlineService($id, $definition, $argument, $forConstructor); - } - } - return $code; - } - private function addInlineReference(string $id, Definition $definition, string $targetId, bool $forConstructor) : string - { - while ($this->container->hasAlias($targetId)) { - $targetId = (string) $this->container->getAlias($targetId); - } - [$callCount, $behavior] = $this->serviceCalls[$targetId]; - if ($id === $targetId) { - return $this->addInlineService($id, $definition, $definition); - } - if ('service_container' === $targetId || isset($this->referenceVariables[$targetId])) { - return ''; - } - if ($this->container->hasDefinition($targetId) && ($def = $this->container->getDefinition($targetId)) && !$def->isShared()) { - return ''; - } - $hasSelfRef = isset($this->circularReferences[$id][$targetId]) && !isset($this->definitionVariables[$definition]) && !($this->hasProxyDumper && $definition->isLazy()); - if ($hasSelfRef && !$forConstructor && !($forConstructor = !$this->circularReferences[$id][$targetId])) { - $code = $this->addInlineService($id, $definition, $definition); - } else { - $code = ''; - } - if (isset($this->referenceVariables[$targetId]) || 2 > $callCount && (!$hasSelfRef || !$forConstructor)) { - return $code; - } - $name = $this->getNextVariableName(); - $this->referenceVariables[$targetId] = new Variable($name); - $reference = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $behavior ? new Reference($targetId, $behavior) : null; - $code .= \sprintf(" \$%s = %s;\n", $name, $this->getServiceCall($targetId, $reference)); - if (!$hasSelfRef || !$forConstructor) { - return $code; - } - $code .= \sprintf(<<<'EOTXT' - - if (isset($this->%s[%s])) { - return $this->%1$s[%2$s]; - } - -EOTXT -, $this->container->getDefinition($id)->isPublic() ? 'services' : 'privates', $this->doExport($id)); - return $code; - } - private function addInlineService(string $id, Definition $definition, Definition $inlineDef = null, bool $forConstructor = \true) : string - { - $code = ''; - if ($isSimpleInstance = $isRootInstance = null === $inlineDef) { - foreach ($this->serviceCalls as $targetId => [$callCount, $behavior, $byConstructor]) { - if ($byConstructor && isset($this->circularReferences[$id][$targetId]) && !$this->circularReferences[$id][$targetId] && !($this->hasProxyDumper && $definition->isLazy())) { - $code .= $this->addInlineReference($id, $definition, $targetId, $forConstructor); - } - } - } - if (isset($this->definitionVariables[$inlineDef = $inlineDef ?: $definition])) { - return $code; - } - $arguments = [$inlineDef->getArguments(), $inlineDef->getFactory()]; - $code .= $this->addInlineVariables($id, $definition, $arguments, $forConstructor); - if ($arguments = \array_filter([$inlineDef->getProperties(), $inlineDef->getMethodCalls(), $inlineDef->getConfigurator()])) { - $isSimpleInstance = \false; - } elseif ($definition !== $inlineDef && 2 > $this->inlinedDefinitions[$inlineDef]) { - return $code; - } - if (isset($this->definitionVariables[$inlineDef])) { - $isSimpleInstance = \false; - } else { - $name = $definition === $inlineDef ? 'instance' : $this->getNextVariableName(); - $this->definitionVariables[$inlineDef] = new Variable($name); - $code .= '' !== $code ? "\n" : ''; - if ('instance' === $name) { - $code .= $this->addServiceInstance($id, $definition, $isSimpleInstance); - } else { - $code .= $this->addNewInstance($inlineDef, ' $' . $name . ' = ', $id); - } - if ('' !== ($inline = $this->addInlineVariables($id, $definition, $arguments, \false))) { - $code .= "\n" . $inline . "\n"; - } elseif ($arguments && 'instance' === $name) { - $code .= "\n"; - } - $code .= $this->addServiceProperties($inlineDef, $name); - $code .= $this->addServiceMethodCalls($inlineDef, $name, !$this->getProxyDumper()->isProxyCandidate($inlineDef) && $inlineDef->isShared() && !isset($this->singleUsePrivateIds[$id]) ? $id : null); - $code .= $this->addServiceConfigurator($inlineDef, $name); - } - if ($isRootInstance && !$isSimpleInstance) { - $code .= "\n return \$instance;\n"; - } - return $code; - } - private function addServices(array &$services = null) : string - { - $publicServices = $privateServices = ''; - $definitions = $this->container->getDefinitions(); - \ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic()) { - $services[$id] = $this->addService($id, $definition); - } elseif ($definition->hasTag($this->hotPathTag) || !$definition->hasTag($this->preloadTags[1])) { - $services[$id] = null; - foreach ($this->getClasses($definition, $id) as $class) { - $this->preload[$class] = $class; - } - } - } - foreach ($definitions as $id => $definition) { - if (!([$file, $code] = $services[$id]) || null !== $file) { - continue; - } - if ($definition->isPublic()) { - $publicServices .= $code; - } elseif (!$this->isTrivialInstance($definition) || isset($this->locatedIds[$id])) { - $privateServices .= $code; - } - } - return $publicServices . $privateServices; - } - private function generateServiceFiles(array $services) : iterable - { - $definitions = $this->container->getDefinitions(); - \ksort($definitions); - foreach ($definitions as $id => $definition) { - if (([$file, $code] = $services[$id]) && null !== $file && ($definition->isPublic() || !$this->isTrivialInstance($definition) || isset($this->locatedIds[$id]))) { - (yield $file => [$code, $definition->hasTag($this->hotPathTag) || !$definition->hasTag($this->preloadTags[1]) && !$definition->isDeprecated() && !$definition->hasErrors()]); - } - } - } - private function addNewInstance(Definition $definition, string $return = '', string $id = null) : string - { - $tail = $return ? ";\n" : ''; - if (BaseServiceLocator::class === $definition->getClass() && $definition->hasTag($this->serviceLocatorTag)) { - $arguments = []; - foreach ($definition->getArgument(0) as $k => $argument) { - $arguments[$k] = $argument->getValues()[0]; - } - return $return . $this->dumpValue(new ServiceLocatorArgument($arguments)) . $tail; - } - $arguments = []; - foreach ($definition->getArguments() as $i => $value) { - $arguments[] = (\is_string($i) ? $i . ': ' : '') . $this->dumpValue($value); - } - if (null !== $definition->getFactory()) { - $callable = $definition->getFactory(); - if (['Closure', 'fromCallable'] === $callable && [0] === \array_keys($definition->getArguments())) { - $callable = $definition->getArgument(0); - $arguments = ['...']; - if ($callable instanceof Reference || $callable instanceof Definition) { - $callable = [$callable, '__invoke']; - } - } - if (\is_array($callable)) { - if (!\preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*$/', $callable[1])) { - throw new RuntimeException(\sprintf('Cannot dump definition because of invalid factory method (%s).', $callable[1] ?: 'n/a')); - } - if ($callable[0] instanceof Reference || $callable[0] instanceof Definition && $this->definitionVariables->contains($callable[0])) { - return $return . \sprintf('%s->%s(%s)', $this->dumpValue($callable[0]), $callable[1], $arguments ? \implode(', ', $arguments) : '') . $tail; - } - $class = $this->dumpValue($callable[0]); - // If the class is a string we can optimize away - if (\strncmp($class, "'", \strlen("'")) === 0 && \strpos($class, '$') === \false) { - if ("''" === $class) { - throw new RuntimeException(\sprintf('Cannot dump definition: "%s" service is defined to be created by a factory but is missing the service reference, did you forget to define the factory service id or class?', $id ? 'The "' . $id . '"' : 'inline')); - } - return $return . \sprintf('%s::%s(%s)', $this->dumpLiteralClass($class), $callable[1], $arguments ? \implode(', ', $arguments) : '') . $tail; - } - if (\strncmp($class, 'new ', \strlen('new ')) === 0) { - return $return . \sprintf('(%s)->%s(%s)', $class, $callable[1], $arguments ? \implode(', ', $arguments) : '') . $tail; - } - return $return . \sprintf("[%s, '%s'](%s)", $class, $callable[1], $arguments ? \implode(', ', $arguments) : '') . $tail; - } - if (\is_string($callable) && \strncmp($callable, '@=', \strlen('@=')) === 0) { - return $return . \sprintf('(($args = %s) ? (%s) : null)', $this->dumpValue(new ServiceLocatorArgument($definition->getArguments())), $this->getExpressionLanguage()->compile(\substr($callable, 2), ['this' => 'container', 'args' => 'args'])) . $tail; - } - return $return . \sprintf('%s(%s)', $this->dumpLiteralClass($this->dumpValue($callable)), $arguments ? \implode(', ', $arguments) : '') . $tail; - } - if (null === ($class = $definition->getClass())) { - throw new RuntimeException('Cannot dump definitions which have no class nor factory.'); - } - return $return . \sprintf('new %s(%s)', $this->dumpLiteralClass($this->dumpValue($class)), \implode(', ', $arguments)) . $tail; - } - private function startClass(string $class, string $baseClass, bool $hasProxyClasses) : string - { - $namespaceLine = !$this->asFiles && $this->namespace ? "\nnamespace {$this->namespace};\n" : ''; - $code = <<docStar} - * @internal This class has been auto-generated by the Symfony Dependency Injection Component. - */ -class {$class} extends {$baseClass} -{ - protected \$parameters = []; - - public function __construct() - { - -EOF; - if ($this->asFiles) { - $code = \str_replace('$parameters = []', "\$containerDir;\n protected \$parameters = [];\n private \$buildParameters", $code); - $code = \str_replace('__construct()', '__construct(array $buildParameters = [], $containerDir = __DIR__)', $code); - $code .= " \$this->buildParameters = \$buildParameters;\n"; - $code .= " \$this->containerDir = \$containerDir;\n"; - if (null !== $this->targetDirRegex) { - $code = \str_replace('$parameters = []', "\$targetDir;\n protected \$parameters = []", $code); - $code .= ' $this->targetDir = \\dirname($containerDir);' . "\n"; - } - } - if (Container::class !== $this->baseClass) { - $r = $this->container->getReflectionClass($this->baseClass, \false); - if (null !== $r && null !== ($constructor = $r->getConstructor()) && 0 === $constructor->getNumberOfRequiredParameters() && Container::class !== $constructor->getDeclaringClass()->name) { - $code .= " parent::__construct();\n"; - $code .= " \$this->parameterBag = null;\n\n"; - } - } - if ($this->container->getParameterBag()->all()) { - $code .= " \$this->parameters = \$this->getDefaultParameters();\n\n"; - } - $code .= " \$this->services = \$this->privates = [];\n"; - $code .= $this->addSyntheticIds(); - $code .= $this->addMethodMap(); - $code .= $this->asFiles && !$this->inlineFactories ? $this->addFileMap() : ''; - $code .= $this->addAliases(); - $code .= $this->addInlineRequires($hasProxyClasses); - $code .= <<addRemovedIds(); - if ($this->asFiles && !$this->inlineFactories) { - $code .= <<<'EOF' - - protected function load($file, $lazyLoad = true) - { - if (class_exists($class = __NAMESPACE__.'\\'.$file, false)) { - return $class::do($this, $lazyLoad); - } - - if ('.' === $file[-4]) { - $class = substr($class, 0, -4); - } else { - $file .= '.php'; - } - - $service = require $this->containerDir.\DIRECTORY_SEPARATOR.$file; - - return class_exists($class, false) ? $class::do($this, $lazyLoad) : $service; - } - -EOF; - } - $proxyDumper = $this->getProxyDumper(); - foreach ($this->container->getDefinitions() as $definition) { - if (!$proxyDumper->isProxyCandidate($definition)) { - continue; - } - if ($this->asFiles && !$this->inlineFactories) { - $proxyLoader = "class_exists(\$class, false) || require __DIR__.'/'.\$class.'.php';\n\n "; - } else { - $proxyLoader = ''; - } - $code .= <<container->getDefinitions(); - \ksort($definitions); - foreach ($definitions as $id => $definition) { - if ($definition->isSynthetic() && 'service_container' !== $id) { - $code .= ' ' . $this->doExport($id) . " => true,\n"; - } - } - return $code ? " \$this->syntheticIds = [\n{$code} ];\n" : ''; - } - private function addRemovedIds() : string - { - $ids = $this->container->getRemovedIds(); - foreach ($this->container->getDefinitions() as $id => $definition) { - if (!$definition->isPublic()) { - $ids[$id] = \true; - } - } - if (!$ids) { - return ''; - } - if ($this->asFiles) { - $code = "require \$this->containerDir.\\DIRECTORY_SEPARATOR.'removed-ids.php'"; - } else { - $code = ''; - $ids = \array_keys($ids); - \sort($ids); - foreach ($ids as $id) { - if (\preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id)) { - continue; - } - $code .= ' ' . $this->doExport($id) . " => true,\n"; - } - $code = "[\n{$code} ]"; - } - return <<container->getDefinitions(); - \ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic() && $definition->isPublic() && (!$this->asFiles || $this->inlineFactories || $this->isHotPath($definition))) { - $code .= ' ' . $this->doExport($id) . ' => ' . $this->doExport($this->generateMethodName($id)) . ",\n"; - } - } - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - if (!$id->isDeprecated()) { - continue; - } - $code .= ' ' . $this->doExport($alias) . ' => ' . $this->doExport($this->generateMethodName($alias)) . ",\n"; - } - return $code ? " \$this->methodMap = [\n{$code} ];\n" : ''; - } - private function addFileMap() : string - { - $code = ''; - $definitions = $this->container->getDefinitions(); - \ksort($definitions); - foreach ($definitions as $id => $definition) { - if (!$definition->isSynthetic() && $definition->isPublic() && !$this->isHotPath($definition)) { - $code .= \sprintf(" %s => '%s',\n", $this->doExport($id), $this->generateMethodName($id)); - } - } - return $code ? " \$this->fileMap = [\n{$code} ];\n" : ''; - } - private function addAliases() : string - { - if (!($aliases = $this->container->getAliases())) { - return "\n \$this->aliases = [];\n"; - } - $code = " \$this->aliases = [\n"; - \ksort($aliases); - foreach ($aliases as $alias => $id) { - if ($id->isDeprecated()) { - continue; - } - $id = (string) $id; - while (isset($aliases[$id])) { - $id = (string) $aliases[$id]; - } - $code .= ' ' . $this->doExport($alias) . ' => ' . $this->doExport($id) . ",\n"; - } - return $code . " ];\n"; - } - private function addDeprecatedAliases() : string - { - $code = ''; - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $definition) { - if (!$definition->isDeprecated()) { - continue; - } - $public = $definition->isPublic() ? 'public' : 'private'; - $id = (string) $definition; - $methodNameAlias = $this->generateMethodName($alias); - $idExported = $this->export($id); - $deprecation = $definition->getDeprecation($alias); - $packageExported = $this->export($deprecation['package']); - $versionExported = $this->export($deprecation['version']); - $messageExported = $this->export($deprecation['message']); - $code .= <<docStar} - * Gets the {$public} '{$alias}' alias. - * - * @return object The "{$id}" service. - */ - protected function {$methodNameAlias}() - { - trigger_deprecation({$packageExported}, {$versionExported}, {$messageExported}); - - return \$this->get({$idExported}); - } - -EOF; - } - return $code; - } - private function addInlineRequires(bool $hasProxyClasses) : string - { - $lineage = []; - $hotPathServices = $this->hotPathTag && $this->inlineRequires ? $this->container->findTaggedServiceIds($this->hotPathTag) : []; - foreach ($hotPathServices as $id => $tags) { - $definition = $this->container->getDefinition($id); - if ($this->getProxyDumper()->isProxyCandidate($definition)) { - continue; - } - $inlinedDefinitions = $this->getDefinitionsFromArguments([$definition]); - foreach ($inlinedDefinitions as $def) { - foreach ($this->getClasses($def, $id) as $class) { - $this->collectLineage($class, $lineage); - } - } - } - $code = ''; - foreach ($lineage as $file) { - if (!isset($this->inlinedRequires[$file])) { - $this->inlinedRequires[$file] = \true; - $code .= \sprintf("\n include_once %s;", $file); - } - } - if ($hasProxyClasses) { - $code .= "\n include_once __DIR__.'/proxy-classes.php';"; - } - return $code ? \sprintf("\n \$this->privates['service_container'] = function () {%s\n };\n", $code) : ''; - } - private function addDefaultParametersMethod() : string - { - if (!$this->container->getParameterBag()->all()) { - return ''; - } - $php = []; - $dynamicPhp = []; - foreach ($this->container->getParameterBag()->all() as $key => $value) { - if ($key !== ($resolvedKey = $this->container->resolveEnvPlaceholders($key))) { - throw new InvalidArgumentException(\sprintf('Parameter name cannot use env parameters: "%s".', $resolvedKey)); - } - $hasEnum = \false; - $export = $this->exportParameters([$value], '', 12, $hasEnum); - $export = \explode('0 => ', \substr(\rtrim($export, " ]\n"), 2, -1), 2); - if ($hasEnum || \preg_match("/\\\$this->(?:getEnv\\('(?:[-.\\w]*+:)*+\\w++'\\)|targetDir\\.'')/", $export[1])) { - $dynamicPhp[$key] = \sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]); - } else { - $php[] = \sprintf('%s%s => %s,', $export[0], $this->export($key), $export[1]); - } - } - $parameters = \sprintf("[\n%s\n%s]", \implode("\n", $php), \str_repeat(' ', 8)); - $code = <<<'EOF' - - public function getParameter(string $name): array|bool|string|int|float|\UnitEnum|null - { - if (isset($this->buildParameters[$name])) { - return $this->buildParameters[$name]; - } - - if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters))) { - throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name)); - } - if (isset($this->loadedDynamicParameters[$name])) { - return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - - return $this->parameters[$name]; - } - - public function hasParameter(string $name): bool - { - if (isset($this->buildParameters[$name])) { - return true; - } - - return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || \array_key_exists($name, $this->parameters); - } - - public function setParameter(string $name, $value): void - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - - public function getParameterBag(): ParameterBagInterface - { - if (null === $this->parameterBag) { - $parameters = $this->parameters; - foreach ($this->loadedDynamicParameters as $name => $loaded) { - $parameters[$name] = $loaded ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name); - } - foreach ($this->buildParameters as $name => $value) { - $parameters[$name] = $value; - } - $this->parameterBag = new FrozenParameterBag($parameters); - } - - return $this->parameterBag; - } - -EOF; - if (!$this->asFiles) { - $code = \preg_replace('/^.*buildParameters.*\\n.*\\n.*\\n\\n?/m', '', $code); - } - if ($dynamicPhp) { - $loadedDynamicParameters = $this->exportParameters(\array_combine(\array_keys($dynamicPhp), \array_fill(0, \count($dynamicPhp), \false)), '', 8); - $getDynamicParameter = <<<'EOF' - $value = match ($name) { -%s - default => throw new InvalidArgumentException(sprintf('The dynamic parameter "%%s" must be defined.', $name)), - }; - $this->loadedDynamicParameters[$name] = true; - - return $this->dynamicParameters[$name] = $value; -EOF; - $getDynamicParameter = \sprintf($getDynamicParameter, \implode("\n", $dynamicPhp)); - } else { - $loadedDynamicParameters = '[]'; - $getDynamicParameter = \str_repeat(' ', 8) . 'throw new InvalidArgumentException(sprintf(\'The dynamic parameter "%s" must be defined.\', $name));'; - } - $code .= << $value) { - if (\is_array($value)) { - $value = $this->exportParameters($value, $path . '/' . $key, $indent + 4, $hasEnum); - } elseif ($value instanceof ArgumentInterface) { - throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain special arguments. "%s" found in "%s".', \get_debug_type($value), $path . '/' . $key)); - } elseif ($value instanceof Variable) { - throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain variable references. Variable "%s" found in "%s".', $value, $path . '/' . $key)); - } elseif ($value instanceof Definition) { - throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain service definitions. Definition for "%s" found in "%s".', $value->getClass(), $path . '/' . $key)); - } elseif ($value instanceof Reference) { - throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain references to other services (reference to service "%s" found in "%s").', $value, $path . '/' . $key)); - } elseif ($value instanceof Expression) { - throw new InvalidArgumentException(\sprintf('You cannot dump a container with parameters that contain expressions. Expression "%s" found in "%s".', $value, $path . '/' . $key)); - } elseif ($value instanceof \UnitEnum) { - $hasEnum = \true; - $value = \sprintf('\\%s::%s', \get_class($value), $value->name); - } else { - $value = $this->export($value); - } - $php[] = \sprintf('%s%s => %s,', \str_repeat(' ', $indent), $this->export($key), $value); - } - return \sprintf("[\n%s\n%s]", \implode("\n", $php), \str_repeat(' ', $indent - 4)); - } - private function endClass() : string - { - return <<<'EOF' -} - -EOF; - } - /** - * @param mixed $value - */ - private function wrapServiceConditionals($value, string $code) : string - { - if (!($condition = $this->getServiceConditionals($value))) { - return $code; - } - // re-indent the wrapped code - $code = \implode("\n", \array_map(function ($line) { - return $line ? ' ' . $line : $line; - }, \explode("\n", $code))); - return \sprintf(" if (%s) {\n%s }\n", $condition, $code); - } - /** - * @param mixed $value - */ - private function getServiceConditionals($value) : string - { - $conditions = []; - foreach (ContainerBuilder::getInitializedConditionals($value) as $service) { - if (!$this->container->hasDefinition($service)) { - return 'false'; - } - $conditions[] = \sprintf('isset($this->%s[%s])', $this->container->getDefinition($service)->isPublic() ? 'services' : 'privates', $this->doExport($service)); - } - foreach (ContainerBuilder::getServiceConditionals($value) as $service) { - if ($this->container->hasDefinition($service) && !$this->container->getDefinition($service)->isPublic()) { - continue; - } - $conditions[] = \sprintf('$this->has(%s)', $this->doExport($service)); - } - if (!$conditions) { - return ''; - } - return \implode(' && ', $conditions); - } - private function getDefinitionsFromArguments(array $arguments, \SplObjectStorage $definitions = null, array &$calls = [], bool $byConstructor = null) : \SplObjectStorage - { - if (null === $definitions) { - $definitions = new \SplObjectStorage(); - } - foreach ($arguments as $argument) { - if (\is_array($argument)) { - $this->getDefinitionsFromArguments($argument, $definitions, $calls, $byConstructor); - } elseif ($argument instanceof Reference) { - $id = (string) $argument; - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - if (!isset($calls[$id])) { - $calls[$id] = [0, $argument->getInvalidBehavior(), $byConstructor]; - } else { - $calls[$id][1] = \min($calls[$id][1], $argument->getInvalidBehavior()); - } - ++$calls[$id][0]; - } elseif (!$argument instanceof Definition) { - // no-op - } elseif (isset($definitions[$argument])) { - $definitions[$argument] = 1 + $definitions[$argument]; - } else { - $definitions[$argument] = 1; - $arguments = [$argument->getArguments(), $argument->getFactory()]; - $this->getDefinitionsFromArguments($arguments, $definitions, $calls, null === $byConstructor || $byConstructor); - $arguments = [$argument->getProperties(), $argument->getMethodCalls(), $argument->getConfigurator()]; - $this->getDefinitionsFromArguments($arguments, $definitions, $calls, null !== $byConstructor && $byConstructor); - } - } - return $definitions; - } - /** - * @throws RuntimeException - * @param mixed $value - */ - private function dumpValue($value, bool $interpolate = \true) : string - { - if (\is_array($value)) { - if ($value && $interpolate && \false !== ($param = \array_search($value, $this->container->getParameterBag()->all(), \true))) { - return $this->dumpValue("%{$param}%"); - } - $code = []; - foreach ($value as $k => $v) { - $code[] = \sprintf('%s => %s', $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate)); - } - return \sprintf('[%s]', \implode(', ', $code)); - } elseif ($value instanceof ArgumentInterface) { - $scope = [$this->definitionVariables, $this->referenceVariables]; - $this->definitionVariables = $this->referenceVariables = null; - try { - if ($value instanceof ServiceClosureArgument) { - $value = $value->getValues()[0]; - $code = $this->dumpValue($value, $interpolate); - $returnedType = ''; - if ($value instanceof TypedReference) { - $returnedType = \sprintf(': %s\\%s', ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE >= $value->getInvalidBehavior() ? '' : '?', \str_replace(['|', '&'], ['|\\', '&\\'], $value->getType())); - } - $code = \sprintf('return %s;', $code); - $attribute = ''; - if ($value instanceof Reference) { - $attribute = 'name: ' . $this->dumpValue((string) $value, $interpolate); - if ($this->container->hasDefinition($value) && ($class = $this->container->findDefinition($value)->getClass()) && $class !== (string) $value) { - $attribute .= ', class: ' . $this->dumpValue($class, $interpolate); - } - $attribute = \sprintf('#[\\Closure(%s)] ', $attribute); - } - return \sprintf("%sfunction ()%s {\n %s\n }", $attribute, $returnedType, $code); - } - if ($value instanceof IteratorArgument) { - $operands = [0]; - $code = []; - $code[] = 'new RewindableGenerator(function () {'; - if (!($values = $value->getValues())) { - $code[] = ' return new \\EmptyIterator();'; - } else { - $countCode = []; - $countCode[] = 'function () {'; - foreach ($values as $k => $v) { - ($c = $this->getServiceConditionals($v)) ? $operands[] = "(int) ({$c})" : ++$operands[0]; - $v = $this->wrapServiceConditionals($v, \sprintf(" yield %s => %s;\n", $this->dumpValue($k, $interpolate), $this->dumpValue($v, $interpolate))); - foreach (\explode("\n", $v) as $v) { - if ($v) { - $code[] = ' ' . $v; - } - } - } - $countCode[] = \sprintf(' return %s;', \implode(' + ', $operands)); - $countCode[] = ' }'; - } - $code[] = \sprintf(' }, %s)', \count($operands) > 1 ? \implode("\n", $countCode) : $operands[0]); - return \implode("\n", $code); - } - if ($value instanceof ServiceLocatorArgument) { - $serviceMap = ''; - $serviceTypes = ''; - foreach ($value->getValues() as $k => $v) { - if (!$v instanceof Reference) { - $serviceMap .= \sprintf("\n %s => [%s],", $this->export($k), $this->dumpValue($v)); - $serviceTypes .= \sprintf("\n %s => '?',", $this->export($k)); - continue; - } - $id = (string) $v; - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - $definition = $this->container->getDefinition($id); - $load = !($definition->hasErrors() && ($e = $definition->getErrors())) ? $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition) : \reset($e); - $serviceMap .= \sprintf("\n %s => [%s, %s, %s, %s],", $this->export($k), $this->export($definition->isShared() ? $definition->isPublic() ? 'services' : 'privates' : \false), $this->doExport($id), $this->export(ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE !== $v->getInvalidBehavior() && !\is_string($load) ? $this->generateMethodName($id) : null), $this->export($load)); - $serviceTypes .= \sprintf("\n %s => %s,", $this->export($k), $this->export($v instanceof TypedReference ? $v->getType() : '?')); - $this->locatedIds[$id] = \true; - } - $this->addGetService = \true; - return \sprintf('new \\%s($this->getService, [%s%s], [%s%s])', ServiceLocator::class, $serviceMap, $serviceMap ? "\n " : '', $serviceTypes, $serviceTypes ? "\n " : ''); - } - } finally { - [$this->definitionVariables, $this->referenceVariables] = $scope; - } - } elseif ($value instanceof Definition) { - if ($value->hasErrors() && ($e = $value->getErrors())) { - return \sprintf('throw new RuntimeException(%s)', $this->export(\reset($e))); - } - if (($nullsafeVariable1 = $this->definitionVariables) ? $nullsafeVariable1->contains($value) : null) { - return $this->dumpValue($this->definitionVariables[$value], $interpolate); - } - if ($value->getMethodCalls()) { - throw new RuntimeException('Cannot dump definitions which have method calls.'); - } - if ($value->getProperties()) { - throw new RuntimeException('Cannot dump definitions which have properties.'); - } - if (null !== $value->getConfigurator()) { - throw new RuntimeException('Cannot dump definitions which have a configurator.'); - } - return $this->addNewInstance($value); - } elseif ($value instanceof Variable) { - return '$' . $value; - } elseif ($value instanceof Reference) { - $id = (string) $value; - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - if (null !== $this->referenceVariables && isset($this->referenceVariables[$id])) { - return $this->dumpValue($this->referenceVariables[$id], $interpolate); - } - return $this->getServiceCall($id, $value); - } elseif ($value instanceof Expression) { - return $this->getExpressionLanguage()->compile((string) $value, ['this' => 'container']); - } elseif ($value instanceof Parameter) { - return $this->dumpParameter($value); - } elseif (\true === $interpolate && \is_string($value)) { - if (\preg_match('/^%([^%]+)%$/', $value, $match)) { - // we do this to deal with non string values (Boolean, integer, ...) - // the preg_replace_callback converts them to strings - return $this->dumpParameter($match[1]); - } else { - $replaceParameters = function ($match) { - return "'." . $this->dumpParameter($match[2]) . ".'"; - }; - $code = \str_replace('%%', '%', \preg_replace_callback('/(?export($value))); - return $code; - } - } elseif ($value instanceof \UnitEnum) { - return \sprintf('\\%s::%s', \get_class($value), $value->name); - } elseif ($value instanceof AbstractArgument) { - throw new RuntimeException($value->getTextWithContext()); - } elseif (\is_object($value) || \is_resource($value)) { - throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); - } - return $this->export($value); - } - /** - * Dumps a string to a literal (aka PHP Code) class value. - * - * @throws RuntimeException - */ - private function dumpLiteralClass(string $class) : string - { - if (\strpos($class, '$') !== \false) { - return \sprintf('${($_ = %s) && false ?: "_"}', $class); - } - if (\strncmp($class, "'", \strlen("'")) !== 0 || !\preg_match('/^\'(?:\\\\{2})?[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*(?:\\\\{2}[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*)*\'$/', $class)) { - throw new RuntimeException(\sprintf('Cannot dump definition because of invalid class name (%s).', $class ?: 'n/a')); - } - $class = \substr(\str_replace('\\\\', '\\', $class), 1, -1); - return \strncmp($class, '\\', \strlen('\\')) === 0 ? $class : '\\' . $class; - } - private function dumpParameter(string $name) : string - { - if ($this->container->hasParameter($name)) { - $value = $this->container->getParameter($name); - $dumpedValue = $this->dumpValue($value, \false); - if (!$value || !\is_array($value)) { - return $dumpedValue; - } - if (!\preg_match("/\\\$this->(?:getEnv\\('(?:[-.\\w]*+:)*+\\w++'\\)|targetDir\\.'')/", $dumpedValue)) { - return \sprintf('$this->parameters[%s]', $this->doExport($name)); - } - } - return \sprintf('$this->getParameter(%s)', $this->doExport($name)); - } - private function getServiceCall(string $id, Reference $reference = null) : string - { - while ($this->container->hasAlias($id)) { - $id = (string) $this->container->getAlias($id); - } - if ('service_container' === $id) { - return '$this'; - } - if ($this->container->hasDefinition($id) && ($definition = $this->container->getDefinition($id))) { - if ($definition->isSynthetic()) { - $code = \sprintf('$this->get(%s%s)', $this->doExport($id), null !== $reference ? ', ' . $reference->getInvalidBehavior() : ''); - } elseif (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { - $code = 'null'; - if (!$definition->isShared()) { - return $code; - } - } elseif ($this->isTrivialInstance($definition)) { - if ($definition->hasErrors() && ($e = $definition->getErrors())) { - return \sprintf('throw new RuntimeException(%s)', $this->export(\reset($e))); - } - $code = $this->addNewInstance($definition, '', $id); - if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) { - $code = \sprintf('$this->%s[%s] = %s', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code); - } - $code = "({$code})"; - } else { - $code = $this->asFiles && !$this->inlineFactories && !$this->isHotPath($definition) ? "\$this->load('%s')" : '$this->%s()'; - $code = \sprintf($code, $this->generateMethodName($id)); - if (!$definition->isShared()) { - $factory = \sprintf('$this->factories%s[%s]', $definition->isPublic() ? '' : "['service_container']", $this->doExport($id)); - $code = \sprintf('(isset(%s) ? %1$s() : %s)', $factory, $code); - } - } - if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) { - $code = \sprintf('($this->%s[%s] ?? %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code); - } - return $code; - } - if (null !== $reference && ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $reference->getInvalidBehavior()) { - return 'null'; - } - if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $reference->getInvalidBehavior()) { - $code = \sprintf('$this->get(%s, ContainerInterface::NULL_ON_INVALID_REFERENCE)', $this->doExport($id)); - } else { - $code = \sprintf('$this->get(%s)', $this->doExport($id)); - } - return \sprintf('($this->services[%s] ?? %s)', $this->doExport($id), $code); - } - /** - * Initializes the method names map to avoid conflicts with the Container methods. - */ - private function initializeMethodNamesMap(string $class) - { - $this->serviceIdToMethodNameMap = []; - $this->usedMethodNames = []; - if ($reflectionClass = $this->container->getReflectionClass($class)) { - foreach ($reflectionClass->getMethods() as $method) { - $this->usedMethodNames[\strtolower($method->getName())] = \true; - } - } - } - /** - * @throws InvalidArgumentException - */ - private function generateMethodName(string $id) : string - { - if (isset($this->serviceIdToMethodNameMap[$id])) { - return $this->serviceIdToMethodNameMap[$id]; - } - $i = \strrpos($id, '\\'); - $name = Container::camelize(\false !== $i && isset($id[1 + $i]) ? \substr($id, 1 + $i) : $id); - $name = \preg_replace('/[^a-zA-Z0-9_\\x7f-\\xff]/', '', $name); - $methodName = 'get' . $name . 'Service'; - $suffix = 1; - while (isset($this->usedMethodNames[\strtolower($methodName)])) { - ++$suffix; - $methodName = 'get' . $name . $suffix . 'Service'; - } - $this->serviceIdToMethodNameMap[$id] = $methodName; - $this->usedMethodNames[\strtolower($methodName)] = \true; - return $methodName; - } - private function getNextVariableName() : string - { - $firstChars = self::FIRST_CHARS; - $firstCharsLength = \strlen($firstChars); - $nonFirstChars = self::NON_FIRST_CHARS; - $nonFirstCharsLength = \strlen($nonFirstChars); - while (\true) { - $name = ''; - $i = $this->variableCount; - if ('' === $name) { - $name .= $firstChars[$i % $firstCharsLength]; - $i = (int) ($i / $firstCharsLength); - } - while ($i > 0) { - --$i; - $name .= $nonFirstChars[$i % $nonFirstCharsLength]; - $i = (int) ($i / $nonFirstCharsLength); - } - ++$this->variableCount; - // check that the name is not reserved - if (\in_array($name, $this->reservedVariables, \true)) { - continue; - } - return $name; - } - } - private function getExpressionLanguage() : ExpressionLanguage - { - if (!isset($this->expressionLanguage)) { - if (!\class_exists(\RectorPrefix202308\Symfony\Component\ExpressionLanguage\ExpressionLanguage::class)) { - throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.'); - } - $providers = $this->container->getExpressionLanguageProviders(); - $this->expressionLanguage = new ExpressionLanguage(null, $providers, function ($arg) { - $id = '""' === \substr_replace($arg, '', 1, -1) ? \stripcslashes(\substr($arg, 1, -1)) : null; - if (null !== $id && ($this->container->hasAlias($id) || $this->container->hasDefinition($id))) { - return $this->getServiceCall($id); - } - return \sprintf('$this->get(%s)', $arg); - }); - if ($this->container->isTrackingResources()) { - foreach ($providers as $provider) { - $this->container->addObjectResource($provider); - } - } - } - return $this->expressionLanguage; - } - private function isHotPath(Definition $definition) : bool - { - return $this->hotPathTag && $definition->hasTag($this->hotPathTag) && !$definition->isDeprecated(); - } - private function isSingleUsePrivateNode(ServiceReferenceGraphNode $node) : bool - { - if ($node->getValue()->isPublic()) { - return \false; - } - $ids = []; - foreach ($node->getInEdges() as $edge) { - if (!($value = $edge->getSourceNode()->getValue())) { - continue; - } - if ($edge->isLazy() || !$value instanceof Definition || !$value->isShared()) { - return \false; - } - $ids[$edge->getSourceNode()->getId()] = \true; - } - return 1 === \count($ids); - } - /** - * @param mixed $value - * @return mixed - */ - private function export($value) - { - if (null !== $this->targetDirRegex && \is_string($value) && \preg_match($this->targetDirRegex, $value, $matches, \PREG_OFFSET_CAPTURE)) { - $suffix = $matches[0][1] + \strlen($matches[0][0]); - $matches[0][1] += \strlen($matches[1][0]); - $prefix = $matches[0][1] ? $this->doExport(\substr($value, 0, $matches[0][1]), \true) . '.' : ''; - if ('\\' === \DIRECTORY_SEPARATOR && isset($value[$suffix])) { - $cookie = '\\' . \random_int(100000, \PHP_INT_MAX); - $suffix = '.' . $this->doExport(\str_replace('\\', $cookie, \substr($value, $suffix)), \true); - $suffix = \str_replace('\\' . $cookie, "'.\\DIRECTORY_SEPARATOR.'", $suffix); - } else { - $suffix = isset($value[$suffix]) ? '.' . $this->doExport(\substr($value, $suffix), \true) : ''; - } - $dirname = $this->asFiles ? '$this->containerDir' : '__DIR__'; - $offset = 2 + $this->targetDirMaxMatches - \count($matches); - if (0 < $offset) { - $dirname = \sprintf('\\dirname(__DIR__, %d)', $offset + (int) $this->asFiles); - } elseif ($this->asFiles) { - $dirname = "\$this->targetDir.''"; - // empty string concatenation on purpose - } - if ($prefix || $suffix) { - return \sprintf('(%s%s%s)', $prefix, $dirname, $suffix); - } - return $dirname; - } - return $this->doExport($value, \true); - } - /** - * @param mixed $value - * @return mixed - */ - private function doExport($value, bool $resolveEnv = \false) - { - $shouldCacheValue = $resolveEnv && \is_string($value); - if ($shouldCacheValue && isset($this->exportedVariables[$value])) { - return $this->exportedVariables[$value]; - } - if (\is_string($value) && \strpos($value, "\n") !== \false) { - $cleanParts = \explode("\n", $value); - $cleanParts = \array_map(function ($part) { - return \var_export($part, \true); - }, $cleanParts); - $export = \implode('."\\n".', $cleanParts); - } else { - $export = \var_export($value, \true); - } - if ($this->asFiles) { - if (\strpos($export, '$this') !== \false) { - $export = \str_replace('$this', "\$'.'this", $export); - } - if (\strpos($export, 'function () {') !== \false) { - $export = \str_replace('function () {', "function ('.') {", $export); - } - } - if ($resolveEnv && "'" === $export[0] && $export !== ($resolvedExport = $this->container->resolveEnvPlaceholders($export, "'.\$this->getEnv('string:%s').'"))) { - $export = $resolvedExport; - if (\substr_compare($export, ".''", -\strlen(".''")) === 0) { - $export = \substr($export, 0, -3); - if ("'" === $export[1]) { - $export = \substr_replace($export, '', 18, 7); - } - } - if ("'" === $export[1]) { - $export = \substr($export, 3); - } - } - if ($shouldCacheValue) { - $this->exportedVariables[$value] = $export; - } - return $export; - } - private function getAutoloadFile() : ?string - { - $file = null; - foreach (\spl_autoload_functions() as $autoloader) { - if (!\is_array($autoloader)) { - continue; - } - if ($autoloader[0] instanceof DebugClassLoader || $autoloader[0] instanceof LegacyDebugClassLoader) { - $autoloader = $autoloader[0]->getClassLoader(); - } - if (!\is_array($autoloader) || !$autoloader[0] instanceof ClassLoader || !$autoloader[0]->findFile(__CLASS__)) { - continue; - } - foreach (\get_declared_classes() as $class) { - if (\strncmp($class, 'ComposerAutoloaderInit', \strlen('ComposerAutoloaderInit')) === 0 && $class::getLoader() === $autoloader[0]) { - $file = \dirname((new \ReflectionClass($class))->getFileName(), 2) . '/autoload.php'; - if (null !== $this->targetDirRegex && \preg_match($this->targetDirRegex . 'A', $file)) { - return $file; - } - } - } - } - return $file; - } - private function getClasses(Definition $definition, string $id) : array - { - $classes = []; - while ($definition instanceof Definition) { - foreach ($definition->getTag($this->preloadTags[0]) as $tag) { - if (!isset($tag['class'])) { - throw new InvalidArgumentException(\sprintf('Missing attribute "class" on tag "%s" for service "%s".', $this->preloadTags[0], $id)); - } - $classes[] = \trim($tag['class'], '\\'); - } - if ($class = $definition->getClass()) { - $classes[] = \trim($class, '\\'); - } - $factory = $definition->getFactory(); - if (!\is_array($factory)) { - $factory = [$factory]; - } - if (\is_string($factory[0])) { - if (\false !== ($i = \strrpos($factory[0], '::'))) { - $factory[0] = \substr($factory[0], 0, $i); - } - $classes[] = \trim($factory[0], '\\'); - } - $definition = $factory[0]; - } - return $classes; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Preloader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Preloader.php deleted file mode 100644 index b11ceac74..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/Preloader.php +++ /dev/null @@ -1,106 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Dumper; - -/** - * @author Nicolas Grekas - */ -final class Preloader -{ - public static function append(string $file, array $list) : void - { - if (!\file_exists($file)) { - throw new \LogicException(\sprintf('File "%s" does not exist.', $file)); - } - $cacheDir = \dirname($file); - $classes = []; - foreach ($list as $item) { - if (\strncmp($item, $cacheDir, \strlen($cacheDir)) === 0) { - \file_put_contents($file, \sprintf("require_once __DIR__.%s;\n", \var_export(\strtr(\substr($item, \strlen($cacheDir)), \DIRECTORY_SEPARATOR, '/'), \true)), \FILE_APPEND); - continue; - } - $classes[] = \sprintf("\$classes[] = %s;\n", \var_export($item, \true)); - } - \file_put_contents($file, \sprintf("\n\$classes = [];\n%s\$preloaded = Preloader::preload(\$classes, \$preloaded);\n", \implode('', $classes)), \FILE_APPEND); - } - public static function preload(array $classes, array $preloaded = []) : array - { - \set_error_handler(function ($t, $m, $f, $l) { - if (\error_reporting() & $t) { - if (__FILE__ !== $f) { - throw new \ErrorException($m, 0, $t, $f, $l); - } - throw new \ReflectionException($m); - } - }); - $prev = []; - try { - while ($prev !== $classes) { - $prev = $classes; - foreach ($classes as $c) { - if (!isset($preloaded[$c])) { - self::doPreload($c, $preloaded); - } - } - $classes = \array_merge(\get_declared_classes(), \get_declared_interfaces(), \get_declared_traits()); - } - } finally { - \restore_error_handler(); - } - return $preloaded; - } - private static function doPreload(string $class, array &$preloaded) : void - { - if (isset($preloaded[$class]) || \in_array($class, ['self', 'static', 'parent'], \true)) { - return; - } - $preloaded[$class] = \true; - try { - if (!\class_exists($class) && !\interface_exists($class, \false) && !\trait_exists($class, \false)) { - return; - } - $r = new \ReflectionClass($class); - if ($r->isInternal()) { - return; - } - $r->getConstants(); - $r->getDefaultProperties(); - foreach ($r->getProperties(\ReflectionProperty::IS_PUBLIC) as $p) { - self::preloadType(\method_exists($p, 'getType') ? $p->getType() : null, $preloaded); - } - foreach ($r->getMethods(\ReflectionMethod::IS_PUBLIC) as $m) { - foreach ($m->getParameters() as $p) { - if ($p->isDefaultValueAvailable() && $p->isDefaultValueConstant()) { - $c = $p->getDefaultValueConstantName(); - if ($i = \strpos($c, '::')) { - self::doPreload(\substr($c, 0, $i), $preloaded); - } - } - self::preloadType($p->getType(), $preloaded); - } - self::preloadType($m->getReturnType(), $preloaded); - } - } catch (\Throwable $exception) { - // ignore missing classes - } - } - private static function preloadType(?\ReflectionType $t, array &$preloaded) : void - { - if (!$t) { - return; - } - foreach ($t instanceof \ReflectionUnionType || $t instanceof \ReflectionIntersectionType ? $t->getTypes() : [$t] as $t) { - if (!$t->isBuiltin()) { - self::doPreload($t instanceof \ReflectionNamedType ? $t->getName() : $t, $preloaded); - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/XmlDumper.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/XmlDumper.php deleted file mode 100644 index 70835b769..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/XmlDumper.php +++ /dev/null @@ -1,366 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Dumper; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Parameter; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * XmlDumper dumps a service container as an XML string. - * - * @author Fabien Potencier - * @author Martin Hasoň - */ -class XmlDumper extends Dumper -{ - /** - * @var \DOMDocument - */ - private $document; - /** - * Dumps the service container as an XML string. - */ - public function dump(array $options = []) : string - { - $this->document = new \DOMDocument('1.0', 'utf-8'); - $this->document->formatOutput = \true; - $container = $this->document->createElementNS('http://symfony.com/schema/dic/services', 'container'); - $container->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); - $container->setAttribute('xsi:schemaLocation', 'http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd'); - $this->addParameters($container); - $this->addServices($container); - $this->document->appendChild($container); - $xml = $this->document->saveXML(); - unset($this->document); - return $this->container->resolveEnvPlaceholders($xml); - } - private function addParameters(\DOMElement $parent) - { - $data = $this->container->getParameterBag()->all(); - if (!$data) { - return; - } - if ($this->container->isCompiled()) { - $data = $this->escape($data); - } - $parameters = $this->document->createElement('parameters'); - $parent->appendChild($parameters); - $this->convertParameters($data, 'parameter', $parameters); - } - private function addMethodCalls(array $methodcalls, \DOMElement $parent) - { - foreach ($methodcalls as $methodcall) { - $call = $this->document->createElement('call'); - $call->setAttribute('method', $methodcall[0]); - if (\count($methodcall[1])) { - $this->convertParameters($methodcall[1], 'argument', $call); - } - if ($methodcall[2] ?? \false) { - $call->setAttribute('returns-clone', 'true'); - } - $parent->appendChild($call); - } - } - private function addService(Definition $definition, ?string $id, \DOMElement $parent) - { - $service = $this->document->createElement('service'); - if (null !== $id) { - $service->setAttribute('id', $id); - } - if ($class = $definition->getClass()) { - if (\strncmp($class, '\\', \strlen('\\')) === 0) { - $class = \substr($class, 1); - } - $service->setAttribute('class', $class); - } - if (!$definition->isShared()) { - $service->setAttribute('shared', 'false'); - } - if ($definition->isPublic()) { - $service->setAttribute('public', 'true'); - } - if ($definition->isSynthetic()) { - $service->setAttribute('synthetic', 'true'); - } - if ($definition->isLazy()) { - $service->setAttribute('lazy', 'true'); - } - if (null !== ($decoratedService = $definition->getDecoratedService())) { - [$decorated, $renamedId, $priority] = $decoratedService; - $service->setAttribute('decorates', $decorated); - $decorationOnInvalid = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if (\in_array($decorationOnInvalid, [ContainerInterface::IGNORE_ON_INVALID_REFERENCE, ContainerInterface::NULL_ON_INVALID_REFERENCE], \true)) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE === $decorationOnInvalid ? 'null' : 'ignore'; - $service->setAttribute('decoration-on-invalid', $invalidBehavior); - } - if (null !== $renamedId) { - $service->setAttribute('decoration-inner-name', $renamedId); - } - if (0 !== $priority) { - $service->setAttribute('decoration-priority', $priority); - } - } - foreach ($definition->getTags() as $name => $tags) { - foreach ($tags as $attributes) { - $tag = $this->document->createElement('tag'); - if (!\array_key_exists('name', $attributes)) { - $tag->setAttribute('name', $name); - } else { - $tag->appendChild($this->document->createTextNode($name)); - } - foreach ($attributes as $key => $value) { - $tag->setAttribute($key, $value ?? ''); - } - $service->appendChild($tag); - } - } - if ($definition->getFile()) { - $file = $this->document->createElement('file'); - $file->appendChild($this->document->createTextNode($definition->getFile())); - $service->appendChild($file); - } - if ($parameters = $definition->getArguments()) { - $this->convertParameters($parameters, 'argument', $service); - } - if ($parameters = $definition->getProperties()) { - $this->convertParameters($parameters, 'property', $service, 'name'); - } - $this->addMethodCalls($definition->getMethodCalls(), $service); - if ($callable = $definition->getFactory()) { - $factory = $this->document->createElement('factory'); - if (\is_array($callable) && $callable[0] instanceof Definition) { - $this->addService($callable[0], null, $factory); - $factory->setAttribute('method', $callable[1]); - } elseif (\is_array($callable)) { - if (null !== $callable[0]) { - $factory->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); - } - $factory->setAttribute('method', $callable[1]); - } else { - $factory->setAttribute('function', $callable); - } - $service->appendChild($factory); - } - if ($definition->isDeprecated()) { - $deprecation = $definition->getDeprecation('%service_id%'); - $deprecated = $this->document->createElement('deprecated'); - $deprecated->appendChild($this->document->createTextNode($definition->getDeprecation('%service_id%')['message'])); - $deprecated->setAttribute('package', $deprecation['package']); - $deprecated->setAttribute('version', $deprecation['version']); - $service->appendChild($deprecated); - } - if ($definition->isAutowired()) { - $service->setAttribute('autowire', 'true'); - } - if ($definition->isAutoconfigured()) { - $service->setAttribute('autoconfigure', 'true'); - } - if ($definition->isAbstract()) { - $service->setAttribute('abstract', 'true'); - } - if ($callable = $definition->getConfigurator()) { - $configurator = $this->document->createElement('configurator'); - if (\is_array($callable) && $callable[0] instanceof Definition) { - $this->addService($callable[0], null, $configurator); - $configurator->setAttribute('method', $callable[1]); - } elseif (\is_array($callable)) { - $configurator->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); - $configurator->setAttribute('method', $callable[1]); - } else { - $configurator->setAttribute('function', $callable); - } - $service->appendChild($configurator); - } - $parent->appendChild($service); - } - private function addServiceAlias(string $alias, Alias $id, \DOMElement $parent) - { - $service = $this->document->createElement('service'); - $service->setAttribute('id', $alias); - $service->setAttribute('alias', $id); - if ($id->isPublic()) { - $service->setAttribute('public', 'true'); - } - if ($id->isDeprecated()) { - $deprecation = $id->getDeprecation('%alias_id%'); - $deprecated = $this->document->createElement('deprecated'); - $deprecated->appendChild($this->document->createTextNode($deprecation['message'])); - $deprecated->setAttribute('package', $deprecation['package']); - $deprecated->setAttribute('version', $deprecation['version']); - $service->appendChild($deprecated); - } - $parent->appendChild($service); - } - private function addServices(\DOMElement $parent) - { - $definitions = $this->container->getDefinitions(); - if (!$definitions) { - return; - } - $services = $this->document->createElement('services'); - foreach ($definitions as $id => $definition) { - $this->addService($definition, $id, $services); - } - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - while (isset($aliases[(string) $id])) { - $id = $aliases[(string) $id]; - } - $this->addServiceAlias($alias, $id, $services); - } - $parent->appendChild($services); - } - private function convertParameters(array $parameters, string $type, \DOMElement $parent, string $keyAttribute = 'key') - { - $arrayIsList = function (array $array) : bool { - if (\function_exists('array_is_list')) { - return \array_is_list($array); - } - if ($array === []) { - return \true; - } - $current_key = 0; - foreach ($array as $key => $noop) { - if ($key !== $current_key) { - return \false; - } - ++$current_key; - } - return \true; - }; - $withKeys = !$arrayIsList($parameters); - foreach ($parameters as $key => $value) { - $element = $this->document->createElement($type); - if ($withKeys) { - $element->setAttribute($keyAttribute, $key); - } - if (\is_array($tag = $value)) { - $element->setAttribute('type', 'collection'); - $this->convertParameters($value, $type, $element, 'key'); - } elseif ($value instanceof TaggedIteratorArgument || $value instanceof ServiceLocatorArgument && ($tag = $value->getTaggedIteratorArgument())) { - $element->setAttribute('type', $value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator'); - $element->setAttribute('tag', $tag->getTag()); - if (null !== $tag->getIndexAttribute()) { - $element->setAttribute('index-by', $tag->getIndexAttribute()); - if (null !== $tag->getDefaultIndexMethod()) { - $element->setAttribute('default-index-method', $tag->getDefaultIndexMethod()); - } - if (null !== $tag->getDefaultPriorityMethod()) { - $element->setAttribute('default-priority-method', $tag->getDefaultPriorityMethod()); - } - } - } elseif ($value instanceof IteratorArgument) { - $element->setAttribute('type', 'iterator'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof ServiceLocatorArgument) { - $element->setAttribute('type', 'service_locator'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof ServiceClosureArgument && !$value->getValues()[0] instanceof Reference) { - $element->setAttribute('type', 'service_closure'); - $this->convertParameters($value->getValues(), $type, $element, 'key'); - } elseif ($value instanceof Reference || $value instanceof ServiceClosureArgument) { - $element->setAttribute('type', 'service'); - if ($value instanceof ServiceClosureArgument) { - $element->setAttribute('type', 'service_closure'); - $value = $value->getValues()[0]; - } - $element->setAttribute('id', (string) $value); - $behavior = $value->getInvalidBehavior(); - if (ContainerInterface::NULL_ON_INVALID_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'null'); - } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'ignore'); - } elseif (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE == $behavior) { - $element->setAttribute('on-invalid', 'ignore_uninitialized'); - } - } elseif ($value instanceof Definition) { - $element->setAttribute('type', 'service'); - $this->addService($value, null, $element); - } elseif ($value instanceof Expression) { - $element->setAttribute('type', 'expression'); - $text = $this->document->createTextNode(self::phpToXml((string) $value)); - $element->appendChild($text); - } elseif (\is_string($value) && !\preg_match('/^[^\\x00-\\x08\\x0B\\x0E-\\x1A\\x1C-\\x1F\\x7F]*+$/u', $value)) { - $element->setAttribute('type', 'binary'); - $text = $this->document->createTextNode(self::phpToXml(\base64_encode($value))); - $element->appendChild($text); - } elseif ($value instanceof \UnitEnum) { - $element->setAttribute('type', 'constant'); - $element->appendChild($this->document->createTextNode(self::phpToXml($value))); - } elseif ($value instanceof AbstractArgument) { - $element->setAttribute('type', 'abstract'); - $text = $this->document->createTextNode(self::phpToXml($value->getText())); - $element->appendChild($text); - } else { - if (\in_array($value, ['null', 'true', 'false'], \true)) { - $element->setAttribute('type', 'string'); - } - if (\is_string($value) && (\is_numeric($value) || \preg_match('/^0b[01]*$/', $value) || \preg_match('/^0x[0-9a-f]++$/i', $value))) { - $element->setAttribute('type', 'string'); - } - $text = $this->document->createTextNode(self::phpToXml($value)); - $element->appendChild($text); - } - $parent->appendChild($element); - } - } - /** - * Escapes arguments. - */ - private function escape(array $arguments) : array - { - $args = []; - foreach ($arguments as $k => $v) { - if (\is_array($v)) { - $args[$k] = $this->escape($v); - } elseif (\is_string($v)) { - $args[$k] = \str_replace('%', '%%', $v); - } else { - $args[$k] = $v; - } - } - return $args; - } - /** - * Converts php types to xml types. - * - * @throws RuntimeException When trying to dump object or resource - * @param mixed $value - */ - public static function phpToXml($value) : string - { - switch (\true) { - case null === $value: - return 'null'; - case \true === $value: - return 'true'; - case \false === $value: - return 'false'; - case $value instanceof Parameter: - return '%' . $value . '%'; - case $value instanceof \UnitEnum: - return \sprintf('%s::%s', \get_class($value), $value->name); - case \is_object($value) || \is_resource($value): - throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); - default: - return (string) $value; - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/YamlDumper.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/YamlDumper.php deleted file mode 100644 index 59d0d0e63..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Dumper/YamlDumper.php +++ /dev/null @@ -1,313 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Dumper; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Parameter; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -use RectorPrefix202308\Symfony\Component\Yaml\Dumper as YmlDumper; -use RectorPrefix202308\Symfony\Component\Yaml\Parser; -use RectorPrefix202308\Symfony\Component\Yaml\Tag\TaggedValue; -use RectorPrefix202308\Symfony\Component\Yaml\Yaml; -/** - * YamlDumper dumps a service container as a YAML string. - * - * @author Fabien Potencier - */ -class YamlDumper extends Dumper -{ - /** - * @var YmlDumper - */ - private $dumper; - /** - * Dumps the service container as an YAML string. - */ - public function dump(array $options = []) : string - { - if (!\class_exists(YmlDumper::class)) { - throw new LogicException('Unable to dump the container as the Symfony Yaml Component is not installed.'); - } - $this->dumper = $this->dumper ?? new YmlDumper(); - return $this->container->resolveEnvPlaceholders($this->addParameters() . "\n" . $this->addServices()); - } - private function addService(string $id, Definition $definition) : string - { - $code = " {$id}:\n"; - if ($class = $definition->getClass()) { - if (\strncmp($class, '\\', \strlen('\\')) === 0) { - $class = \substr($class, 1); - } - $code .= \sprintf(" class: %s\n", $this->dumper->dump($class)); - } - if (!$definition->isPrivate()) { - $code .= \sprintf(" public: %s\n", $definition->isPublic() ? 'true' : 'false'); - } - $tagsCode = ''; - foreach ($definition->getTags() as $name => $tags) { - foreach ($tags as $attributes) { - $att = []; - foreach ($attributes as $key => $value) { - $att[] = \sprintf('%s: %s', $this->dumper->dump($key), $this->dumper->dump($value)); - } - $att = $att ? ': { ' . \implode(', ', $att) . ' }' : ''; - $tagsCode .= \sprintf(" - %s%s\n", $this->dumper->dump($name), $att); - } - } - if ($tagsCode) { - $code .= " tags:\n" . $tagsCode; - } - if ($definition->getFile()) { - $code .= \sprintf(" file: %s\n", $this->dumper->dump($definition->getFile())); - } - if ($definition->isSynthetic()) { - $code .= " synthetic: true\n"; - } - if ($definition->isDeprecated()) { - $code .= " deprecated:\n"; - foreach ($definition->getDeprecation('%service_id%') as $key => $value) { - if ('' !== $value) { - $code .= \sprintf(" %s: %s\n", $key, $this->dumper->dump($value)); - } - } - } - if ($definition->isAutowired()) { - $code .= " autowire: true\n"; - } - if ($definition->isAutoconfigured()) { - $code .= " autoconfigure: true\n"; - } - if ($definition->isAbstract()) { - $code .= " abstract: true\n"; - } - if ($definition->isLazy()) { - $code .= " lazy: true\n"; - } - if ($definition->getArguments()) { - $code .= \sprintf(" arguments: %s\n", $this->dumper->dump($this->dumpValue($definition->getArguments()), 0)); - } - if ($definition->getProperties()) { - $code .= \sprintf(" properties: %s\n", $this->dumper->dump($this->dumpValue($definition->getProperties()), 0)); - } - if ($definition->getMethodCalls()) { - $code .= \sprintf(" calls:\n%s\n", $this->dumper->dump($this->dumpValue($definition->getMethodCalls()), 1, 12)); - } - if (!$definition->isShared()) { - $code .= " shared: false\n"; - } - if (null !== ($decoratedService = $definition->getDecoratedService())) { - [$decorated, $renamedId, $priority] = $decoratedService; - $code .= \sprintf(" decorates: %s\n", $decorated); - if (null !== $renamedId) { - $code .= \sprintf(" decoration_inner_name: %s\n", $renamedId); - } - if (0 !== $priority) { - $code .= \sprintf(" decoration_priority: %s\n", $priority); - } - $decorationOnInvalid = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if (\in_array($decorationOnInvalid, [ContainerInterface::IGNORE_ON_INVALID_REFERENCE, ContainerInterface::NULL_ON_INVALID_REFERENCE])) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE === $decorationOnInvalid ? 'null' : 'ignore'; - $code .= \sprintf(" decoration_on_invalid: %s\n", $invalidBehavior); - } - } - if ($callable = $definition->getFactory()) { - $code .= \sprintf(" factory: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0)); - } - if ($callable = $definition->getConfigurator()) { - $code .= \sprintf(" configurator: %s\n", $this->dumper->dump($this->dumpCallable($callable), 0)); - } - return $code; - } - private function addServiceAlias(string $alias, Alias $id) : string - { - $deprecated = ''; - if ($id->isDeprecated()) { - $deprecated = " deprecated:\n"; - foreach ($id->getDeprecation('%alias_id%') as $key => $value) { - if ('' !== $value) { - $deprecated .= \sprintf(" %s: %s\n", $key, $value); - } - } - } - if (!$id->isDeprecated() && $id->isPrivate()) { - return \sprintf(" %s: '@%s'\n", $alias, $id); - } - if ($id->isPublic()) { - $deprecated = " public: true\n" . $deprecated; - } - return \sprintf(" %s:\n alias: %s\n%s", $alias, $id, $deprecated); - } - private function addServices() : string - { - if (!$this->container->getDefinitions()) { - return ''; - } - $code = "services:\n"; - foreach ($this->container->getDefinitions() as $id => $definition) { - $code .= $this->addService($id, $definition); - } - $aliases = $this->container->getAliases(); - foreach ($aliases as $alias => $id) { - while (isset($aliases[(string) $id])) { - $id = $aliases[(string) $id]; - } - $code .= $this->addServiceAlias($alias, $id); - } - return $code; - } - private function addParameters() : string - { - if (!$this->container->getParameterBag()->all()) { - return ''; - } - $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isCompiled()); - return $this->dumper->dump(['parameters' => $parameters], 2); - } - /** - * Dumps callable to YAML format. - * @param mixed $callable - * @return mixed - */ - private function dumpCallable($callable) - { - if (\is_array($callable)) { - if ($callable[0] instanceof Reference) { - $callable = [$this->getServiceCall((string) $callable[0], $callable[0]), $callable[1]]; - } else { - $callable = [$callable[0], $callable[1]]; - } - } - return $callable; - } - /** - * Dumps the value to YAML format. - * - * @throws RuntimeException When trying to dump object or resource - * @param mixed $value - * @return mixed - */ - private function dumpValue($value) - { - if ($value instanceof ServiceClosureArgument) { - $value = $value->getValues()[0]; - return new TaggedValue('service_closure', $this->dumpValue($value)); - } - if ($value instanceof ArgumentInterface) { - $tag = $value; - if ($value instanceof TaggedIteratorArgument || $value instanceof ServiceLocatorArgument && ($tag = $value->getTaggedIteratorArgument())) { - if (null === $tag->getIndexAttribute()) { - $content = $tag->getTag(); - } else { - $content = ['tag' => $tag->getTag(), 'index_by' => $tag->getIndexAttribute()]; - if (null !== $tag->getDefaultIndexMethod()) { - $content['default_index_method'] = $tag->getDefaultIndexMethod(); - } - if (null !== $tag->getDefaultPriorityMethod()) { - $content['default_priority_method'] = $tag->getDefaultPriorityMethod(); - } - } - return new TaggedValue($value instanceof TaggedIteratorArgument ? 'tagged_iterator' : 'tagged_locator', $content); - } - if ($value instanceof IteratorArgument) { - $tag = 'iterator'; - } elseif ($value instanceof ServiceLocatorArgument) { - $tag = 'service_locator'; - } else { - throw new RuntimeException(\sprintf('Unspecified Yaml tag for type "%s".', \get_debug_type($value))); - } - return new TaggedValue($tag, $this->dumpValue($value->getValues())); - } - if (\is_array($value)) { - $code = []; - foreach ($value as $k => $v) { - $code[$k] = $this->dumpValue($v); - } - return $code; - } elseif ($value instanceof Reference) { - return $this->getServiceCall((string) $value, $value); - } elseif ($value instanceof Parameter) { - return $this->getParameterCall((string) $value); - } elseif ($value instanceof Expression) { - return $this->getExpressionCall((string) $value); - } elseif ($value instanceof Definition) { - return new TaggedValue('service', (new Parser())->parse("_:\n" . $this->addService('_', $value), Yaml::PARSE_CUSTOM_TAGS)['_']['_']); - } elseif ($value instanceof \UnitEnum) { - return new TaggedValue('php/const', \sprintf('%s::%s', \get_class($value), $value->name)); - } elseif ($value instanceof AbstractArgument) { - return new TaggedValue('abstract', $value->getText()); - } elseif (\is_object($value) || \is_resource($value)) { - throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); - } - return $value; - } - private function getServiceCall(string $id, Reference $reference = null) : string - { - if (null !== $reference) { - switch ($reference->getInvalidBehavior()) { - case ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE: - break; - case ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE: - break; - case ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE: - return \sprintf('@!%s', $id); - default: - return \sprintf('@?%s', $id); - } - } - return \sprintf('@%s', $id); - } - private function getParameterCall(string $id) : string - { - return \sprintf('%%%s%%', $id); - } - private function getExpressionCall(string $expression) : string - { - return \sprintf('@=%s', $expression); - } - private function prepareParameters(array $parameters, bool $escape = \true) : array - { - $filtered = []; - foreach ($parameters as $key => $value) { - if (\is_array($value)) { - $value = $this->prepareParameters($value, $escape); - } elseif ($value instanceof Reference || \is_string($value) && \strncmp($value, '@', \strlen('@')) === 0) { - $value = '@' . $value; - } - $filtered[$key] = $value; - } - return $escape ? $this->escape($filtered) : $filtered; - } - private function escape(array $arguments) : array - { - $args = []; - foreach ($arguments as $k => $v) { - if (\is_array($v)) { - $args[$k] = $this->escape($v); - } elseif (\is_string($v)) { - $args[$k] = \str_replace('%', '%%', $v); - } else { - $args[$k] = $v; - } - } - return $args; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php deleted file mode 100644 index 5987ec678..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarLoaderInterface.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * EnvVarLoaderInterface objects return key/value pairs that are added to the list of available env vars. - * - * @author Nicolas Grekas - */ -interface EnvVarLoaderInterface -{ - /** - * @return string[] Key/value pairs that can be accessed using the regular "%env()%" syntax - */ - public function loadEnvVars() : array; -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessor.php b/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessor.php deleted file mode 100644 index 18ca1aed4..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessor.php +++ /dev/null @@ -1,237 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\EnvNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * @author Nicolas Grekas - */ -class EnvVarProcessor implements EnvVarProcessorInterface -{ - /** - * @var \Symfony\Component\DependencyInjection\ContainerInterface - */ - private $container; - /** - * @var \Traversable - */ - private $loaders; - /** - * @var mixed[] - */ - private $loadedVars = []; - /** - * @param EnvVarLoaderInterface[] $loaders - */ - public function __construct(ContainerInterface $container, \Traversable $loaders = null) - { - $this->container = $container; - $this->loaders = $loaders ?? new \ArrayIterator(); - } - /** - * {@inheritdoc} - */ - public static function getProvidedTypes() : array - { - return ['base64' => 'string', 'bool' => 'bool', 'not' => 'bool', 'const' => 'bool|int|float|string|array', 'csv' => 'array', 'file' => 'string', 'float' => 'float', 'int' => 'int', 'json' => 'array', 'key' => 'bool|int|float|string|array', 'url' => 'array', 'query_string' => 'array', 'resolve' => 'string', 'default' => 'bool|int|float|string|array', 'string' => 'string', 'trim' => 'string', 'require' => 'bool|int|float|string|array']; - } - /** - * {@inheritdoc} - * @return mixed - */ - public function getEnv(string $prefix, string $name, \Closure $getEnv) - { - $i = \strpos($name, ':'); - if ('key' === $prefix) { - if (\false === $i) { - throw new RuntimeException(\sprintf('Invalid env "key:%s": a key specifier should be provided.', $name)); - } - $next = \substr($name, $i + 1); - $key = \substr($name, 0, $i); - $array = $getEnv($next); - if (!\is_array($array)) { - throw new RuntimeException(\sprintf('Resolved value of "%s" did not result in an array value.', $next)); - } - if (!isset($array[$key]) && !\array_key_exists($key, $array)) { - throw new EnvNotFoundException(\sprintf('Key "%s" not found in %s (resolved from "%s").', $key, \json_encode($array), $next)); - } - return $array[$key]; - } - if ('default' === $prefix) { - if (\false === $i) { - throw new RuntimeException(\sprintf('Invalid env "default:%s": a fallback parameter should be provided.', $name)); - } - $next = \substr($name, $i + 1); - $default = \substr($name, 0, $i); - if ('' !== $default && !$this->container->hasParameter($default)) { - throw new RuntimeException(\sprintf('Invalid env fallback in "default:%s": parameter "%s" not found.', $name, $default)); - } - try { - $env = $getEnv($next); - if ('' !== $env && null !== $env) { - return $env; - } - } catch (EnvNotFoundException $exception) { - // no-op - } - return '' === $default ? null : $this->container->getParameter($default); - } - if ('file' === $prefix || 'require' === $prefix) { - if (!\is_scalar($file = $getEnv($name))) { - throw new RuntimeException(\sprintf('Invalid file name: env var "%s" is non-scalar.', $name)); - } - if (!\is_file($file)) { - throw new EnvNotFoundException(\sprintf('File "%s" not found (resolved from "%s").', $file, $name)); - } - if ('file' === $prefix) { - return \file_get_contents($file); - } else { - return require $file; - } - } - if (\false !== $i || 'string' !== $prefix) { - $env = $getEnv($name); - } elseif (isset($_ENV[$name])) { - $env = $_ENV[$name]; - } elseif (isset($_SERVER[$name]) && \strncmp($name, 'HTTP_', \strlen('HTTP_')) !== 0) { - $env = $_SERVER[$name]; - } elseif (\false === ($env = \getenv($name)) || null === $env) { - // null is a possible value because of thread safety issues - foreach ($this->loadedVars as $vars) { - if (\false !== ($env = $vars[$name] ?? \false)) { - break; - } - } - if (\false === $env || null === $env) { - $loaders = $this->loaders; - $this->loaders = new \ArrayIterator(); - try { - $i = 0; - $ended = \true; - $count = $loaders instanceof \Countable ? $loaders->count() : 0; - foreach ($loaders as $loader) { - if (\count($this->loadedVars) > $i++) { - continue; - } - $this->loadedVars[] = $vars = $loader->loadEnvVars(); - if (\false !== ($env = $vars[$name] ?? \false)) { - $ended = \false; - break; - } - } - if ($ended || $count === $i) { - $loaders = $this->loaders; - } - } catch (ParameterCircularReferenceException $exception) { - // skip loaders that need an env var that is not defined - } finally { - $this->loaders = $loaders; - } - } - if (\false === $env || null === $env) { - if (!$this->container->hasParameter("env({$name})")) { - throw new EnvNotFoundException(\sprintf('Environment variable not found: "%s".', $name)); - } - $env = $this->container->getParameter("env({$name})"); - } - } - if (null === $env) { - if (!isset($this->getProvidedTypes()[$prefix])) { - throw new RuntimeException(\sprintf('Unsupported env var prefix "%s".', $prefix)); - } - return null; - } - if (!\is_scalar($env)) { - throw new RuntimeException(\sprintf('Non-scalar env var "%s" cannot be cast to "%s".', $name, $prefix)); - } - if ('string' === $prefix) { - return (string) $env; - } - if (\in_array($prefix, ['bool', 'not'], \true)) { - $env = (bool) ((\filter_var($env, \FILTER_VALIDATE_BOOLEAN) ?: \filter_var($env, \FILTER_VALIDATE_INT)) ?: \filter_var($env, \FILTER_VALIDATE_FLOAT)); - return 'not' === $prefix ? !$env : $env; - } - if ('int' === $prefix) { - if (\false === ($env = \filter_var($env, \FILTER_VALIDATE_INT) ?: \filter_var($env, \FILTER_VALIDATE_FLOAT))) { - throw new RuntimeException(\sprintf('Non-numeric env var "%s" cannot be cast to int.', $name)); - } - return (int) $env; - } - if ('float' === $prefix) { - if (\false === ($env = \filter_var($env, \FILTER_VALIDATE_FLOAT))) { - throw new RuntimeException(\sprintf('Non-numeric env var "%s" cannot be cast to float.', $name)); - } - return (float) $env; - } - if ('const' === $prefix) { - if (!\defined($env)) { - throw new RuntimeException(\sprintf('Env var "%s" maps to undefined constant "%s".', $name, $env)); - } - return \constant($env); - } - if ('base64' === $prefix) { - return \base64_decode(\strtr($env, '-_', '+/')); - } - if ('json' === $prefix) { - $env = \json_decode($env, \true); - if (\JSON_ERROR_NONE !== \json_last_error()) { - throw new RuntimeException(\sprintf('Invalid JSON in env var "%s": ', $name) . \json_last_error_msg()); - } - if (null !== $env && !\is_array($env)) { - throw new RuntimeException(\sprintf('Invalid JSON env var "%s": array or null expected, "%s" given.', $name, \get_debug_type($env))); - } - return $env; - } - if ('url' === $prefix) { - $parsedEnv = \parse_url($env); - if (\false === $parsedEnv) { - throw new RuntimeException(\sprintf('Invalid URL in env var "%s".', $name)); - } - if (!isset($parsedEnv['scheme'], $parsedEnv['host'])) { - throw new RuntimeException(\sprintf('Invalid URL env var "%s": schema and host expected, "%s" given.', $name, $env)); - } - $parsedEnv += ['port' => null, 'user' => null, 'pass' => null, 'path' => null, 'query' => null, 'fragment' => null]; - // remove the '/' separator - $parsedEnv['path'] = '/' === ($parsedEnv['path'] ?? '/') ? '' : \substr($parsedEnv['path'], 1); - return $parsedEnv; - } - if ('query_string' === $prefix) { - $queryString = \parse_url($env, \PHP_URL_QUERY) ?: $env; - \parse_str($queryString, $result); - return $result; - } - if ('resolve' === $prefix) { - return \preg_replace_callback('/%%|%([^%\\s]+)%/', function ($match) use($name, $getEnv) { - if (!isset($match[1])) { - return '%'; - } - if (\strncmp($match[1], 'env(', \strlen('env(')) === 0 && \substr_compare($match[1], ')', -\strlen(')')) === 0 && 'env()' !== $match[1]) { - $value = $getEnv(\substr($match[1], 4, -1)); - } else { - $value = $this->container->getParameter($match[1]); - } - if (!\is_scalar($value)) { - throw new RuntimeException(\sprintf('Parameter "%s" found when resolving env var "%s" must be scalar, "%s" given.', $match[1], $name, \get_debug_type($value))); - } - return $value; - }, $env); - } - if ('csv' === $prefix) { - return \str_getcsv($env, ',', '"', ''); - } - if ('trim' === $prefix) { - return \trim($env); - } - throw new RuntimeException(\sprintf('Unsupported env var prefix "%s" for env name "%s".', $prefix, $name)); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessorInterface.php deleted file mode 100644 index ec6c0835b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/EnvVarProcessorInterface.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 RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * The EnvVarProcessorInterface is implemented by objects that manage environment-like variables. - * - * @author Nicolas Grekas - */ -interface EnvVarProcessorInterface -{ - /** - * Returns the value of the given variable as managed by the current instance. - * - * @param string $prefix The namespace of the variable - * @param string $name The name of the variable within the namespace - * @param \Closure $getEnv A closure that allows fetching more env vars - * - * @throws RuntimeException on error - * @return mixed - */ - public function getEnv(string $prefix, string $name, \Closure $getEnv); - /** - * @return string[] The PHP-types managed by getEnv(), keyed by prefixes - */ - public static function getProvidedTypes() : array; -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php deleted file mode 100644 index a3f101fca..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/AutowiringFailedException.php +++ /dev/null @@ -1,76 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * Thrown when a definition cannot be autowired. - */ -class AutowiringFailedException extends RuntimeException -{ - /** - * @var string - */ - private $serviceId; - /** - * @var \Closure|null - */ - private $messageCallback; - /** - * @param string|\Closure $message - */ - public function __construct(string $serviceId, $message = '', int $code = 0, \Throwable $previous = null) - { - $this->serviceId = $serviceId; - if ($message instanceof \Closure && (\function_exists('xdebug_is_enabled') ? \xdebug_is_enabled() : \function_exists('xdebug_info'))) { - $message = $message(); - } - if (!$message instanceof \Closure) { - parent::__construct($message, $code, $previous); - return; - } - $this->messageCallback = $message; - parent::__construct('', $code, $previous); - $this->message = new class($this->message, $this->messageCallback) - { - /** - * @var string|$this - */ - private $message; - /** - * @var \Closure|null - */ - private $messageCallback; - public function __construct(&$message, &$messageCallback) - { - $this->message =& $message; - $this->messageCallback =& $messageCallback; - } - public function __toString() : string - { - $messageCallback = $this->messageCallback; - $this->messageCallback = null; - try { - return $this->message = $messageCallback(); - } catch (\Throwable $e) { - return $this->message = $e->getMessage(); - } - } - }; - } - public function getMessageCallback() : ?\Closure - { - return $this->messageCallback; - } - public function getServiceId() - { - return $this->serviceId; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php deleted file mode 100644 index 033845c50..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/BadMethodCallException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * Base BadMethodCallException for Dependency Injection component. - */ -class BadMethodCallException extends \BadMethodCallException implements ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php deleted file mode 100644 index 6edbecf90..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvNotFoundException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when an environment variable is not found. - * - * @author Nicolas Grekas - */ -class EnvNotFoundException extends InvalidArgumentException -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvParameterException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvParameterException.php deleted file mode 100644 index 534898ef5..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/EnvParameterException.php +++ /dev/null @@ -1,24 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * This exception wraps exceptions whose messages contain a reference to an env parameter. - * - * @author Nicolas Grekas - */ -class EnvParameterException extends InvalidArgumentException -{ - public function __construct(array $envs, \Throwable $previous = null, string $message = 'Incompatible use of dynamic environment variables "%s" found in parameters.') - { - parent::__construct(\sprintf($message, \implode('", "', $envs)), 0, $previous); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php deleted file mode 100644 index da0e182e9..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ExceptionInterface.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -use RectorPrefix202308\Psr\Container\ContainerExceptionInterface; -/** - * Base ExceptionInterface for Dependency Injection component. - * - * @author Fabien Potencier - * @author Bulat Shakirzyanov - */ -interface ExceptionInterface extends ContainerExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php deleted file mode 100644 index fad00e7d7..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * Base InvalidArgumentException for Dependency Injection component. - * - * @author Bulat Shakirzyanov - */ -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php deleted file mode 100644 index d765f8017..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/InvalidParameterTypeException.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * Thrown when trying to inject a parameter into a constructor/method with an incompatible type. - * - * @author Nicolas Grekas - * @author Julien Maulny - */ -class InvalidParameterTypeException extends InvalidArgumentException -{ - public function __construct(string $serviceId, string $type, \ReflectionParameter $parameter) - { - $acceptedType = $parameter->getType(); - $acceptedType = $acceptedType instanceof \ReflectionNamedType ? $acceptedType->getName() : (string) $acceptedType; - $this->code = $type; - $function = $parameter->getDeclaringFunction(); - $functionName = $function instanceof \ReflectionMethod ? \sprintf('%s::%s', $function->getDeclaringClass()->getName(), $function->getName()) : $function->getName(); - parent::__construct(\sprintf('Invalid definition for service "%s": argument %d of "%s()" accepts "%s", "%s" passed.', $serviceId, 1 + $parameter->getPosition(), $functionName, $acceptedType, $type)); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/LogicException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/LogicException.php deleted file mode 100644 index f8d02e20a..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/LogicException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * Base LogicException for Dependency Injection component. - */ -class LogicException extends \LogicException implements ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php deleted file mode 100644 index 6a611ff82..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/OutOfBoundsException.php +++ /dev/null @@ -1,18 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * Base OutOfBoundsException for Dependency Injection component. - */ -class OutOfBoundsException extends \OutOfBoundsException implements ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php deleted file mode 100644 index b1ce4463f..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterCircularReferenceException.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when a circular reference in a parameter is detected. - * - * @author Fabien Potencier - */ -class ParameterCircularReferenceException extends RuntimeException -{ - /** - * @var mixed[] - */ - private $parameters; - public function __construct(array $parameters, \Throwable $previous = null) - { - parent::__construct(\sprintf('Circular reference detected for parameter "%s" ("%s" > "%s").', $parameters[0], \implode('" > "', $parameters), $parameters[0]), 0, $previous); - $this->parameters = $parameters; - } - public function getParameters() - { - return $this->parameters; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php deleted file mode 100644 index eaff0d4e7..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ParameterNotFoundException.php +++ /dev/null @@ -1,101 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -use RectorPrefix202308\Psr\Container\NotFoundExceptionInterface; -/** - * This exception is thrown when a non-existent parameter is used. - * - * @author Fabien Potencier - */ -class ParameterNotFoundException extends InvalidArgumentException implements NotFoundExceptionInterface -{ - /** - * @var string - */ - private $key; - /** - * @var string|null - */ - private $sourceId; - /** - * @var string|null - */ - private $sourceKey; - /** - * @var mixed[] - */ - private $alternatives; - /** - * @var string|null - */ - private $nonNestedAlternative; - /** - * @param string $key The requested parameter key - * @param string|null $sourceId The service id that references the non-existent parameter - * @param string|null $sourceKey The parameter key that references the non-existent parameter - * @param \Throwable|null $previous The previous exception - * @param string[] $alternatives Some parameter name alternatives - * @param string|null $nonNestedAlternative The alternative parameter name when the user expected dot notation for nested parameters - */ - public function __construct(string $key, string $sourceId = null, string $sourceKey = null, \Throwable $previous = null, array $alternatives = [], string $nonNestedAlternative = null) - { - $this->key = $key; - $this->sourceId = $sourceId; - $this->sourceKey = $sourceKey; - $this->alternatives = $alternatives; - $this->nonNestedAlternative = $nonNestedAlternative; - parent::__construct('', 0, $previous); - $this->updateRepr(); - } - public function updateRepr() - { - if (null !== $this->sourceId) { - $this->message = \sprintf('The service "%s" has a dependency on a non-existent parameter "%s".', $this->sourceId, $this->key); - } elseif (null !== $this->sourceKey) { - $this->message = \sprintf('The parameter "%s" has a dependency on a non-existent parameter "%s".', $this->sourceKey, $this->key); - } else { - $this->message = \sprintf('You have requested a non-existent parameter "%s".', $this->key); - } - if ($this->alternatives) { - if (1 == \count($this->alternatives)) { - $this->message .= ' Did you mean this: "'; - } else { - $this->message .= ' Did you mean one of these: "'; - } - $this->message .= \implode('", "', $this->alternatives) . '"?'; - } elseif (null !== $this->nonNestedAlternative) { - $this->message .= ' You cannot access nested array items, do you want to inject "' . $this->nonNestedAlternative . '" instead?'; - } - } - public function getKey() - { - return $this->key; - } - public function getSourceId() - { - return $this->sourceId; - } - public function getSourceKey() - { - return $this->sourceKey; - } - public function setSourceId(?string $sourceId) - { - $this->sourceId = $sourceId; - $this->updateRepr(); - } - public function setSourceKey(?string $sourceKey) - { - $this->sourceKey = $sourceKey; - $this->updateRepr(); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/RuntimeException.php deleted file mode 100644 index eb32fa409..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/RuntimeException.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * Base RuntimeException for Dependency Injection component. - * - * @author Johannes M. Schmitt - */ -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php deleted file mode 100644 index 83ad95a70..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceCircularReferenceException.php +++ /dev/null @@ -1,42 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -/** - * This exception is thrown when a circular reference is detected. - * - * @author Johannes M. Schmitt - */ -class ServiceCircularReferenceException extends RuntimeException -{ - /** - * @var string - */ - private $serviceId; - /** - * @var mixed[] - */ - private $path; - public function __construct(string $serviceId, array $path, \Throwable $previous = null) - { - parent::__construct(\sprintf('Circular reference detected for service "%s", path: "%s".', $serviceId, \implode(' -> ', $path)), 0, $previous); - $this->serviceId = $serviceId; - $this->path = $path; - } - public function getServiceId() - { - return $this->serviceId; - } - public function getPath() - { - return $this->path; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php deleted file mode 100644 index 0b52f65c0..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Exception/ServiceNotFoundException.php +++ /dev/null @@ -1,67 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Exception; - -use RectorPrefix202308\Psr\Container\NotFoundExceptionInterface; -/** - * This exception is thrown when a non-existent service is requested. - * - * @author Johannes M. Schmitt - */ -class ServiceNotFoundException extends InvalidArgumentException implements NotFoundExceptionInterface -{ - /** - * @var string - */ - private $id; - /** - * @var string|null - */ - private $sourceId; - /** - * @var mixed[] - */ - private $alternatives; - public function __construct(string $id, string $sourceId = null, \Throwable $previous = null, array $alternatives = [], string $msg = null) - { - if (null !== $msg) { - // no-op - } elseif (null === $sourceId) { - $msg = \sprintf('You have requested a non-existent service "%s".', $id); - } else { - $msg = \sprintf('The service "%s" has a dependency on a non-existent service "%s".', $sourceId, $id); - } - if ($alternatives) { - if (1 == \count($alternatives)) { - $msg .= ' Did you mean this: "'; - } else { - $msg .= ' Did you mean one of these: "'; - } - $msg .= \implode('", "', $alternatives) . '"?'; - } - parent::__construct($msg, 0, $previous); - $this->id = $id; - $this->sourceId = $sourceId; - $this->alternatives = $alternatives; - } - public function getId() - { - return $this->id; - } - public function getSourceId() - { - return $this->sourceId; - } - public function getAlternatives() - { - return $this->alternatives; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/AbstractExtension.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/AbstractExtension.php deleted file mode 100644 index 267b135cf..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/AbstractExtension.php +++ /dev/null @@ -1,54 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Extension; - -use RectorPrefix202308\Symfony\Component\Config\Definition\Configuration; -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -/** - * An Extension that provides configuration hooks. - * - * @author Yonel Ceruto - */ -abstract class AbstractExtension extends Extension implements ConfigurableExtensionInterface, PrependExtensionInterface -{ - use ExtensionTrait; - public function configure(DefinitionConfigurator $definition) : void - { - } - public function prependExtension(ContainerConfigurator $container, ContainerBuilder $builder) : void - { - } - public function loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder) : void - { - } - public function getConfiguration(array $config, ContainerBuilder $container) : ?ConfigurationInterface - { - return new Configuration($this, $container, $this->getAlias()); - } - public final function prepend(ContainerBuilder $container) : void - { - $callback = function (ContainerConfigurator $configurator) use($container) { - $this->prependExtension($configurator, $container); - }; - $this->executeConfiguratorCallback($container, $callback, $this); - } - public final function load(array $configs, ContainerBuilder $container) : void - { - $config = $this->processConfiguration($this->getConfiguration([], $container), $configs); - $callback = function (ContainerConfigurator $configurator) use($config, $container) { - $this->loadExtension($config, $configurator, $container); - }; - $this->executeConfiguratorCallback($container, $callback, $this); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.php deleted file mode 100644 index f9c02fa74..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurableExtensionInterface.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Extension; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurableInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -/** - * @author Yonel Ceruto - */ -interface ConfigurableExtensionInterface extends ConfigurableInterface -{ - /** - * Allows an extension to prepend the extension configurations. - */ - public function prependExtension(ContainerConfigurator $container, ContainerBuilder $builder) : void; - /** - * Loads a specific configuration. - */ - public function loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder) : void; -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php deleted file mode 100644 index 477862544..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Extension; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * ConfigurationExtensionInterface is the interface implemented by container extension classes. - * - * @author Kevin Bond - */ -interface ConfigurationExtensionInterface -{ - /** - * Returns extension configuration. - * - * @return ConfigurationInterface|null - */ - public function getConfiguration(array $config, ContainerBuilder $container); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/Extension.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/Extension.php deleted file mode 100644 index 437a30974..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/Extension.php +++ /dev/null @@ -1,121 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Extension; - -use RectorPrefix202308\Symfony\Component\Config\Definition\ConfigurationInterface; -use RectorPrefix202308\Symfony\Component\Config\Definition\Processor; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Container; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\BadMethodCallException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -/** - * Provides useful features shared by many extensions. - * - * @author Fabien Potencier - */ -abstract class Extension implements ExtensionInterface, ConfigurationExtensionInterface -{ - /** - * @var mixed[] - */ - private $processedConfigs = []; - /** - * {@inheritdoc} - */ - public function getXsdValidationBasePath() - { - return \false; - } - /** - * {@inheritdoc} - */ - public function getNamespace() - { - return 'http://example.org/schema/dic/' . $this->getAlias(); - } - /** - * Returns the recommended alias to use in XML. - * - * This alias is also the mandatory prefix to use when using YAML. - * - * This convention is to remove the "Extension" postfix from the class - * name and then lowercase and underscore the result. So: - * - * AcmeHelloExtension - * - * becomes - * - * acme_hello - * - * This can be overridden in a sub-class to specify the alias manually. - * - * @throws BadMethodCallException When the extension name does not follow conventions - */ - public function getAlias() : string - { - $className = static::class; - if (\substr_compare($className, 'Extension', -\strlen('Extension')) !== 0) { - throw new BadMethodCallException('This extension does not follow the naming convention; you must overwrite the getAlias() method.'); - } - $classBaseName = \substr(\strrchr($className, '\\'), 1, -9); - return Container::underscore($classBaseName); - } - /** - * {@inheritdoc} - */ - public function getConfiguration(array $config, ContainerBuilder $container) - { - $class = static::class; - if (\strpos($class, "\x00") !== \false) { - return null; - // ignore anonymous classes - } - $class = \substr_replace($class, '\\Configuration', \strrpos($class, '\\')); - $class = $container->getReflectionClass($class); - if (!$class) { - return null; - } - if (!$class->implementsInterface(ConfigurationInterface::class)) { - throw new LogicException(\sprintf('The extension configuration class "%s" must implement "%s".', $class->getName(), ConfigurationInterface::class)); - } - if (!($constructor = $class->getConstructor()) || !$constructor->getNumberOfRequiredParameters()) { - return $class->newInstance(); - } - return null; - } - protected final function processConfiguration(ConfigurationInterface $configuration, array $configs) : array - { - $processor = new Processor(); - return $this->processedConfigs[] = $processor->processConfiguration($configuration, $configs); - } - /** - * @internal - */ - public final function getProcessedConfigs() : array - { - try { - return $this->processedConfigs; - } finally { - $this->processedConfigs = []; - } - } - /** - * @throws InvalidArgumentException When the config is not enableable - */ - protected function isConfigEnabled(ContainerBuilder $container, array $config) : bool - { - if (!\array_key_exists('enabled', $config)) { - throw new InvalidArgumentException("The config array has no 'enabled' key."); - } - return (bool) $container->getParameterBag()->resolveValue($config['enabled']); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php deleted file mode 100644 index 1305a6554..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionInterface.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Extension; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * ExtensionInterface is the interface implemented by container extension classes. - * - * @author Fabien Potencier - */ -interface ExtensionInterface -{ - /** - * Loads a specific configuration. - * - * @throws \InvalidArgumentException When provided tag is not defined in this extension - */ - public function load(array $configs, ContainerBuilder $container); - /** - * Returns the namespace to be used for this extension (XML namespace). - * - * @return string - */ - public function getNamespace(); - /** - * Returns the base path for the XSD files. - * - * @return string|false - */ - public function getXsdValidationBasePath(); - /** - * Returns the recommended alias to use in XML. - * - * This alias is also the mandatory prefix to use when using YAML. - * - * @return string - */ - public function getAlias(); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php deleted file mode 100644 index 561e32446..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/ExtensionTrait.php +++ /dev/null @@ -1,58 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Extension; - -use RectorPrefix202308\Symfony\Component\Config\Builder\ConfigBuilderGenerator; -use RectorPrefix202308\Symfony\Component\Config\FileLocator; -use RectorPrefix202308\Symfony\Component\Config\Loader\DelegatingLoader; -use RectorPrefix202308\Symfony\Component\Config\Loader\LoaderResolver; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\ClosureLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\DirectoryLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\GlobFileLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\IniFileLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\XmlFileLoader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\YamlFileLoader; -/** - * @author Yonel Ceruto - */ -trait ExtensionTrait -{ - private function executeConfiguratorCallback(ContainerBuilder $container, \Closure $callback, ConfigurableExtensionInterface $subject) : void - { - $env = $container->getParameter('kernel.environment'); - $loader = $this->createContainerLoader($container, $env); - $file = (new \ReflectionObject($subject))->getFileName(); - $bundleLoader = $loader->getResolver()->resolve($file); - if (!$bundleLoader instanceof PhpFileLoader) { - throw new \LogicException('Unable to create the ContainerConfigurator.'); - } - $bundleLoader->setCurrentDir(\dirname($file)); - $instanceof =& \Closure::bind(function &() { - return $this->instanceof; - }, $bundleLoader, $bundleLoader)(); - try { - $callback(new ContainerConfigurator($container, $bundleLoader, $instanceof, $file, $file, $env)); - } finally { - $instanceof = []; - $bundleLoader->registerAliasesForSinglyImplementedInterfaces(); - } - } - private function createContainerLoader(ContainerBuilder $container, string $env) : DelegatingLoader - { - $buildDir = $container->getParameter('kernel.build_dir'); - $locator = new FileLocator(); - $resolver = new LoaderResolver([new XmlFileLoader($container, $locator, $env), new YamlFileLoader($container, $locator, $env), new IniFileLoader($container, $locator, $env), new PhpFileLoader($container, $locator, $env, new ConfigBuilderGenerator($buildDir)), new GlobFileLoader($container, $locator, $env), new DirectoryLoader($container, $locator, $env), new ClosureLoader($container, $env)]); - return new DelegatingLoader($resolver); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php deleted file mode 100644 index 71e259876..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php +++ /dev/null @@ -1,20 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Extension; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -interface PrependExtensionInterface -{ - /** - * Allow an extension to prepend the extension configurations. - */ - public function prepend(ContainerBuilder $container); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/LICENSE b/vendor/rector/rector/vendor/symfony/dependency-injection/LICENSE deleted file mode 100644 index 008370457..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2004-2023 Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php deleted file mode 100644 index 0a2d0032a..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/InstantiatorInterface.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\Instantiator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * Lazy proxy instantiator, capable of instantiating a proxy given a container, the - * service definitions and a callback that produces the real service instance. - * - * @author Marco Pivetta - */ -interface InstantiatorInterface -{ - /** - * Instantiates a proxy object. - * - * @param string $id Identifier of the requested service - * @param callable $realInstantiator Zero-argument callback that is capable of producing the real service instance - * - * @return object - */ - public function instantiateProxy(ContainerInterface $container, Definition $definition, string $id, callable $realInstantiator); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.php deleted file mode 100644 index 53efb527a..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/Instantiator/RealServiceInstantiator.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 RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\Instantiator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * {@inheritdoc} - * - * Noop proxy instantiator - produces the real service instead of a proxy instance. - * - * @author Marco Pivetta - */ -class RealServiceInstantiator implements InstantiatorInterface -{ - /** - * {@inheritdoc} - */ - public function instantiateProxy(ContainerInterface $container, Definition $definition, string $id, callable $realInstantiator) : object - { - return $realInstantiator(); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php deleted file mode 100644 index 99596e03c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/DumperInterface.php +++ /dev/null @@ -1,33 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\PhpDumper; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * Lazy proxy dumper capable of generating the instantiation logic PHP code for proxied services. - * - * @author Marco Pivetta - */ -interface DumperInterface -{ - /** - * Inspects whether the given definitions should produce proxy instantiation logic in the dumped container. - */ - public function isProxyCandidate(Definition $definition) : bool; - /** - * Generates the code to be used to instantiate a proxy in the dumped factory code. - */ - public function getProxyFactoryCode(Definition $definition, string $id, string $factoryCode) : string; - /** - * Generates the code for the lazy proxy. - */ - public function getProxyCode(Definition $definition) : string; -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php b/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php deleted file mode 100644 index 4853f50e2..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/PhpDumper/NullDumper.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy\PhpDumper; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * Null dumper, negates any proxy code generation for any given service definition. - * - * @author Marco Pivetta - * - * @final - */ -class NullDumper implements DumperInterface -{ - /** - * {@inheritdoc} - */ - public function isProxyCandidate(Definition $definition) : bool - { - return \false; - } - /** - * {@inheritdoc} - */ - public function getProxyFactoryCode(Definition $definition, string $id, string $factoryCode) : string - { - return ''; - } - /** - * {@inheritdoc} - */ - public function getProxyCode(Definition $definition) : string - { - return ''; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php b/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php deleted file mode 100644 index b75e5da73..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/LazyProxy/ProxyHelper.php +++ /dev/null @@ -1,82 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\LazyProxy; - -/** - * @author Nicolas Grekas - * - * @internal - */ -class ProxyHelper -{ - /** - * @return string|null The FQCN or builtin name of the type hint, or null when the type hint references an invalid self|parent context - */ - public static function getTypeHint(\ReflectionFunctionAbstract $r, \ReflectionParameter $p = null, bool $noBuiltin = \false) : ?string - { - if ($p instanceof \ReflectionParameter) { - $type = $p->getType(); - } else { - $type = $r->getReturnType(); - } - if (!$type) { - return null; - } - return self::getTypeHintForType($type, $r, $noBuiltin); - } - private static function getTypeHintForType(\ReflectionType $type, \ReflectionFunctionAbstract $r, bool $noBuiltin) : ?string - { - $types = []; - $glue = '|'; - if ($type instanceof \ReflectionUnionType) { - $reflectionTypes = $type->getTypes(); - } elseif ($type instanceof \ReflectionIntersectionType) { - $reflectionTypes = $type->getTypes(); - $glue = '&'; - } elseif ($type instanceof \ReflectionNamedType) { - $reflectionTypes = [$type]; - } else { - return null; - } - foreach ($reflectionTypes as $type) { - if ($type instanceof \ReflectionIntersectionType) { - $typeHint = self::getTypeHintForType($type, $r, $noBuiltin); - if (null === $typeHint) { - return null; - } - $types[] = \sprintf('(%s)', $typeHint); - continue; - } - if ($type->isBuiltin()) { - if (!$noBuiltin) { - $types[] = $type->getName(); - } - continue; - } - $lcName = \strtolower($type->getName()); - $prefix = $noBuiltin ? '' : '\\'; - if ('self' !== $lcName && 'parent' !== $lcName) { - $types[] = $prefix . $type->getName(); - continue; - } - if (!$r instanceof \ReflectionMethod) { - continue; - } - if ('self' === $lcName) { - $types[] = $prefix . $r->getDeclaringClass()->name; - } else { - $types[] = ($parent = $r->getDeclaringClass()->getParentClass()) ? $prefix . $parent->name : null; - } - } - \sort($types); - return $types ? \implode($glue, $types) : null; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/ClosureLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/ClosureLoader.php deleted file mode 100644 index 438511207..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/ClosureLoader.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Loader\Loader; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -/** - * ClosureLoader loads service definitions from a PHP closure. - * - * The Closure has access to the container as its first argument. - * - * @author Fabien Potencier - */ -class ClosureLoader extends Loader -{ - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder - */ - private $container; - public function __construct(ContainerBuilder $container, string $env = null) - { - $this->container = $container; - parent::__construct($env); - } - /** - * {@inheritdoc} - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - return $resource($this->container, $this->env); - } - /** - * {@inheritdoc} - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - return $resource instanceof \Closure; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php deleted file mode 100644 index 3c3254db1..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php +++ /dev/null @@ -1,98 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\Config\Loader\ParamConfigurator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ArgumentInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Parameter; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -abstract class AbstractConfigurator -{ - public const FACTORY = 'unknown'; - /** - * @var callable(mixed, bool)|null - */ - public static $valuePreProcessor; - /** @internal - * @var \Symfony\Component\DependencyInjection\Definition|\Symfony\Component\DependencyInjection\Alias|null */ - protected $definition = null; - public function __call(string $method, array $args) - { - if (\method_exists($this, 'set' . $method)) { - return $this->{'set' . $method}(...$args); - } - throw new \BadMethodCallException(\sprintf('Call to undefined method "%s::%s()".', static::class, $method)); - } - public function __sleep() : array - { - throw new \BadMethodCallException('Cannot serialize ' . __CLASS__); - } - public function __wakeup() - { - throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); - } - /** - * Checks that a value is valid, optionally replacing Definition and Reference configurators by their configure value. - * - * @param bool $allowServices whether Definition and Reference are allowed; by default, only scalars and arrays are - * - * @return mixed the value, optionally cast to a Definition/Reference - * @param mixed $value - */ - public static function processValue($value, bool $allowServices = \false) - { - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = static::processValue($v, $allowServices); - } - return self::$valuePreProcessor ? (self::$valuePreProcessor)($value, $allowServices) : $value; - } - if (self::$valuePreProcessor) { - $value = (self::$valuePreProcessor)($value, $allowServices); - } - if ($value instanceof ReferenceConfigurator) { - $reference = new Reference($value->id, $value->invalidBehavior); - return $value instanceof ClosureReferenceConfigurator ? new ServiceClosureArgument($reference) : $reference; - } - if ($value instanceof InlineServiceConfigurator) { - $def = $value->definition; - $value->definition = null; - return $def; - } - if ($value instanceof ParamConfigurator) { - return (string) $value; - } - if ($value instanceof self) { - throw new InvalidArgumentException(\sprintf('"%s()" can be used only at the root of service configuration files.', $value::FACTORY)); - } - switch (\true) { - case null === $value: - case \is_scalar($value): - return $value; - case $value instanceof ArgumentInterface: - case $value instanceof Definition: - case $value instanceof Expression: - case $value instanceof Parameter: - case $value instanceof AbstractArgument: - case $value instanceof Reference: - if ($allowServices) { - return $value; - } - } - throw new InvalidArgumentException(\sprintf('Cannot use values of type "%s" in service configuration files.', \get_debug_type($value))); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php deleted file mode 100644 index 80329a582..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php +++ /dev/null @@ -1,100 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -abstract class AbstractServiceConfigurator extends AbstractConfigurator -{ - protected $parent; - protected $id; - /** - * @var mixed[] - */ - private $defaultTags = []; - public function __construct(ServicesConfigurator $parent, Definition $definition, string $id = null, array $defaultTags = []) - { - $this->parent = $parent; - $this->definition = $definition; - $this->id = $id; - $this->defaultTags = $defaultTags; - } - public function __destruct() - { - // default tags should be added last - foreach ($this->defaultTags as $name => $attributes) { - foreach ($attributes as $attribute) { - $this->definition->addTag($name, $attribute); - } - } - $this->defaultTags = []; - } - /** - * Registers a service. - */ - public final function set(?string $id, string $class = null) : ServiceConfigurator - { - $this->__destruct(); - return $this->parent->set($id, $class); - } - /** - * Creates an alias. - */ - public final function alias(string $id, string $referencedId) : AliasConfigurator - { - $this->__destruct(); - return $this->parent->alias($id, $referencedId); - } - /** - * Registers a PSR-4 namespace using a glob pattern. - */ - public final function load(string $namespace, string $resource) : PrototypeConfigurator - { - $this->__destruct(); - return $this->parent->load($namespace, $resource); - } - /** - * Gets an already defined service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public final function get(string $id) : ServiceConfigurator - { - $this->__destruct(); - return $this->parent->get($id); - } - /** - * Removes an already defined service definition or alias. - */ - public final function remove(string $id) : ServicesConfigurator - { - $this->__destruct(); - return $this->parent->remove($id); - } - /** - * Registers a stack of decorator services. - * - * @param InlineServiceConfigurator[]|ReferenceConfigurator[] $services - */ - public final function stack(string $id, array $services) : AliasConfigurator - { - $this->__destruct(); - return $this->parent->stack($id, $services); - } - /** - * Registers a service. - */ - public final function __invoke(string $id, string $class = null) : ServiceConfigurator - { - $this->__destruct(); - return $this->parent->set($id, $class); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php deleted file mode 100644 index 87e2b7305..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -/** - * @author Nicolas Grekas - */ -class AliasConfigurator extends AbstractServiceConfigurator -{ - use Traits\DeprecateTrait; - use Traits\PublicTrait; - public const FACTORY = 'alias'; - public function __construct(ServicesConfigurator $parent, Alias $alias) - { - $this->parent = $parent; - $this->definition = $alias; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php deleted file mode 100644 index 86790db9b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ClosureReferenceConfigurator.php +++ /dev/null @@ -1,15 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -class ClosureReferenceConfigurator extends ReferenceConfigurator -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php deleted file mode 100644 index 8d1fd09d3..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php +++ /dev/null @@ -1,201 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\Config\Loader\ParamConfigurator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * @author Nicolas Grekas - */ -class ContainerConfigurator extends AbstractConfigurator -{ - public const FACTORY = 'container'; - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder - */ - private $container; - /** - * @var \Symfony\Component\DependencyInjection\Loader\PhpFileLoader - */ - private $loader; - /** - * @var mixed[] - */ - private $instanceof; - /** - * @var string - */ - private $path; - /** - * @var string - */ - private $file; - /** - * @var int - */ - private $anonymousCount = 0; - /** - * @var string|null - */ - private $env; - public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path, string $file, string $env = null) - { - $this->container = $container; - $this->loader = $loader; - $this->instanceof =& $instanceof; - $this->path = $path; - $this->file = $file; - $this->env = $env; - } - public final function extension(string $namespace, array $config) - { - if (!$this->container->hasExtension($namespace)) { - $extensions = \array_filter(\array_map(function (ExtensionInterface $ext) { - return $ext->getAlias(); - }, $this->container->getExtensions())); - throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $this->file, $namespace, $extensions ? \implode('", "', $extensions) : 'none')); - } - $this->container->loadFromExtension($namespace, static::processValue($config)); - } - /** - * @param bool|string $ignoreErrors - */ - public final function import(string $resource, string $type = null, $ignoreErrors = \false) - { - $this->loader->setCurrentDir(\dirname($this->path)); - $this->loader->import($resource, $type, $ignoreErrors, $this->file); - } - public final function parameters() : ParametersConfigurator - { - return new ParametersConfigurator($this->container); - } - public final function services() : ServicesConfigurator - { - return new ServicesConfigurator($this->container, $this->loader, $this->instanceof, $this->path, $this->anonymousCount); - } - /** - * Get the current environment to be able to write conditional configuration. - */ - public final function env() : ?string - { - return $this->env; - } - /** - * @return static - */ - public final function withPath(string $path) - { - $clone = clone $this; - $clone->path = $clone->file = $path; - $clone->loader->setCurrentDir(\dirname($path)); - return $clone; - } -} -/** - * Creates a parameter. - */ -function param(string $name) : ParamConfigurator -{ - return new ParamConfigurator($name); -} -/** - * Creates a reference to a service. - */ -function service(string $serviceId) : ReferenceConfigurator -{ - return new ReferenceConfigurator($serviceId); -} -/** - * Creates an inline service. - */ -function inline_service(string $class = null) : InlineServiceConfigurator -{ - return new InlineServiceConfigurator(new Definition($class)); -} -/** - * Creates a service locator. - * - * @param ReferenceConfigurator[] $values - */ -function service_locator(array $values) : ServiceLocatorArgument -{ - return new ServiceLocatorArgument(AbstractConfigurator::processValue($values, \true)); -} -/** - * Creates a lazy iterator. - * - * @param ReferenceConfigurator[] $values - */ -function iterator(array $values) : IteratorArgument -{ - return new IteratorArgument(AbstractConfigurator::processValue($values, \true)); -} -/** - * Creates a lazy iterator by tag name. - * @param string|mixed[] $exclude - */ -function tagged_iterator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null, string $defaultPriorityMethod = null, $exclude = []) : TaggedIteratorArgument -{ - return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, \false, $defaultPriorityMethod, (array) $exclude); -} -/** - * Creates a service locator by tag name. - * @param string|mixed[] $exclude - */ -function tagged_locator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null, string $defaultPriorityMethod = null, $exclude = []) : ServiceLocatorArgument -{ - return new ServiceLocatorArgument(new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, \true, $defaultPriorityMethod, (array) $exclude)); -} -/** - * Creates an expression. - */ -function expr(string $expression) : Expression -{ - return new Expression($expression); -} -/** - * Creates an abstract argument. - */ -function abstract_arg(string $description) : AbstractArgument -{ - return new AbstractArgument($description); -} -/** - * Creates an environment variable reference. - */ -function env(string $name) : EnvConfigurator -{ - return new EnvConfigurator($name); -} -/** - * Creates a closure service reference. - */ -function service_closure(string $serviceId) : ClosureReferenceConfigurator -{ - return new ClosureReferenceConfigurator($serviceId); -} -/** - * Creates a closure. - * @param string|mixed[]|\Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator|\Symfony\Component\ExpressionLanguage\Expression $callable - */ -function closure($callable) : InlineServiceConfigurator -{ - return (new InlineServiceConfigurator(new Definition('Closure')))->factory(['Closure', 'fromCallable'])->args([$callable]); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php deleted file mode 100644 index 15bd64d70..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php +++ /dev/null @@ -1,61 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * @author Nicolas Grekas - */ -class DefaultsConfigurator extends AbstractServiceConfigurator -{ - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\PublicTrait; - public const FACTORY = 'defaults'; - /** - * @var string|null - */ - private $path; - public function __construct(ServicesConfigurator $parent, Definition $definition, string $path = null) - { - parent::__construct($parent, $definition, null, []); - $this->path = $path; - } - /** - * Adds a tag for this definition. - * - * @return $this - * - * @throws InvalidArgumentException when an invalid tag name or attribute is provided - */ - public final function tag(string $name, array $attributes = []) - { - if ('' === $name) { - throw new InvalidArgumentException('The tag name in "_defaults" must be a non-empty string.'); - } - foreach ($attributes as $attribute => $value) { - if (null !== $value && !\is_scalar($value)) { - throw new InvalidArgumentException(\sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type.', $name, $attribute)); - } - } - $this->definition->addTag($name, $attributes); - return $this; - } - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - public final function instanceof(string $fqcn) : InstanceofConfigurator - { - return $this->parent->instanceof($fqcn); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php deleted file mode 100644 index 6fa24e781..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/EnvConfigurator.php +++ /dev/null @@ -1,181 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\Config\Loader\ParamConfigurator; -class EnvConfigurator extends ParamConfigurator -{ - /** - * @var string[] - */ - private $stack; - public function __construct(string $name) - { - $this->stack = \explode(':', $name); - } - public function __toString() : string - { - return '%env(' . \implode(':', $this->stack) . ')%'; - } - /** - * @return $this - */ - public function __call(string $name, array $arguments) - { - $processor = \strtolower(\preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\\d])([A-Z])/'], 'RectorPrefix202308\\1_\\2', $name)); - $this->custom($processor, ...$arguments); - return $this; - } - /** - * @return $this - */ - public function custom(string $processor, ...$args) - { - \array_unshift($this->stack, $processor, ...$args); - return $this; - } - /** - * @return $this - */ - public function base64() - { - \array_unshift($this->stack, 'base64'); - return $this; - } - /** - * @return $this - */ - public function bool() - { - \array_unshift($this->stack, 'bool'); - return $this; - } - /** - * @return $this - */ - public function not() - { - \array_unshift($this->stack, 'not'); - return $this; - } - /** - * @return $this - */ - public function const() - { - \array_unshift($this->stack, 'const'); - return $this; - } - /** - * @return $this - */ - public function csv() - { - \array_unshift($this->stack, 'csv'); - return $this; - } - /** - * @return $this - */ - public function file() - { - \array_unshift($this->stack, 'file'); - return $this; - } - /** - * @return $this - */ - public function float() - { - \array_unshift($this->stack, 'float'); - return $this; - } - /** - * @return $this - */ - public function int() - { - \array_unshift($this->stack, 'int'); - return $this; - } - /** - * @return $this - */ - public function json() - { - \array_unshift($this->stack, 'json'); - return $this; - } - /** - * @return $this - */ - public function key(string $key) - { - \array_unshift($this->stack, 'key', $key); - return $this; - } - /** - * @return $this - */ - public function url() - { - \array_unshift($this->stack, 'url'); - return $this; - } - /** - * @return $this - */ - public function queryString() - { - \array_unshift($this->stack, 'query_string'); - return $this; - } - /** - * @return $this - */ - public function resolve() - { - \array_unshift($this->stack, 'resolve'); - return $this; - } - /** - * @return $this - */ - public function default(string $fallbackParam) - { - \array_unshift($this->stack, 'default', $fallbackParam); - return $this; - } - /** - * @return $this - */ - public function string() - { - \array_unshift($this->stack, 'string'); - return $this; - } - /** - * @return $this - */ - public function trim() - { - \array_unshift($this->stack, 'trim'); - return $this; - } - /** - * @return $this - */ - public function require() - { - \array_unshift($this->stack, 'require'); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php deleted file mode 100644 index 2184c1591..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * @author Nicolas Grekas - */ -class InlineServiceConfigurator extends AbstractConfigurator -{ - use Traits\ArgumentTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\FactoryTrait; - use Traits\FileTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\TagTrait; - public const FACTORY = 'service'; - /** - * @var string - */ - private $id = '[inline]'; - /** - * @var bool - */ - private $allowParent = \true; - /** - * @var string|null - */ - private $path; - public function __construct(Definition $definition) - { - $this->definition = $definition; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php deleted file mode 100644 index dc9cb075b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * @author Nicolas Grekas - */ -class InstanceofConfigurator extends AbstractServiceConfigurator -{ - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\LazyTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\TagTrait; - public const FACTORY = 'instanceof'; - /** - * @var string|null - */ - private $path; - public function __construct(ServicesConfigurator $parent, Definition $definition, string $id, string $path = null) - { - parent::__construct($parent, $definition, $id, []); - $this->path = $path; - } - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - public final function instanceof(string $fqcn) : self - { - return $this->parent->instanceof($fqcn); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php deleted file mode 100644 index a603284b3..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * @author Nicolas Grekas - */ -class ParametersConfigurator extends AbstractConfigurator -{ - public const FACTORY = 'parameters'; - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder - */ - private $container; - public function __construct(ContainerBuilder $container) - { - $this->container = $container; - } - /** - * @return $this - * @param mixed $value - */ - public final function set(string $name, $value) - { - if ($value instanceof Expression) { - throw new InvalidArgumentException(\sprintf('Using an expression in parameter "%s" is not allowed.', $name)); - } - $this->container->setParameter($name, static::processValue($value, \true)); - return $this; - } - /** - * @return $this - * @param mixed $value - */ - public final function __invoke(string $name, $value) - { - return $this->set($name, $value); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php deleted file mode 100644 index d14520e96..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php +++ /dev/null @@ -1,88 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -/** - * @author Nicolas Grekas - */ -class PrototypeConfigurator extends AbstractServiceConfigurator -{ - use Traits\AbstractTrait; - use Traits\ArgumentTrait; - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ConfiguratorTrait; - use Traits\DeprecateTrait; - use Traits\FactoryTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\TagTrait; - public const FACTORY = 'load'; - /** - * @var \Symfony\Component\DependencyInjection\Loader\PhpFileLoader - */ - private $loader; - /** - * @var string - */ - private $resource; - /** - * @var mixed[]|null - */ - private $excludes; - /** - * @var bool - */ - private $allowParent; - public function __construct(ServicesConfigurator $parent, PhpFileLoader $loader, Definition $defaults, string $namespace, string $resource, bool $allowParent) - { - $definition = new Definition(); - if (!$defaults->isPublic() || !$defaults->isPrivate()) { - $definition->setPublic($defaults->isPublic()); - } - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - // deep clone, to avoid multiple process of the same instance in the passes - $definition->setBindings(\unserialize(\serialize($defaults->getBindings()))); - $definition->setChanges([]); - $this->loader = $loader; - $this->resource = $resource; - $this->allowParent = $allowParent; - parent::__construct($parent, $definition, $namespace, $defaults->getTags()); - } - public function __destruct() - { - parent::__destruct(); - if (isset($this->loader)) { - $this->loader->registerClasses($this->definition, $this->id, $this->resource, $this->excludes); - } - unset($this->loader); - } - /** - * Excludes files from registration using glob patterns. - * - * @param string[]|string $excludes - * - * @return $this - */ - public final function exclude($excludes) - { - $this->excludes = (array) $excludes; - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php deleted file mode 100644 index d66cc5406..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -/** - * @author Nicolas Grekas - */ -class ReferenceConfigurator extends AbstractConfigurator -{ - /** @internal - * @var string */ - protected $id; - /** @internal - * @var int */ - protected $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - public function __construct(string $id) - { - $this->id = $id; - } - /** - * @return $this - */ - public final function ignoreOnInvalid() - { - $this->invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - return $this; - } - /** - * @return $this - */ - public final function nullOnInvalid() - { - $this->invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - return $this; - } - /** - * @return $this - */ - public final function ignoreOnUninitialized() - { - $this->invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - return $this; - } - public function __toString() : string - { - return $this->id; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php deleted file mode 100644 index 8e0c8f072..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -/** - * @author Nicolas Grekas - */ -class ServiceConfigurator extends AbstractServiceConfigurator -{ - use Traits\AbstractTrait; - use Traits\ArgumentTrait; - use Traits\AutoconfigureTrait; - use Traits\AutowireTrait; - use Traits\BindTrait; - use Traits\CallTrait; - use Traits\ClassTrait; - use Traits\ConfiguratorTrait; - use Traits\DecorateTrait; - use Traits\DeprecateTrait; - use Traits\FactoryTrait; - use Traits\FileTrait; - use Traits\LazyTrait; - use Traits\ParentTrait; - use Traits\PropertyTrait; - use Traits\PublicTrait; - use Traits\ShareTrait; - use Traits\SyntheticTrait; - use Traits\TagTrait; - public const FACTORY = 'services'; - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder - */ - private $container; - /** - * @var mixed[] - */ - private $instanceof; - /** - * @var bool - */ - private $allowParent; - /** - * @var string|null - */ - private $path; - /** - * @var bool - */ - private $destructed = \false; - public function __construct(ContainerBuilder $container, array $instanceof, bool $allowParent, ServicesConfigurator $parent, Definition $definition, ?string $id, array $defaultTags, string $path = null) - { - $this->container = $container; - $this->instanceof = $instanceof; - $this->allowParent = $allowParent; - $this->path = $path; - parent::__construct($parent, $definition, $id, $defaultTags); - } - public function __destruct() - { - if ($this->destructed) { - return; - } - $this->destructed = \true; - parent::__destruct(); - $this->container->removeBindings($this->id); - $this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof)); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php deleted file mode 100644 index 0fe2ca422..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php +++ /dev/null @@ -1,182 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\PhpFileLoader; -/** - * @author Nicolas Grekas - */ -class ServicesConfigurator extends AbstractConfigurator -{ - public const FACTORY = 'services'; - /** - * @var \Symfony\Component\DependencyInjection\Definition - */ - private $defaults; - /** - * @var \Symfony\Component\DependencyInjection\ContainerBuilder - */ - private $container; - /** - * @var \Symfony\Component\DependencyInjection\Loader\PhpFileLoader - */ - private $loader; - /** - * @var mixed[] - */ - private $instanceof; - /** - * @var string|null - */ - private $path; - /** - * @var string - */ - private $anonymousHash; - /** - * @var int - */ - private $anonymousCount; - public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path = null, int &$anonymousCount = 0) - { - $this->defaults = new Definition(); - $this->container = $container; - $this->loader = $loader; - $this->instanceof =& $instanceof; - $this->path = $path; - $this->anonymousHash = ContainerBuilder::hash($path ?: \mt_rand()); - $this->anonymousCount =& $anonymousCount; - $instanceof = []; - } - /** - * Defines a set of defaults for following service definitions. - */ - public final function defaults() : DefaultsConfigurator - { - return new DefaultsConfigurator($this, $this->defaults = new Definition(), $this->path); - } - /** - * Defines an instanceof-conditional to be applied to following service definitions. - */ - public final function instanceof(string $fqcn) : InstanceofConfigurator - { - $this->instanceof[$fqcn] = $definition = new ChildDefinition(''); - return new InstanceofConfigurator($this, $definition, $fqcn, $this->path); - } - /** - * Registers a service. - * - * @param string|null $id The service id, or null to create an anonymous service - * @param string|null $class The class of the service, or null when $id is also the class name - */ - public final function set(?string $id, string $class = null) : ServiceConfigurator - { - $defaults = $this->defaults; - $definition = new Definition(); - if (null === $id) { - if (!$class) { - throw new \LogicException('Anonymous services must have a class name.'); - } - $id = \sprintf('.%d_%s', ++$this->anonymousCount, \preg_replace('/^.*\\\\/', '', $class) . '~' . $this->anonymousHash); - } elseif (!$defaults->isPublic() || !$defaults->isPrivate()) { - $definition->setPublic($defaults->isPublic() && !$defaults->isPrivate()); - } - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - // deep clone, to avoid multiple process of the same instance in the passes - $definition->setBindings(\unserialize(\serialize($defaults->getBindings()))); - $definition->setChanges([]); - $configurator = new ServiceConfigurator($this->container, $this->instanceof, \true, $this, $definition, $id, $defaults->getTags(), $this->path); - return null !== $class ? $configurator->class($class) : $configurator; - } - /** - * Removes an already defined service definition or alias. - * - * @return $this - */ - public final function remove(string $id) - { - $this->container->removeDefinition($id); - $this->container->removeAlias($id); - return $this; - } - /** - * Creates an alias. - */ - public final function alias(string $id, string $referencedId) : AliasConfigurator - { - $ref = static::processValue($referencedId, \true); - $alias = new Alias((string) $ref); - if (!$this->defaults->isPublic() || !$this->defaults->isPrivate()) { - $alias->setPublic($this->defaults->isPublic()); - } - $this->container->setAlias($id, $alias); - return new AliasConfigurator($this, $alias); - } - /** - * Registers a PSR-4 namespace using a glob pattern. - */ - public final function load(string $namespace, string $resource) : PrototypeConfigurator - { - return new PrototypeConfigurator($this, $this->loader, $this->defaults, $namespace, $resource, \true); - } - /** - * Gets an already defined service definition. - * - * @throws ServiceNotFoundException if the service definition does not exist - */ - public final function get(string $id) : ServiceConfigurator - { - $definition = $this->container->getDefinition($id); - return new ServiceConfigurator($this->container, $definition->getInstanceofConditionals(), \true, $this, $definition, $id, []); - } - /** - * Registers a stack of decorator services. - * - * @param InlineServiceConfigurator[]|ReferenceConfigurator[] $services - */ - public final function stack(string $id, array $services) : AliasConfigurator - { - foreach ($services as $i => $service) { - if ($service instanceof InlineServiceConfigurator) { - $definition = $service->definition->setInstanceofConditionals($this->instanceof); - $changes = $definition->getChanges(); - $definition->setAutowired((isset($changes['autowired']) ? $definition : $this->defaults)->isAutowired()); - $definition->setAutoconfigured((isset($changes['autoconfigured']) ? $definition : $this->defaults)->isAutoconfigured()); - $definition->setBindings(\array_merge($this->defaults->getBindings(), $definition->getBindings())); - $definition->setChanges($changes); - $services[$i] = $definition; - } elseif (!$service instanceof ReferenceConfigurator) { - throw new InvalidArgumentException(\sprintf('"%s()" expects a list of definitions as returned by "%s()" or "%s()", "%s" given at index "%s" for service "%s".', __METHOD__, InlineServiceConfigurator::FACTORY, ReferenceConfigurator::FACTORY, $service instanceof AbstractConfigurator ? $service::FACTORY . '()' : \get_debug_type($service), $i, $id)); - } - } - $alias = $this->alias($id, ''); - $alias->definition = $this->set($id)->parent('')->args($services)->tag('container.stack')->definition; - return $alias; - } - /** - * Registers a service. - */ - public final function __invoke(string $id, string $class = null) : ServiceConfigurator - { - return $this->set($id, $class); - } - public function __destruct() - { - $this->loader->registerAliasesForSinglyImplementedInterfaces(); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php deleted file mode 100644 index 779c2ebea..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait AbstractTrait -{ - /** - * Whether this definition is abstract, that means it merely serves as a - * template for other definitions. - * - * @return $this - */ - public final function abstract(bool $abstract = \true) - { - $this->definition->setAbstract($abstract); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php deleted file mode 100644 index 40cf3b9e5..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php +++ /dev/null @@ -1,37 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ArgumentTrait -{ - /** - * Sets the arguments to pass to the service constructor/factory method. - * - * @return $this - */ - public final function args(array $arguments) - { - $this->definition->setArguments(static::processValue($arguments, \true)); - return $this; - } - /** - * Sets one argument to pass to the service constructor/factory method. - * - * @return $this - * @param string|int $key - * @param mixed $value - */ - public final function arg($key, $value) - { - $this->definition->setArgument($key, static::processValue($value, \true)); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php deleted file mode 100644 index e740f2e77..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php +++ /dev/null @@ -1,28 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -trait AutoconfigureTrait -{ - /** - * Sets whether or not instanceof conditionals should be prepended with a global set. - * - * @return $this - * - * @throws InvalidArgumentException when a parent is already set - */ - public final function autoconfigure(bool $autoconfigured = \true) - { - $this->definition->setAutoconfigured($autoconfigured); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php deleted file mode 100644 index 04c08d3bc..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait AutowireTrait -{ - /** - * Enables/disables autowiring. - * - * @return $this - */ - public final function autowire(bool $autowired = \true) - { - $this->definition->setAutowired($autowired); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php deleted file mode 100644 index da71c57b9..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\BoundArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\DefaultsConfigurator; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\InstanceofConfigurator; -trait BindTrait -{ - /** - * Sets bindings. - * - * Bindings map $named or FQCN arguments to values that should be - * injected in the matching parameters (of the constructor, of methods - * called and of controller actions). - * - * @param string $nameOrFqcn A parameter name with its "$" prefix, or an FQCN - * @param mixed $valueOrRef The value or reference to bind - * - * @return $this - */ - public final function bind(string $nameOrFqcn, $valueOrRef) - { - $valueOrRef = static::processValue($valueOrRef, \true); - $bindings = $this->definition->getBindings(); - $type = $this instanceof DefaultsConfigurator ? BoundArgument::DEFAULTS_BINDING : ($this instanceof InstanceofConfigurator ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING); - $bindings[$nameOrFqcn] = new BoundArgument($valueOrRef, \true, $type, $this->path ?? null); - $this->definition->setBindings($bindings); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php deleted file mode 100644 index 6890da607..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -trait CallTrait -{ - /** - * Adds a method to call after service initialization. - * - * @param string $method The method name to call - * @param array $arguments An array of arguments to pass to the method call - * @param bool $returnsClone Whether the call returns the service instance or not - * - * @return $this - * - * @throws InvalidArgumentException on empty $method param - */ - public final function call(string $method, array $arguments = [], bool $returnsClone = \false) - { - $this->definition->addMethodCall($method, static::processValue($arguments, \true), $returnsClone); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php deleted file mode 100644 index 1a446d94c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ClassTrait -{ - /** - * Sets the service class. - * - * @return $this - */ - public final function class(?string $class) - { - $this->definition->setClass($class); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php deleted file mode 100644 index c64afe949..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php +++ /dev/null @@ -1,27 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator; -trait ConfiguratorTrait -{ - /** - * Sets a configurator to call after the service is fully initialized. - * - * @return $this - * @param string|mixed[]|\Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator $configurator - */ - public final function configurator($configurator) - { - $this->definition->setConfigurator(static::processValue($configurator, \true)); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php deleted file mode 100644 index bcea03c6d..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -trait DecorateTrait -{ - /** - * Sets the service that this service is decorating. - * - * @param string|null $id The decorated service id, use null to remove decoration - * - * @return $this - * - * @throws InvalidArgumentException in case the decorated service id and the new decorated service id are equals - */ - public final function decorate(?string $id, string $renamedId = null, int $priority = 0, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) - { - $this->definition->setDecoratedService($id, $renamedId, $priority, $invalidBehavior); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php deleted file mode 100644 index a6c61d198..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -trait DeprecateTrait -{ - /** - * Whether this definition is deprecated, that means it should not be called anymore. - * - * @param string $package The name of the composer package that is triggering the deprecation - * @param string $version The version of the package that introduced the deprecation - * @param string $message The deprecation message to use - * - * @return $this - * - * @throws InvalidArgumentException when the message template is invalid - */ - public final function deprecate(string $package, string $version, string $message) - { - $this->definition->setDeprecated($package, $version, $message); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php deleted file mode 100644 index 53e1cb309..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -trait FactoryTrait -{ - /** - * Sets a factory. - * - * @return $this - * @param string|mixed[]|\Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator|\Symfony\Component\ExpressionLanguage\Expression $factory - */ - public final function factory($factory) - { - if (\is_string($factory) && 1 === \substr_count($factory, ':')) { - $factoryParts = \explode(':', $factory); - throw new InvalidArgumentException(\sprintf('Invalid factory "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[service(\'%s\'), \'%s\']" instead.', $factory, $factoryParts[0], $factoryParts[1])); - } - if ($factory instanceof Expression) { - $factory = '@=' . $factory; - } - $this->definition->setFactory(static::processValue($factory, \true)); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php deleted file mode 100644 index 4e5423b9c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait FileTrait -{ - /** - * Sets a file to require before creating the service. - * - * @return $this - */ - public final function file(string $file) - { - $this->definition->setFile($file); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php deleted file mode 100644 index cbaec13e4..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php +++ /dev/null @@ -1,30 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait LazyTrait -{ - /** - * Sets the lazy flag of this service. - * - * @param bool|string $lazy A FQCN to derivate the lazy proxy from or `true` to make it extend from the definition's class - * - * @return $this - */ - public final function lazy($lazy = \true) - { - $this->definition->setLazy((bool) $lazy); - if (\is_string($lazy)) { - $this->definition->addTag('proxy', ['interface' => $lazy]); - } - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php deleted file mode 100644 index bfc3f56f9..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -trait ParentTrait -{ - /** - * Sets the Definition to inherit from. - * - * @return $this - * - * @throws InvalidArgumentException when parent cannot be set - */ - public final function parent(string $parent) - { - if (!$this->allowParent) { - throw new InvalidArgumentException(\sprintf('A parent cannot be defined when either "_instanceof" or "_defaults" are also defined for service prototype "%s".', $this->id)); - } - if ($this->definition instanceof ChildDefinition) { - $this->definition->setParent($parent); - } else { - // cast Definition to ChildDefinition - $definition = \serialize($this->definition); - $definition = \substr_replace($definition, '53', 2, 2); - $definition = \substr_replace($definition, 'Child', 44, 0); - $definition = \unserialize($definition); - $this->definition = $definition->setParent($parent); - } - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php deleted file mode 100644 index 7be42d57d..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait PropertyTrait -{ - /** - * Sets a specific property. - * - * @return $this - * @param mixed $value - */ - public final function property(string $name, $value) - { - $this->definition->setProperty($name, static::processValue($value, \true)); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php deleted file mode 100644 index c672ec710..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait PublicTrait -{ - /** - * @return $this - */ - public final function public() - { - $this->definition->setPublic(\true); - return $this; - } - /** - * @return $this - */ - public final function private() - { - $this->definition->setPublic(\false); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php deleted file mode 100644 index 3b45ddcae..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait ShareTrait -{ - /** - * Sets if the service must be shared or not. - * - * @return $this - */ - public final function share(bool $shared = \true) - { - $this->definition->setShared($shared); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php deleted file mode 100644 index 841f1f211..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -trait SyntheticTrait -{ - /** - * Sets whether this definition is synthetic, that is not constructed by the - * container, but dynamically injected. - * - * @return $this - */ - public final function synthetic(bool $synthetic = \true) - { - $this->definition->setSynthetic($synthetic); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php deleted file mode 100644 index b079a912f..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\Traits; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -trait TagTrait -{ - /** - * Adds a tag for this definition. - * - * @return $this - */ - public final function tag(string $name, array $attributes = []) - { - if ('' === $name) { - throw new InvalidArgumentException(\sprintf('The tag name for service "%s" must be a non-empty string.', $this->id)); - } - foreach ($attributes as $attribute => $value) { - if (!\is_scalar($value) && null !== $value) { - throw new InvalidArgumentException(\sprintf('A tag attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $this->id, $name, $attribute)); - } - } - $this->definition->addTag($name, $attributes); - return $this; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/DirectoryLoader.php deleted file mode 100644 index 97e8ef450..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/DirectoryLoader.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 RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -/** - * DirectoryLoader is a recursive loader to go through directories. - * - * @author Sebastien Lavoie - */ -class DirectoryLoader extends FileLoader -{ - /** - * {@inheritdoc} - * @param mixed $file - * @return mixed - */ - public function load($file, string $type = null) - { - $file = \rtrim($file, '/'); - $path = $this->locator->locate($file); - $this->container->fileExists($path, \false); - foreach (\scandir($path) as $dir) { - if ('.' !== $dir[0]) { - if (\is_dir($path . '/' . $dir)) { - $dir .= '/'; - // append / to allow recursion - } - $this->setCurrentDir($path); - $this->import($dir, null, \false, $path); - } - } - return null; - } - /** - * {@inheritdoc} - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - if ('directory' === $type) { - return \true; - } - return null === $type && \is_string($resource) && \substr_compare($resource, '/', -\strlen('/')) === 0; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/FileLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/FileLoader.php deleted file mode 100644 index 0687dd597..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/FileLoader.php +++ /dev/null @@ -1,215 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Exception\FileLocatorFileNotFoundException; -use RectorPrefix202308\Symfony\Component\Config\Exception\LoaderLoadException; -use RectorPrefix202308\Symfony\Component\Config\FileLocatorInterface; -use RectorPrefix202308\Symfony\Component\Config\Loader\FileLoader as BaseFileLoader; -use RectorPrefix202308\Symfony\Component\Config\Loader\Loader; -use RectorPrefix202308\Symfony\Component\Config\Resource\GlobResource; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\When; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Compiler\RegisterAutoconfigureAttributesPass; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * FileLoader is the abstract class used by all built-in loaders that are file based. - * - * @author Fabien Potencier - */ -abstract class FileLoader extends BaseFileLoader -{ - public const ANONYMOUS_ID_REGEXP = '/^\\.\\d+_[^~]*+~[._a-zA-Z\\d]{7}$/'; - protected $container; - protected $isLoadingInstanceof = \false; - protected $instanceof = []; - protected $interfaces = []; - protected $singlyImplemented = []; - protected $autoRegisterAliasesForSinglyImplementedInterfaces = \true; - public function __construct(ContainerBuilder $container, FileLocatorInterface $locator, string $env = null) - { - $this->container = $container; - parent::__construct($locator, $env); - } - /** - * {@inheritdoc} - * - * @param bool|string $ignoreErrors Whether errors should be ignored; pass "not_found" to ignore only when the loaded resource is not found - * @param mixed $resource - * @return mixed - */ - public function import($resource, string $type = null, $ignoreErrors = \false, string $sourceResource = null, $exclude = null) - { - $args = \func_get_args(); - if ($ignoreNotFound = 'not_found' === $ignoreErrors) { - $args[2] = \false; - } elseif (!\is_bool($ignoreErrors)) { - throw new \TypeError(\sprintf('Invalid argument $ignoreErrors provided to "%s::import()": boolean or "not_found" expected, "%s" given.', static::class, \get_debug_type($ignoreErrors))); - } - try { - return parent::import(...$args); - } catch (LoaderLoadException $e) { - if (!$ignoreNotFound || !($prev = $e->getPrevious()) instanceof FileLocatorFileNotFoundException) { - throw $e; - } - foreach ($prev->getTrace() as $frame) { - if ('import' === ($frame['function'] ?? null) && \is_a($frame['class'] ?? '', Loader::class, \true)) { - break; - } - } - if (__FILE__ !== $frame['file']) { - throw $e; - } - } - return null; - } - /** - * Registers a set of classes as services using PSR-4 for discovery. - * - * @param Definition $prototype A definition to use as template - * @param string $namespace The namespace prefix of classes in the scanned directory - * @param string $resource The directory to look for classes, glob-patterns allowed - * @param string|mixed[] $exclude A globbed path of files to exclude or an array of globbed paths of files to exclude - */ - public function registerClasses(Definition $prototype, string $namespace, string $resource, $exclude = null) - { - if (\substr_compare($namespace, '\\', -\strlen('\\')) !== 0) { - throw new InvalidArgumentException(\sprintf('Namespace prefix must end with a "\\": "%s".', $namespace)); - } - if (!\preg_match('/^(?:[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+\\\\)++$/', $namespace)) { - throw new InvalidArgumentException(\sprintf('Namespace is not a valid PSR-4 prefix: "%s".', $namespace)); - } - $autoconfigureAttributes = new RegisterAutoconfigureAttributesPass(); - $autoconfigureAttributes = $autoconfigureAttributes->accept($prototype) ? $autoconfigureAttributes : null; - $classes = $this->findClasses($namespace, $resource, (array) $exclude, $autoconfigureAttributes); - // prepare for deep cloning - $serializedPrototype = \serialize($prototype); - foreach ($classes as $class => $errorMessage) { - if (null === $errorMessage && $autoconfigureAttributes && $this->env) { - $r = $this->container->getReflectionClass($class); - $attribute = null; - foreach ($r->getAttributes(When::class) as $attribute) { - if ($this->env === $attribute->newInstance()->env) { - $attribute = null; - break; - } - } - if (null !== $attribute) { - continue; - } - } - if (\interface_exists($class, \false)) { - $this->interfaces[] = $class; - } else { - $this->setDefinition($class, $definition = \unserialize($serializedPrototype)); - if (null !== $errorMessage) { - $definition->addError($errorMessage); - continue; - } - foreach (\class_implements($class, \false) as $interface) { - $this->singlyImplemented[$interface] = ($this->singlyImplemented[$interface] ?? $class) !== $class ? \false : $class; - } - } - } - if ($this->autoRegisterAliasesForSinglyImplementedInterfaces) { - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - public function registerAliasesForSinglyImplementedInterfaces() - { - foreach ($this->interfaces as $interface) { - if (!empty($this->singlyImplemented[$interface]) && !$this->container->has($interface)) { - $this->container->setAlias($interface, $this->singlyImplemented[$interface]); - } - } - $this->interfaces = $this->singlyImplemented = []; - } - /** - * Registers a definition in the container with its instanceof-conditionals. - */ - protected function setDefinition(string $id, Definition $definition) - { - $this->container->removeBindings($id); - if ($this->isLoadingInstanceof) { - if (!$definition instanceof ChildDefinition) { - throw new InvalidArgumentException(\sprintf('Invalid type definition "%s": ChildDefinition expected, "%s" given.', $id, \get_debug_type($definition))); - } - $this->instanceof[$id] = $definition; - } else { - $this->container->setDefinition($id, $definition->setInstanceofConditionals($this->instanceof)); - } - } - private function findClasses(string $namespace, string $pattern, array $excludePatterns, ?RegisterAutoconfigureAttributesPass $autoconfigureAttributes) : array - { - $parameterBag = $this->container->getParameterBag(); - $excludePaths = []; - $excludePrefix = null; - $excludePatterns = $parameterBag->unescapeValue($parameterBag->resolveValue($excludePatterns)); - foreach ($excludePatterns as $excludePattern) { - foreach ($this->glob($excludePattern, \true, $resource, \true, \true) as $path => $info) { - if (null === $excludePrefix) { - $excludePrefix = $resource->getPrefix(); - } - // normalize Windows slashes and remove trailing slashes - $excludePaths[\rtrim(\str_replace('\\', '/', $path), '/')] = \true; - } - } - $pattern = $parameterBag->unescapeValue($parameterBag->resolveValue($pattern)); - $classes = []; - $extRegexp = '/\\.php$/'; - $prefixLen = null; - foreach ($this->glob($pattern, \true, $resource, \false, \false, $excludePaths) as $path => $info) { - if (null === $prefixLen) { - $prefixLen = \strlen($resource->getPrefix()); - if ($excludePrefix && \strncmp($excludePrefix, $resource->getPrefix(), \strlen($resource->getPrefix())) !== 0) { - throw new InvalidArgumentException(\sprintf('Invalid "exclude" pattern when importing classes for "%s": make sure your "exclude" pattern (%s) is a subset of the "resource" pattern (%s).', $namespace, $excludePattern, $pattern)); - } - } - if (isset($excludePaths[\str_replace('\\', '/', $path)])) { - continue; - } - if (!\preg_match($extRegexp, $path, $m) || !$info->isReadable()) { - continue; - } - $class = $namespace . \ltrim(\str_replace('/', '\\', \substr($path, $prefixLen, -\strlen($m[0]))), '\\'); - if (!\preg_match('/^[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+(?:\\\\[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*+)*+$/', $class)) { - continue; - } - try { - $r = $this->container->getReflectionClass($class); - } catch (\ReflectionException $e) { - $classes[$class] = $e->getMessage(); - continue; - } - // check to make sure the expected class exists - if (!$r) { - throw new InvalidArgumentException(\sprintf('Expected to find class "%s" in file "%s" while importing services from resource "%s", but it was not found! Check the namespace prefix used with the resource.', $class, $path, $pattern)); - } - if ($r->isInstantiable() || $r->isInterface()) { - $classes[$class] = null; - } - if ($autoconfigureAttributes && !$r->isInstantiable()) { - $autoconfigureAttributes->processClass($this->container, $r); - } - } - // track only for new & removed files - if ($resource instanceof GlobResource) { - $this->container->addResource($resource); - } else { - foreach ($resource as $path) { - $this->container->fileExists($path, \false); - } - } - return $classes; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php deleted file mode 100644 index a01537118..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/GlobFileLoader.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -/** - * GlobFileLoader loads files from a glob pattern. - * - * @author Nicolas Grekas - */ -class GlobFileLoader extends FileLoader -{ - /** - * {@inheritdoc} - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - foreach ($this->glob($resource, \false, $globResource) as $path => $info) { - $this->import($path); - } - $this->container->addResource($globResource); - return null; - } - /** - * {@inheritdoc} - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - return 'glob' === $type; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/IniFileLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/IniFileLoader.php deleted file mode 100644 index d2314c293..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/IniFileLoader.php +++ /dev/null @@ -1,93 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Util\XmlUtils; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -/** - * IniFileLoader loads parameters from INI files. - * - * @author Fabien Potencier - */ -class IniFileLoader extends FileLoader -{ - /** - * {@inheritdoc} - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - $path = $this->locator->locate($resource); - $this->container->fileExists($path); - // first pass to catch parsing errors - $result = \parse_ini_file($path, \true); - if (\false === $result || [] === $result) { - throw new InvalidArgumentException(\sprintf('The "%s" file is not valid.', $resource)); - } - // real raw parsing - $result = \parse_ini_file($path, \true, \INI_SCANNER_RAW); - if (isset($result['parameters']) && \is_array($result['parameters'])) { - foreach ($result['parameters'] as $key => $value) { - $this->container->setParameter($key, $this->phpize($value)); - } - } - if ($this->env && \is_array($result['parameters@' . $this->env] ?? null)) { - foreach ($result['parameters@' . $this->env] as $key => $value) { - $this->container->setParameter($key, $this->phpize($value)); - } - } - return null; - } - /** - * {@inheritdoc} - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - if (!\is_string($resource)) { - return \false; - } - if (null === $type && 'ini' === \pathinfo($resource, \PATHINFO_EXTENSION)) { - return \true; - } - return 'ini' === $type; - } - /** - * Note that the following features are not supported: - * * strings with escaped quotes are not supported "foo\"bar"; - * * string concatenation ("foo" "bar"). - * @return mixed - */ - private function phpize(string $value) - { - // trim on the right as comments removal keep whitespaces - if ($value !== ($v = \rtrim($value))) { - $value = '""' === \substr_replace($v, '', 1, -1) ? \substr($v, 1, -1) : $v; - } - $lowercaseValue = \strtolower($value); - switch (\true) { - case \defined($value): - return \constant($value); - case 'yes' === $lowercaseValue: - case 'on' === $lowercaseValue: - return \true; - case 'no' === $lowercaseValue: - case 'off' === $lowercaseValue: - case 'none' === $lowercaseValue: - return \false; - case isset($value[1]) && ("'" === $value[0] && "'" === $value[\strlen($value) - 1] || '"' === $value[0] && '"' === $value[\strlen($value) - 1]): - return \substr($value, 1, -1); - default: - return XmlUtils::phpize($value); - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php deleted file mode 100644 index 71ba7bb10..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php +++ /dev/null @@ -1,188 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Builder\ConfigBuilderGenerator; -use RectorPrefix202308\Symfony\Component\Config\Builder\ConfigBuilderGeneratorInterface; -use RectorPrefix202308\Symfony\Component\Config\Builder\ConfigBuilderInterface; -use RectorPrefix202308\Symfony\Component\Config\FileLocatorInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Attribute\When; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Container; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; -/** - * PhpFileLoader loads service definitions from a PHP file. - * - * The PHP file is required and the $container variable can be - * used within the file to change the container. - * - * @author Fabien Potencier - */ -class PhpFileLoader extends FileLoader -{ - protected $autoRegisterAliasesForSinglyImplementedInterfaces = \false; - /** - * @var \Symfony\Component\Config\Builder\ConfigBuilderGeneratorInterface|null - */ - private $generator; - public function __construct(ContainerBuilder $container, FileLocatorInterface $locator, string $env = null, ConfigBuilderGeneratorInterface $generator = null) - { - parent::__construct($container, $locator, $env); - $this->generator = $generator; - } - /** - * {@inheritdoc} - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - // the container and loader variables are exposed to the included file below - $container = $this->container; - $loader = $this; - $path = $this->locator->locate($resource); - $this->setCurrentDir(\dirname($path)); - $this->container->fileExists($path); - // the closure forbids access to the private scope in the included file - $load = \Closure::bind(function ($path, $env) use($container, $loader, $resource, $type) { - return include $path; - }, $this, ProtectedPhpFileLoader::class); - try { - $callback = $load($path, $this->env); - if (\is_object($callback) && \is_callable($callback)) { - // generic solution - $reflectionFunction = new \ReflectionFunction($callback); - $containerConfiguratorClass = $reflectionFunction->getParameters()[0]->getType()->getName(); - $this->executeCallback($callback, new $containerConfiguratorClass($this->container, $this, $this->instanceof, $path, $resource, $this->env), $path); - } - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - return null; - } - /** - * {@inheritdoc} - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - if (!\is_string($resource)) { - return \false; - } - if (null === $type && 'php' === \pathinfo($resource, \PATHINFO_EXTENSION)) { - return \true; - } - return 'php' === $type; - } - /** - * Resolve the parameters to the $callback and execute it. - */ - private function executeCallback(callable $callback, ContainerConfigurator $containerConfigurator, string $path) - { - $callback = \Closure::fromCallable($callback); - $arguments = []; - $configBuilders = []; - $r = new \ReflectionFunction($callback); - $attribute = null; - foreach (\method_exists($r, 'getAttributes') ? $r->getAttributes(When::class) : [] as $attribute) { - if ($this->env === $attribute->newInstance()->env) { - $attribute = null; - break; - } - } - if (null !== $attribute) { - return; - } - foreach ($r->getParameters() as $parameter) { - $reflectionType = $parameter->getType(); - if (!$reflectionType instanceof \ReflectionNamedType) { - throw new \InvalidArgumentException(\sprintf('Could not resolve argument "$%s" for "%s". You must typehint it (for example with "%s" or "%s").', $parameter->getName(), $path, ContainerConfigurator::class, ContainerBuilder::class)); - } - $type = $reflectionType->getName(); - if (\is_a($type, ContainerConfigurator::class, \true)) { - $arguments[] = $containerConfigurator; - } else { - switch ($type) { - case ContainerBuilder::class: - $arguments[] = $this->container; - break; - case FileLoader::class: - case self::class: - $arguments[] = $this; - break; - default: - try { - $configBuilder = $this->configBuilder($type); - } catch (InvalidArgumentException|\LogicException $e) { - throw new \InvalidArgumentException(\sprintf('Could not resolve argument "%s" for "%s".', $type . ' $' . $parameter->getName(), $path), 0, $e); - } - $configBuilders[] = $configBuilder; - $arguments[] = $configBuilder; - } - } - } - // Force load ContainerConfigurator to make env(), param() etc available. - \class_exists(ContainerConfigurator::class); - $callback(...$arguments); - /** @var ConfigBuilderInterface $configBuilder */ - foreach ($configBuilders as $configBuilder) { - $containerConfigurator->extension($configBuilder->getExtensionAlias(), $configBuilder->toArray()); - } - } - /** - * @param string $namespace FQCN string for a class implementing ConfigBuilderInterface - */ - private function configBuilder(string $namespace) : ConfigBuilderInterface - { - if (!\class_exists(ConfigBuilderGenerator::class)) { - throw new \LogicException('You cannot use the config builder as the Config component is not installed. Try running "composer require symfony/config".'); - } - if (null === $this->generator) { - throw new \LogicException('You cannot use the ConfigBuilders without providing a class implementing ConfigBuilderGeneratorInterface.'); - } - // If class exists and implements ConfigBuilderInterface - if (\class_exists($namespace) && \is_subclass_of($namespace, ConfigBuilderInterface::class)) { - return new $namespace(); - } - // If it does not start with Symfony\Config\ we dont know how to handle this - if (\strncmp($namespace, 'Symfony\\Config\\', \strlen('Symfony\\Config\\')) !== 0) { - throw new InvalidArgumentException(\sprintf('Could not find or generate class "%s".', $namespace)); - } - // Try to get the extension alias - $alias = Container::underscore(\substr($namespace, 15, -6)); - if (\strpos($alias, '\\') !== \false) { - throw new InvalidArgumentException('You can only use "root" ConfigBuilders from "Symfony\\Config\\" namespace. Nested classes like "Symfony\\Config\\Framework\\CacheConfig" cannot be used.'); - } - if (!$this->container->hasExtension($alias)) { - $extensions = \array_filter(\array_map(function (ExtensionInterface $ext) { - return $ext->getAlias(); - }, $this->container->getExtensions())); - throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s". Looked for namespace "%s", found "%s".', $namespace, $alias, $extensions ? \implode('", "', $extensions) : 'none')); - } - $extension = $this->container->getExtension($alias); - if (!$extension instanceof ConfigurationExtensionInterface) { - throw new \LogicException(\sprintf('You cannot use the config builder for "%s" because the extension does not implement "%s".', $namespace, ConfigurationExtensionInterface::class)); - } - $configuration = $extension->getConfiguration([], $this->container); - $loader = $this->generator->build($configuration); - return $loader(); - } -} -/** - * @internal - */ -final class ProtectedPhpFileLoader extends PhpFileLoader -{ -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php deleted file mode 100644 index 1be9a18cc..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php +++ /dev/null @@ -1,667 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -use RectorPrefix202308\Symfony\Component\Config\Util\XmlUtils; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\BoundArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -/** - * XmlFileLoader loads XML files service definitions. - * - * @author Fabien Potencier - */ -class XmlFileLoader extends FileLoader -{ - public const NS = 'http://symfony.com/schema/dic/services'; - protected $autoRegisterAliasesForSinglyImplementedInterfaces = \false; - /** - * {@inheritdoc} - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - $path = $this->locator->locate($resource); - $xml = $this->parseFileToDOM($path); - $this->container->fileExists($path); - $this->loadXml($xml, $path); - if ($this->env) { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - foreach ($xpath->query(\sprintf('//container:when[@env="%s"]', $this->env)) ?: [] as $root) { - $env = $this->env; - $this->env = null; - try { - $this->loadXml($xml, $path, $root); - } finally { - $this->env = $env; - } - } - } - return null; - } - private function loadXml(\DOMDocument $xml, string $path, \DOMNode $root = null) : void - { - $defaults = $this->getServiceDefaults($xml, $path, $root); - // anonymous services - $this->processAnonymousServices($xml, $path, $root); - // imports - $this->parseImports($xml, $path, $root); - // parameters - $this->parseParameters($xml, $path, $root); - // extensions - $this->loadFromExtensions($xml, $root); - // services - try { - $this->parseDefinitions($xml, $path, $defaults, $root); - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - /** - * {@inheritdoc} - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - if (!\is_string($resource)) { - return \false; - } - if (null === $type && 'xml' === \pathinfo($resource, \PATHINFO_EXTENSION)) { - return \true; - } - return 'xml' === $type; - } - private function parseParameters(\DOMDocument $xml, string $file, \DOMNode $root = null) - { - if ($parameters = $this->getChildren($root ?? $xml->documentElement, 'parameters')) { - $this->container->getParameterBag()->add($this->getArgumentsAsPhp($parameters[0], 'parameter', $file)); - } - } - private function parseImports(\DOMDocument $xml, string $file, \DOMNode $root = null) - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - if (\false === ($imports = $xpath->query('.//container:imports/container:import', $root))) { - return; - } - $defaultDirectory = \dirname($file); - foreach ($imports as $import) { - $this->setCurrentDir($defaultDirectory); - $this->import($import->getAttribute('resource'), XmlUtils::phpize($import->getAttribute('type')) ?: null, XmlUtils::phpize($import->getAttribute('ignore-errors')) ?: \false, $file); - } - } - private function parseDefinitions(\DOMDocument $xml, string $file, Definition $defaults, \DOMNode $root = null) - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - if (\false === ($services = $xpath->query('.//container:services/container:service|.//container:services/container:prototype|.//container:services/container:stack', $root))) { - return; - } - $this->setCurrentDir(\dirname($file)); - $this->instanceof = []; - $this->isLoadingInstanceof = \true; - $instanceof = $xpath->query('.//container:services/container:instanceof', $root); - foreach ($instanceof as $service) { - $this->setDefinition((string) $service->getAttribute('id'), $this->parseDefinition($service, $file, new Definition())); - } - $this->isLoadingInstanceof = \false; - foreach ($services as $service) { - if ('stack' === $service->tagName) { - $service->setAttribute('parent', '-'); - $definition = $this->parseDefinition($service, $file, $defaults)->setTags(\array_merge_recursive(['container.stack' => [[]]], $defaults->getTags())); - $this->setDefinition($id = (string) $service->getAttribute('id'), $definition); - $stack = []; - foreach ($this->getChildren($service, 'service') as $k => $frame) { - $k = $frame->getAttribute('id') ?: $k; - $frame->setAttribute('id', $id . '" at index "' . $k); - if ($alias = $frame->getAttribute('alias')) { - $this->validateAlias($frame, $file); - $stack[$k] = new Reference($alias); - } else { - $stack[$k] = $this->parseDefinition($frame, $file, $defaults)->setInstanceofConditionals($this->instanceof); - } - } - $definition->setArguments($stack); - } elseif (null !== ($definition = $this->parseDefinition($service, $file, $defaults))) { - if ('prototype' === $service->tagName) { - $excludes = \array_column($this->getChildren($service, 'exclude'), 'nodeValue'); - if ($service->hasAttribute('exclude')) { - if (\count($excludes) > 0) { - throw new InvalidArgumentException('You cannot use both the attribute "exclude" and tags at the same time.'); - } - $excludes = [$service->getAttribute('exclude')]; - } - $this->registerClasses($definition, (string) $service->getAttribute('namespace'), (string) $service->getAttribute('resource'), $excludes); - } else { - $this->setDefinition((string) $service->getAttribute('id'), $definition); - } - } - } - } - private function getServiceDefaults(\DOMDocument $xml, string $file, \DOMNode $root = null) : Definition - { - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - if (null === ($defaultsNode = $xpath->query('.//container:services/container:defaults', $root)->item(0))) { - return new Definition(); - } - $defaultsNode->setAttribute('id', ''); - return $this->parseDefinition($defaultsNode, $file, new Definition()); - } - /** - * Parses an individual Definition. - */ - private function parseDefinition(\DOMElement $service, string $file, Definition $defaults) : ?Definition - { - if ($alias = $service->getAttribute('alias')) { - $this->validateAlias($service, $file); - $this->container->setAlias($service->getAttribute('id'), $alias = new Alias($alias)); - if ($publicAttr = $service->getAttribute('public')) { - $alias->setPublic(XmlUtils::phpize($publicAttr)); - } elseif ($defaults->getChanges()['public'] ?? \false) { - $alias->setPublic($defaults->isPublic()); - } - if ($deprecated = $this->getChildren($service, 'deprecated')) { - $message = $deprecated[0]->nodeValue ?: ''; - $package = $deprecated[0]->getAttribute('package') ?: ''; - $version = $deprecated[0]->getAttribute('version') ?: ''; - if (!$deprecated[0]->hasAttribute('package')) { - throw new InvalidArgumentException(\sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file)); - } - if (!$deprecated[0]->hasAttribute('version')) { - throw new InvalidArgumentException(\sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file)); - } - $alias->setDeprecated($package, $version, $message); - } - return null; - } - if ($this->isLoadingInstanceof) { - $definition = new ChildDefinition(''); - } elseif ($parent = $service->getAttribute('parent')) { - $definition = new ChildDefinition($parent); - } else { - $definition = new Definition(); - } - if ($defaults->getChanges()['public'] ?? \false) { - $definition->setPublic($defaults->isPublic()); - } - $definition->setAutowired($defaults->isAutowired()); - $definition->setAutoconfigured($defaults->isAutoconfigured()); - $definition->setChanges([]); - foreach (['class', 'public', 'shared', 'synthetic', 'abstract'] as $key) { - if ($value = $service->getAttribute($key)) { - $method = 'set' . $key; - $definition->{$method}($value = XmlUtils::phpize($value)); - } - } - if ($value = $service->getAttribute('lazy')) { - $definition->setLazy((bool) ($value = XmlUtils::phpize($value))); - if (\is_string($value)) { - $definition->addTag('proxy', ['interface' => $value]); - } - } - if ($value = $service->getAttribute('autowire')) { - $definition->setAutowired(XmlUtils::phpize($value)); - } - if ($value = $service->getAttribute('autoconfigure')) { - $definition->setAutoconfigured(XmlUtils::phpize($value)); - } - if ($files = $this->getChildren($service, 'file')) { - $definition->setFile($files[0]->nodeValue); - } - if ($deprecated = $this->getChildren($service, 'deprecated')) { - $message = $deprecated[0]->nodeValue ?: ''; - $package = $deprecated[0]->getAttribute('package') ?: ''; - $version = $deprecated[0]->getAttribute('version') ?: ''; - if (!$deprecated[0]->hasAttribute('package')) { - throw new InvalidArgumentException(\sprintf('Missing attribute "package" at node "deprecated" in "%s".', $file)); - } - if (!$deprecated[0]->hasAttribute('version')) { - throw new InvalidArgumentException(\sprintf('Missing attribute "version" at node "deprecated" in "%s".', $file)); - } - $definition->setDeprecated($package, $version, $message); - } - $definition->setArguments($this->getArgumentsAsPhp($service, 'argument', $file, $definition instanceof ChildDefinition)); - $definition->setProperties($this->getArgumentsAsPhp($service, 'property', $file)); - if ($factories = $this->getChildren($service, 'factory')) { - $factory = $factories[0]; - if ($function = $factory->getAttribute('function')) { - $definition->setFactory($function); - } elseif ($expression = $factory->getAttribute('expression')) { - if (!\class_exists(Expression::class)) { - throw new \LogicException('The "expression" attribute cannot be used on factories without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $definition->setFactory('@=' . $expression); - } else { - if ($childService = $factory->getAttribute('service')) { - $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } else { - $class = $factory->hasAttribute('class') ? $factory->getAttribute('class') : null; - } - $definition->setFactory([$class, $factory->getAttribute('method') ?: '__invoke']); - } - } - if ($configurators = $this->getChildren($service, 'configurator')) { - $configurator = $configurators[0]; - if ($function = $configurator->getAttribute('function')) { - $definition->setConfigurator($function); - } else { - if ($childService = $configurator->getAttribute('service')) { - $class = new Reference($childService, ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE); - } else { - $class = $configurator->getAttribute('class'); - } - $definition->setConfigurator([$class, $configurator->getAttribute('method') ?: '__invoke']); - } - } - foreach ($this->getChildren($service, 'call') as $call) { - $definition->addMethodCall($call->getAttribute('method'), $this->getArgumentsAsPhp($call, 'argument', $file), XmlUtils::phpize($call->getAttribute('returns-clone'))); - } - $tags = $this->getChildren($service, 'tag'); - foreach ($tags as $tag) { - $parameters = []; - $tagName = $tag->nodeValue; - foreach ($tag->attributes as $name => $node) { - if ('name' === $name && '' === $tagName) { - continue; - } - if (\strpos($name, '-') !== \false && \strpos($name, '_') === \false && !\array_key_exists($normalizedName = \str_replace('-', '_', $name), $parameters)) { - $parameters[$normalizedName] = XmlUtils::phpize($node->nodeValue); - } - // keep not normalized key - $parameters[$name] = XmlUtils::phpize($node->nodeValue); - } - if ('' === $tagName && '' === ($tagName = $tag->getAttribute('name'))) { - throw new InvalidArgumentException(\sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', $service->getAttribute('id'), $file)); - } - $definition->addTag($tagName, $parameters); - } - $definition->setTags(\array_merge_recursive($definition->getTags(), $defaults->getTags())); - $bindings = $this->getArgumentsAsPhp($service, 'bind', $file); - $bindingType = $this->isLoadingInstanceof ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING; - foreach ($bindings as $argument => $value) { - $bindings[$argument] = new BoundArgument($value, \true, $bindingType, $file); - } - // deep clone, to avoid multiple process of the same instance in the passes - $bindings = \array_merge(\unserialize(\serialize($defaults->getBindings())), $bindings); - if ($bindings) { - $definition->setBindings($bindings); - } - if ($decorates = $service->getAttribute('decorates')) { - $decorationOnInvalid = $service->getAttribute('decoration-on-invalid') ?: 'exception'; - if ('exception' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } elseif ('ignore' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif ('null' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } else { - throw new InvalidArgumentException(\sprintf('Invalid value "%s" for attribute "decoration-on-invalid" on service "%s". Did you mean "exception", "ignore" or "null" in "%s"?', $decorationOnInvalid, $service->getAttribute('id'), $file)); - } - $renameId = $service->hasAttribute('decoration-inner-name') ? $service->getAttribute('decoration-inner-name') : null; - $priority = $service->hasAttribute('decoration-priority') ? $service->getAttribute('decoration-priority') : 0; - $definition->setDecoratedService($decorates, $renameId, $priority, $invalidBehavior); - } - return $definition; - } - /** - * Parses an XML file to a \DOMDocument. - * - * @throws InvalidArgumentException When loading of XML file returns error - */ - private function parseFileToDOM(string $file) : \DOMDocument - { - try { - $dom = XmlUtils::loadFile($file, \Closure::fromCallable([$this, 'validateSchema'])); - } catch (\InvalidArgumentException $e) { - throw new InvalidArgumentException(\sprintf('Unable to parse file "%s": ', $file) . $e->getMessage(), $e->getCode(), $e); - } - $this->validateExtensions($dom, $file); - return $dom; - } - /** - * Processes anonymous services. - */ - private function processAnonymousServices(\DOMDocument $xml, string $file, \DOMNode $root = null) - { - $definitions = []; - $count = 0; - $suffix = '~' . ContainerBuilder::hash($file); - $xpath = new \DOMXPath($xml); - $xpath->registerNamespace('container', self::NS); - // anonymous services as arguments/properties - if (\false !== ($nodes = $xpath->query('.//container:argument[@type="service"][not(@id)]|.//container:property[@type="service"][not(@id)]|.//container:bind[not(@id)]|.//container:factory[not(@service)]|.//container:configurator[not(@service)]', $root))) { - foreach ($nodes as $node) { - if ($services = $this->getChildren($node, 'service')) { - // give it a unique name - $id = \sprintf('.%d_%s', ++$count, \preg_replace('/^.*\\\\/', '', $services[0]->getAttribute('class')) . $suffix); - $node->setAttribute('id', $id); - $node->setAttribute('service', $id); - $definitions[$id] = [$services[0], $file]; - $services[0]->setAttribute('id', $id); - // anonymous services are always private - // we could not use the constant false here, because of XML parsing - $services[0]->setAttribute('public', 'false'); - } - } - } - // anonymous services "in the wild" - if (\false !== ($nodes = $xpath->query('.//container:services/container:service[not(@id)]', $root))) { - foreach ($nodes as $node) { - throw new InvalidArgumentException(\sprintf('Top-level services must have "id" attribute, none found in "%s" at line %d.', $file, $node->getLineNo())); - } - } - // resolve definitions - \uksort($definitions, 'strnatcmp'); - foreach (\array_reverse($definitions) as $id => [$domElement, $file]) { - if (null !== ($definition = $this->parseDefinition($domElement, $file, new Definition()))) { - $this->setDefinition($id, $definition); - } - } - } - private function getArgumentsAsPhp(\DOMElement $node, string $name, string $file, bool $isChildDefinition = \false) : array - { - $arguments = []; - foreach ($this->getChildren($node, $name) as $arg) { - if ($arg->hasAttribute('name')) { - $arg->setAttribute('key', $arg->getAttribute('name')); - } - // this is used by ChildDefinition to overwrite a specific - // argument of the parent definition - if ($arg->hasAttribute('index')) { - $key = ($isChildDefinition ? 'index_' : '') . $arg->getAttribute('index'); - } elseif (!$arg->hasAttribute('key')) { - // Append an empty argument, then fetch its key to overwrite it later - $arguments[] = null; - $keys = \array_keys($arguments); - $key = \array_pop($keys); - } else { - $key = $arg->getAttribute('key'); - } - $onInvalid = $arg->getAttribute('on-invalid'); - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - if ('ignore' == $onInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif ('ignore_uninitialized' == $onInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - } elseif ('null' == $onInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } - switch ($type = $arg->getAttribute('type')) { - case 'service': - if ('' === $arg->getAttribute('id')) { - throw new InvalidArgumentException(\sprintf('Tag "<%s>" with type="service" has no or empty "id" attribute in "%s".', $name, $file)); - } - $arguments[$key] = new Reference($arg->getAttribute('id'), $invalidBehavior); - break; - case 'expression': - if (!\class_exists(Expression::class)) { - throw new \LogicException('The type="expression" attribute cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - $arguments[$key] = new Expression($arg->nodeValue); - break; - case 'collection': - $arguments[$key] = $this->getArgumentsAsPhp($arg, $name, $file); - break; - case 'iterator': - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - $arguments[$key] = new IteratorArgument($arg); - break; - case 'closure': - case 'service_closure': - if ('' !== $arg->getAttribute('id')) { - $arg = new Reference($arg->getAttribute('id'), $invalidBehavior); - } else { - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - } - switch ($type) { - case 'service_closure': - $arguments[$key] = new ServiceClosureArgument($arg); - break; - case 'closure': - $arguments[$key] = (new Definition('Closure'))->setFactory(['Closure', 'fromCallable'])->addArgument($arg); - break; - } - break; - case 'service_locator': - $arg = $this->getArgumentsAsPhp($arg, $name, $file); - $arguments[$key] = new ServiceLocatorArgument($arg); - break; - case 'tagged': - case 'tagged_iterator': - case 'tagged_locator': - $forLocator = 'tagged_locator' === $type; - if (!$arg->getAttribute('tag')) { - throw new InvalidArgumentException(\sprintf('Tag "<%s>" with type="%s" has no or empty "tag" attribute in "%s".', $name, $type, $file)); - } - $arguments[$key] = new TaggedIteratorArgument($arg->getAttribute('tag'), $arg->getAttribute('index-by') ?: null, $arg->getAttribute('default-index-method') ?: null, $forLocator, $arg->getAttribute('default-priority-method') ?: null); - if ($forLocator) { - $arguments[$key] = new ServiceLocatorArgument($arguments[$key]); - } - break; - case 'binary': - if (\false === ($value = \base64_decode($arg->nodeValue))) { - throw new InvalidArgumentException(\sprintf('Tag "<%s>" with type="binary" is not a valid base64 encoded string.', $name)); - } - $arguments[$key] = $value; - break; - case 'abstract': - $arguments[$key] = new AbstractArgument($arg->nodeValue); - break; - case 'string': - $arguments[$key] = $arg->nodeValue; - break; - case 'constant': - $arguments[$key] = \constant(\trim($arg->nodeValue)); - break; - default: - $arguments[$key] = XmlUtils::phpize($arg->nodeValue); - } - } - return $arguments; - } - /** - * Get child elements by name. - * - * @return \DOMElement[] - */ - private function getChildren(\DOMNode $node, string $name) : array - { - $children = []; - foreach ($node->childNodes as $child) { - if ($child instanceof \DOMElement && $child->localName === $name && self::NS === $child->namespaceURI) { - $children[] = $child; - } - } - return $children; - } - /** - * Validates a documents XML schema. - * - * @throws RuntimeException When extension references a non-existent XSD file - */ - public function validateSchema(\DOMDocument $dom) : bool - { - $schemaLocations = ['http://symfony.com/schema/dic/services' => \str_replace('\\', '/', __DIR__ . '/schema/dic/services/services-1.0.xsd')]; - if ($element = $dom->documentElement->getAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation')) { - $items = \preg_split('/\\s+/', $element); - for ($i = 0, $nb = \count($items); $i < $nb; $i += 2) { - if (!$this->container->hasExtension($items[$i])) { - continue; - } - if (($extension = $this->container->getExtension($items[$i])) && \false !== $extension->getXsdValidationBasePath()) { - $ns = $extension->getNamespace(); - $path = \str_replace([$ns, \str_replace('http://', 'https://', $ns)], \str_replace('\\', '/', $extension->getXsdValidationBasePath()) . '/', $items[$i + 1]); - if (!\is_file($path)) { - throw new RuntimeException(\sprintf('Extension "%s" references a non-existent XSD file "%s".', \get_debug_type($extension), $path)); - } - $schemaLocations[$items[$i]] = $path; - } - } - } - $tmpfiles = []; - $imports = ''; - foreach ($schemaLocations as $namespace => $location) { - $parts = \explode('/', $location); - $locationstart = 'file:///'; - if (0 === \stripos($location, 'phar://')) { - $tmpfile = \tempnam(\sys_get_temp_dir(), 'symfony'); - if ($tmpfile) { - \copy($location, $tmpfile); - $tmpfiles[] = $tmpfile; - $parts = \explode('/', \str_replace('\\', '/', $tmpfile)); - } else { - \array_shift($parts); - $locationstart = 'phar:///'; - } - } elseif ('\\' === \DIRECTORY_SEPARATOR && \strncmp($location, '\\\\', \strlen('\\\\')) === 0) { - $locationstart = ''; - } - $drive = '\\' === \DIRECTORY_SEPARATOR ? \array_shift($parts) . '/' : ''; - $location = $locationstart . $drive . \implode('/', \array_map('rawurlencode', $parts)); - $imports .= \sprintf(' ' . "\n", $namespace, $location); - } - $source = << - - - -{$imports} - -EOF; - if ($this->shouldEnableEntityLoader()) { - $disableEntities = \libxml_disable_entity_loader(\false); - $valid = @$dom->schemaValidateSource($source); - \libxml_disable_entity_loader($disableEntities); - } else { - $valid = @$dom->schemaValidateSource($source); - } - foreach ($tmpfiles as $tmpfile) { - @\unlink($tmpfile); - } - return $valid; - } - private function shouldEnableEntityLoader() : bool - { - static $dom, $schema; - if (null === $dom) { - $dom = new \DOMDocument(); - $dom->loadXML(''); - $tmpfile = \tempnam(\sys_get_temp_dir(), 'symfony'); - \register_shutdown_function(static function () use($tmpfile) { - @\unlink($tmpfile); - }); - $schema = ' - - -'; - \file_put_contents($tmpfile, ' - - - -'); - } - return !@$dom->schemaValidateSource($schema); - } - private function validateAlias(\DOMElement $alias, string $file) - { - foreach ($alias->attributes as $name => $node) { - if (!\in_array($name, ['alias', 'id', 'public'])) { - throw new InvalidArgumentException(\sprintf('Invalid attribute "%s" defined for alias "%s" in "%s".', $name, $alias->getAttribute('id'), $file)); - } - } - foreach ($alias->childNodes as $child) { - if (!$child instanceof \DOMElement || self::NS !== $child->namespaceURI) { - continue; - } - if (!\in_array($child->localName, ['deprecated'], \true)) { - throw new InvalidArgumentException(\sprintf('Invalid child element "%s" defined for alias "%s" in "%s".', $child->localName, $alias->getAttribute('id'), $file)); - } - } - } - /** - * Validates an extension. - * - * @throws InvalidArgumentException When no extension is found corresponding to a tag - */ - private function validateExtensions(\DOMDocument $dom, string $file) - { - foreach ($dom->documentElement->childNodes as $node) { - if (!$node instanceof \DOMElement || 'http://symfony.com/schema/dic/services' === $node->namespaceURI) { - continue; - } - // can it be handled by an extension? - if (!$this->container->hasExtension($node->namespaceURI)) { - $extensionNamespaces = \array_filter(\array_map(function (ExtensionInterface $ext) { - return $ext->getNamespace(); - }, $this->container->getExtensions())); - throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $node->tagName, $file, $node->namespaceURI, $extensionNamespaces ? \implode('", "', $extensionNamespaces) : 'none')); - } - } - } - /** - * Loads from an extension. - */ - private function loadFromExtensions(\DOMDocument $xml) - { - foreach ($xml->documentElement->childNodes as $node) { - if (!$node instanceof \DOMElement || self::NS === $node->namespaceURI) { - continue; - } - $values = static::convertDomElementToArray($node); - if (!\is_array($values)) { - $values = []; - } - $this->container->loadFromExtension($node->namespaceURI, $values); - } - } - /** - * Converts a \DOMElement object to a PHP array. - * - * The following rules applies during the conversion: - * - * * Each tag is converted to a key value or an array - * if there is more than one "value" - * - * * The content of a tag is set under a "value" key (bar) - * if the tag also has some nested tags - * - * * The attributes are converted to keys () - * - * * The nested-tags are converted to keys (bar) - * - * @param \DOMElement $element A \DOMElement instance - * @return mixed - */ - public static function convertDomElementToArray(\DOMElement $element) - { - return XmlUtils::convertDomElementToArray($element); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php deleted file mode 100644 index e1de33bcd..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/YamlFileLoader.php +++ /dev/null @@ -1,741 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\Loader; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Alias; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\AbstractArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\BoundArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\IteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ChildDefinition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202308\Symfony\Component\DependencyInjection\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Definition; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Extension\ExtensionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202308\Symfony\Component\ExpressionLanguage\Expression; -use RectorPrefix202308\Symfony\Component\Yaml\Exception\ParseException; -use RectorPrefix202308\Symfony\Component\Yaml\Parser as YamlParser; -use RectorPrefix202308\Symfony\Component\Yaml\Tag\TaggedValue; -use RectorPrefix202308\Symfony\Component\Yaml\Yaml; -/** - * YamlFileLoader loads YAML files service definitions. - * - * @author Fabien Potencier - */ -class YamlFileLoader extends FileLoader -{ - private const SERVICE_KEYWORDS = ['alias' => 'alias', 'parent' => 'parent', 'class' => 'class', 'shared' => 'shared', 'synthetic' => 'synthetic', 'lazy' => 'lazy', 'public' => 'public', 'abstract' => 'abstract', 'deprecated' => 'deprecated', 'factory' => 'factory', 'file' => 'file', 'arguments' => 'arguments', 'properties' => 'properties', 'configurator' => 'configurator', 'calls' => 'calls', 'tags' => 'tags', 'decorates' => 'decorates', 'decoration_inner_name' => 'decoration_inner_name', 'decoration_priority' => 'decoration_priority', 'decoration_on_invalid' => 'decoration_on_invalid', 'autowire' => 'autowire', 'autoconfigure' => 'autoconfigure', 'bind' => 'bind']; - private const PROTOTYPE_KEYWORDS = ['resource' => 'resource', 'namespace' => 'namespace', 'exclude' => 'exclude', 'parent' => 'parent', 'shared' => 'shared', 'lazy' => 'lazy', 'public' => 'public', 'abstract' => 'abstract', 'deprecated' => 'deprecated', 'factory' => 'factory', 'arguments' => 'arguments', 'properties' => 'properties', 'configurator' => 'configurator', 'calls' => 'calls', 'tags' => 'tags', 'autowire' => 'autowire', 'autoconfigure' => 'autoconfigure', 'bind' => 'bind']; - private const INSTANCEOF_KEYWORDS = ['shared' => 'shared', 'lazy' => 'lazy', 'public' => 'public', 'properties' => 'properties', 'configurator' => 'configurator', 'calls' => 'calls', 'tags' => 'tags', 'autowire' => 'autowire', 'bind' => 'bind']; - private const DEFAULTS_KEYWORDS = ['public' => 'public', 'tags' => 'tags', 'autowire' => 'autowire', 'autoconfigure' => 'autoconfigure', 'bind' => 'bind']; - /** - * @var YamlParser - */ - private $yamlParser; - /** - * @var int - */ - private $anonymousServicesCount; - /** - * @var string - */ - private $anonymousServicesSuffix; - protected $autoRegisterAliasesForSinglyImplementedInterfaces = \false; - /** - * {@inheritdoc} - * @param mixed $resource - * @return mixed - */ - public function load($resource, string $type = null) - { - $path = $this->locator->locate($resource); - $content = $this->loadFile($path); - $this->container->fileExists($path); - // empty file - if (null === $content) { - return null; - } - $this->loadContent($content, $path); - // per-env configuration - if ($this->env && isset($content['when@' . $this->env])) { - if (!\is_array($content['when@' . $this->env])) { - throw new InvalidArgumentException(\sprintf('The "when@%s" key should contain an array in "%s". Check your YAML syntax.', $this->env, $path)); - } - $env = $this->env; - $this->env = null; - try { - $this->loadContent($content['when@' . $env], $path); - } finally { - $this->env = $env; - } - } - return null; - } - private function loadContent(array $content, string $path) - { - // imports - $this->parseImports($content, $path); - // parameters - if (isset($content['parameters'])) { - if (!\is_array($content['parameters'])) { - throw new InvalidArgumentException(\sprintf('The "parameters" key should contain an array in "%s". Check your YAML syntax.', $path)); - } - foreach ($content['parameters'] as $key => $value) { - $this->container->setParameter($key, $this->resolveServices($value, $path, \true)); - } - } - // extensions - $this->loadFromExtensions($content); - // services - $this->anonymousServicesCount = 0; - $this->anonymousServicesSuffix = '~' . ContainerBuilder::hash($path); - $this->setCurrentDir(\dirname($path)); - try { - $this->parseDefinitions($content, $path); - } finally { - $this->instanceof = []; - $this->registerAliasesForSinglyImplementedInterfaces(); - } - } - /** - * {@inheritdoc} - * @param mixed $resource - */ - public function supports($resource, string $type = null) : bool - { - if (!\is_string($resource)) { - return \false; - } - if (null === $type && \in_array(\pathinfo($resource, \PATHINFO_EXTENSION), ['yaml', 'yml'], \true)) { - return \true; - } - return \in_array($type, ['yaml', 'yml'], \true); - } - private function parseImports(array $content, string $file) - { - if (!isset($content['imports'])) { - return; - } - if (!\is_array($content['imports'])) { - throw new InvalidArgumentException(\sprintf('The "imports" key should contain an array in "%s". Check your YAML syntax.', $file)); - } - $defaultDirectory = \dirname($file); - foreach ($content['imports'] as $import) { - if (!\is_array($import)) { - $import = ['resource' => $import]; - } - if (!isset($import['resource'])) { - throw new InvalidArgumentException(\sprintf('An import should provide a resource in "%s". Check your YAML syntax.', $file)); - } - $this->setCurrentDir($defaultDirectory); - $this->import($import['resource'], $import['type'] ?? null, $import['ignore_errors'] ?? \false, $file); - } - } - private function parseDefinitions(array $content, string $file, bool $trackBindings = \true) - { - if (!isset($content['services'])) { - return; - } - if (!\is_array($content['services'])) { - throw new InvalidArgumentException(\sprintf('The "services" key should contain an array in "%s". Check your YAML syntax.', $file)); - } - if (\array_key_exists('_instanceof', $content['services'])) { - $instanceof = $content['services']['_instanceof']; - unset($content['services']['_instanceof']); - if (!\is_array($instanceof)) { - throw new InvalidArgumentException(\sprintf('Service "_instanceof" key must be an array, "%s" given in "%s".', \get_debug_type($instanceof), $file)); - } - $this->instanceof = []; - $this->isLoadingInstanceof = \true; - foreach ($instanceof as $id => $service) { - if (!$service || !\is_array($service)) { - throw new InvalidArgumentException(\sprintf('Type definition "%s" must be a non-empty array within "_instanceof" in "%s". Check your YAML syntax.', $id, $file)); - } - if (\is_string($service) && \strncmp($service, '@', \strlen('@')) === 0) { - throw new InvalidArgumentException(\sprintf('Type definition "%s" cannot be an alias within "_instanceof" in "%s". Check your YAML syntax.', $id, $file)); - } - $this->parseDefinition($id, $service, $file, [], \false, $trackBindings); - } - } - $this->isLoadingInstanceof = \false; - $defaults = $this->parseDefaults($content, $file); - foreach ($content['services'] as $id => $service) { - $this->parseDefinition($id, $service, $file, $defaults, \false, $trackBindings); - } - } - /** - * @throws InvalidArgumentException - */ - private function parseDefaults(array &$content, string $file) : array - { - if (!\array_key_exists('_defaults', $content['services'])) { - return []; - } - $defaults = $content['services']['_defaults']; - unset($content['services']['_defaults']); - if (!\is_array($defaults)) { - throw new InvalidArgumentException(\sprintf('Service "_defaults" key must be an array, "%s" given in "%s".', \get_debug_type($defaults), $file)); - } - foreach ($defaults as $key => $default) { - if (!isset(self::DEFAULTS_KEYWORDS[$key])) { - throw new InvalidArgumentException(\sprintf('The configuration key "%s" cannot be used to define a default value in "%s". Allowed keys are "%s".', $key, $file, \implode('", "', self::DEFAULTS_KEYWORDS))); - } - } - if (isset($defaults['tags'])) { - if (!\is_array($tags = $defaults['tags'])) { - throw new InvalidArgumentException(\sprintf('Parameter "tags" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file)); - } - foreach ($tags as $tag) { - if (!\is_array($tag)) { - $tag = ['name' => $tag]; - } - if (1 === \count($tag) && \is_array(\current($tag))) { - $name = \key($tag); - $tag = \current($tag); - } else { - if (!isset($tag['name'])) { - throw new InvalidArgumentException(\sprintf('A "tags" entry in "_defaults" is missing a "name" key in "%s".', $file)); - } - $name = $tag['name']; - unset($tag['name']); - } - if (!\is_string($name) || '' === $name) { - throw new InvalidArgumentException(\sprintf('The tag name in "_defaults" must be a non-empty string in "%s".', $file)); - } - foreach ($tag as $attribute => $value) { - if (!\is_scalar($value) && null !== $value) { - throw new InvalidArgumentException(\sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type in "%s". Check your YAML syntax.', $name, $attribute, $file)); - } - } - } - } - if (isset($defaults['bind'])) { - if (!\is_array($defaults['bind'])) { - throw new InvalidArgumentException(\sprintf('Parameter "bind" in "_defaults" must be an array in "%s". Check your YAML syntax.', $file)); - } - foreach ($this->resolveServices($defaults['bind'], $file) as $argument => $value) { - $defaults['bind'][$argument] = new BoundArgument($value, \true, BoundArgument::DEFAULTS_BINDING, $file); - } - } - return $defaults; - } - private function isUsingShortSyntax(array $service) : bool - { - foreach ($service as $key => $value) { - if (\is_string($key) && ('' === $key || '$' !== $key[0] && \strpos($key, '\\') === \false)) { - return \false; - } - } - return \true; - } - /** - * @throws InvalidArgumentException When tags are invalid - * @param mixed[]|string|null $service - */ - private function parseDefinition(string $id, $service, string $file, array $defaults, bool $return = \false, bool $trackBindings = \true) - { - if (\preg_match('/^_[a-zA-Z0-9_]*$/', $id)) { - throw new InvalidArgumentException(\sprintf('Service names that start with an underscore are reserved. Rename the "%s" service or define it in XML instead.', $id)); - } - if (\is_string($service) && \strncmp($service, '@', \strlen('@')) === 0) { - $alias = new Alias(\substr($service, 1)); - if (isset($defaults['public'])) { - $alias->setPublic($defaults['public']); - } - return $return ? $alias : $this->container->setAlias($id, $alias); - } - if (\is_array($service) && $this->isUsingShortSyntax($service)) { - $service = ['arguments' => $service]; - } - if (null === $service) { - $service = []; - } - if (!\is_array($service)) { - throw new InvalidArgumentException(\sprintf('A service definition must be an array or a string starting with "@" but "%s" found for service "%s" in "%s". Check your YAML syntax.', \get_debug_type($service), $id, $file)); - } - if (isset($service['stack'])) { - if (!\is_array($service['stack'])) { - throw new InvalidArgumentException(\sprintf('A stack must be an array of definitions, "%s" given for service "%s" in "%s". Check your YAML syntax.', \get_debug_type($service), $id, $file)); - } - $stack = []; - foreach ($service['stack'] as $k => $frame) { - if (\is_array($frame) && 1 === \count($frame) && !isset(self::SERVICE_KEYWORDS[\key($frame)])) { - $frame = ['class' => \key($frame), 'arguments' => \current($frame)]; - } - if (\is_array($frame) && isset($frame['stack'])) { - throw new InvalidArgumentException(\sprintf('Service stack "%s" cannot contain another stack in "%s".', $id, $file)); - } - $definition = $this->parseDefinition($id . '" at index "' . $k, $frame, $file, $defaults, \true); - if ($definition instanceof Definition) { - $definition->setInstanceofConditionals($this->instanceof); - } - $stack[$k] = $definition; - } - if ($diff = \array_diff(\array_keys($service), ['stack', 'public', 'deprecated'])) { - throw new InvalidArgumentException(\sprintf('Invalid attribute "%s"; supported ones are "public" and "deprecated" for service "%s" in "%s". Check your YAML syntax.', \implode('", "', $diff), $id, $file)); - } - $service = ['parent' => '', 'arguments' => $stack, 'tags' => ['container.stack'], 'public' => $service['public'] ?? null, 'deprecated' => $service['deprecated'] ?? null]; - } - $definition = isset($service[0]) && $service[0] instanceof Definition ? \array_shift($service) : null; - $return = null === $definition ? $return : \true; - $this->checkDefinition($id, $service, $file); - if (isset($service['alias'])) { - $alias = new Alias($service['alias']); - if (isset($service['public'])) { - $alias->setPublic($service['public']); - } elseif (isset($defaults['public'])) { - $alias->setPublic($defaults['public']); - } - foreach ($service as $key => $value) { - if (!\in_array($key, ['alias', 'public', 'deprecated'])) { - throw new InvalidArgumentException(\sprintf('The configuration key "%s" is unsupported for the service "%s" which is defined as an alias in "%s". Allowed configuration keys for service aliases are "alias", "public" and "deprecated".', $key, $id, $file)); - } - if ('deprecated' === $key) { - $deprecation = \is_array($value) ? $value : ['message' => $value]; - if (!isset($deprecation['package'])) { - throw new InvalidArgumentException(\sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file)); - } - if (!isset($deprecation['version'])) { - throw new InvalidArgumentException(\sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file)); - } - $alias->setDeprecated($deprecation['package'] ?? '', $deprecation['version'] ?? '', $deprecation['message'] ?? ''); - } - } - return $return ? $alias : $this->container->setAlias($id, $alias); - } - if (null !== $definition) { - // no-op - } elseif ($this->isLoadingInstanceof) { - $definition = new ChildDefinition(''); - } elseif (isset($service['parent'])) { - if ('' !== $service['parent'] && '@' === $service['parent'][0]) { - throw new InvalidArgumentException(\sprintf('The value of the "parent" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['parent'], \substr($service['parent'], 1))); - } - $definition = new ChildDefinition($service['parent']); - } else { - $definition = new Definition(); - } - if (isset($defaults['public'])) { - $definition->setPublic($defaults['public']); - } - if (isset($defaults['autowire'])) { - $definition->setAutowired($defaults['autowire']); - } - if (isset($defaults['autoconfigure'])) { - $definition->setAutoconfigured($defaults['autoconfigure']); - } - $definition->setChanges([]); - if (isset($service['class'])) { - $definition->setClass($service['class']); - } - if (isset($service['shared'])) { - $definition->setShared($service['shared']); - } - if (isset($service['synthetic'])) { - $definition->setSynthetic($service['synthetic']); - } - if (isset($service['lazy'])) { - $definition->setLazy((bool) $service['lazy']); - if (\is_string($service['lazy'])) { - $definition->addTag('proxy', ['interface' => $service['lazy']]); - } - } - if (isset($service['public'])) { - $definition->setPublic($service['public']); - } - if (isset($service['abstract'])) { - $definition->setAbstract($service['abstract']); - } - if (isset($service['deprecated'])) { - $deprecation = \is_array($service['deprecated']) ? $service['deprecated'] : ['message' => $service['deprecated']]; - if (!isset($deprecation['package'])) { - throw new InvalidArgumentException(\sprintf('Missing attribute "package" of the "deprecated" option in "%s".', $file)); - } - if (!isset($deprecation['version'])) { - throw new InvalidArgumentException(\sprintf('Missing attribute "version" of the "deprecated" option in "%s".', $file)); - } - $definition->setDeprecated($deprecation['package'] ?? '', $deprecation['version'] ?? '', $deprecation['message'] ?? ''); - } - if (isset($service['factory'])) { - $definition->setFactory($this->parseCallable($service['factory'], 'factory', $id, $file)); - } - if (isset($service['file'])) { - $definition->setFile($service['file']); - } - if (isset($service['arguments'])) { - $definition->setArguments($this->resolveServices($service['arguments'], $file)); - } - if (isset($service['properties'])) { - $definition->setProperties($this->resolveServices($service['properties'], $file)); - } - if (isset($service['configurator'])) { - $definition->setConfigurator($this->parseCallable($service['configurator'], 'configurator', $id, $file)); - } - if (isset($service['calls'])) { - if (!\is_array($service['calls'])) { - throw new InvalidArgumentException(\sprintf('Parameter "calls" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - foreach ($service['calls'] as $k => $call) { - if (!\is_array($call) && (!\is_string($k) || !$call instanceof TaggedValue)) { - throw new InvalidArgumentException(\sprintf('Invalid method call for service "%s": expected map or array, "%s" given in "%s".', $id, $call instanceof TaggedValue ? '!' . $call->getTag() : \get_debug_type($call), $file)); - } - if (\is_string($k)) { - throw new InvalidArgumentException(\sprintf('Invalid method call for service "%s", did you forgot a leading dash before "%s: ..." in "%s"?', $id, $k, $file)); - } - if (isset($call['method']) && \is_string($call['method'])) { - $method = $call['method']; - $args = $call['arguments'] ?? []; - $returnsClone = $call['returns_clone'] ?? \false; - } else { - if (1 === \count($call) && \is_string(\key($call))) { - $method = \key($call); - $args = $call[$method]; - if ($args instanceof TaggedValue) { - if ('returns_clone' !== $args->getTag()) { - throw new InvalidArgumentException(\sprintf('Unsupported tag "!%s", did you mean "!returns_clone" for service "%s" in "%s"?', $args->getTag(), $id, $file)); - } - $returnsClone = \true; - $args = $args->getValue(); - } else { - $returnsClone = \false; - } - } elseif (empty($call[0])) { - throw new InvalidArgumentException(\sprintf('Invalid call for service "%s": the method must be defined as the first index of an array or as the only key of a map in "%s".', $id, $file)); - } else { - $method = $call[0]; - $args = $call[1] ?? []; - $returnsClone = $call[2] ?? \false; - } - } - if (!\is_array($args)) { - throw new InvalidArgumentException(\sprintf('The second parameter for function call "%s" must be an array of its arguments for service "%s" in "%s". Check your YAML syntax.', $method, $id, $file)); - } - $args = $this->resolveServices($args, $file); - $definition->addMethodCall($method, $args, $returnsClone); - } - } - $tags = $service['tags'] ?? []; - if (!\is_array($tags)) { - throw new InvalidArgumentException(\sprintf('Parameter "tags" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - if (isset($defaults['tags'])) { - $tags = \array_merge($tags, $defaults['tags']); - } - foreach ($tags as $tag) { - if (!\is_array($tag)) { - $tag = ['name' => $tag]; - } - if (1 === \count($tag) && \is_array(\current($tag))) { - $name = \key($tag); - $tag = \current($tag); - } else { - if (!isset($tag['name'])) { - throw new InvalidArgumentException(\sprintf('A "tags" entry is missing a "name" key for service "%s" in "%s".', $id, $file)); - } - $name = $tag['name']; - unset($tag['name']); - } - if (!\is_string($name) || '' === $name) { - throw new InvalidArgumentException(\sprintf('The tag name for service "%s" in "%s" must be a non-empty string.', $id, $file)); - } - foreach ($tag as $attribute => $value) { - if (!\is_scalar($value) && null !== $value) { - throw new InvalidArgumentException(\sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s" in "%s". Check your YAML syntax.', $id, $name, $attribute, $file)); - } - } - $definition->addTag($name, $tag); - } - if (null !== ($decorates = $service['decorates'] ?? null)) { - if ('' !== $decorates && '@' === $decorates[0]) { - throw new InvalidArgumentException(\sprintf('The value of the "decorates" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s").', $id, $service['decorates'], \substr($decorates, 1))); - } - $decorationOnInvalid = \array_key_exists('decoration_on_invalid', $service) ? $service['decoration_on_invalid'] : 'exception'; - if ('exception' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } elseif ('ignore' === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } elseif (null === $decorationOnInvalid) { - $invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE; - } elseif ('null' === $decorationOnInvalid) { - throw new InvalidArgumentException(\sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean null (without quotes) in "%s"?', $decorationOnInvalid, $id, $file)); - } else { - throw new InvalidArgumentException(\sprintf('Invalid value "%s" for attribute "decoration_on_invalid" on service "%s". Did you mean "exception", "ignore" or null in "%s"?', $decorationOnInvalid, $id, $file)); - } - $renameId = $service['decoration_inner_name'] ?? null; - $priority = $service['decoration_priority'] ?? 0; - $definition->setDecoratedService($decorates, $renameId, $priority, $invalidBehavior); - } - if (isset($service['autowire'])) { - $definition->setAutowired($service['autowire']); - } - if (isset($defaults['bind']) || isset($service['bind'])) { - // deep clone, to avoid multiple process of the same instance in the passes - $bindings = $definition->getBindings(); - $bindings += isset($defaults['bind']) ? \unserialize(\serialize($defaults['bind'])) : []; - if (isset($service['bind'])) { - if (!\is_array($service['bind'])) { - throw new InvalidArgumentException(\sprintf('Parameter "bind" must be an array for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - $bindings = \array_merge($bindings, $this->resolveServices($service['bind'], $file)); - $bindingType = $this->isLoadingInstanceof ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING; - foreach ($bindings as $argument => $value) { - if (!$value instanceof BoundArgument) { - $bindings[$argument] = new BoundArgument($value, $trackBindings, $bindingType, $file); - } - } - } - $definition->setBindings($bindings); - } - if (isset($service['autoconfigure'])) { - $definition->setAutoconfigured($service['autoconfigure']); - } - if (\array_key_exists('namespace', $service) && !\array_key_exists('resource', $service)) { - throw new InvalidArgumentException(\sprintf('A "resource" attribute must be set when the "namespace" attribute is set for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - if ($return) { - if (\array_key_exists('resource', $service)) { - throw new InvalidArgumentException(\sprintf('Invalid "resource" attribute found for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - return $definition; - } - if (\array_key_exists('resource', $service)) { - if (!\is_string($service['resource'])) { - throw new InvalidArgumentException(\sprintf('A "resource" attribute must be of type string for service "%s" in "%s". Check your YAML syntax.', $id, $file)); - } - $exclude = $service['exclude'] ?? null; - $namespace = $service['namespace'] ?? $id; - $this->registerClasses($definition, $namespace, $service['resource'], $exclude); - } else { - $this->setDefinition($id, $definition); - } - } - /** - * @throws InvalidArgumentException When errors occur - * @return string|mixed[]|\Symfony\Component\DependencyInjection\Reference - * @param mixed $callable - */ - private function parseCallable($callable, string $parameter, string $id, string $file) - { - if (\is_string($callable)) { - if (\strncmp($callable, '@=', \strlen('@=')) === 0) { - if ('factory' !== $parameter) { - throw new InvalidArgumentException(\sprintf('Using expressions in "%s" for the "%s" service is not supported in "%s".', $parameter, $id, $file)); - } - if (!\class_exists(Expression::class)) { - throw new \LogicException('The "@=" expression syntax cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - return $callable; - } - if ('' !== $callable && '@' === $callable[0]) { - if (\strpos($callable, ':') === \false) { - return [$this->resolveServices($callable, $file), '__invoke']; - } - throw new InvalidArgumentException(\sprintf('The value of the "%s" option for the "%s" service must be the id of the service without the "@" prefix (replace "%s" with "%s" in "%s").', $parameter, $id, $callable, \substr($callable, 1), $file)); - } - return $callable; - } - if (\is_array($callable)) { - if (isset($callable[0]) && isset($callable[1])) { - return [$this->resolveServices($callable[0], $file), $callable[1]]; - } - if ('factory' === $parameter && isset($callable[1]) && null === $callable[0]) { - return $callable; - } - throw new InvalidArgumentException(\sprintf('Parameter "%s" must contain an array with two elements for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file)); - } - throw new InvalidArgumentException(\sprintf('Parameter "%s" must be a string or an array for service "%s" in "%s". Check your YAML syntax.', $parameter, $id, $file)); - } - /** - * Loads a YAML file. - * - * @throws InvalidArgumentException when the given file is not a local file or when it does not exist - */ - protected function loadFile(string $file) : ?array - { - if (!\class_exists(\RectorPrefix202308\Symfony\Component\Yaml\Parser::class)) { - throw new RuntimeException('Unable to load YAML config files as the Symfony Yaml Component is not installed.'); - } - if (!\stream_is_local($file)) { - throw new InvalidArgumentException(\sprintf('This is not a local file "%s".', $file)); - } - if (!\is_file($file)) { - throw new InvalidArgumentException(\sprintf('The file "%s" does not exist.', $file)); - } - $this->yamlParser = $this->yamlParser ?? new YamlParser(); - try { - $configuration = $this->yamlParser->parseFile($file, Yaml::PARSE_CONSTANT | Yaml::PARSE_CUSTOM_TAGS); - } catch (ParseException $e) { - throw new InvalidArgumentException(\sprintf('The file "%s" does not contain valid YAML: ', $file) . $e->getMessage(), 0, $e); - } - return $this->validate($configuration, $file); - } - /** - * Validates a YAML file. - * - * @throws InvalidArgumentException When service file is not valid - * @param mixed $content - */ - private function validate($content, string $file) : ?array - { - if (null === $content) { - return $content; - } - if (!\is_array($content)) { - throw new InvalidArgumentException(\sprintf('The service file "%s" is not valid. It should contain an array. Check your YAML syntax.', $file)); - } - foreach ($content as $namespace => $data) { - if (\in_array($namespace, ['imports', 'parameters', 'services']) || \strncmp($namespace, 'when@', \strlen('when@')) === 0) { - continue; - } - if (!$this->container->hasExtension($namespace)) { - $extensionNamespaces = \array_filter(\array_map(function (ExtensionInterface $ext) { - return $ext->getAlias(); - }, $this->container->getExtensions())); - throw new InvalidArgumentException(\sprintf('There is no extension able to load the configuration for "%s" (in "%s"). Looked for namespace "%s", found "%s".', $namespace, $file, $namespace, $extensionNamespaces ? \sprintf('"%s"', \implode('", "', $extensionNamespaces)) : 'none')); - } - } - return $content; - } - /** - * @param mixed $value - * @return mixed - */ - private function resolveServices($value, string $file, bool $isParameter = \false) - { - if ($value instanceof TaggedValue) { - $argument = $value->getValue(); - if ('closure' === $value->getTag()) { - $argument = $this->resolveServices($argument, $file, $isParameter); - return (new Definition('Closure'))->setFactory(['Closure', 'fromCallable'])->addArgument($argument); - } - if ('iterator' === $value->getTag()) { - if (!\is_array($argument)) { - throw new InvalidArgumentException(\sprintf('"!iterator" tag only accepts sequences in "%s".', $file)); - } - $argument = $this->resolveServices($argument, $file, $isParameter); - return new IteratorArgument($argument); - } - if ('service_closure' === $value->getTag()) { - $argument = $this->resolveServices($argument, $file, $isParameter); - return new ServiceClosureArgument($argument); - } - if ('service_locator' === $value->getTag()) { - if (!\is_array($argument)) { - throw new InvalidArgumentException(\sprintf('"!service_locator" tag only accepts maps in "%s".', $file)); - } - $argument = $this->resolveServices($argument, $file, $isParameter); - return new ServiceLocatorArgument($argument); - } - if (\in_array($value->getTag(), ['tagged', 'tagged_iterator', 'tagged_locator'], \true)) { - $forLocator = 'tagged_locator' === $value->getTag(); - if (\is_array($argument) && isset($argument['tag']) && $argument['tag']) { - if ($diff = \array_diff(\array_keys($argument), ['tag', 'index_by', 'default_index_method', 'default_priority_method'])) { - throw new InvalidArgumentException(\sprintf('"!%s" tag contains unsupported key "%s"; supported ones are "tag", "index_by", "default_index_method", and "default_priority_method".', $value->getTag(), \implode('", "', $diff))); - } - $argument = new TaggedIteratorArgument($argument['tag'], $argument['index_by'] ?? null, $argument['default_index_method'] ?? null, $forLocator, $argument['default_priority_method'] ?? null); - } elseif (\is_string($argument) && $argument) { - $argument = new TaggedIteratorArgument($argument, null, null, $forLocator); - } else { - throw new InvalidArgumentException(\sprintf('"!%s" tags only accept a non empty string or an array with a key "tag" in "%s".', $value->getTag(), $file)); - } - if ($forLocator) { - $argument = new ServiceLocatorArgument($argument); - } - return $argument; - } - if ('service' === $value->getTag()) { - if ($isParameter) { - throw new InvalidArgumentException(\sprintf('Using an anonymous service in a parameter is not allowed in "%s".', $file)); - } - $isLoadingInstanceof = $this->isLoadingInstanceof; - $this->isLoadingInstanceof = \false; - $instanceof = $this->instanceof; - $this->instanceof = []; - $id = \sprintf('.%d_%s', ++$this->anonymousServicesCount, \preg_replace('/^.*\\\\/', '', $argument['class'] ?? '') . $this->anonymousServicesSuffix); - $this->parseDefinition($id, $argument, $file, []); - if (!$this->container->hasDefinition($id)) { - throw new InvalidArgumentException(\sprintf('Creating an alias using the tag "!service" is not allowed in "%s".', $file)); - } - $this->container->getDefinition($id); - $this->isLoadingInstanceof = $isLoadingInstanceof; - $this->instanceof = $instanceof; - return new Reference($id); - } - if ('abstract' === $value->getTag()) { - return new AbstractArgument($value->getValue()); - } - throw new InvalidArgumentException(\sprintf('Unsupported tag "!%s".', $value->getTag())); - } - if (\is_array($value)) { - foreach ($value as $k => $v) { - $value[$k] = $this->resolveServices($v, $file, $isParameter); - } - } elseif (\is_string($value) && \strncmp($value, '@=', \strlen('@=')) === 0) { - if ($isParameter) { - throw new InvalidArgumentException(\sprintf('Using expressions in parameters is not allowed in "%s".', $file)); - } - if (!\class_exists(Expression::class)) { - throw new \LogicException('The "@=" expression syntax cannot be used without the ExpressionLanguage component. Try running "composer require symfony/expression-language".'); - } - return new Expression(\substr($value, 2)); - } elseif (\is_string($value) && \strncmp($value, '@', \strlen('@')) === 0) { - if (\strncmp($value, '@@', \strlen('@@')) === 0) { - $value = \substr($value, 1); - $invalidBehavior = null; - } elseif (\strncmp($value, '@!', \strlen('@!')) === 0) { - $value = \substr($value, 2); - $invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE; - } elseif (\strncmp($value, '@?', \strlen('@?')) === 0) { - $value = \substr($value, 2); - $invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE; - } else { - $value = \substr($value, 1); - $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE; - } - if (null !== $invalidBehavior) { - $value = new Reference($value, $invalidBehavior); - } - } - return $value; - } - private function loadFromExtensions(array $content) - { - foreach ($content as $namespace => $values) { - if (\in_array($namespace, ['imports', 'parameters', 'services']) || \strncmp($namespace, 'when@', \strlen('when@')) === 0) { - continue; - } - if (!\is_array($values) && null !== $values) { - $values = []; - } - $this->container->loadFromExtension($namespace, $values); - } - } - private function checkDefinition(string $id, array $definition, string $file) - { - if ($this->isLoadingInstanceof) { - $keywords = self::INSTANCEOF_KEYWORDS; - } elseif (isset($definition['resource']) || isset($definition['namespace'])) { - $keywords = self::PROTOTYPE_KEYWORDS; - } else { - $keywords = self::SERVICE_KEYWORDS; - } - foreach ($definition as $key => $value) { - if (!isset($keywords[$key])) { - throw new InvalidArgumentException(\sprintf('The configuration key "%s" is unsupported for definition "%s" in "%s". Allowed configuration keys are "%s".', $key, $id, $file, \implode('", "', $keywords))); - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd b/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd deleted file mode 100644 index ec642212c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Parameter.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Parameter.php deleted file mode 100644 index 4e6cb9fbd..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Parameter.php +++ /dev/null @@ -1,32 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * Parameter represents a parameter reference. - * - * @author Fabien Potencier - */ -class Parameter -{ - /** - * @var string - */ - private $id; - public function __construct(string $id) - { - $this->id = $id; - } - public function __toString() : string - { - return $this->id; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php deleted file mode 100644 index 106681ce5..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBag.php +++ /dev/null @@ -1,49 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Container; -/** - * @author Nicolas Grekas - */ -class ContainerBag extends FrozenParameterBag implements ContainerBagInterface -{ - /** - * @var \Symfony\Component\DependencyInjection\Container - */ - private $container; - public function __construct(Container $container) - { - $this->container = $container; - } - /** - * {@inheritdoc} - */ - public function all() : array - { - return $this->container->getParameterBag()->all(); - } - /** - * {@inheritdoc} - * @return mixed[]|bool|string|int|float|\UnitEnum|null - */ - public function get(string $name) - { - return $this->container->getParameter($name); - } - /** - * {@inheritdoc} - */ - public function has(string $name) : bool - { - return $this->container->hasParameter($name); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.php deleted file mode 100644 index 3f0538e7b..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ContainerBagInterface.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 RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag; - -use RectorPrefix202308\Psr\Container\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -/** - * ContainerBagInterface is the interface implemented by objects that manage service container parameters. - * - * @author Nicolas Grekas - */ -interface ContainerBagInterface extends ContainerInterface -{ - /** - * Gets the service container parameters. - */ - public function all() : array; - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @param mixed $value - */ - public function resolveValue($value); - /** - * Escape parameter placeholders %. - * @param mixed $value - * @return mixed - */ - public function escapeValue($value); - /** - * Unescape parameter placeholders %. - * @param mixed $value - * @return mixed - */ - public function unescapeValue($value); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php deleted file mode 100644 index 837727260..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/EnvPlaceholderParameterBag.php +++ /dev/null @@ -1,153 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * @author Nicolas Grekas - */ -class EnvPlaceholderParameterBag extends ParameterBag -{ - /** - * @var string - */ - private $envPlaceholderUniquePrefix; - /** - * @var mixed[] - */ - private $envPlaceholders = []; - /** - * @var mixed[] - */ - private $unusedEnvPlaceholders = []; - /** - * @var mixed[] - */ - private $providedTypes = []; - /** - * @var int - */ - private static $counter = 0; - /** - * {@inheritdoc} - * @return mixed[]|bool|string|int|float|\UnitEnum|null - */ - public function get(string $name) - { - if (\strncmp($name, 'env(', \strlen('env(')) === 0 && \substr_compare($name, ')', -\strlen(')')) === 0 && 'env()' !== $name) { - $env = \substr($name, 4, -1); - if (isset($this->envPlaceholders[$env])) { - foreach ($this->envPlaceholders[$env] as $placeholder) { - return $placeholder; - // return first result - } - } - if (isset($this->unusedEnvPlaceholders[$env])) { - foreach ($this->unusedEnvPlaceholders[$env] as $placeholder) { - return $placeholder; - // return first result - } - } - if (!\preg_match('/^(?:[-.\\w]*+:)*+\\w++$/', $env)) { - throw new InvalidArgumentException(\sprintf('Invalid %s name: only "word" characters are allowed.', $name)); - } - if ($this->has($name) && null !== ($defaultValue = parent::get($name)) && !\is_string($defaultValue)) { - throw new RuntimeException(\sprintf('The default value of an env() parameter must be a string or null, but "%s" given to "%s".', \get_debug_type($defaultValue), $name)); - } - $uniqueName = \md5($name . '_' . self::$counter++); - $placeholder = \sprintf('%s_%s_%s', $this->getEnvPlaceholderUniquePrefix(), \strtr($env, ':-.', '___'), $uniqueName); - $this->envPlaceholders[$env][$placeholder] = $placeholder; - return $placeholder; - } - return parent::get($name); - } - /** - * Gets the common env placeholder prefix for env vars created by this bag. - */ - public function getEnvPlaceholderUniquePrefix() : string - { - if (!isset($this->envPlaceholderUniquePrefix)) { - $reproducibleEntropy = \unserialize(\serialize($this->parameters)); - \array_walk_recursive($reproducibleEntropy, function (&$v) { - $v = null; - }); - $this->envPlaceholderUniquePrefix = 'env_' . \substr(\md5(\serialize($reproducibleEntropy)), -16); - } - return $this->envPlaceholderUniquePrefix; - } - /** - * Returns the map of env vars used in the resolved parameter values to their placeholders. - * - * @return string[][] A map of env var names to their placeholders - */ - public function getEnvPlaceholders() : array - { - return $this->envPlaceholders; - } - public function getUnusedEnvPlaceholders() : array - { - return $this->unusedEnvPlaceholders; - } - public function clearUnusedEnvPlaceholders() - { - $this->unusedEnvPlaceholders = []; - } - /** - * Merges the env placeholders of another EnvPlaceholderParameterBag. - */ - public function mergeEnvPlaceholders(self $bag) - { - if ($newPlaceholders = $bag->getEnvPlaceholders()) { - $this->envPlaceholders += $newPlaceholders; - foreach ($newPlaceholders as $env => $placeholders) { - $this->envPlaceholders[$env] += $placeholders; - } - } - if ($newUnusedPlaceholders = $bag->getUnusedEnvPlaceholders()) { - $this->unusedEnvPlaceholders += $newUnusedPlaceholders; - foreach ($newUnusedPlaceholders as $env => $placeholders) { - $this->unusedEnvPlaceholders[$env] += $placeholders; - } - } - } - /** - * Maps env prefixes to their corresponding PHP types. - */ - public function setProvidedTypes(array $providedTypes) - { - $this->providedTypes = $providedTypes; - } - /** - * Gets the PHP types corresponding to env() parameter prefixes. - * - * @return string[][] - */ - public function getProvidedTypes() : array - { - return $this->providedTypes; - } - /** - * {@inheritdoc} - */ - public function resolve() - { - if ($this->resolved) { - return; - } - parent::resolve(); - foreach ($this->envPlaceholders as $env => $placeholders) { - if ($this->has($name = "env({$env})") && null !== ($default = $this->parameters[$name]) && !\is_string($default)) { - throw new RuntimeException(\sprintf('The default value of env parameter "%s" must be a string or null, "%s" given.', $env, \get_debug_type($default))); - } - } - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php deleted file mode 100644 index ce47f8052..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/FrozenParameterBag.php +++ /dev/null @@ -1,63 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -/** - * Holds read-only parameters. - * - * @author Fabien Potencier - */ -class FrozenParameterBag extends ParameterBag -{ - /** - * For performance reasons, the constructor assumes that - * all keys are already lowercased. - * - * This is always the case when used internally. - * - * @param array $parameters An array of parameters - */ - public function __construct(array $parameters = []) - { - $this->parameters = $parameters; - $this->resolved = \true; - } - /** - * {@inheritdoc} - */ - public function clear() - { - throw new LogicException('Impossible to call clear() on a frozen ParameterBag.'); - } - /** - * {@inheritdoc} - */ - public function add(array $parameters) - { - throw new LogicException('Impossible to call add() on a frozen ParameterBag.'); - } - /** - * {@inheritdoc} - * @param mixed[]|bool|string|int|float|\UnitEnum|null $value - */ - public function set(string $name, $value) - { - throw new LogicException('Impossible to call set() on a frozen ParameterBag.'); - } - /** - * {@inheritdoc} - */ - public function remove(string $name) - { - throw new LogicException('Impossible to call remove() on a frozen ParameterBag.'); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php deleted file mode 100644 index 17f64433c..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php +++ /dev/null @@ -1,238 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -/** - * Holds parameters. - * - * @author Fabien Potencier - */ -class ParameterBag implements ParameterBagInterface -{ - protected $parameters = []; - protected $resolved = \false; - public function __construct(array $parameters = []) - { - $this->add($parameters); - } - /** - * {@inheritdoc} - */ - public function clear() - { - $this->parameters = []; - } - /** - * {@inheritdoc} - */ - public function add(array $parameters) - { - foreach ($parameters as $key => $value) { - $this->set($key, $value); - } - } - /** - * {@inheritdoc} - */ - public function all() : array - { - return $this->parameters; - } - /** - * {@inheritdoc} - * @return mixed[]|bool|string|int|float|\UnitEnum|null - */ - public function get(string $name) - { - if (!\array_key_exists($name, $this->parameters)) { - if (!$name) { - throw new ParameterNotFoundException($name); - } - $alternatives = []; - foreach ($this->parameters as $key => $parameterValue) { - $lev = \levenshtein($name, $key); - if ($lev <= \strlen($name) / 3 || \strpos($key, $name) !== \false) { - $alternatives[] = $key; - } - } - $nonNestedAlternative = null; - if (!\count($alternatives) && \strpos($name, '.') !== \false) { - $namePartsLength = \array_map('strlen', \explode('.', $name)); - $key = \substr($name, 0, -1 * (1 + \array_pop($namePartsLength))); - while (\count($namePartsLength)) { - if ($this->has($key)) { - if (\is_array($this->get($key))) { - $nonNestedAlternative = $key; - } - break; - } - $key = \substr($key, 0, -1 * (1 + \array_pop($namePartsLength))); - } - } - throw new ParameterNotFoundException($name, null, null, null, $alternatives, $nonNestedAlternative); - } - return $this->parameters[$name]; - } - /** - * {@inheritdoc} - * @param mixed[]|bool|string|int|float|\UnitEnum|null $value - */ - public function set(string $name, $value) - { - $this->parameters[$name] = $value; - } - /** - * {@inheritdoc} - */ - public function has(string $name) : bool - { - return \array_key_exists($name, $this->parameters); - } - /** - * {@inheritdoc} - */ - public function remove(string $name) - { - unset($this->parameters[$name]); - } - /** - * {@inheritdoc} - */ - public function resolve() - { - if ($this->resolved) { - return; - } - $parameters = []; - foreach ($this->parameters as $key => $value) { - try { - $value = $this->resolveValue($value); - $parameters[$key] = $this->unescapeValue($value); - } catch (ParameterNotFoundException $e) { - $e->setSourceKey($key); - throw $e; - } - } - $this->parameters = $parameters; - $this->resolved = \true; - } - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @param array $resolving An array of keys that are being resolved (used internally to detect circular references) - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem - * @param mixed $value - * @return mixed - */ - public function resolveValue($value, array $resolving = []) - { - if (\is_array($value)) { - $args = []; - foreach ($value as $k => $v) { - $args[\is_string($k) ? $this->resolveValue($k, $resolving) : $k] = $this->resolveValue($v, $resolving); - } - return $args; - } - if (!\is_string($value) || 2 > \strlen($value)) { - return $value; - } - return $this->resolveString($value, $resolving); - } - /** - * Resolves parameters inside a string. - * - * @param array $resolving An array of keys that are being resolved (used internally to detect circular references) - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem - * @return mixed - */ - public function resolveString(string $value, array $resolving = []) - { - // we do this to deal with non string values (Boolean, integer, ...) - // as the preg_replace_callback throw an exception when trying - // a non-string in a parameter value - if (\preg_match('/^%([^%\\s]+)%$/', $value, $match)) { - $key = $match[1]; - if (isset($resolving[$key])) { - throw new ParameterCircularReferenceException(\array_keys($resolving)); - } - $resolving[$key] = \true; - return $this->resolved ? $this->get($key) : $this->resolveValue($this->get($key), $resolving); - } - return \preg_replace_callback('/%%|%([^%\\s]+)%/', function ($match) use($resolving, $value) { - // skip %% - if (!isset($match[1])) { - return '%%'; - } - $key = $match[1]; - if (isset($resolving[$key])) { - throw new ParameterCircularReferenceException(\array_keys($resolving)); - } - $resolved = $this->get($key); - if (!\is_string($resolved) && !\is_numeric($resolved)) { - throw new RuntimeException(\sprintf('A string value must be composed of strings and/or numbers, but found parameter "%s" of type "%s" inside string value "%s".', $key, \get_debug_type($resolved), $value)); - } - $resolved = (string) $resolved; - $resolving[$key] = \true; - return $this->isResolved() ? $resolved : $this->resolveString($resolved, $resolving); - }, $value); - } - public function isResolved() - { - return $this->resolved; - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - public function escapeValue($value) - { - if (\is_string($value)) { - return \str_replace('%', '%%', $value); - } - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[$k] = $this->escapeValue($v); - } - return $result; - } - return $value; - } - /** - * {@inheritdoc} - * @param mixed $value - * @return mixed - */ - public function unescapeValue($value) - { - if (\is_string($value)) { - return \str_replace('%%', '%', $value); - } - if (\is_array($value)) { - $result = []; - foreach ($value as $k => $v) { - $result[$k] = $this->unescapeValue($v); - } - return $result; - } - return $value; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php deleted file mode 100644 index cbf447291..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ParameterBag/ParameterBagInterface.php +++ /dev/null @@ -1,83 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection\ParameterBag; - -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException; -/** - * ParameterBagInterface is the interface implemented by objects that manage service container parameters. - * - * @author Fabien Potencier - */ -interface ParameterBagInterface -{ - /** - * Clears all parameters. - * - * @throws LogicException if the ParameterBagInterface cannot be cleared - */ - public function clear(); - /** - * Adds parameters to the service container parameters. - * - * @throws LogicException if the parameter cannot be added - */ - public function add(array $parameters); - /** - * Gets the service container parameters. - */ - public function all() : array; - /** - * Gets a service container parameter. - * - * @throws ParameterNotFoundException if the parameter is not defined - * @return mixed[]|bool|string|int|float|\UnitEnum|null - */ - public function get(string $name); - /** - * Removes a parameter. - */ - public function remove(string $name); - /** - * Sets a service container parameter. - * - * @throws LogicException if the parameter cannot be set - * @param mixed[]|bool|string|int|float|\UnitEnum|null $value - */ - public function set(string $name, $value); - /** - * Returns true if a parameter name is defined. - */ - public function has(string $name) : bool; - /** - * Replaces parameter placeholders (%name%) by their values for all parameters. - */ - public function resolve(); - /** - * Replaces parameter placeholders (%name%) by their values. - * - * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist - * @param mixed $value - */ - public function resolveValue($value); - /** - * Escape parameter placeholders %. - * @param mixed $value - * @return mixed - */ - public function escapeValue($value); - /** - * Unescape parameter placeholders %. - * @param mixed $value - * @return mixed - */ - public function unescapeValue($value); -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/README.md b/vendor/rector/rector/vendor/symfony/dependency-injection/README.md deleted file mode 100644 index fa6719a79..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/README.md +++ /dev/null @@ -1,14 +0,0 @@ -DependencyInjection Component -============================= - -The DependencyInjection component allows you to standardize and centralize the -way objects are constructed in your application. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/dependency_injection.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Reference.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Reference.php deleted file mode 100644 index 9ae305314..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Reference.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * Reference represents a service reference. - * - * @author Fabien Potencier - */ -class Reference -{ - /** - * @var string - */ - private $id; - /** - * @var int - */ - private $invalidBehavior; - public function __construct(string $id, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) - { - $this->id = $id; - $this->invalidBehavior = $invalidBehavior; - } - public function __toString() : string - { - return $this->id; - } - /** - * Returns the behavior to be used when the service does not exist. - */ - public function getInvalidBehavior() : int - { - return $this->invalidBehavior; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ReverseContainer.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ReverseContainer.php deleted file mode 100644 index 71a3615dc..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ReverseContainer.php +++ /dev/null @@ -1,78 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Psr\Container\ContainerInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -/** - * Turns public and "container.reversible" services back to their ids. - * - * @author Nicolas Grekas - */ -final class ReverseContainer -{ - /** - * @var \Symfony\Component\DependencyInjection\Container - */ - private $serviceContainer; - /** - * @var \Psr\Container\ContainerInterface - */ - private $reversibleLocator; - /** - * @var string - */ - private $tagName; - /** - * @var \Closure - */ - private $getServiceId; - public function __construct(Container $serviceContainer, ContainerInterface $reversibleLocator, string $tagName = 'container.reversible') - { - $this->serviceContainer = $serviceContainer; - $this->reversibleLocator = $reversibleLocator; - $this->tagName = $tagName; - $this->getServiceId = \Closure::bind(function (object $service) : ?string { - return (\array_search($service, $this->services, \true) ?: \array_search($service, $this->privates, \true)) ?: null; - }, $serviceContainer, Container::class); - } - /** - * Returns the id of the passed object when it exists as a service. - * - * To be reversible, services need to be either public or be tagged with "container.reversible". - */ - public function getId(object $service) : ?string - { - if ($this->serviceContainer === $service) { - return 'service_container'; - } - if (null === ($id = ($this->getServiceId)($service))) { - return null; - } - if ($this->serviceContainer->has($id) || $this->reversibleLocator->has($id)) { - return $id; - } - return null; - } - /** - * @throws ServiceNotFoundException When the service is not reversible - */ - public function getService(string $id) : object - { - if ($this->reversibleLocator->has($id)) { - return $this->reversibleLocator->get($id); - } - if (isset($this->serviceContainer->getRemovedIds()[$id])) { - throw new ServiceNotFoundException($id, null, null, [], \sprintf('The "%s" service is private and cannot be accessed by reference. You should either make it public, or tag it as "%s".', $id, $this->tagName)); - } - return $this->serviceContainer->get($id); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/ServiceLocator.php b/vendor/rector/rector/vendor/symfony/dependency-injection/ServiceLocator.php deleted file mode 100644 index 221b66db1..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/ServiceLocator.php +++ /dev/null @@ -1,137 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -use RectorPrefix202308\Psr\Container\ContainerExceptionInterface; -use RectorPrefix202308\Psr\Container\NotFoundExceptionInterface; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException; -use RectorPrefix202308\Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceLocatorTrait; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceProviderInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceSubscriberInterface; -/** - * @author Robin Chalas - * @author Nicolas Grekas - */ -class ServiceLocator implements ServiceProviderInterface, \Countable -{ - use ServiceLocatorTrait { - get as private doGet; - } - /** - * @var string|null - */ - private $externalId; - /** - * @var \Symfony\Component\DependencyInjection\Container|null - */ - private $container; - /** - * {@inheritdoc} - * @return mixed - */ - public function get(string $id) - { - if (!$this->externalId) { - return $this->doGet($id); - } - try { - return $this->doGet($id); - } catch (RuntimeException $e) { - $what = \sprintf('service "%s" required by "%s"', $id, $this->externalId); - $message = \preg_replace('/service "\\.service_locator\\.[^"]++"/', $what, $e->getMessage()); - if ($e->getMessage() === $message) { - $message = \sprintf('Cannot resolve %s: %s', $what, $message); - } - $r = new \ReflectionProperty($e, 'message'); - $r->setAccessible(\true); - $r->setValue($e, $message); - throw $e; - } - } - public function __invoke(string $id) - { - return isset($this->factories[$id]) ? $this->get($id) : null; - } - /** - * @internal - * @return static - */ - public function withContext(string $externalId, Container $container) - { - $locator = clone $this; - $locator->externalId = $externalId; - $locator->container = $container; - return $locator; - } - public function count() : int - { - return \count($this->getProvidedServices()); - } - private function createNotFoundException(string $id) : NotFoundExceptionInterface - { - if ($this->loading) { - $msg = \sprintf('The service "%s" has a dependency on a non-existent service "%s". This locator %s', \end($this->loading), $id, $this->formatAlternatives()); - return new ServiceNotFoundException($id, \end($this->loading) ?: null, null, [], $msg); - } - $class = \debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS, 4); - $class = isset($class[3]['object']) ? \get_class($class[3]['object']) : null; - $externalId = $this->externalId ?: $class; - $msg = []; - $msg[] = \sprintf('Service "%s" not found:', $id); - if (!$this->container) { - $class = null; - } elseif ($this->container->has($id) || isset($this->container->getRemovedIds()[$id])) { - $msg[] = 'even though it exists in the app\'s container,'; - } else { - try { - $this->container->get($id); - $class = null; - } catch (ServiceNotFoundException $e) { - if ($e->getAlternatives()) { - $msg[] = \sprintf('did you mean %s? Anyway,', $this->formatAlternatives($e->getAlternatives(), 'or')); - } else { - $class = null; - } - } - } - if ($externalId) { - $msg[] = \sprintf('the container inside "%s" is a smaller service locator that %s', $externalId, $this->formatAlternatives()); - } else { - $msg[] = \sprintf('the current service locator %s', $this->formatAlternatives()); - } - if (!$class) { - // no-op - } elseif (\is_subclass_of($class, ServiceSubscriberInterface::class)) { - $msg[] = \sprintf('Unless you need extra laziness, try using dependency injection instead. Otherwise, you need to declare it using "%s::getSubscribedServices()".', \preg_replace('/([^\\\\]++\\\\)++/', '', $class)); - } else { - $msg[] = 'Try using dependency injection instead.'; - } - return new ServiceNotFoundException($id, \end($this->loading) ?: null, null, [], \implode(' ', $msg)); - } - private function createCircularReferenceException(string $id, array $path) : ContainerExceptionInterface - { - return new ServiceCircularReferenceException($id, $path); - } - private function formatAlternatives(array $alternatives = null, string $separator = 'and') : string - { - $format = '"%s"%s'; - if (null === $alternatives) { - if (!($alternatives = \array_keys($this->factories))) { - return 'is empty...'; - } - $format = \sprintf('only knows about the %s service%s.', $format, 1 < \count($alternatives) ? 's' : ''); - } - $last = \array_pop($alternatives); - return \sprintf($format, $alternatives ? \implode('", "', $alternatives) : $last, $alternatives ? \sprintf(' %s "%s"', $separator, $last) : ''); - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/TaggedContainerInterface.php b/vendor/rector/rector/vendor/symfony/dependency-injection/TaggedContainerInterface.php deleted file mode 100644 index 9befa26ed..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/TaggedContainerInterface.php +++ /dev/null @@ -1,26 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * TaggedContainerInterface is the interface implemented when a container knows how to deals with tags. - * - * @author Fabien Potencier - */ -interface TaggedContainerInterface extends ContainerInterface -{ - /** - * Returns service ids for a given tag. - * - * @param string $name The tag name - */ - public function findTaggedServiceIds(string $name) : array; -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/TypedReference.php b/vendor/rector/rector/vendor/symfony/dependency-injection/TypedReference.php deleted file mode 100644 index b47735fbe..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/TypedReference.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 RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * Represents a PHP type-hinted service reference. - * - * @author Nicolas Grekas - */ -class TypedReference extends Reference -{ - /** - * @var string - */ - private $type; - /** - * @var string|null - */ - private $name; - /** - * @param string $id The service identifier - * @param string $type The PHP type of the identified service - * @param int $invalidBehavior The behavior when the service does not exist - * @param string|null $name The name of the argument targeting the service - */ - public function __construct(string $id, string $type, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, string $name = null) - { - $this->name = $type === $id ? $name : null; - parent::__construct($id, $invalidBehavior); - $this->type = $type; - } - public function getType() - { - return $this->type; - } - public function getName() : ?string - { - return $this->name; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/Variable.php b/vendor/rector/rector/vendor/symfony/dependency-injection/Variable.php deleted file mode 100644 index 716d78326..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/Variable.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 RectorPrefix202308\Symfony\Component\DependencyInjection; - -/** - * Represents a variable. - * - * $var = new Variable('a'); - * - * will be dumped as - * - * $a - * - * by the PHP dumper. - * - * @author Johannes M. Schmitt - */ -class Variable -{ - /** - * @var string - */ - private $name; - public function __construct(string $name) - { - $this->name = $name; - } - public function __toString() : string - { - return $this->name; - } -} diff --git a/vendor/rector/rector/vendor/symfony/dependency-injection/composer.json b/vendor/rector/rector/vendor/symfony/dependency-injection/composer.json deleted file mode 100644 index 4e4173035..000000000 --- a/vendor/rector/rector/vendor/symfony/dependency-injection/composer.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "symfony\/dependency-injection", - "type": "library", - "description": "Allows you to standardize and centralize the way objects are constructed in your application", - "keywords": [], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1", - "psr\/container": "^1.1|^2.0", - "symfony\/deprecation-contracts": "^2.1|^3", - "symfony\/service-contracts": "^1.1.6|^2.0|^3.0" - }, - "require-dev": { - "symfony\/yaml": "^5.4|^6.0", - "symfony\/config": "^6.1", - "symfony\/expression-language": "^5.4|^6.0" - }, - "suggest": { - "symfony\/yaml": "", - "symfony\/config": "", - "symfony\/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", - "symfony\/expression-language": "For using expressions in service container configuration", - "symfony\/proxy-manager-bridge": "Generate service proxies to lazy load them" - }, - "conflict": { - "ext-psr": "<1.1|>=2", - "symfony\/config": "<6.1", - "symfony\/finder": "<5.4", - "symfony\/proxy-manager-bridge": "<5.4", - "symfony\/yaml": "<5.4" - }, - "provide": { - "psr\/container-implementation": "1.1|2.0", - "symfony\/service-implementation": "1.1|2.0|3.0" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\DependencyInjection\\": "" - }, - "exclude-from-classmap": [ - "\/Tests\/" - ] - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php index 6c6c7a22d..9a04eff32 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202309\Symfony\Component\Filesystem\Exception; /** * Exception interface for all exceptions thrown by the component. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php index 145b449ed..8ef9efc49 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202309\Symfony\Component\Filesystem\Exception; /** * Exception class thrown when a file couldn't be found. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php index 7a4ddb524..f721c0ef3 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202309\Symfony\Component\Filesystem\Exception; /** * Exception class thrown when a filesystem operation failure happens. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php index 18744c90c..29a2b43c2 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202309\Symfony\Component\Filesystem\Exception; /** * IOException interface for file and input/output stream related exceptions thrown by the component. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php index 2f33ebde9..2b0c7a740 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202309\Symfony\Component\Filesystem\Exception; /** * @author Christian Flothmann diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php index d122254b1..96974e2ba 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202309\Symfony\Component\Filesystem\Exception; /** * @author Théo Fidry diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php b/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php index 714d1c841..6ad964f23 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem; +namespace RectorPrefix202309\Symfony\Component\Filesystem; -use RectorPrefix202308\Symfony\Component\Filesystem\Exception\FileNotFoundException; -use RectorPrefix202308\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Filesystem\Exception\IOException; +use RectorPrefix202309\Symfony\Component\Filesystem\Exception\FileNotFoundException; +use RectorPrefix202309\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Filesystem\Exception\IOException; /** * Provides basic utility to manipulate the file system. * diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Path.php b/vendor/rector/rector/vendor/symfony/filesystem/Path.php index 5e9ae258d..d0cece5b6 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Path.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Path.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Filesystem; +namespace RectorPrefix202309\Symfony\Component\Filesystem; -use RectorPrefix202308\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Filesystem\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Filesystem\Exception\RuntimeException; /** * Contains utility methods for handling path strings. * diff --git a/vendor/rector/rector/vendor/symfony/filesystem/composer.json b/vendor/rector/rector/vendor/symfony/filesystem/composer.json index 44cc5d7f4..48394d76a 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/composer.json +++ b/vendor/rector/rector/vendor/symfony/filesystem/composer.json @@ -22,7 +22,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202309\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php index f509537ea..ad5b7e23d 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202309\Symfony\Component\Finder\Comparator; /** * @author Fabien Potencier diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php index 77ab35330..cad206763 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202309\Symfony\Component\Finder\Comparator; /** * DateCompare compiles date comparisons. diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php index 066e19c38..ced8f44ec 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202309\Symfony\Component\Finder\Comparator; /** * NumberComparator compiles a simple comparison to an anonymous diff --git a/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php b/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php index 5877f1998..5f7f3e2d4 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php +++ b/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Exception; +namespace RectorPrefix202309\Symfony\Component\Finder\Exception; /** * @author Jean-François Simon diff --git a/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php b/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php index 086735b16..cb8c323c5 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Exception; +namespace RectorPrefix202309\Symfony\Component\Finder\Exception; /** * @author Andreas Erhard diff --git a/vendor/rector/rector/vendor/symfony/finder/Finder.php b/vendor/rector/rector/vendor/symfony/finder/Finder.php index c80c3d904..d339294cf 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Finder.php +++ b/vendor/rector/rector/vendor/symfony/finder/Finder.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder; +namespace RectorPrefix202309\Symfony\Component\Finder; -use RectorPrefix202308\Symfony\Component\Finder\Comparator\DateComparator; -use RectorPrefix202308\Symfony\Component\Finder\Comparator\NumberComparator; -use RectorPrefix202308\Symfony\Component\Finder\Exception\DirectoryNotFoundException; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\CustomFilterIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\FilenameFilterIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\LazyIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; -use RectorPrefix202308\Symfony\Component\Finder\Iterator\SortableIterator; +use RectorPrefix202309\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202309\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202309\Symfony\Component\Finder\Exception\DirectoryNotFoundException; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\CustomFilterIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\FilenameFilterIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\LazyIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; +use RectorPrefix202309\Symfony\Component\Finder\Iterator\SortableIterator; /** * Finder allows to build rules to find files and directories. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Gitignore.php b/vendor/rector/rector/vendor/symfony/finder/Gitignore.php index f4aacb761..c0e1e5253 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Gitignore.php +++ b/vendor/rector/rector/vendor/symfony/finder/Gitignore.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder; +namespace RectorPrefix202309\Symfony\Component\Finder; /** * Gitignore matches against text. diff --git a/vendor/rector/rector/vendor/symfony/finder/Glob.php b/vendor/rector/rector/vendor/symfony/finder/Glob.php index fbbdf788c..110ecff4f 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Glob.php +++ b/vendor/rector/rector/vendor/symfony/finder/Glob.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder; +namespace RectorPrefix202309\Symfony\Component\Finder; /** * Glob matches globbing patterns against text. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php index a59bb6773..87bf63d78 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; /** * CustomFilterIterator filters files by applying anonymous functions. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php index bd570b6c6..7a54320c5 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202309\Symfony\Component\Finder\Comparator\DateComparator; /** * DateRangeFilterIterator filters out files that are not in the given date range (last modified dates). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php index b41b433cc..09ab1dadb 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; /** * DepthRangeFilterIterator limits the directory depth. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php index 798ef101e..ce02a3456 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202309\Symfony\Component\Finder\SplFileInfo; /** * ExcludeDirectoryFilterIterator filters out directories. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php index 9a74b3592..d2054234c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; /** * FileTypeFilterIterator only keeps files, directories, or both. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php index 6738346ef..831540f45 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202309\Symfony\Component\Finder\SplFileInfo; /** * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php index d36b0041b..676a8fc5f 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\Glob; +use RectorPrefix202309\Symfony\Component\Finder\Glob; /** * FilenameFilterIterator filters files by patterns (a regexp, a glob, or a string). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php index 730cf0a0a..83b0b916e 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; /** * @author Jérémy Derussé diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php index 251f01b97..7306630bd 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; /** * MultiplePcreFilterIterator filters files using patterns (regexps, globs or strings). diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php index 15627405f..25bfd3224 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202309\Symfony\Component\Finder\SplFileInfo; /** * PathFilterIterator filters files by path patterns (e.g. some/special/dir). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php index 6e7a52b30..1e5e1eeda 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\Exception\AccessDeniedException; -use RectorPrefix202308\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202309\Symfony\Component\Finder\Exception\AccessDeniedException; +use RectorPrefix202309\Symfony\Component\Finder\SplFileInfo; /** * Extends the \RecursiveDirectoryIterator to support relative paths. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php index 1b0544904..311013f43 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202309\Symfony\Component\Finder\Comparator\NumberComparator; /** * SizeRangeFilterIterator filters out files that are not in the given size range. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php index 52f7a1419..8451d7754 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; /** * SortableIterator applies a sort on a given Iterator. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php index 6ce986945..1df779fe2 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202309\Symfony\Component\Finder\Iterator; -use RectorPrefix202308\Symfony\Component\Finder\Gitignore; +use RectorPrefix202309\Symfony\Component\Finder\Gitignore; /** * @extends \FilterIterator */ diff --git a/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php b/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php index 88f7c44d3..e3b92bc6e 100644 --- a/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php +++ b/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Finder; +namespace RectorPrefix202309\Symfony\Component\Finder; /** * Extends \SplFileInfo to support relative paths. diff --git a/vendor/rector/rector/vendor/symfony/finder/composer.json b/vendor/rector/rector/vendor/symfony/finder/composer.json index 088fc3d9f..503434a09 100644 --- a/vendor/rector/rector/vendor/symfony/finder/composer.json +++ b/vendor/rector/rector/vendor/symfony/finder/composer.json @@ -23,7 +23,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202309\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/LICENSE b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/LICENSE deleted file mode 100644 index 4cd8bdd30..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015-2019 Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Normalizer.php b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Normalizer.php deleted file mode 100644 index 8ec3ed0e9..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Normalizer.php +++ /dev/null @@ -1,258 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace Symfony\Polyfill\Intl\Normalizer; - -/** - * Normalizer is a PHP fallback implementation of the Normalizer class provided by the intl extension. - * - * It has been validated with Unicode 6.3 Normalization Conformance Test. - * See http://www.unicode.org/reports/tr15/ for detailed info about Unicode normalizations. - * - * @author Nicolas Grekas - * - * @internal - */ -class Normalizer -{ - public const FORM_D = \Normalizer::FORM_D; - public const FORM_KD = \Normalizer::FORM_KD; - public const FORM_C = \Normalizer::FORM_C; - public const FORM_KC = \Normalizer::FORM_KC; - public const NFD = \Normalizer::NFD; - public const NFKD = \Normalizer::NFKD; - public const NFC = \Normalizer::NFC; - public const NFKC = \Normalizer::NFKC; - private static $C; - private static $D; - private static $KD; - private static $cC; - private static $ulenMask = ["\xc0" => 2, "\xd0" => 2, "\xe0" => 3, "\xf0" => 4]; - private static $ASCII = " eiasntrolud][cmp'\ng|hv.fb,:=-q10C2*yx)(L9AS/P\"EjMIk3>5T \PHP_VERSION_ID) { - return \false; - } - throw new \ValueError('normalizer_normalize(): Argument #2 ($form) must be a a valid normalization form'); - } - if ('' === $s) { - return ''; - } - if ($K && null === self::$KD) { - self::$KD = self::getData('compatibilityDecomposition'); - } - if (null === self::$D) { - self::$D = self::getData('canonicalDecomposition'); - self::$cC = self::getData('combiningClass'); - } - if (null !== ($mbEncoding = 2 & (int) \ini_get('mbstring.func_overload') ? \mb_internal_encoding() : null)) { - \mb_internal_encoding('8bit'); - } - $r = self::decompose($s, $K); - if ($C) { - if (null === self::$C) { - self::$C = self::getData('canonicalComposition'); - } - $r = self::recompose($r); - } - if (null !== $mbEncoding) { - \mb_internal_encoding($mbEncoding); - } - return $r; - } - private static function recompose($s) - { - $ASCII = self::$ASCII; - $compMap = self::$C; - $combClass = self::$cC; - $ulenMask = self::$ulenMask; - $result = $tail = ''; - $i = $s[0] < "\x80" ? 1 : $ulenMask[$s[0] & "\xf0"]; - $len = \strlen($s); - $lastUchr = \substr($s, 0, $i); - $lastUcls = isset($combClass[$lastUchr]) ? 256 : 0; - while ($i < $len) { - if ($s[$i] < "\x80") { - // ASCII chars - if ($tail) { - $lastUchr .= $tail; - $tail = ''; - } - if ($j = \strspn($s, $ASCII, $i + 1)) { - $lastUchr .= \substr($s, $i, $j); - $i += $j; - } - $result .= $lastUchr; - $lastUchr = $s[$i]; - $lastUcls = 0; - ++$i; - continue; - } - $ulen = $ulenMask[$s[$i] & "\xf0"]; - $uchr = \substr($s, $i, $ulen); - if ($lastUchr < "ᄀ" || "ᄒ" < $lastUchr || $uchr < "ᅡ" || "ᅵ" < $uchr || $lastUcls) { - // Table lookup and combining chars composition - $ucls = $combClass[$uchr] ?? 0; - if (isset($compMap[$lastUchr . $uchr]) && (!$lastUcls || $lastUcls < $ucls)) { - $lastUchr = $compMap[$lastUchr . $uchr]; - } elseif ($lastUcls = $ucls) { - $tail .= $uchr; - } else { - if ($tail) { - $lastUchr .= $tail; - $tail = ''; - } - $result .= $lastUchr; - $lastUchr = $uchr; - } - } else { - // Hangul chars - $L = \ord($lastUchr[2]) - 0x80; - $V = \ord($uchr[2]) - 0xa1; - $T = 0; - $uchr = \substr($s, $i + $ulen, 3); - if ("ᆧ" <= $uchr && $uchr <= "ᇂ") { - $T = \ord($uchr[2]) - 0xa7; - 0 > $T && ($T += 0x40); - $ulen += 3; - } - $L = 0xac00 + ($L * 21 + $V) * 28 + $T; - $lastUchr = \chr(0xe0 | $L >> 12) . \chr(0x80 | $L >> 6 & 0x3f) . \chr(0x80 | $L & 0x3f); - } - $i += $ulen; - } - return $result . $lastUchr . $tail; - } - private static function decompose($s, $c) - { - $result = ''; - $ASCII = self::$ASCII; - $decompMap = self::$D; - $combClass = self::$cC; - $ulenMask = self::$ulenMask; - if ($c) { - $compatMap = self::$KD; - } - $c = []; - $i = 0; - $len = \strlen($s); - while ($i < $len) { - if ($s[$i] < "\x80") { - // ASCII chars - if ($c) { - \ksort($c); - $result .= \implode('', $c); - $c = []; - } - $j = 1 + \strspn($s, $ASCII, $i + 1); - $result .= \substr($s, $i, $j); - $i += $j; - continue; - } - $ulen = $ulenMask[$s[$i] & "\xf0"]; - $uchr = \substr($s, $i, $ulen); - $i += $ulen; - if ($uchr < "가" || "힣" < $uchr) { - // Table lookup - if ($uchr !== ($j = $compatMap[$uchr] ?? $decompMap[$uchr] ?? $uchr)) { - $uchr = $j; - $j = \strlen($uchr); - $ulen = $uchr[0] < "\x80" ? 1 : $ulenMask[$uchr[0] & "\xf0"]; - if ($ulen != $j) { - // Put trailing chars in $s - $j -= $ulen; - $i -= $j; - if (0 > $i) { - $s = \str_repeat(' ', -$i) . $s; - $len -= $i; - $i = 0; - } - while ($j--) { - $s[$i + $j] = $uchr[$ulen + $j]; - } - $uchr = \substr($uchr, 0, $ulen); - } - } - if (isset($combClass[$uchr])) { - // Combining chars, for sorting - if (!isset($c[$combClass[$uchr]])) { - $c[$combClass[$uchr]] = ''; - } - $c[$combClass[$uchr]] .= $uchr; - continue; - } - } else { - // Hangul chars - $uchr = \unpack('C*', $uchr); - $j = ($uchr[1] - 224 << 12) + ($uchr[2] - 128 << 6) + $uchr[3] - 0xac80; - $uchr = "\xe1\x84" . \chr(0x80 + (int) ($j / 588)) . "\xe1\x85" . \chr(0xa1 + (int) ($j % 588 / 28)); - if ($j %= 28) { - $uchr .= $j < 25 ? "\xe1\x86" . \chr(0xa7 + $j) : "\xe1\x87" . \chr(0x67 + $j); - } - } - if ($c) { - \ksort($c); - $result .= \implode('', $c); - $c = []; - } - $result .= $uchr; - } - if ($c) { - \ksort($c); - $result .= \implode('', $c); - } - return $result; - } - private static function getData($file) - { - if (\file_exists($file = __DIR__ . '/Resources/unidata/' . $file . '.php')) { - return require $file; - } - return \false; - } -} diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/README.md b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/README.md deleted file mode 100644 index b9b762e85..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/README.md +++ /dev/null @@ -1,14 +0,0 @@ -Symfony Polyfill / Intl: Normalizer -=================================== - -This component provides a fallback implementation for the -[`Normalizer`](https://php.net/Normalizer) class provided -by the [Intl](https://php.net/intl) extension. - -More information can be found in the -[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). - -License -======= - -This library is released under the [MIT license](LICENSE). diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php deleted file mode 100644 index 0fdfc890a..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php +++ /dev/null @@ -1,17 +0,0 @@ - 'À', 'Á' => 'Á', 'Â' => 'Â', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Å' => 'Å', 'Ç' => 'Ç', 'È' => 'È', 'É' => 'É', 'Ê' => 'Ê', 'Ë' => 'Ë', 'Ì' => 'Ì', 'Í' => 'Í', 'Î' => 'Î', 'Ï' => 'Ï', 'Ñ' => 'Ñ', 'Ò' => 'Ò', 'Ó' => 'Ó', 'Ô' => 'Ô', 'Õ' => 'Õ', 'Ö' => 'Ö', 'Ù' => 'Ù', 'Ú' => 'Ú', 'Û' => 'Û', 'Ü' => 'Ü', 'Ý' => 'Ý', 'à' => 'à', 'á' => 'á', 'â' => 'â', 'ã' => 'ã', 'ä' => 'ä', 'å' => 'å', 'ç' => 'ç', 'è' => 'è', 'é' => 'é', 'ê' => 'ê', 'ë' => 'ë', 'ì' => 'ì', 'í' => 'í', 'î' => 'î', 'ï' => 'ï', 'ñ' => 'ñ', 'ò' => 'ò', 'ó' => 'ó', 'ô' => 'ô', 'õ' => 'õ', 'ö' => 'ö', 'ù' => 'ù', 'ú' => 'ú', 'û' => 'û', 'ü' => 'ü', 'ý' => 'ý', 'ÿ' => 'ÿ', 'Ā' => 'Ā', 'ā' => 'ā', 'Ă' => 'Ă', 'ă' => 'ă', 'Ą' => 'Ą', 'ą' => 'ą', 'Ć' => 'Ć', 'ć' => 'ć', 'Ĉ' => 'Ĉ', 'ĉ' => 'ĉ', 'Ċ' => 'Ċ', 'ċ' => 'ċ', 'Č' => 'Č', 'č' => 'č', 'Ď' => 'Ď', 'ď' => 'ď', 'Ē' => 'Ē', 'ē' => 'ē', 'Ĕ' => 'Ĕ', 'ĕ' => 'ĕ', 'Ė' => 'Ė', 'ė' => 'ė', 'Ę' => 'Ę', 'ę' => 'ę', 'Ě' => 'Ě', 'ě' => 'ě', 'Ĝ' => 'Ĝ', 'ĝ' => 'ĝ', 'Ğ' => 'Ğ', 'ğ' => 'ğ', 'Ġ' => 'Ġ', 'ġ' => 'ġ', 'Ģ' => 'Ģ', 'ģ' => 'ģ', 'Ĥ' => 'Ĥ', 'ĥ' => 'ĥ', 'Ĩ' => 'Ĩ', 'ĩ' => 'ĩ', 'Ī' => 'Ī', 'ī' => 'ī', 'Ĭ' => 'Ĭ', 'ĭ' => 'ĭ', 'Į' => 'Į', 'į' => 'į', 'İ' => 'İ', 'Ĵ' => 'Ĵ', 'ĵ' => 'ĵ', 'Ķ' => 'Ķ', 'ķ' => 'ķ', 'Ĺ' => 'Ĺ', 'ĺ' => 'ĺ', 'Ļ' => 'Ļ', 'ļ' => 'ļ', 'Ľ' => 'Ľ', 'ľ' => 'ľ', 'Ń' => 'Ń', 'ń' => 'ń', 'Ņ' => 'Ņ', 'ņ' => 'ņ', 'Ň' => 'Ň', 'ň' => 'ň', 'Ō' => 'Ō', 'ō' => 'ō', 'Ŏ' => 'Ŏ', 'ŏ' => 'ŏ', 'Ő' => 'Ő', 'ő' => 'ő', 'Ŕ' => 'Ŕ', 'ŕ' => 'ŕ', 'Ŗ' => 'Ŗ', 'ŗ' => 'ŗ', 'Ř' => 'Ř', 'ř' => 'ř', 'Ś' => 'Ś', 'ś' => 'ś', 'Ŝ' => 'Ŝ', 'ŝ' => 'ŝ', 'Ş' => 'Ş', 'ş' => 'ş', 'Š' => 'Š', 'š' => 'š', 'Ţ' => 'Ţ', 'ţ' => 'ţ', 'Ť' => 'Ť', 'ť' => 'ť', 'Ũ' => 'Ũ', 'ũ' => 'ũ', 'Ū' => 'Ū', 'ū' => 'ū', 'Ŭ' => 'Ŭ', 'ŭ' => 'ŭ', 'Ů' => 'Ů', 'ů' => 'ů', 'Ű' => 'Ű', 'ű' => 'ű', 'Ų' => 'Ų', 'ų' => 'ų', 'Ŵ' => 'Ŵ', 'ŵ' => 'ŵ', 'Ŷ' => 'Ŷ', 'ŷ' => 'ŷ', 'Ÿ' => 'Ÿ', 'Ź' => 'Ź', 'ź' => 'ź', 'Ż' => 'Ż', 'ż' => 'ż', 'Ž' => 'Ž', 'ž' => 'ž', 'Ơ' => 'Ơ', 'ơ' => 'ơ', 'Ư' => 'Ư', 'ư' => 'ư', 'Ǎ' => 'Ǎ', 'ǎ' => 'ǎ', 'Ǐ' => 'Ǐ', 'ǐ' => 'ǐ', 'Ǒ' => 'Ǒ', 'ǒ' => 'ǒ', 'Ǔ' => 'Ǔ', 'ǔ' => 'ǔ', 'Ǖ' => 'Ǖ', 'ǖ' => 'ǖ', 'Ǘ' => 'Ǘ', 'ǘ' => 'ǘ', 'Ǚ' => 'Ǚ', 'ǚ' => 'ǚ', 'Ǜ' => 'Ǜ', 'ǜ' => 'ǜ', 'Ǟ' => 'Ǟ', 'ǟ' => 'ǟ', 'Ǡ' => 'Ǡ', 'ǡ' => 'ǡ', 'Ǣ' => 'Ǣ', 'ǣ' => 'ǣ', 'Ǧ' => 'Ǧ', 'ǧ' => 'ǧ', 'Ǩ' => 'Ǩ', 'ǩ' => 'ǩ', 'Ǫ' => 'Ǫ', 'ǫ' => 'ǫ', 'Ǭ' => 'Ǭ', 'ǭ' => 'ǭ', 'Ǯ' => 'Ǯ', 'ǯ' => 'ǯ', 'ǰ' => 'ǰ', 'Ǵ' => 'Ǵ', 'ǵ' => 'ǵ', 'Ǹ' => 'Ǹ', 'ǹ' => 'ǹ', 'Ǻ' => 'Ǻ', 'ǻ' => 'ǻ', 'Ǽ' => 'Ǽ', 'ǽ' => 'ǽ', 'Ǿ' => 'Ǿ', 'ǿ' => 'ǿ', 'Ȁ' => 'Ȁ', 'ȁ' => 'ȁ', 'Ȃ' => 'Ȃ', 'ȃ' => 'ȃ', 'Ȅ' => 'Ȅ', 'ȅ' => 'ȅ', 'Ȇ' => 'Ȇ', 'ȇ' => 'ȇ', 'Ȉ' => 'Ȉ', 'ȉ' => 'ȉ', 'Ȋ' => 'Ȋ', 'ȋ' => 'ȋ', 'Ȍ' => 'Ȍ', 'ȍ' => 'ȍ', 'Ȏ' => 'Ȏ', 'ȏ' => 'ȏ', 'Ȑ' => 'Ȑ', 'ȑ' => 'ȑ', 'Ȓ' => 'Ȓ', 'ȓ' => 'ȓ', 'Ȕ' => 'Ȕ', 'ȕ' => 'ȕ', 'Ȗ' => 'Ȗ', 'ȗ' => 'ȗ', 'Ș' => 'Ș', 'ș' => 'ș', 'Ț' => 'Ț', 'ț' => 'ț', 'Ȟ' => 'Ȟ', 'ȟ' => 'ȟ', 'Ȧ' => 'Ȧ', 'ȧ' => 'ȧ', 'Ȩ' => 'Ȩ', 'ȩ' => 'ȩ', 'Ȫ' => 'Ȫ', 'ȫ' => 'ȫ', 'Ȭ' => 'Ȭ', 'ȭ' => 'ȭ', 'Ȯ' => 'Ȯ', 'ȯ' => 'ȯ', 'Ȱ' => 'Ȱ', 'ȱ' => 'ȱ', 'Ȳ' => 'Ȳ', 'ȳ' => 'ȳ', '΅' => '΅', 'Ά' => 'Ά', 'Έ' => 'Έ', 'Ή' => 'Ή', 'Ί' => 'Ί', 'Ό' => 'Ό', 'Ύ' => 'Ύ', 'Ώ' => 'Ώ', 'ΐ' => 'ΐ', 'Ϊ' => 'Ϊ', 'Ϋ' => 'Ϋ', 'ά' => 'ά', 'έ' => 'έ', 'ή' => 'ή', 'ί' => 'ί', 'ΰ' => 'ΰ', 'ϊ' => 'ϊ', 'ϋ' => 'ϋ', 'ό' => 'ό', 'ύ' => 'ύ', 'ώ' => 'ώ', 'ϓ' => 'ϓ', 'ϔ' => 'ϔ', 'Ѐ' => 'Ѐ', 'Ё' => 'Ё', 'Ѓ' => 'Ѓ', 'Ї' => 'Ї', 'Ќ' => 'Ќ', 'Ѝ' => 'Ѝ', 'Ў' => 'Ў', 'Й' => 'Й', 'й' => 'й', 'ѐ' => 'ѐ', 'ё' => 'ё', 'ѓ' => 'ѓ', 'ї' => 'ї', 'ќ' => 'ќ', 'ѝ' => 'ѝ', 'ў' => 'ў', 'Ѷ' => 'Ѷ', 'ѷ' => 'ѷ', 'Ӂ' => 'Ӂ', 'ӂ' => 'ӂ', 'Ӑ' => 'Ӑ', 'ӑ' => 'ӑ', 'Ӓ' => 'Ӓ', 'ӓ' => 'ӓ', 'Ӗ' => 'Ӗ', 'ӗ' => 'ӗ', 'Ӛ' => 'Ӛ', 'ӛ' => 'ӛ', 'Ӝ' => 'Ӝ', 'ӝ' => 'ӝ', 'Ӟ' => 'Ӟ', 'ӟ' => 'ӟ', 'Ӣ' => 'Ӣ', 'ӣ' => 'ӣ', 'Ӥ' => 'Ӥ', 'ӥ' => 'ӥ', 'Ӧ' => 'Ӧ', 'ӧ' => 'ӧ', 'Ӫ' => 'Ӫ', 'ӫ' => 'ӫ', 'Ӭ' => 'Ӭ', 'ӭ' => 'ӭ', 'Ӯ' => 'Ӯ', 'ӯ' => 'ӯ', 'Ӱ' => 'Ӱ', 'ӱ' => 'ӱ', 'Ӳ' => 'Ӳ', 'ӳ' => 'ӳ', 'Ӵ' => 'Ӵ', 'ӵ' => 'ӵ', 'Ӹ' => 'Ӹ', 'ӹ' => 'ӹ', 'آ' => 'آ', 'أ' => 'أ', 'ؤ' => 'ؤ', 'إ' => 'إ', 'ئ' => 'ئ', 'ۀ' => 'ۀ', 'ۂ' => 'ۂ', 'ۓ' => 'ۓ', 'ऩ' => 'ऩ', 'ऱ' => 'ऱ', 'ऴ' => 'ऴ', 'ো' => 'ো', 'ৌ' => 'ৌ', 'ୈ' => 'ୈ', 'ୋ' => 'ୋ', 'ୌ' => 'ୌ', 'ஔ' => 'ஔ', 'ொ' => 'ொ', 'ோ' => 'ோ', 'ௌ' => 'ௌ', 'ై' => 'ై', 'ೀ' => 'ೀ', 'ೇ' => 'ೇ', 'ೈ' => 'ೈ', 'ೊ' => 'ೊ', 'ೋ' => 'ೋ', 'ൊ' => 'ൊ', 'ോ' => 'ോ', 'ൌ' => 'ൌ', 'ේ' => 'ේ', 'ො' => 'ො', 'ෝ' => 'ෝ', 'ෞ' => 'ෞ', 'ဦ' => 'ဦ', 'ᬆ' => 'ᬆ', 'ᬈ' => 'ᬈ', 'ᬊ' => 'ᬊ', 'ᬌ' => 'ᬌ', 'ᬎ' => 'ᬎ', 'ᬒ' => 'ᬒ', 'ᬻ' => 'ᬻ', 'ᬽ' => 'ᬽ', 'ᭀ' => 'ᭀ', 'ᭁ' => 'ᭁ', 'ᭃ' => 'ᭃ', 'Ḁ' => 'Ḁ', 'ḁ' => 'ḁ', 'Ḃ' => 'Ḃ', 'ḃ' => 'ḃ', 'Ḅ' => 'Ḅ', 'ḅ' => 'ḅ', 'Ḇ' => 'Ḇ', 'ḇ' => 'ḇ', 'Ḉ' => 'Ḉ', 'ḉ' => 'ḉ', 'Ḋ' => 'Ḋ', 'ḋ' => 'ḋ', 'Ḍ' => 'Ḍ', 'ḍ' => 'ḍ', 'Ḏ' => 'Ḏ', 'ḏ' => 'ḏ', 'Ḑ' => 'Ḑ', 'ḑ' => 'ḑ', 'Ḓ' => 'Ḓ', 'ḓ' => 'ḓ', 'Ḕ' => 'Ḕ', 'ḕ' => 'ḕ', 'Ḗ' => 'Ḗ', 'ḗ' => 'ḗ', 'Ḙ' => 'Ḙ', 'ḙ' => 'ḙ', 'Ḛ' => 'Ḛ', 'ḛ' => 'ḛ', 'Ḝ' => 'Ḝ', 'ḝ' => 'ḝ', 'Ḟ' => 'Ḟ', 'ḟ' => 'ḟ', 'Ḡ' => 'Ḡ', 'ḡ' => 'ḡ', 'Ḣ' => 'Ḣ', 'ḣ' => 'ḣ', 'Ḥ' => 'Ḥ', 'ḥ' => 'ḥ', 'Ḧ' => 'Ḧ', 'ḧ' => 'ḧ', 'Ḩ' => 'Ḩ', 'ḩ' => 'ḩ', 'Ḫ' => 'Ḫ', 'ḫ' => 'ḫ', 'Ḭ' => 'Ḭ', 'ḭ' => 'ḭ', 'Ḯ' => 'Ḯ', 'ḯ' => 'ḯ', 'Ḱ' => 'Ḱ', 'ḱ' => 'ḱ', 'Ḳ' => 'Ḳ', 'ḳ' => 'ḳ', 'Ḵ' => 'Ḵ', 'ḵ' => 'ḵ', 'Ḷ' => 'Ḷ', 'ḷ' => 'ḷ', 'Ḹ' => 'Ḹ', 'ḹ' => 'ḹ', 'Ḻ' => 'Ḻ', 'ḻ' => 'ḻ', 'Ḽ' => 'Ḽ', 'ḽ' => 'ḽ', 'Ḿ' => 'Ḿ', 'ḿ' => 'ḿ', 'Ṁ' => 'Ṁ', 'ṁ' => 'ṁ', 'Ṃ' => 'Ṃ', 'ṃ' => 'ṃ', 'Ṅ' => 'Ṅ', 'ṅ' => 'ṅ', 'Ṇ' => 'Ṇ', 'ṇ' => 'ṇ', 'Ṉ' => 'Ṉ', 'ṉ' => 'ṉ', 'Ṋ' => 'Ṋ', 'ṋ' => 'ṋ', 'Ṍ' => 'Ṍ', 'ṍ' => 'ṍ', 'Ṏ' => 'Ṏ', 'ṏ' => 'ṏ', 'Ṑ' => 'Ṑ', 'ṑ' => 'ṑ', 'Ṓ' => 'Ṓ', 'ṓ' => 'ṓ', 'Ṕ' => 'Ṕ', 'ṕ' => 'ṕ', 'Ṗ' => 'Ṗ', 'ṗ' => 'ṗ', 'Ṙ' => 'Ṙ', 'ṙ' => 'ṙ', 'Ṛ' => 'Ṛ', 'ṛ' => 'ṛ', 'Ṝ' => 'Ṝ', 'ṝ' => 'ṝ', 'Ṟ' => 'Ṟ', 'ṟ' => 'ṟ', 'Ṡ' => 'Ṡ', 'ṡ' => 'ṡ', 'Ṣ' => 'Ṣ', 'ṣ' => 'ṣ', 'Ṥ' => 'Ṥ', 'ṥ' => 'ṥ', 'Ṧ' => 'Ṧ', 'ṧ' => 'ṧ', 'Ṩ' => 'Ṩ', 'ṩ' => 'ṩ', 'Ṫ' => 'Ṫ', 'ṫ' => 'ṫ', 'Ṭ' => 'Ṭ', 'ṭ' => 'ṭ', 'Ṯ' => 'Ṯ', 'ṯ' => 'ṯ', 'Ṱ' => 'Ṱ', 'ṱ' => 'ṱ', 'Ṳ' => 'Ṳ', 'ṳ' => 'ṳ', 'Ṵ' => 'Ṵ', 'ṵ' => 'ṵ', 'Ṷ' => 'Ṷ', 'ṷ' => 'ṷ', 'Ṹ' => 'Ṹ', 'ṹ' => 'ṹ', 'Ṻ' => 'Ṻ', 'ṻ' => 'ṻ', 'Ṽ' => 'Ṽ', 'ṽ' => 'ṽ', 'Ṿ' => 'Ṿ', 'ṿ' => 'ṿ', 'Ẁ' => 'Ẁ', 'ẁ' => 'ẁ', 'Ẃ' => 'Ẃ', 'ẃ' => 'ẃ', 'Ẅ' => 'Ẅ', 'ẅ' => 'ẅ', 'Ẇ' => 'Ẇ', 'ẇ' => 'ẇ', 'Ẉ' => 'Ẉ', 'ẉ' => 'ẉ', 'Ẋ' => 'Ẋ', 'ẋ' => 'ẋ', 'Ẍ' => 'Ẍ', 'ẍ' => 'ẍ', 'Ẏ' => 'Ẏ', 'ẏ' => 'ẏ', 'Ẑ' => 'Ẑ', 'ẑ' => 'ẑ', 'Ẓ' => 'Ẓ', 'ẓ' => 'ẓ', 'Ẕ' => 'Ẕ', 'ẕ' => 'ẕ', 'ẖ' => 'ẖ', 'ẗ' => 'ẗ', 'ẘ' => 'ẘ', 'ẙ' => 'ẙ', 'ẛ' => 'ẛ', 'Ạ' => 'Ạ', 'ạ' => 'ạ', 'Ả' => 'Ả', 'ả' => 'ả', 'Ấ' => 'Ấ', 'ấ' => 'ấ', 'Ầ' => 'Ầ', 'ầ' => 'ầ', 'Ẩ' => 'Ẩ', 'ẩ' => 'ẩ', 'Ẫ' => 'Ẫ', 'ẫ' => 'ẫ', 'Ậ' => 'Ậ', 'ậ' => 'ậ', 'Ắ' => 'Ắ', 'ắ' => 'ắ', 'Ằ' => 'Ằ', 'ằ' => 'ằ', 'Ẳ' => 'Ẳ', 'ẳ' => 'ẳ', 'Ẵ' => 'Ẵ', 'ẵ' => 'ẵ', 'Ặ' => 'Ặ', 'ặ' => 'ặ', 'Ẹ' => 'Ẹ', 'ẹ' => 'ẹ', 'Ẻ' => 'Ẻ', 'ẻ' => 'ẻ', 'Ẽ' => 'Ẽ', 'ẽ' => 'ẽ', 'Ế' => 'Ế', 'ế' => 'ế', 'Ề' => 'Ề', 'ề' => 'ề', 'Ể' => 'Ể', 'ể' => 'ể', 'Ễ' => 'Ễ', 'ễ' => 'ễ', 'Ệ' => 'Ệ', 'ệ' => 'ệ', 'Ỉ' => 'Ỉ', 'ỉ' => 'ỉ', 'Ị' => 'Ị', 'ị' => 'ị', 'Ọ' => 'Ọ', 'ọ' => 'ọ', 'Ỏ' => 'Ỏ', 'ỏ' => 'ỏ', 'Ố' => 'Ố', 'ố' => 'ố', 'Ồ' => 'Ồ', 'ồ' => 'ồ', 'Ổ' => 'Ổ', 'ổ' => 'ổ', 'Ỗ' => 'Ỗ', 'ỗ' => 'ỗ', 'Ộ' => 'Ộ', 'ộ' => 'ộ', 'Ớ' => 'Ớ', 'ớ' => 'ớ', 'Ờ' => 'Ờ', 'ờ' => 'ờ', 'Ở' => 'Ở', 'ở' => 'ở', 'Ỡ' => 'Ỡ', 'ỡ' => 'ỡ', 'Ợ' => 'Ợ', 'ợ' => 'ợ', 'Ụ' => 'Ụ', 'ụ' => 'ụ', 'Ủ' => 'Ủ', 'ủ' => 'ủ', 'Ứ' => 'Ứ', 'ứ' => 'ứ', 'Ừ' => 'Ừ', 'ừ' => 'ừ', 'Ử' => 'Ử', 'ử' => 'ử', 'Ữ' => 'Ữ', 'ữ' => 'ữ', 'Ự' => 'Ự', 'ự' => 'ự', 'Ỳ' => 'Ỳ', 'ỳ' => 'ỳ', 'Ỵ' => 'Ỵ', 'ỵ' => 'ỵ', 'Ỷ' => 'Ỷ', 'ỷ' => 'ỷ', 'Ỹ' => 'Ỹ', 'ỹ' => 'ỹ', 'ἀ' => 'ἀ', 'ἁ' => 'ἁ', 'ἂ' => 'ἂ', 'ἃ' => 'ἃ', 'ἄ' => 'ἄ', 'ἅ' => 'ἅ', 'ἆ' => 'ἆ', 'ἇ' => 'ἇ', 'Ἀ' => 'Ἀ', 'Ἁ' => 'Ἁ', 'Ἂ' => 'Ἂ', 'Ἃ' => 'Ἃ', 'Ἄ' => 'Ἄ', 'Ἅ' => 'Ἅ', 'Ἆ' => 'Ἆ', 'Ἇ' => 'Ἇ', 'ἐ' => 'ἐ', 'ἑ' => 'ἑ', 'ἒ' => 'ἒ', 'ἓ' => 'ἓ', 'ἔ' => 'ἔ', 'ἕ' => 'ἕ', 'Ἐ' => 'Ἐ', 'Ἑ' => 'Ἑ', 'Ἒ' => 'Ἒ', 'Ἓ' => 'Ἓ', 'Ἔ' => 'Ἔ', 'Ἕ' => 'Ἕ', 'ἠ' => 'ἠ', 'ἡ' => 'ἡ', 'ἢ' => 'ἢ', 'ἣ' => 'ἣ', 'ἤ' => 'ἤ', 'ἥ' => 'ἥ', 'ἦ' => 'ἦ', 'ἧ' => 'ἧ', 'Ἠ' => 'Ἠ', 'Ἡ' => 'Ἡ', 'Ἢ' => 'Ἢ', 'Ἣ' => 'Ἣ', 'Ἤ' => 'Ἤ', 'Ἥ' => 'Ἥ', 'Ἦ' => 'Ἦ', 'Ἧ' => 'Ἧ', 'ἰ' => 'ἰ', 'ἱ' => 'ἱ', 'ἲ' => 'ἲ', 'ἳ' => 'ἳ', 'ἴ' => 'ἴ', 'ἵ' => 'ἵ', 'ἶ' => 'ἶ', 'ἷ' => 'ἷ', 'Ἰ' => 'Ἰ', 'Ἱ' => 'Ἱ', 'Ἲ' => 'Ἲ', 'Ἳ' => 'Ἳ', 'Ἴ' => 'Ἴ', 'Ἵ' => 'Ἵ', 'Ἶ' => 'Ἶ', 'Ἷ' => 'Ἷ', 'ὀ' => 'ὀ', 'ὁ' => 'ὁ', 'ὂ' => 'ὂ', 'ὃ' => 'ὃ', 'ὄ' => 'ὄ', 'ὅ' => 'ὅ', 'Ὀ' => 'Ὀ', 'Ὁ' => 'Ὁ', 'Ὂ' => 'Ὂ', 'Ὃ' => 'Ὃ', 'Ὄ' => 'Ὄ', 'Ὅ' => 'Ὅ', 'ὐ' => 'ὐ', 'ὑ' => 'ὑ', 'ὒ' => 'ὒ', 'ὓ' => 'ὓ', 'ὔ' => 'ὔ', 'ὕ' => 'ὕ', 'ὖ' => 'ὖ', 'ὗ' => 'ὗ', 'Ὑ' => 'Ὑ', 'Ὓ' => 'Ὓ', 'Ὕ' => 'Ὕ', 'Ὗ' => 'Ὗ', 'ὠ' => 'ὠ', 'ὡ' => 'ὡ', 'ὢ' => 'ὢ', 'ὣ' => 'ὣ', 'ὤ' => 'ὤ', 'ὥ' => 'ὥ', 'ὦ' => 'ὦ', 'ὧ' => 'ὧ', 'Ὠ' => 'Ὠ', 'Ὡ' => 'Ὡ', 'Ὢ' => 'Ὢ', 'Ὣ' => 'Ὣ', 'Ὤ' => 'Ὤ', 'Ὥ' => 'Ὥ', 'Ὦ' => 'Ὦ', 'Ὧ' => 'Ὧ', 'ὰ' => 'ὰ', 'ὲ' => 'ὲ', 'ὴ' => 'ὴ', 'ὶ' => 'ὶ', 'ὸ' => 'ὸ', 'ὺ' => 'ὺ', 'ὼ' => 'ὼ', 'ᾀ' => 'ᾀ', 'ᾁ' => 'ᾁ', 'ᾂ' => 'ᾂ', 'ᾃ' => 'ᾃ', 'ᾄ' => 'ᾄ', 'ᾅ' => 'ᾅ', 'ᾆ' => 'ᾆ', 'ᾇ' => 'ᾇ', 'ᾈ' => 'ᾈ', 'ᾉ' => 'ᾉ', 'ᾊ' => 'ᾊ', 'ᾋ' => 'ᾋ', 'ᾌ' => 'ᾌ', 'ᾍ' => 'ᾍ', 'ᾎ' => 'ᾎ', 'ᾏ' => 'ᾏ', 'ᾐ' => 'ᾐ', 'ᾑ' => 'ᾑ', 'ᾒ' => 'ᾒ', 'ᾓ' => 'ᾓ', 'ᾔ' => 'ᾔ', 'ᾕ' => 'ᾕ', 'ᾖ' => 'ᾖ', 'ᾗ' => 'ᾗ', 'ᾘ' => 'ᾘ', 'ᾙ' => 'ᾙ', 'ᾚ' => 'ᾚ', 'ᾛ' => 'ᾛ', 'ᾜ' => 'ᾜ', 'ᾝ' => 'ᾝ', 'ᾞ' => 'ᾞ', 'ᾟ' => 'ᾟ', 'ᾠ' => 'ᾠ', 'ᾡ' => 'ᾡ', 'ᾢ' => 'ᾢ', 'ᾣ' => 'ᾣ', 'ᾤ' => 'ᾤ', 'ᾥ' => 'ᾥ', 'ᾦ' => 'ᾦ', 'ᾧ' => 'ᾧ', 'ᾨ' => 'ᾨ', 'ᾩ' => 'ᾩ', 'ᾪ' => 'ᾪ', 'ᾫ' => 'ᾫ', 'ᾬ' => 'ᾬ', 'ᾭ' => 'ᾭ', 'ᾮ' => 'ᾮ', 'ᾯ' => 'ᾯ', 'ᾰ' => 'ᾰ', 'ᾱ' => 'ᾱ', 'ᾲ' => 'ᾲ', 'ᾳ' => 'ᾳ', 'ᾴ' => 'ᾴ', 'ᾶ' => 'ᾶ', 'ᾷ' => 'ᾷ', 'Ᾰ' => 'Ᾰ', 'Ᾱ' => 'Ᾱ', 'Ὰ' => 'Ὰ', 'ᾼ' => 'ᾼ', '῁' => '῁', 'ῂ' => 'ῂ', 'ῃ' => 'ῃ', 'ῄ' => 'ῄ', 'ῆ' => 'ῆ', 'ῇ' => 'ῇ', 'Ὲ' => 'Ὲ', 'Ὴ' => 'Ὴ', 'ῌ' => 'ῌ', '῍' => '῍', '῎' => '῎', '῏' => '῏', 'ῐ' => 'ῐ', 'ῑ' => 'ῑ', 'ῒ' => 'ῒ', 'ῖ' => 'ῖ', 'ῗ' => 'ῗ', 'Ῐ' => 'Ῐ', 'Ῑ' => 'Ῑ', 'Ὶ' => 'Ὶ', '῝' => '῝', '῞' => '῞', '῟' => '῟', 'ῠ' => 'ῠ', 'ῡ' => 'ῡ', 'ῢ' => 'ῢ', 'ῤ' => 'ῤ', 'ῥ' => 'ῥ', 'ῦ' => 'ῦ', 'ῧ' => 'ῧ', 'Ῠ' => 'Ῠ', 'Ῡ' => 'Ῡ', 'Ὺ' => 'Ὺ', 'Ῥ' => 'Ῥ', '῭' => '῭', 'ῲ' => 'ῲ', 'ῳ' => 'ῳ', 'ῴ' => 'ῴ', 'ῶ' => 'ῶ', 'ῷ' => 'ῷ', 'Ὸ' => 'Ὸ', 'Ὼ' => 'Ὼ', 'ῼ' => 'ῼ', '↚' => '↚', '↛' => '↛', '↮' => '↮', '⇍' => '⇍', '⇎' => '⇎', '⇏' => '⇏', '∄' => '∄', '∉' => '∉', '∌' => '∌', '∤' => '∤', '∦' => '∦', '≁' => '≁', '≄' => '≄', '≇' => '≇', '≉' => '≉', '≠' => '≠', '≢' => '≢', '≭' => '≭', '≮' => '≮', '≯' => '≯', '≰' => '≰', '≱' => '≱', '≴' => '≴', '≵' => '≵', '≸' => '≸', '≹' => '≹', '⊀' => '⊀', '⊁' => '⊁', '⊄' => '⊄', '⊅' => '⊅', '⊈' => '⊈', '⊉' => '⊉', '⊬' => '⊬', '⊭' => '⊭', '⊮' => '⊮', '⊯' => '⊯', '⋠' => '⋠', '⋡' => '⋡', '⋢' => '⋢', '⋣' => '⋣', '⋪' => '⋪', '⋫' => '⋫', '⋬' => '⋬', '⋭' => '⋭', 'が' => 'が', 'ぎ' => 'ぎ', 'ぐ' => 'ぐ', 'げ' => 'げ', 'ご' => 'ご', 'ざ' => 'ざ', 'じ' => 'じ', 'ず' => 'ず', 'ぜ' => 'ぜ', 'ぞ' => 'ぞ', 'だ' => 'だ', 'ぢ' => 'ぢ', 'づ' => 'づ', 'で' => 'で', 'ど' => 'ど', 'ば' => 'ば', 'ぱ' => 'ぱ', 'び' => 'び', 'ぴ' => 'ぴ', 'ぶ' => 'ぶ', 'ぷ' => 'ぷ', 'べ' => 'べ', 'ぺ' => 'ぺ', 'ぼ' => 'ぼ', 'ぽ' => 'ぽ', 'ゔ' => 'ゔ', 'ゞ' => 'ゞ', 'ガ' => 'ガ', 'ギ' => 'ギ', 'グ' => 'グ', 'ゲ' => 'ゲ', 'ゴ' => 'ゴ', 'ザ' => 'ザ', 'ジ' => 'ジ', 'ズ' => 'ズ', 'ゼ' => 'ゼ', 'ゾ' => 'ゾ', 'ダ' => 'ダ', 'ヂ' => 'ヂ', 'ヅ' => 'ヅ', 'デ' => 'デ', 'ド' => 'ド', 'バ' => 'バ', 'パ' => 'パ', 'ビ' => 'ビ', 'ピ' => 'ピ', 'ブ' => 'ブ', 'プ' => 'プ', 'ベ' => 'ベ', 'ペ' => 'ペ', 'ボ' => 'ボ', 'ポ' => 'ポ', 'ヴ' => 'ヴ', 'ヷ' => 'ヷ', 'ヸ' => 'ヸ', 'ヹ' => 'ヹ', 'ヺ' => 'ヺ', 'ヾ' => 'ヾ', '𑂚' => '𑂚', '𑂜' => '𑂜', '𑂫' => '𑂫', '𑄮' => '𑄮', '𑄯' => '𑄯', '𑍋' => '𑍋', '𑍌' => '𑍌', '𑒻' => '𑒻', '𑒼' => '𑒼', '𑒾' => '𑒾', '𑖺' => '𑖺', '𑖻' => '𑖻', '𑤸' => '𑤸'); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php deleted file mode 100644 index e93d1a254..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php +++ /dev/null @@ -1,5 +0,0 @@ - 'À', 'Á' => 'Á', 'Â' => 'Â', 'Ã' => 'Ã', 'Ä' => 'Ä', 'Å' => 'Å', 'Ç' => 'Ç', 'È' => 'È', 'É' => 'É', 'Ê' => 'Ê', 'Ë' => 'Ë', 'Ì' => 'Ì', 'Í' => 'Í', 'Î' => 'Î', 'Ï' => 'Ï', 'Ñ' => 'Ñ', 'Ò' => 'Ò', 'Ó' => 'Ó', 'Ô' => 'Ô', 'Õ' => 'Õ', 'Ö' => 'Ö', 'Ù' => 'Ù', 'Ú' => 'Ú', 'Û' => 'Û', 'Ü' => 'Ü', 'Ý' => 'Ý', 'à' => 'à', 'á' => 'á', 'â' => 'â', 'ã' => 'ã', 'ä' => 'ä', 'å' => 'å', 'ç' => 'ç', 'è' => 'è', 'é' => 'é', 'ê' => 'ê', 'ë' => 'ë', 'ì' => 'ì', 'í' => 'í', 'î' => 'î', 'ï' => 'ï', 'ñ' => 'ñ', 'ò' => 'ò', 'ó' => 'ó', 'ô' => 'ô', 'õ' => 'õ', 'ö' => 'ö', 'ù' => 'ù', 'ú' => 'ú', 'û' => 'û', 'ü' => 'ü', 'ý' => 'ý', 'ÿ' => 'ÿ', 'Ā' => 'Ā', 'ā' => 'ā', 'Ă' => 'Ă', 'ă' => 'ă', 'Ą' => 'Ą', 'ą' => 'ą', 'Ć' => 'Ć', 'ć' => 'ć', 'Ĉ' => 'Ĉ', 'ĉ' => 'ĉ', 'Ċ' => 'Ċ', 'ċ' => 'ċ', 'Č' => 'Č', 'č' => 'č', 'Ď' => 'Ď', 'ď' => 'ď', 'Ē' => 'Ē', 'ē' => 'ē', 'Ĕ' => 'Ĕ', 'ĕ' => 'ĕ', 'Ė' => 'Ė', 'ė' => 'ė', 'Ę' => 'Ę', 'ę' => 'ę', 'Ě' => 'Ě', 'ě' => 'ě', 'Ĝ' => 'Ĝ', 'ĝ' => 'ĝ', 'Ğ' => 'Ğ', 'ğ' => 'ğ', 'Ġ' => 'Ġ', 'ġ' => 'ġ', 'Ģ' => 'Ģ', 'ģ' => 'ģ', 'Ĥ' => 'Ĥ', 'ĥ' => 'ĥ', 'Ĩ' => 'Ĩ', 'ĩ' => 'ĩ', 'Ī' => 'Ī', 'ī' => 'ī', 'Ĭ' => 'Ĭ', 'ĭ' => 'ĭ', 'Į' => 'Į', 'į' => 'į', 'İ' => 'İ', 'Ĵ' => 'Ĵ', 'ĵ' => 'ĵ', 'Ķ' => 'Ķ', 'ķ' => 'ķ', 'Ĺ' => 'Ĺ', 'ĺ' => 'ĺ', 'Ļ' => 'Ļ', 'ļ' => 'ļ', 'Ľ' => 'Ľ', 'ľ' => 'ľ', 'Ń' => 'Ń', 'ń' => 'ń', 'Ņ' => 'Ņ', 'ņ' => 'ņ', 'Ň' => 'Ň', 'ň' => 'ň', 'Ō' => 'Ō', 'ō' => 'ō', 'Ŏ' => 'Ŏ', 'ŏ' => 'ŏ', 'Ő' => 'Ő', 'ő' => 'ő', 'Ŕ' => 'Ŕ', 'ŕ' => 'ŕ', 'Ŗ' => 'Ŗ', 'ŗ' => 'ŗ', 'Ř' => 'Ř', 'ř' => 'ř', 'Ś' => 'Ś', 'ś' => 'ś', 'Ŝ' => 'Ŝ', 'ŝ' => 'ŝ', 'Ş' => 'Ş', 'ş' => 'ş', 'Š' => 'Š', 'š' => 'š', 'Ţ' => 'Ţ', 'ţ' => 'ţ', 'Ť' => 'Ť', 'ť' => 'ť', 'Ũ' => 'Ũ', 'ũ' => 'ũ', 'Ū' => 'Ū', 'ū' => 'ū', 'Ŭ' => 'Ŭ', 'ŭ' => 'ŭ', 'Ů' => 'Ů', 'ů' => 'ů', 'Ű' => 'Ű', 'ű' => 'ű', 'Ų' => 'Ų', 'ų' => 'ų', 'Ŵ' => 'Ŵ', 'ŵ' => 'ŵ', 'Ŷ' => 'Ŷ', 'ŷ' => 'ŷ', 'Ÿ' => 'Ÿ', 'Ź' => 'Ź', 'ź' => 'ź', 'Ż' => 'Ż', 'ż' => 'ż', 'Ž' => 'Ž', 'ž' => 'ž', 'Ơ' => 'Ơ', 'ơ' => 'ơ', 'Ư' => 'Ư', 'ư' => 'ư', 'Ǎ' => 'Ǎ', 'ǎ' => 'ǎ', 'Ǐ' => 'Ǐ', 'ǐ' => 'ǐ', 'Ǒ' => 'Ǒ', 'ǒ' => 'ǒ', 'Ǔ' => 'Ǔ', 'ǔ' => 'ǔ', 'Ǖ' => 'Ǖ', 'ǖ' => 'ǖ', 'Ǘ' => 'Ǘ', 'ǘ' => 'ǘ', 'Ǚ' => 'Ǚ', 'ǚ' => 'ǚ', 'Ǜ' => 'Ǜ', 'ǜ' => 'ǜ', 'Ǟ' => 'Ǟ', 'ǟ' => 'ǟ', 'Ǡ' => 'Ǡ', 'ǡ' => 'ǡ', 'Ǣ' => 'Ǣ', 'ǣ' => 'ǣ', 'Ǧ' => 'Ǧ', 'ǧ' => 'ǧ', 'Ǩ' => 'Ǩ', 'ǩ' => 'ǩ', 'Ǫ' => 'Ǫ', 'ǫ' => 'ǫ', 'Ǭ' => 'Ǭ', 'ǭ' => 'ǭ', 'Ǯ' => 'Ǯ', 'ǯ' => 'ǯ', 'ǰ' => 'ǰ', 'Ǵ' => 'Ǵ', 'ǵ' => 'ǵ', 'Ǹ' => 'Ǹ', 'ǹ' => 'ǹ', 'Ǻ' => 'Ǻ', 'ǻ' => 'ǻ', 'Ǽ' => 'Ǽ', 'ǽ' => 'ǽ', 'Ǿ' => 'Ǿ', 'ǿ' => 'ǿ', 'Ȁ' => 'Ȁ', 'ȁ' => 'ȁ', 'Ȃ' => 'Ȃ', 'ȃ' => 'ȃ', 'Ȅ' => 'Ȅ', 'ȅ' => 'ȅ', 'Ȇ' => 'Ȇ', 'ȇ' => 'ȇ', 'Ȉ' => 'Ȉ', 'ȉ' => 'ȉ', 'Ȋ' => 'Ȋ', 'ȋ' => 'ȋ', 'Ȍ' => 'Ȍ', 'ȍ' => 'ȍ', 'Ȏ' => 'Ȏ', 'ȏ' => 'ȏ', 'Ȑ' => 'Ȑ', 'ȑ' => 'ȑ', 'Ȓ' => 'Ȓ', 'ȓ' => 'ȓ', 'Ȕ' => 'Ȕ', 'ȕ' => 'ȕ', 'Ȗ' => 'Ȗ', 'ȗ' => 'ȗ', 'Ș' => 'Ș', 'ș' => 'ș', 'Ț' => 'Ț', 'ț' => 'ț', 'Ȟ' => 'Ȟ', 'ȟ' => 'ȟ', 'Ȧ' => 'Ȧ', 'ȧ' => 'ȧ', 'Ȩ' => 'Ȩ', 'ȩ' => 'ȩ', 'Ȫ' => 'Ȫ', 'ȫ' => 'ȫ', 'Ȭ' => 'Ȭ', 'ȭ' => 'ȭ', 'Ȯ' => 'Ȯ', 'ȯ' => 'ȯ', 'Ȱ' => 'Ȱ', 'ȱ' => 'ȱ', 'Ȳ' => 'Ȳ', 'ȳ' => 'ȳ', '̀' => '̀', '́' => '́', '̓' => '̓', '̈́' => '̈́', 'ʹ' => 'ʹ', ';' => ';', '΅' => '΅', 'Ά' => 'Ά', '·' => '·', 'Έ' => 'Έ', 'Ή' => 'Ή', 'Ί' => 'Ί', 'Ό' => 'Ό', 'Ύ' => 'Ύ', 'Ώ' => 'Ώ', 'ΐ' => 'ΐ', 'Ϊ' => 'Ϊ', 'Ϋ' => 'Ϋ', 'ά' => 'ά', 'έ' => 'έ', 'ή' => 'ή', 'ί' => 'ί', 'ΰ' => 'ΰ', 'ϊ' => 'ϊ', 'ϋ' => 'ϋ', 'ό' => 'ό', 'ύ' => 'ύ', 'ώ' => 'ώ', 'ϓ' => 'ϓ', 'ϔ' => 'ϔ', 'Ѐ' => 'Ѐ', 'Ё' => 'Ё', 'Ѓ' => 'Ѓ', 'Ї' => 'Ї', 'Ќ' => 'Ќ', 'Ѝ' => 'Ѝ', 'Ў' => 'Ў', 'Й' => 'Й', 'й' => 'й', 'ѐ' => 'ѐ', 'ё' => 'ё', 'ѓ' => 'ѓ', 'ї' => 'ї', 'ќ' => 'ќ', 'ѝ' => 'ѝ', 'ў' => 'ў', 'Ѷ' => 'Ѷ', 'ѷ' => 'ѷ', 'Ӂ' => 'Ӂ', 'ӂ' => 'ӂ', 'Ӑ' => 'Ӑ', 'ӑ' => 'ӑ', 'Ӓ' => 'Ӓ', 'ӓ' => 'ӓ', 'Ӗ' => 'Ӗ', 'ӗ' => 'ӗ', 'Ӛ' => 'Ӛ', 'ӛ' => 'ӛ', 'Ӝ' => 'Ӝ', 'ӝ' => 'ӝ', 'Ӟ' => 'Ӟ', 'ӟ' => 'ӟ', 'Ӣ' => 'Ӣ', 'ӣ' => 'ӣ', 'Ӥ' => 'Ӥ', 'ӥ' => 'ӥ', 'Ӧ' => 'Ӧ', 'ӧ' => 'ӧ', 'Ӫ' => 'Ӫ', 'ӫ' => 'ӫ', 'Ӭ' => 'Ӭ', 'ӭ' => 'ӭ', 'Ӯ' => 'Ӯ', 'ӯ' => 'ӯ', 'Ӱ' => 'Ӱ', 'ӱ' => 'ӱ', 'Ӳ' => 'Ӳ', 'ӳ' => 'ӳ', 'Ӵ' => 'Ӵ', 'ӵ' => 'ӵ', 'Ӹ' => 'Ӹ', 'ӹ' => 'ӹ', 'آ' => 'آ', 'أ' => 'أ', 'ؤ' => 'ؤ', 'إ' => 'إ', 'ئ' => 'ئ', 'ۀ' => 'ۀ', 'ۂ' => 'ۂ', 'ۓ' => 'ۓ', 'ऩ' => 'ऩ', 'ऱ' => 'ऱ', 'ऴ' => 'ऴ', 'क़' => 'क़', 'ख़' => 'ख़', 'ग़' => 'ग़', 'ज़' => 'ज़', 'ड़' => 'ड़', 'ढ़' => 'ढ़', 'फ़' => 'फ़', 'य़' => 'य़', 'ো' => 'ো', 'ৌ' => 'ৌ', 'ড়' => 'ড়', 'ঢ়' => 'ঢ়', 'য়' => 'য়', 'ਲ਼' => 'ਲ਼', 'ਸ਼' => 'ਸ਼', 'ਖ਼' => 'ਖ਼', 'ਗ਼' => 'ਗ਼', 'ਜ਼' => 'ਜ਼', 'ਫ਼' => 'ਫ਼', 'ୈ' => 'ୈ', 'ୋ' => 'ୋ', 'ୌ' => 'ୌ', 'ଡ଼' => 'ଡ଼', 'ଢ଼' => 'ଢ଼', 'ஔ' => 'ஔ', 'ொ' => 'ொ', 'ோ' => 'ோ', 'ௌ' => 'ௌ', 'ై' => 'ై', 'ೀ' => 'ೀ', 'ೇ' => 'ೇ', 'ೈ' => 'ೈ', 'ೊ' => 'ೊ', 'ೋ' => 'ೋ', 'ൊ' => 'ൊ', 'ോ' => 'ോ', 'ൌ' => 'ൌ', 'ේ' => 'ේ', 'ො' => 'ො', 'ෝ' => 'ෝ', 'ෞ' => 'ෞ', 'གྷ' => 'གྷ', 'ཌྷ' => 'ཌྷ', 'དྷ' => 'དྷ', 'བྷ' => 'བྷ', 'ཛྷ' => 'ཛྷ', 'ཀྵ' => 'ཀྵ', 'ཱི' => 'ཱི', 'ཱུ' => 'ཱུ', 'ྲྀ' => 'ྲྀ', 'ླྀ' => 'ླྀ', 'ཱྀ' => 'ཱྀ', 'ྒྷ' => 'ྒྷ', 'ྜྷ' => 'ྜྷ', 'ྡྷ' => 'ྡྷ', 'ྦྷ' => 'ྦྷ', 'ྫྷ' => 'ྫྷ', 'ྐྵ' => 'ྐྵ', 'ဦ' => 'ဦ', 'ᬆ' => 'ᬆ', 'ᬈ' => 'ᬈ', 'ᬊ' => 'ᬊ', 'ᬌ' => 'ᬌ', 'ᬎ' => 'ᬎ', 'ᬒ' => 'ᬒ', 'ᬻ' => 'ᬻ', 'ᬽ' => 'ᬽ', 'ᭀ' => 'ᭀ', 'ᭁ' => 'ᭁ', 'ᭃ' => 'ᭃ', 'Ḁ' => 'Ḁ', 'ḁ' => 'ḁ', 'Ḃ' => 'Ḃ', 'ḃ' => 'ḃ', 'Ḅ' => 'Ḅ', 'ḅ' => 'ḅ', 'Ḇ' => 'Ḇ', 'ḇ' => 'ḇ', 'Ḉ' => 'Ḉ', 'ḉ' => 'ḉ', 'Ḋ' => 'Ḋ', 'ḋ' => 'ḋ', 'Ḍ' => 'Ḍ', 'ḍ' => 'ḍ', 'Ḏ' => 'Ḏ', 'ḏ' => 'ḏ', 'Ḑ' => 'Ḑ', 'ḑ' => 'ḑ', 'Ḓ' => 'Ḓ', 'ḓ' => 'ḓ', 'Ḕ' => 'Ḕ', 'ḕ' => 'ḕ', 'Ḗ' => 'Ḗ', 'ḗ' => 'ḗ', 'Ḙ' => 'Ḙ', 'ḙ' => 'ḙ', 'Ḛ' => 'Ḛ', 'ḛ' => 'ḛ', 'Ḝ' => 'Ḝ', 'ḝ' => 'ḝ', 'Ḟ' => 'Ḟ', 'ḟ' => 'ḟ', 'Ḡ' => 'Ḡ', 'ḡ' => 'ḡ', 'Ḣ' => 'Ḣ', 'ḣ' => 'ḣ', 'Ḥ' => 'Ḥ', 'ḥ' => 'ḥ', 'Ḧ' => 'Ḧ', 'ḧ' => 'ḧ', 'Ḩ' => 'Ḩ', 'ḩ' => 'ḩ', 'Ḫ' => 'Ḫ', 'ḫ' => 'ḫ', 'Ḭ' => 'Ḭ', 'ḭ' => 'ḭ', 'Ḯ' => 'Ḯ', 'ḯ' => 'ḯ', 'Ḱ' => 'Ḱ', 'ḱ' => 'ḱ', 'Ḳ' => 'Ḳ', 'ḳ' => 'ḳ', 'Ḵ' => 'Ḵ', 'ḵ' => 'ḵ', 'Ḷ' => 'Ḷ', 'ḷ' => 'ḷ', 'Ḹ' => 'Ḹ', 'ḹ' => 'ḹ', 'Ḻ' => 'Ḻ', 'ḻ' => 'ḻ', 'Ḽ' => 'Ḽ', 'ḽ' => 'ḽ', 'Ḿ' => 'Ḿ', 'ḿ' => 'ḿ', 'Ṁ' => 'Ṁ', 'ṁ' => 'ṁ', 'Ṃ' => 'Ṃ', 'ṃ' => 'ṃ', 'Ṅ' => 'Ṅ', 'ṅ' => 'ṅ', 'Ṇ' => 'Ṇ', 'ṇ' => 'ṇ', 'Ṉ' => 'Ṉ', 'ṉ' => 'ṉ', 'Ṋ' => 'Ṋ', 'ṋ' => 'ṋ', 'Ṍ' => 'Ṍ', 'ṍ' => 'ṍ', 'Ṏ' => 'Ṏ', 'ṏ' => 'ṏ', 'Ṑ' => 'Ṑ', 'ṑ' => 'ṑ', 'Ṓ' => 'Ṓ', 'ṓ' => 'ṓ', 'Ṕ' => 'Ṕ', 'ṕ' => 'ṕ', 'Ṗ' => 'Ṗ', 'ṗ' => 'ṗ', 'Ṙ' => 'Ṙ', 'ṙ' => 'ṙ', 'Ṛ' => 'Ṛ', 'ṛ' => 'ṛ', 'Ṝ' => 'Ṝ', 'ṝ' => 'ṝ', 'Ṟ' => 'Ṟ', 'ṟ' => 'ṟ', 'Ṡ' => 'Ṡ', 'ṡ' => 'ṡ', 'Ṣ' => 'Ṣ', 'ṣ' => 'ṣ', 'Ṥ' => 'Ṥ', 'ṥ' => 'ṥ', 'Ṧ' => 'Ṧ', 'ṧ' => 'ṧ', 'Ṩ' => 'Ṩ', 'ṩ' => 'ṩ', 'Ṫ' => 'Ṫ', 'ṫ' => 'ṫ', 'Ṭ' => 'Ṭ', 'ṭ' => 'ṭ', 'Ṯ' => 'Ṯ', 'ṯ' => 'ṯ', 'Ṱ' => 'Ṱ', 'ṱ' => 'ṱ', 'Ṳ' => 'Ṳ', 'ṳ' => 'ṳ', 'Ṵ' => 'Ṵ', 'ṵ' => 'ṵ', 'Ṷ' => 'Ṷ', 'ṷ' => 'ṷ', 'Ṹ' => 'Ṹ', 'ṹ' => 'ṹ', 'Ṻ' => 'Ṻ', 'ṻ' => 'ṻ', 'Ṽ' => 'Ṽ', 'ṽ' => 'ṽ', 'Ṿ' => 'Ṿ', 'ṿ' => 'ṿ', 'Ẁ' => 'Ẁ', 'ẁ' => 'ẁ', 'Ẃ' => 'Ẃ', 'ẃ' => 'ẃ', 'Ẅ' => 'Ẅ', 'ẅ' => 'ẅ', 'Ẇ' => 'Ẇ', 'ẇ' => 'ẇ', 'Ẉ' => 'Ẉ', 'ẉ' => 'ẉ', 'Ẋ' => 'Ẋ', 'ẋ' => 'ẋ', 'Ẍ' => 'Ẍ', 'ẍ' => 'ẍ', 'Ẏ' => 'Ẏ', 'ẏ' => 'ẏ', 'Ẑ' => 'Ẑ', 'ẑ' => 'ẑ', 'Ẓ' => 'Ẓ', 'ẓ' => 'ẓ', 'Ẕ' => 'Ẕ', 'ẕ' => 'ẕ', 'ẖ' => 'ẖ', 'ẗ' => 'ẗ', 'ẘ' => 'ẘ', 'ẙ' => 'ẙ', 'ẛ' => 'ẛ', 'Ạ' => 'Ạ', 'ạ' => 'ạ', 'Ả' => 'Ả', 'ả' => 'ả', 'Ấ' => 'Ấ', 'ấ' => 'ấ', 'Ầ' => 'Ầ', 'ầ' => 'ầ', 'Ẩ' => 'Ẩ', 'ẩ' => 'ẩ', 'Ẫ' => 'Ẫ', 'ẫ' => 'ẫ', 'Ậ' => 'Ậ', 'ậ' => 'ậ', 'Ắ' => 'Ắ', 'ắ' => 'ắ', 'Ằ' => 'Ằ', 'ằ' => 'ằ', 'Ẳ' => 'Ẳ', 'ẳ' => 'ẳ', 'Ẵ' => 'Ẵ', 'ẵ' => 'ẵ', 'Ặ' => 'Ặ', 'ặ' => 'ặ', 'Ẹ' => 'Ẹ', 'ẹ' => 'ẹ', 'Ẻ' => 'Ẻ', 'ẻ' => 'ẻ', 'Ẽ' => 'Ẽ', 'ẽ' => 'ẽ', 'Ế' => 'Ế', 'ế' => 'ế', 'Ề' => 'Ề', 'ề' => 'ề', 'Ể' => 'Ể', 'ể' => 'ể', 'Ễ' => 'Ễ', 'ễ' => 'ễ', 'Ệ' => 'Ệ', 'ệ' => 'ệ', 'Ỉ' => 'Ỉ', 'ỉ' => 'ỉ', 'Ị' => 'Ị', 'ị' => 'ị', 'Ọ' => 'Ọ', 'ọ' => 'ọ', 'Ỏ' => 'Ỏ', 'ỏ' => 'ỏ', 'Ố' => 'Ố', 'ố' => 'ố', 'Ồ' => 'Ồ', 'ồ' => 'ồ', 'Ổ' => 'Ổ', 'ổ' => 'ổ', 'Ỗ' => 'Ỗ', 'ỗ' => 'ỗ', 'Ộ' => 'Ộ', 'ộ' => 'ộ', 'Ớ' => 'Ớ', 'ớ' => 'ớ', 'Ờ' => 'Ờ', 'ờ' => 'ờ', 'Ở' => 'Ở', 'ở' => 'ở', 'Ỡ' => 'Ỡ', 'ỡ' => 'ỡ', 'Ợ' => 'Ợ', 'ợ' => 'ợ', 'Ụ' => 'Ụ', 'ụ' => 'ụ', 'Ủ' => 'Ủ', 'ủ' => 'ủ', 'Ứ' => 'Ứ', 'ứ' => 'ứ', 'Ừ' => 'Ừ', 'ừ' => 'ừ', 'Ử' => 'Ử', 'ử' => 'ử', 'Ữ' => 'Ữ', 'ữ' => 'ữ', 'Ự' => 'Ự', 'ự' => 'ự', 'Ỳ' => 'Ỳ', 'ỳ' => 'ỳ', 'Ỵ' => 'Ỵ', 'ỵ' => 'ỵ', 'Ỷ' => 'Ỷ', 'ỷ' => 'ỷ', 'Ỹ' => 'Ỹ', 'ỹ' => 'ỹ', 'ἀ' => 'ἀ', 'ἁ' => 'ἁ', 'ἂ' => 'ἂ', 'ἃ' => 'ἃ', 'ἄ' => 'ἄ', 'ἅ' => 'ἅ', 'ἆ' => 'ἆ', 'ἇ' => 'ἇ', 'Ἀ' => 'Ἀ', 'Ἁ' => 'Ἁ', 'Ἂ' => 'Ἂ', 'Ἃ' => 'Ἃ', 'Ἄ' => 'Ἄ', 'Ἅ' => 'Ἅ', 'Ἆ' => 'Ἆ', 'Ἇ' => 'Ἇ', 'ἐ' => 'ἐ', 'ἑ' => 'ἑ', 'ἒ' => 'ἒ', 'ἓ' => 'ἓ', 'ἔ' => 'ἔ', 'ἕ' => 'ἕ', 'Ἐ' => 'Ἐ', 'Ἑ' => 'Ἑ', 'Ἒ' => 'Ἒ', 'Ἓ' => 'Ἓ', 'Ἔ' => 'Ἔ', 'Ἕ' => 'Ἕ', 'ἠ' => 'ἠ', 'ἡ' => 'ἡ', 'ἢ' => 'ἢ', 'ἣ' => 'ἣ', 'ἤ' => 'ἤ', 'ἥ' => 'ἥ', 'ἦ' => 'ἦ', 'ἧ' => 'ἧ', 'Ἠ' => 'Ἠ', 'Ἡ' => 'Ἡ', 'Ἢ' => 'Ἢ', 'Ἣ' => 'Ἣ', 'Ἤ' => 'Ἤ', 'Ἥ' => 'Ἥ', 'Ἦ' => 'Ἦ', 'Ἧ' => 'Ἧ', 'ἰ' => 'ἰ', 'ἱ' => 'ἱ', 'ἲ' => 'ἲ', 'ἳ' => 'ἳ', 'ἴ' => 'ἴ', 'ἵ' => 'ἵ', 'ἶ' => 'ἶ', 'ἷ' => 'ἷ', 'Ἰ' => 'Ἰ', 'Ἱ' => 'Ἱ', 'Ἲ' => 'Ἲ', 'Ἳ' => 'Ἳ', 'Ἴ' => 'Ἴ', 'Ἵ' => 'Ἵ', 'Ἶ' => 'Ἶ', 'Ἷ' => 'Ἷ', 'ὀ' => 'ὀ', 'ὁ' => 'ὁ', 'ὂ' => 'ὂ', 'ὃ' => 'ὃ', 'ὄ' => 'ὄ', 'ὅ' => 'ὅ', 'Ὀ' => 'Ὀ', 'Ὁ' => 'Ὁ', 'Ὂ' => 'Ὂ', 'Ὃ' => 'Ὃ', 'Ὄ' => 'Ὄ', 'Ὅ' => 'Ὅ', 'ὐ' => 'ὐ', 'ὑ' => 'ὑ', 'ὒ' => 'ὒ', 'ὓ' => 'ὓ', 'ὔ' => 'ὔ', 'ὕ' => 'ὕ', 'ὖ' => 'ὖ', 'ὗ' => 'ὗ', 'Ὑ' => 'Ὑ', 'Ὓ' => 'Ὓ', 'Ὕ' => 'Ὕ', 'Ὗ' => 'Ὗ', 'ὠ' => 'ὠ', 'ὡ' => 'ὡ', 'ὢ' => 'ὢ', 'ὣ' => 'ὣ', 'ὤ' => 'ὤ', 'ὥ' => 'ὥ', 'ὦ' => 'ὦ', 'ὧ' => 'ὧ', 'Ὠ' => 'Ὠ', 'Ὡ' => 'Ὡ', 'Ὢ' => 'Ὢ', 'Ὣ' => 'Ὣ', 'Ὤ' => 'Ὤ', 'Ὥ' => 'Ὥ', 'Ὦ' => 'Ὦ', 'Ὧ' => 'Ὧ', 'ὰ' => 'ὰ', 'ά' => 'ά', 'ὲ' => 'ὲ', 'έ' => 'έ', 'ὴ' => 'ὴ', 'ή' => 'ή', 'ὶ' => 'ὶ', 'ί' => 'ί', 'ὸ' => 'ὸ', 'ό' => 'ό', 'ὺ' => 'ὺ', 'ύ' => 'ύ', 'ὼ' => 'ὼ', 'ώ' => 'ώ', 'ᾀ' => 'ᾀ', 'ᾁ' => 'ᾁ', 'ᾂ' => 'ᾂ', 'ᾃ' => 'ᾃ', 'ᾄ' => 'ᾄ', 'ᾅ' => 'ᾅ', 'ᾆ' => 'ᾆ', 'ᾇ' => 'ᾇ', 'ᾈ' => 'ᾈ', 'ᾉ' => 'ᾉ', 'ᾊ' => 'ᾊ', 'ᾋ' => 'ᾋ', 'ᾌ' => 'ᾌ', 'ᾍ' => 'ᾍ', 'ᾎ' => 'ᾎ', 'ᾏ' => 'ᾏ', 'ᾐ' => 'ᾐ', 'ᾑ' => 'ᾑ', 'ᾒ' => 'ᾒ', 'ᾓ' => 'ᾓ', 'ᾔ' => 'ᾔ', 'ᾕ' => 'ᾕ', 'ᾖ' => 'ᾖ', 'ᾗ' => 'ᾗ', 'ᾘ' => 'ᾘ', 'ᾙ' => 'ᾙ', 'ᾚ' => 'ᾚ', 'ᾛ' => 'ᾛ', 'ᾜ' => 'ᾜ', 'ᾝ' => 'ᾝ', 'ᾞ' => 'ᾞ', 'ᾟ' => 'ᾟ', 'ᾠ' => 'ᾠ', 'ᾡ' => 'ᾡ', 'ᾢ' => 'ᾢ', 'ᾣ' => 'ᾣ', 'ᾤ' => 'ᾤ', 'ᾥ' => 'ᾥ', 'ᾦ' => 'ᾦ', 'ᾧ' => 'ᾧ', 'ᾨ' => 'ᾨ', 'ᾩ' => 'ᾩ', 'ᾪ' => 'ᾪ', 'ᾫ' => 'ᾫ', 'ᾬ' => 'ᾬ', 'ᾭ' => 'ᾭ', 'ᾮ' => 'ᾮ', 'ᾯ' => 'ᾯ', 'ᾰ' => 'ᾰ', 'ᾱ' => 'ᾱ', 'ᾲ' => 'ᾲ', 'ᾳ' => 'ᾳ', 'ᾴ' => 'ᾴ', 'ᾶ' => 'ᾶ', 'ᾷ' => 'ᾷ', 'Ᾰ' => 'Ᾰ', 'Ᾱ' => 'Ᾱ', 'Ὰ' => 'Ὰ', 'Ά' => 'Ά', 'ᾼ' => 'ᾼ', 'ι' => 'ι', '῁' => '῁', 'ῂ' => 'ῂ', 'ῃ' => 'ῃ', 'ῄ' => 'ῄ', 'ῆ' => 'ῆ', 'ῇ' => 'ῇ', 'Ὲ' => 'Ὲ', 'Έ' => 'Έ', 'Ὴ' => 'Ὴ', 'Ή' => 'Ή', 'ῌ' => 'ῌ', '῍' => '῍', '῎' => '῎', '῏' => '῏', 'ῐ' => 'ῐ', 'ῑ' => 'ῑ', 'ῒ' => 'ῒ', 'ΐ' => 'ΐ', 'ῖ' => 'ῖ', 'ῗ' => 'ῗ', 'Ῐ' => 'Ῐ', 'Ῑ' => 'Ῑ', 'Ὶ' => 'Ὶ', 'Ί' => 'Ί', '῝' => '῝', '῞' => '῞', '῟' => '῟', 'ῠ' => 'ῠ', 'ῡ' => 'ῡ', 'ῢ' => 'ῢ', 'ΰ' => 'ΰ', 'ῤ' => 'ῤ', 'ῥ' => 'ῥ', 'ῦ' => 'ῦ', 'ῧ' => 'ῧ', 'Ῠ' => 'Ῠ', 'Ῡ' => 'Ῡ', 'Ὺ' => 'Ὺ', 'Ύ' => 'Ύ', 'Ῥ' => 'Ῥ', '῭' => '῭', '΅' => '΅', '`' => '`', 'ῲ' => 'ῲ', 'ῳ' => 'ῳ', 'ῴ' => 'ῴ', 'ῶ' => 'ῶ', 'ῷ' => 'ῷ', 'Ὸ' => 'Ὸ', 'Ό' => 'Ό', 'Ὼ' => 'Ὼ', 'Ώ' => 'Ώ', 'ῼ' => 'ῼ', '´' => '´', ' ' => ' ', ' ' => ' ', 'Ω' => 'Ω', 'K' => 'K', 'Å' => 'Å', '↚' => '↚', '↛' => '↛', '↮' => '↮', '⇍' => '⇍', '⇎' => '⇎', '⇏' => '⇏', '∄' => '∄', '∉' => '∉', '∌' => '∌', '∤' => '∤', '∦' => '∦', '≁' => '≁', '≄' => '≄', '≇' => '≇', '≉' => '≉', '≠' => '≠', '≢' => '≢', '≭' => '≭', '≮' => '≮', '≯' => '≯', '≰' => '≰', '≱' => '≱', '≴' => '≴', '≵' => '≵', '≸' => '≸', '≹' => '≹', '⊀' => '⊀', '⊁' => '⊁', '⊄' => '⊄', '⊅' => '⊅', '⊈' => '⊈', '⊉' => '⊉', '⊬' => '⊬', '⊭' => '⊭', '⊮' => '⊮', '⊯' => '⊯', '⋠' => '⋠', '⋡' => '⋡', '⋢' => '⋢', '⋣' => '⋣', '⋪' => '⋪', '⋫' => '⋫', '⋬' => '⋬', '⋭' => '⋭', '〈' => '〈', '〉' => '〉', '⫝̸' => '⫝̸', 'が' => 'が', 'ぎ' => 'ぎ', 'ぐ' => 'ぐ', 'げ' => 'げ', 'ご' => 'ご', 'ざ' => 'ざ', 'じ' => 'じ', 'ず' => 'ず', 'ぜ' => 'ぜ', 'ぞ' => 'ぞ', 'だ' => 'だ', 'ぢ' => 'ぢ', 'づ' => 'づ', 'で' => 'で', 'ど' => 'ど', 'ば' => 'ば', 'ぱ' => 'ぱ', 'び' => 'び', 'ぴ' => 'ぴ', 'ぶ' => 'ぶ', 'ぷ' => 'ぷ', 'べ' => 'べ', 'ぺ' => 'ぺ', 'ぼ' => 'ぼ', 'ぽ' => 'ぽ', 'ゔ' => 'ゔ', 'ゞ' => 'ゞ', 'ガ' => 'ガ', 'ギ' => 'ギ', 'グ' => 'グ', 'ゲ' => 'ゲ', 'ゴ' => 'ゴ', 'ザ' => 'ザ', 'ジ' => 'ジ', 'ズ' => 'ズ', 'ゼ' => 'ゼ', 'ゾ' => 'ゾ', 'ダ' => 'ダ', 'ヂ' => 'ヂ', 'ヅ' => 'ヅ', 'デ' => 'デ', 'ド' => 'ド', 'バ' => 'バ', 'パ' => 'パ', 'ビ' => 'ビ', 'ピ' => 'ピ', 'ブ' => 'ブ', 'プ' => 'プ', 'ベ' => 'ベ', 'ペ' => 'ペ', 'ボ' => 'ボ', 'ポ' => 'ポ', 'ヴ' => 'ヴ', 'ヷ' => 'ヷ', 'ヸ' => 'ヸ', 'ヹ' => 'ヹ', 'ヺ' => 'ヺ', 'ヾ' => 'ヾ', '豈' => '豈', '更' => '更', '車' => '車', '賈' => '賈', '滑' => '滑', '串' => '串', '句' => '句', '龜' => '龜', '龜' => '龜', '契' => '契', '金' => '金', '喇' => '喇', '奈' => '奈', '懶' => '懶', '癩' => '癩', '羅' => '羅', '蘿' => '蘿', '螺' => '螺', '裸' => '裸', '邏' => '邏', '樂' => '樂', '洛' => '洛', '烙' => '烙', '珞' => '珞', '落' => '落', '酪' => '酪', '駱' => '駱', '亂' => '亂', '卵' => '卵', '欄' => '欄', '爛' => '爛', '蘭' => '蘭', '鸞' => '鸞', '嵐' => '嵐', '濫' => '濫', '藍' => '藍', '襤' => '襤', '拉' => '拉', '臘' => '臘', '蠟' => '蠟', '廊' => '廊', '朗' => '朗', '浪' => '浪', '狼' => '狼', '郎' => '郎', '來' => '來', '冷' => '冷', '勞' => '勞', '擄' => '擄', '櫓' => '櫓', '爐' => '爐', '盧' => '盧', '老' => '老', '蘆' => '蘆', '虜' => '虜', '路' => '路', '露' => '露', '魯' => '魯', '鷺' => '鷺', '碌' => '碌', '祿' => '祿', '綠' => '綠', '菉' => '菉', '錄' => '錄', '鹿' => '鹿', '論' => '論', '壟' => '壟', '弄' => '弄', '籠' => '籠', '聾' => '聾', '牢' => '牢', '磊' => '磊', '賂' => '賂', '雷' => '雷', '壘' => '壘', '屢' => '屢', '樓' => '樓', '淚' => '淚', '漏' => '漏', '累' => '累', '縷' => '縷', '陋' => '陋', '勒' => '勒', '肋' => '肋', '凜' => '凜', '凌' => '凌', '稜' => '稜', '綾' => '綾', '菱' => '菱', '陵' => '陵', '讀' => '讀', '拏' => '拏', '樂' => '樂', '諾' => '諾', '丹' => '丹', '寧' => '寧', '怒' => '怒', '率' => '率', '異' => '異', '北' => '北', '磻' => '磻', '便' => '便', '復' => '復', '不' => '不', '泌' => '泌', '數' => '數', '索' => '索', '參' => '參', '塞' => '塞', '省' => '省', '葉' => '葉', '說' => '說', '殺' => '殺', '辰' => '辰', '沈' => '沈', '拾' => '拾', '若' => '若', '掠' => '掠', '略' => '略', '亮' => '亮', '兩' => '兩', '凉' => '凉', '梁' => '梁', '糧' => '糧', '良' => '良', '諒' => '諒', '量' => '量', '勵' => '勵', '呂' => '呂', '女' => '女', '廬' => '廬', '旅' => '旅', '濾' => '濾', '礪' => '礪', '閭' => '閭', '驪' => '驪', '麗' => '麗', '黎' => '黎', '力' => '力', '曆' => '曆', '歷' => '歷', '轢' => '轢', '年' => '年', '憐' => '憐', '戀' => '戀', '撚' => '撚', '漣' => '漣', '煉' => '煉', '璉' => '璉', '秊' => '秊', '練' => '練', '聯' => '聯', '輦' => '輦', '蓮' => '蓮', '連' => '連', '鍊' => '鍊', '列' => '列', '劣' => '劣', '咽' => '咽', '烈' => '烈', '裂' => '裂', '說' => '說', '廉' => '廉', '念' => '念', '捻' => '捻', '殮' => '殮', '簾' => '簾', '獵' => '獵', '令' => '令', '囹' => '囹', '寧' => '寧', '嶺' => '嶺', '怜' => '怜', '玲' => '玲', '瑩' => '瑩', '羚' => '羚', '聆' => '聆', '鈴' => '鈴', '零' => '零', '靈' => '靈', '領' => '領', '例' => '例', '禮' => '禮', '醴' => '醴', '隸' => '隸', '惡' => '惡', '了' => '了', '僚' => '僚', '寮' => '寮', '尿' => '尿', '料' => '料', '樂' => '樂', '燎' => '燎', '療' => '療', '蓼' => '蓼', '遼' => '遼', '龍' => '龍', '暈' => '暈', '阮' => '阮', '劉' => '劉', '杻' => '杻', '柳' => '柳', '流' => '流', '溜' => '溜', '琉' => '琉', '留' => '留', '硫' => '硫', '紐' => '紐', '類' => '類', '六' => '六', '戮' => '戮', '陸' => '陸', '倫' => '倫', '崙' => '崙', '淪' => '淪', '輪' => '輪', '律' => '律', '慄' => '慄', '栗' => '栗', '率' => '率', '隆' => '隆', '利' => '利', '吏' => '吏', '履' => '履', '易' => '易', '李' => '李', '梨' => '梨', '泥' => '泥', '理' => '理', '痢' => '痢', '罹' => '罹', '裏' => '裏', '裡' => '裡', '里' => '里', '離' => '離', '匿' => '匿', '溺' => '溺', '吝' => '吝', '燐' => '燐', '璘' => '璘', '藺' => '藺', '隣' => '隣', '鱗' => '鱗', '麟' => '麟', '林' => '林', '淋' => '淋', '臨' => '臨', '立' => '立', '笠' => '笠', '粒' => '粒', '狀' => '狀', '炙' => '炙', '識' => '識', '什' => '什', '茶' => '茶', '刺' => '刺', '切' => '切', '度' => '度', '拓' => '拓', '糖' => '糖', '宅' => '宅', '洞' => '洞', '暴' => '暴', '輻' => '輻', '行' => '行', '降' => '降', '見' => '見', '廓' => '廓', '兀' => '兀', '嗀' => '嗀', '塚' => '塚', '晴' => '晴', '凞' => '凞', '猪' => '猪', '益' => '益', '礼' => '礼', '神' => '神', '祥' => '祥', '福' => '福', '靖' => '靖', '精' => '精', '羽' => '羽', '蘒' => '蘒', '諸' => '諸', '逸' => '逸', '都' => '都', '飯' => '飯', '飼' => '飼', '館' => '館', '鶴' => '鶴', '郞' => '郞', '隷' => '隷', '侮' => '侮', '僧' => '僧', '免' => '免', '勉' => '勉', '勤' => '勤', '卑' => '卑', '喝' => '喝', '嘆' => '嘆', '器' => '器', '塀' => '塀', '墨' => '墨', '層' => '層', '屮' => '屮', '悔' => '悔', '慨' => '慨', '憎' => '憎', '懲' => '懲', '敏' => '敏', '既' => '既', '暑' => '暑', '梅' => '梅', '海' => '海', '渚' => '渚', '漢' => '漢', '煮' => '煮', '爫' => '爫', '琢' => '琢', '碑' => '碑', '社' => '社', '祉' => '祉', '祈' => '祈', '祐' => '祐', '祖' => '祖', '祝' => '祝', '禍' => '禍', '禎' => '禎', '穀' => '穀', '突' => '突', '節' => '節', '練' => '練', '縉' => '縉', '繁' => '繁', '署' => '署', '者' => '者', '臭' => '臭', '艹' => '艹', '艹' => '艹', '著' => '著', '褐' => '褐', '視' => '視', '謁' => '謁', '謹' => '謹', '賓' => '賓', '贈' => '贈', '辶' => '辶', '逸' => '逸', '難' => '難', '響' => '響', '頻' => '頻', '恵' => '恵', '𤋮' => '𤋮', '舘' => '舘', '並' => '並', '况' => '况', '全' => '全', '侀' => '侀', '充' => '充', '冀' => '冀', '勇' => '勇', '勺' => '勺', '喝' => '喝', '啕' => '啕', '喙' => '喙', '嗢' => '嗢', '塚' => '塚', '墳' => '墳', '奄' => '奄', '奔' => '奔', '婢' => '婢', '嬨' => '嬨', '廒' => '廒', '廙' => '廙', '彩' => '彩', '徭' => '徭', '惘' => '惘', '慎' => '慎', '愈' => '愈', '憎' => '憎', '慠' => '慠', '懲' => '懲', '戴' => '戴', '揄' => '揄', '搜' => '搜', '摒' => '摒', '敖' => '敖', '晴' => '晴', '朗' => '朗', '望' => '望', '杖' => '杖', '歹' => '歹', '殺' => '殺', '流' => '流', '滛' => '滛', '滋' => '滋', '漢' => '漢', '瀞' => '瀞', '煮' => '煮', '瞧' => '瞧', '爵' => '爵', '犯' => '犯', '猪' => '猪', '瑱' => '瑱', '甆' => '甆', '画' => '画', '瘝' => '瘝', '瘟' => '瘟', '益' => '益', '盛' => '盛', '直' => '直', '睊' => '睊', '着' => '着', '磌' => '磌', '窱' => '窱', '節' => '節', '类' => '类', '絛' => '絛', '練' => '練', '缾' => '缾', '者' => '者', '荒' => '荒', '華' => '華', '蝹' => '蝹', '襁' => '襁', '覆' => '覆', '視' => '視', '調' => '調', '諸' => '諸', '請' => '請', '謁' => '謁', '諾' => '諾', '諭' => '諭', '謹' => '謹', '變' => '變', '贈' => '贈', '輸' => '輸', '遲' => '遲', '醙' => '醙', '鉶' => '鉶', '陼' => '陼', '難' => '難', '靖' => '靖', '韛' => '韛', '響' => '響', '頋' => '頋', '頻' => '頻', '鬒' => '鬒', '龜' => '龜', '𢡊' => '𢡊', '𢡄' => '𢡄', '𣏕' => '𣏕', '㮝' => '㮝', '䀘' => '䀘', '䀹' => '䀹', '𥉉' => '𥉉', '𥳐' => '𥳐', '𧻓' => '𧻓', '齃' => '齃', '龎' => '龎', 'יִ' => 'יִ', 'ײַ' => 'ײַ', 'שׁ' => 'שׁ', 'שׂ' => 'שׂ', 'שּׁ' => 'שּׁ', 'שּׂ' => 'שּׂ', 'אַ' => 'אַ', 'אָ' => 'אָ', 'אּ' => 'אּ', 'בּ' => 'בּ', 'גּ' => 'גּ', 'דּ' => 'דּ', 'הּ' => 'הּ', 'וּ' => 'וּ', 'זּ' => 'זּ', 'טּ' => 'טּ', 'יּ' => 'יּ', 'ךּ' => 'ךּ', 'כּ' => 'כּ', 'לּ' => 'לּ', 'מּ' => 'מּ', 'נּ' => 'נּ', 'סּ' => 'סּ', 'ףּ' => 'ףּ', 'פּ' => 'פּ', 'צּ' => 'צּ', 'קּ' => 'קּ', 'רּ' => 'רּ', 'שּ' => 'שּ', 'תּ' => 'תּ', 'וֹ' => 'וֹ', 'בֿ' => 'בֿ', 'כֿ' => 'כֿ', 'פֿ' => 'פֿ', '𑂚' => '𑂚', '𑂜' => '𑂜', '𑂫' => '𑂫', '𑄮' => '𑄮', '𑄯' => '𑄯', '𑍋' => '𑍋', '𑍌' => '𑍌', '𑒻' => '𑒻', '𑒼' => '𑒼', '𑒾' => '𑒾', '𑖺' => '𑖺', '𑖻' => '𑖻', '𑤸' => '𑤸', '𝅗𝅥' => '𝅗𝅥', '𝅘𝅥' => '𝅘𝅥', '𝅘𝅥𝅮' => '𝅘𝅥𝅮', '𝅘𝅥𝅯' => '𝅘𝅥𝅯', '𝅘𝅥𝅰' => '𝅘𝅥𝅰', '𝅘𝅥𝅱' => '𝅘𝅥𝅱', '𝅘𝅥𝅲' => '𝅘𝅥𝅲', '𝆹𝅥' => '𝆹𝅥', '𝆺𝅥' => '𝆺𝅥', '𝆹𝅥𝅮' => '𝆹𝅥𝅮', '𝆺𝅥𝅮' => '𝆺𝅥𝅮', '𝆹𝅥𝅯' => '𝆹𝅥𝅯', '𝆺𝅥𝅯' => '𝆺𝅥𝅯', '丽' => '丽', '丸' => '丸', '乁' => '乁', '𠄢' => '𠄢', '你' => '你', '侮' => '侮', '侻' => '侻', '倂' => '倂', '偺' => '偺', '備' => '備', '僧' => '僧', '像' => '像', '㒞' => '㒞', '𠘺' => '𠘺', '免' => '免', '兔' => '兔', '兤' => '兤', '具' => '具', '𠔜' => '𠔜', '㒹' => '㒹', '內' => '內', '再' => '再', '𠕋' => '𠕋', '冗' => '冗', '冤' => '冤', '仌' => '仌', '冬' => '冬', '况' => '况', '𩇟' => '𩇟', '凵' => '凵', '刃' => '刃', '㓟' => '㓟', '刻' => '刻', '剆' => '剆', '割' => '割', '剷' => '剷', '㔕' => '㔕', '勇' => '勇', '勉' => '勉', '勤' => '勤', '勺' => '勺', '包' => '包', '匆' => '匆', '北' => '北', '卉' => '卉', '卑' => '卑', '博' => '博', '即' => '即', '卽' => '卽', '卿' => '卿', '卿' => '卿', '卿' => '卿', '𠨬' => '𠨬', '灰' => '灰', '及' => '及', '叟' => '叟', '𠭣' => '𠭣', '叫' => '叫', '叱' => '叱', '吆' => '吆', '咞' => '咞', '吸' => '吸', '呈' => '呈', '周' => '周', '咢' => '咢', '哶' => '哶', '唐' => '唐', '啓' => '啓', '啣' => '啣', '善' => '善', '善' => '善', '喙' => '喙', '喫' => '喫', '喳' => '喳', '嗂' => '嗂', '圖' => '圖', '嘆' => '嘆', '圗' => '圗', '噑' => '噑', '噴' => '噴', '切' => '切', '壮' => '壮', '城' => '城', '埴' => '埴', '堍' => '堍', '型' => '型', '堲' => '堲', '報' => '報', '墬' => '墬', '𡓤' => '𡓤', '売' => '売', '壷' => '壷', '夆' => '夆', '多' => '多', '夢' => '夢', '奢' => '奢', '𡚨' => '𡚨', '𡛪' => '𡛪', '姬' => '姬', '娛' => '娛', '娧' => '娧', '姘' => '姘', '婦' => '婦', '㛮' => '㛮', '㛼' => '㛼', '嬈' => '嬈', '嬾' => '嬾', '嬾' => '嬾', '𡧈' => '𡧈', '寃' => '寃', '寘' => '寘', '寧' => '寧', '寳' => '寳', '𡬘' => '𡬘', '寿' => '寿', '将' => '将', '当' => '当', '尢' => '尢', '㞁' => '㞁', '屠' => '屠', '屮' => '屮', '峀' => '峀', '岍' => '岍', '𡷤' => '𡷤', '嵃' => '嵃', '𡷦' => '𡷦', '嵮' => '嵮', '嵫' => '嵫', '嵼' => '嵼', '巡' => '巡', '巢' => '巢', '㠯' => '㠯', '巽' => '巽', '帨' => '帨', '帽' => '帽', '幩' => '幩', '㡢' => '㡢', '𢆃' => '𢆃', '㡼' => '㡼', '庰' => '庰', '庳' => '庳', '庶' => '庶', '廊' => '廊', '𪎒' => '𪎒', '廾' => '廾', '𢌱' => '𢌱', '𢌱' => '𢌱', '舁' => '舁', '弢' => '弢', '弢' => '弢', '㣇' => '㣇', '𣊸' => '𣊸', '𦇚' => '𦇚', '形' => '形', '彫' => '彫', '㣣' => '㣣', '徚' => '徚', '忍' => '忍', '志' => '志', '忹' => '忹', '悁' => '悁', '㤺' => '㤺', '㤜' => '㤜', '悔' => '悔', '𢛔' => '𢛔', '惇' => '惇', '慈' => '慈', '慌' => '慌', '慎' => '慎', '慌' => '慌', '慺' => '慺', '憎' => '憎', '憲' => '憲', '憤' => '憤', '憯' => '憯', '懞' => '懞', '懲' => '懲', '懶' => '懶', '成' => '成', '戛' => '戛', '扝' => '扝', '抱' => '抱', '拔' => '拔', '捐' => '捐', '𢬌' => '𢬌', '挽' => '挽', '拼' => '拼', '捨' => '捨', '掃' => '掃', '揤' => '揤', '𢯱' => '𢯱', '搢' => '搢', '揅' => '揅', '掩' => '掩', '㨮' => '㨮', '摩' => '摩', '摾' => '摾', '撝' => '撝', '摷' => '摷', '㩬' => '㩬', '敏' => '敏', '敬' => '敬', '𣀊' => '𣀊', '旣' => '旣', '書' => '書', '晉' => '晉', '㬙' => '㬙', '暑' => '暑', '㬈' => '㬈', '㫤' => '㫤', '冒' => '冒', '冕' => '冕', '最' => '最', '暜' => '暜', '肭' => '肭', '䏙' => '䏙', '朗' => '朗', '望' => '望', '朡' => '朡', '杞' => '杞', '杓' => '杓', '𣏃' => '𣏃', '㭉' => '㭉', '柺' => '柺', '枅' => '枅', '桒' => '桒', '梅' => '梅', '𣑭' => '𣑭', '梎' => '梎', '栟' => '栟', '椔' => '椔', '㮝' => '㮝', '楂' => '楂', '榣' => '榣', '槪' => '槪', '檨' => '檨', '𣚣' => '𣚣', '櫛' => '櫛', '㰘' => '㰘', '次' => '次', '𣢧' => '𣢧', '歔' => '歔', '㱎' => '㱎', '歲' => '歲', '殟' => '殟', '殺' => '殺', '殻' => '殻', '𣪍' => '𣪍', '𡴋' => '𡴋', '𣫺' => '𣫺', '汎' => '汎', '𣲼' => '𣲼', '沿' => '沿', '泍' => '泍', '汧' => '汧', '洖' => '洖', '派' => '派', '海' => '海', '流' => '流', '浩' => '浩', '浸' => '浸', '涅' => '涅', '𣴞' => '𣴞', '洴' => '洴', '港' => '港', '湮' => '湮', '㴳' => '㴳', '滋' => '滋', '滇' => '滇', '𣻑' => '𣻑', '淹' => '淹', '潮' => '潮', '𣽞' => '𣽞', '𣾎' => '𣾎', '濆' => '濆', '瀹' => '瀹', '瀞' => '瀞', '瀛' => '瀛', '㶖' => '㶖', '灊' => '灊', '災' => '災', '灷' => '灷', '炭' => '炭', '𠔥' => '𠔥', '煅' => '煅', '𤉣' => '𤉣', '熜' => '熜', '𤎫' => '𤎫', '爨' => '爨', '爵' => '爵', '牐' => '牐', '𤘈' => '𤘈', '犀' => '犀', '犕' => '犕', '𤜵' => '𤜵', '𤠔' => '𤠔', '獺' => '獺', '王' => '王', '㺬' => '㺬', '玥' => '玥', '㺸' => '㺸', '㺸' => '㺸', '瑇' => '瑇', '瑜' => '瑜', '瑱' => '瑱', '璅' => '璅', '瓊' => '瓊', '㼛' => '㼛', '甤' => '甤', '𤰶' => '𤰶', '甾' => '甾', '𤲒' => '𤲒', '異' => '異', '𢆟' => '𢆟', '瘐' => '瘐', '𤾡' => '𤾡', '𤾸' => '𤾸', '𥁄' => '𥁄', '㿼' => '㿼', '䀈' => '䀈', '直' => '直', '𥃳' => '𥃳', '𥃲' => '𥃲', '𥄙' => '𥄙', '𥄳' => '𥄳', '眞' => '眞', '真' => '真', '真' => '真', '睊' => '睊', '䀹' => '䀹', '瞋' => '瞋', '䁆' => '䁆', '䂖' => '䂖', '𥐝' => '𥐝', '硎' => '硎', '碌' => '碌', '磌' => '磌', '䃣' => '䃣', '𥘦' => '𥘦', '祖' => '祖', '𥚚' => '𥚚', '𥛅' => '𥛅', '福' => '福', '秫' => '秫', '䄯' => '䄯', '穀' => '穀', '穊' => '穊', '穏' => '穏', '𥥼' => '𥥼', '𥪧' => '𥪧', '𥪧' => '𥪧', '竮' => '竮', '䈂' => '䈂', '𥮫' => '𥮫', '篆' => '篆', '築' => '築', '䈧' => '䈧', '𥲀' => '𥲀', '糒' => '糒', '䊠' => '䊠', '糨' => '糨', '糣' => '糣', '紀' => '紀', '𥾆' => '𥾆', '絣' => '絣', '䌁' => '䌁', '緇' => '緇', '縂' => '縂', '繅' => '繅', '䌴' => '䌴', '𦈨' => '𦈨', '𦉇' => '𦉇', '䍙' => '䍙', '𦋙' => '𦋙', '罺' => '罺', '𦌾' => '𦌾', '羕' => '羕', '翺' => '翺', '者' => '者', '𦓚' => '𦓚', '𦔣' => '𦔣', '聠' => '聠', '𦖨' => '𦖨', '聰' => '聰', '𣍟' => '𣍟', '䏕' => '䏕', '育' => '育', '脃' => '脃', '䐋' => '䐋', '脾' => '脾', '媵' => '媵', '𦞧' => '𦞧', '𦞵' => '𦞵', '𣎓' => '𣎓', '𣎜' => '𣎜', '舁' => '舁', '舄' => '舄', '辞' => '辞', '䑫' => '䑫', '芑' => '芑', '芋' => '芋', '芝' => '芝', '劳' => '劳', '花' => '花', '芳' => '芳', '芽' => '芽', '苦' => '苦', '𦬼' => '𦬼', '若' => '若', '茝' => '茝', '荣' => '荣', '莭' => '莭', '茣' => '茣', '莽' => '莽', '菧' => '菧', '著' => '著', '荓' => '荓', '菊' => '菊', '菌' => '菌', '菜' => '菜', '𦰶' => '𦰶', '𦵫' => '𦵫', '𦳕' => '𦳕', '䔫' => '䔫', '蓱' => '蓱', '蓳' => '蓳', '蔖' => '蔖', '𧏊' => '𧏊', '蕤' => '蕤', '𦼬' => '𦼬', '䕝' => '䕝', '䕡' => '䕡', '𦾱' => '𦾱', '𧃒' => '𧃒', '䕫' => '䕫', '虐' => '虐', '虜' => '虜', '虧' => '虧', '虩' => '虩', '蚩' => '蚩', '蚈' => '蚈', '蜎' => '蜎', '蛢' => '蛢', '蝹' => '蝹', '蜨' => '蜨', '蝫' => '蝫', '螆' => '螆', '䗗' => '䗗', '蟡' => '蟡', '蠁' => '蠁', '䗹' => '䗹', '衠' => '衠', '衣' => '衣', '𧙧' => '𧙧', '裗' => '裗', '裞' => '裞', '䘵' => '䘵', '裺' => '裺', '㒻' => '㒻', '𧢮' => '𧢮', '𧥦' => '𧥦', '䚾' => '䚾', '䛇' => '䛇', '誠' => '誠', '諭' => '諭', '變' => '變', '豕' => '豕', '𧲨' => '𧲨', '貫' => '貫', '賁' => '賁', '贛' => '贛', '起' => '起', '𧼯' => '𧼯', '𠠄' => '𠠄', '跋' => '跋', '趼' => '趼', '跰' => '跰', '𠣞' => '𠣞', '軔' => '軔', '輸' => '輸', '𨗒' => '𨗒', '𨗭' => '𨗭', '邔' => '邔', '郱' => '郱', '鄑' => '鄑', '𨜮' => '𨜮', '鄛' => '鄛', '鈸' => '鈸', '鋗' => '鋗', '鋘' => '鋘', '鉼' => '鉼', '鏹' => '鏹', '鐕' => '鐕', '𨯺' => '𨯺', '開' => '開', '䦕' => '䦕', '閷' => '閷', '𨵷' => '𨵷', '䧦' => '䧦', '雃' => '雃', '嶲' => '嶲', '霣' => '霣', '𩅅' => '𩅅', '𩈚' => '𩈚', '䩮' => '䩮', '䩶' => '䩶', '韠' => '韠', '𩐊' => '𩐊', '䪲' => '䪲', '𩒖' => '𩒖', '頋' => '頋', '頋' => '頋', '頩' => '頩', '𩖶' => '𩖶', '飢' => '飢', '䬳' => '䬳', '餩' => '餩', '馧' => '馧', '駂' => '駂', '駾' => '駾', '䯎' => '䯎', '𩬰' => '𩬰', '鬒' => '鬒', '鱀' => '鱀', '鳽' => '鳽', '䳎' => '䳎', '䳭' => '䳭', '鵧' => '鵧', '𪃎' => '𪃎', '䳸' => '䳸', '𪄅' => '𪄅', '𪈎' => '𪈎', '𪊑' => '𪊑', '麻' => '麻', '䵖' => '䵖', '黹' => '黹', '黾' => '黾', '鼅' => '鼅', '鼏' => '鼏', '鼖' => '鼖', '鼻' => '鼻', '𪘀' => '𪘀'); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php deleted file mode 100644 index ea10da165..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php +++ /dev/null @@ -1,5 +0,0 @@ - 230, '́' => 230, '̂' => 230, '̃' => 230, '̄' => 230, '̅' => 230, '̆' => 230, '̇' => 230, '̈' => 230, '̉' => 230, '̊' => 230, '̋' => 230, '̌' => 230, '̍' => 230, '̎' => 230, '̏' => 230, '̐' => 230, '̑' => 230, '̒' => 230, '̓' => 230, '̔' => 230, '̕' => 232, '̖' => 220, '̗' => 220, '̘' => 220, '̙' => 220, '̚' => 232, '̛' => 216, '̜' => 220, '̝' => 220, '̞' => 220, '̟' => 220, '̠' => 220, '̡' => 202, '̢' => 202, '̣' => 220, '̤' => 220, '̥' => 220, '̦' => 220, '̧' => 202, '̨' => 202, '̩' => 220, '̪' => 220, '̫' => 220, '̬' => 220, '̭' => 220, '̮' => 220, '̯' => 220, '̰' => 220, '̱' => 220, '̲' => 220, '̳' => 220, '̴' => 1, '̵' => 1, '̶' => 1, '̷' => 1, '̸' => 1, '̹' => 220, '̺' => 220, '̻' => 220, '̼' => 220, '̽' => 230, '̾' => 230, '̿' => 230, '̀' => 230, '́' => 230, '͂' => 230, '̓' => 230, '̈́' => 230, 'ͅ' => 240, '͆' => 230, '͇' => 220, '͈' => 220, '͉' => 220, '͊' => 230, '͋' => 230, '͌' => 230, '͍' => 220, '͎' => 220, '͐' => 230, '͑' => 230, '͒' => 230, '͓' => 220, '͔' => 220, '͕' => 220, '͖' => 220, '͗' => 230, '͘' => 232, '͙' => 220, '͚' => 220, '͛' => 230, '͜' => 233, '͝' => 234, '͞' => 234, '͟' => 233, '͠' => 234, '͡' => 234, '͢' => 233, 'ͣ' => 230, 'ͤ' => 230, 'ͥ' => 230, 'ͦ' => 230, 'ͧ' => 230, 'ͨ' => 230, 'ͩ' => 230, 'ͪ' => 230, 'ͫ' => 230, 'ͬ' => 230, 'ͭ' => 230, 'ͮ' => 230, 'ͯ' => 230, '҃' => 230, '҄' => 230, '҅' => 230, '҆' => 230, '҇' => 230, '֑' => 220, '֒' => 230, '֓' => 230, '֔' => 230, '֕' => 230, '֖' => 220, '֗' => 230, '֘' => 230, '֙' => 230, '֚' => 222, '֛' => 220, '֜' => 230, '֝' => 230, '֞' => 230, '֟' => 230, '֠' => 230, '֡' => 230, '֢' => 220, '֣' => 220, '֤' => 220, '֥' => 220, '֦' => 220, '֧' => 220, '֨' => 230, '֩' => 230, '֪' => 220, '֫' => 230, '֬' => 230, '֭' => 222, '֮' => 228, '֯' => 230, 'ְ' => 10, 'ֱ' => 11, 'ֲ' => 12, 'ֳ' => 13, 'ִ' => 14, 'ֵ' => 15, 'ֶ' => 16, 'ַ' => 17, 'ָ' => 18, 'ֹ' => 19, 'ֺ' => 19, 'ֻ' => 20, 'ּ' => 21, 'ֽ' => 22, 'ֿ' => 23, 'ׁ' => 24, 'ׂ' => 25, 'ׄ' => 230, 'ׅ' => 220, 'ׇ' => 18, 'ؐ' => 230, 'ؑ' => 230, 'ؒ' => 230, 'ؓ' => 230, 'ؔ' => 230, 'ؕ' => 230, 'ؖ' => 230, 'ؗ' => 230, 'ؘ' => 30, 'ؙ' => 31, 'ؚ' => 32, 'ً' => 27, 'ٌ' => 28, 'ٍ' => 29, 'َ' => 30, 'ُ' => 31, 'ِ' => 32, 'ّ' => 33, 'ْ' => 34, 'ٓ' => 230, 'ٔ' => 230, 'ٕ' => 220, 'ٖ' => 220, 'ٗ' => 230, '٘' => 230, 'ٙ' => 230, 'ٚ' => 230, 'ٛ' => 230, 'ٜ' => 220, 'ٝ' => 230, 'ٞ' => 230, 'ٟ' => 220, 'ٰ' => 35, 'ۖ' => 230, 'ۗ' => 230, 'ۘ' => 230, 'ۙ' => 230, 'ۚ' => 230, 'ۛ' => 230, 'ۜ' => 230, '۟' => 230, '۠' => 230, 'ۡ' => 230, 'ۢ' => 230, 'ۣ' => 220, 'ۤ' => 230, 'ۧ' => 230, 'ۨ' => 230, '۪' => 220, '۫' => 230, '۬' => 230, 'ۭ' => 220, 'ܑ' => 36, 'ܰ' => 230, 'ܱ' => 220, 'ܲ' => 230, 'ܳ' => 230, 'ܴ' => 220, 'ܵ' => 230, 'ܶ' => 230, 'ܷ' => 220, 'ܸ' => 220, 'ܹ' => 220, 'ܺ' => 230, 'ܻ' => 220, 'ܼ' => 220, 'ܽ' => 230, 'ܾ' => 220, 'ܿ' => 230, '݀' => 230, '݁' => 230, '݂' => 220, '݃' => 230, '݄' => 220, '݅' => 230, '݆' => 220, '݇' => 230, '݈' => 220, '݉' => 230, '݊' => 230, '߫' => 230, '߬' => 230, '߭' => 230, '߮' => 230, '߯' => 230, '߰' => 230, '߱' => 230, '߲' => 220, '߳' => 230, '߽' => 220, 'ࠖ' => 230, 'ࠗ' => 230, '࠘' => 230, '࠙' => 230, 'ࠛ' => 230, 'ࠜ' => 230, 'ࠝ' => 230, 'ࠞ' => 230, 'ࠟ' => 230, 'ࠠ' => 230, 'ࠡ' => 230, 'ࠢ' => 230, 'ࠣ' => 230, 'ࠥ' => 230, 'ࠦ' => 230, 'ࠧ' => 230, 'ࠩ' => 230, 'ࠪ' => 230, 'ࠫ' => 230, 'ࠬ' => 230, '࠭' => 230, '࡙' => 220, '࡚' => 220, '࡛' => 220, '࣓' => 220, 'ࣔ' => 230, 'ࣕ' => 230, 'ࣖ' => 230, 'ࣗ' => 230, 'ࣘ' => 230, 'ࣙ' => 230, 'ࣚ' => 230, 'ࣛ' => 230, 'ࣜ' => 230, 'ࣝ' => 230, 'ࣞ' => 230, 'ࣟ' => 230, '࣠' => 230, '࣡' => 230, 'ࣣ' => 220, 'ࣤ' => 230, 'ࣥ' => 230, 'ࣦ' => 220, 'ࣧ' => 230, 'ࣨ' => 230, 'ࣩ' => 220, '࣪' => 230, '࣫' => 230, '࣬' => 230, '࣭' => 220, '࣮' => 220, '࣯' => 220, 'ࣰ' => 27, 'ࣱ' => 28, 'ࣲ' => 29, 'ࣳ' => 230, 'ࣴ' => 230, 'ࣵ' => 230, 'ࣶ' => 220, 'ࣷ' => 230, 'ࣸ' => 230, 'ࣹ' => 220, 'ࣺ' => 220, 'ࣻ' => 230, 'ࣼ' => 230, 'ࣽ' => 230, 'ࣾ' => 230, 'ࣿ' => 230, '़' => 7, '्' => 9, '॑' => 230, '॒' => 220, '॓' => 230, '॔' => 230, '়' => 7, '্' => 9, '৾' => 230, '਼' => 7, '੍' => 9, '઼' => 7, '્' => 9, '଼' => 7, '୍' => 9, '்' => 9, '్' => 9, 'ౕ' => 84, 'ౖ' => 91, '಼' => 7, '್' => 9, '഻' => 9, '഼' => 9, '്' => 9, '්' => 9, 'ุ' => 103, 'ู' => 103, 'ฺ' => 9, '่' => 107, '้' => 107, '๊' => 107, '๋' => 107, 'ຸ' => 118, 'ູ' => 118, '຺' => 9, '່' => 122, '້' => 122, '໊' => 122, '໋' => 122, '༘' => 220, '༙' => 220, '༵' => 220, '༷' => 220, '༹' => 216, 'ཱ' => 129, 'ི' => 130, 'ུ' => 132, 'ེ' => 130, 'ཻ' => 130, 'ོ' => 130, 'ཽ' => 130, 'ྀ' => 130, 'ྂ' => 230, 'ྃ' => 230, '྄' => 9, '྆' => 230, '྇' => 230, '࿆' => 220, '့' => 7, '္' => 9, '်' => 9, 'ႍ' => 220, '፝' => 230, '፞' => 230, '፟' => 230, '᜔' => 9, '᜴' => 9, '្' => 9, '៝' => 230, 'ᢩ' => 228, '᤹' => 222, '᤺' => 230, '᤻' => 220, 'ᨗ' => 230, 'ᨘ' => 220, '᩠' => 9, '᩵' => 230, '᩶' => 230, '᩷' => 230, '᩸' => 230, '᩹' => 230, '᩺' => 230, '᩻' => 230, '᩼' => 230, '᩿' => 220, '᪰' => 230, '᪱' => 230, '᪲' => 230, '᪳' => 230, '᪴' => 230, '᪵' => 220, '᪶' => 220, '᪷' => 220, '᪸' => 220, '᪹' => 220, '᪺' => 220, '᪻' => 230, '᪼' => 230, '᪽' => 220, 'ᪿ' => 220, 'ᫀ' => 220, '᬴' => 7, '᭄' => 9, '᭫' => 230, '᭬' => 220, '᭭' => 230, '᭮' => 230, '᭯' => 230, '᭰' => 230, '᭱' => 230, '᭲' => 230, '᭳' => 230, '᮪' => 9, '᮫' => 9, '᯦' => 7, '᯲' => 9, '᯳' => 9, '᰷' => 7, '᳐' => 230, '᳑' => 230, '᳒' => 230, '᳔' => 1, '᳕' => 220, '᳖' => 220, '᳗' => 220, '᳘' => 220, '᳙' => 220, '᳚' => 230, '᳛' => 230, '᳜' => 220, '᳝' => 220, '᳞' => 220, '᳟' => 220, '᳠' => 230, '᳢' => 1, '᳣' => 1, '᳤' => 1, '᳥' => 1, '᳦' => 1, '᳧' => 1, '᳨' => 1, '᳭' => 220, '᳴' => 230, '᳸' => 230, '᳹' => 230, '᷀' => 230, '᷁' => 230, '᷂' => 220, '᷃' => 230, '᷄' => 230, '᷅' => 230, '᷆' => 230, '᷇' => 230, '᷈' => 230, '᷉' => 230, '᷊' => 220, '᷋' => 230, '᷌' => 230, '᷍' => 234, '᷎' => 214, '᷏' => 220, '᷐' => 202, '᷑' => 230, '᷒' => 230, 'ᷓ' => 230, 'ᷔ' => 230, 'ᷕ' => 230, 'ᷖ' => 230, 'ᷗ' => 230, 'ᷘ' => 230, 'ᷙ' => 230, 'ᷚ' => 230, 'ᷛ' => 230, 'ᷜ' => 230, 'ᷝ' => 230, 'ᷞ' => 230, 'ᷟ' => 230, 'ᷠ' => 230, 'ᷡ' => 230, 'ᷢ' => 230, 'ᷣ' => 230, 'ᷤ' => 230, 'ᷥ' => 230, 'ᷦ' => 230, 'ᷧ' => 230, 'ᷨ' => 230, 'ᷩ' => 230, 'ᷪ' => 230, 'ᷫ' => 230, 'ᷬ' => 230, 'ᷭ' => 230, 'ᷮ' => 230, 'ᷯ' => 230, 'ᷰ' => 230, 'ᷱ' => 230, 'ᷲ' => 230, 'ᷳ' => 230, 'ᷴ' => 230, '᷵' => 230, '᷶' => 232, '᷷' => 228, '᷸' => 228, '᷹' => 220, '᷻' => 230, '᷼' => 233, '᷽' => 220, '᷾' => 230, '᷿' => 220, '⃐' => 230, '⃑' => 230, '⃒' => 1, '⃓' => 1, '⃔' => 230, '⃕' => 230, '⃖' => 230, '⃗' => 230, '⃘' => 1, '⃙' => 1, '⃚' => 1, '⃛' => 230, '⃜' => 230, '⃡' => 230, '⃥' => 1, '⃦' => 1, '⃧' => 230, '⃨' => 220, '⃩' => 230, '⃪' => 1, '⃫' => 1, '⃬' => 220, '⃭' => 220, '⃮' => 220, '⃯' => 220, '⃰' => 230, '⳯' => 230, '⳰' => 230, '⳱' => 230, '⵿' => 9, 'ⷠ' => 230, 'ⷡ' => 230, 'ⷢ' => 230, 'ⷣ' => 230, 'ⷤ' => 230, 'ⷥ' => 230, 'ⷦ' => 230, 'ⷧ' => 230, 'ⷨ' => 230, 'ⷩ' => 230, 'ⷪ' => 230, 'ⷫ' => 230, 'ⷬ' => 230, 'ⷭ' => 230, 'ⷮ' => 230, 'ⷯ' => 230, 'ⷰ' => 230, 'ⷱ' => 230, 'ⷲ' => 230, 'ⷳ' => 230, 'ⷴ' => 230, 'ⷵ' => 230, 'ⷶ' => 230, 'ⷷ' => 230, 'ⷸ' => 230, 'ⷹ' => 230, 'ⷺ' => 230, 'ⷻ' => 230, 'ⷼ' => 230, 'ⷽ' => 230, 'ⷾ' => 230, 'ⷿ' => 230, '〪' => 218, '〫' => 228, '〬' => 232, '〭' => 222, '〮' => 224, '〯' => 224, '゙' => 8, '゚' => 8, '꙯' => 230, 'ꙴ' => 230, 'ꙵ' => 230, 'ꙶ' => 230, 'ꙷ' => 230, 'ꙸ' => 230, 'ꙹ' => 230, 'ꙺ' => 230, 'ꙻ' => 230, '꙼' => 230, '꙽' => 230, 'ꚞ' => 230, 'ꚟ' => 230, '꛰' => 230, '꛱' => 230, '꠆' => 9, '꠬' => 9, '꣄' => 9, '꣠' => 230, '꣡' => 230, '꣢' => 230, '꣣' => 230, '꣤' => 230, '꣥' => 230, '꣦' => 230, '꣧' => 230, '꣨' => 230, '꣩' => 230, '꣪' => 230, '꣫' => 230, '꣬' => 230, '꣭' => 230, '꣮' => 230, '꣯' => 230, '꣰' => 230, '꣱' => 230, '꤫' => 220, '꤬' => 220, '꤭' => 220, '꥓' => 9, '꦳' => 7, '꧀' => 9, 'ꪰ' => 230, 'ꪲ' => 230, 'ꪳ' => 230, 'ꪴ' => 220, 'ꪷ' => 230, 'ꪸ' => 230, 'ꪾ' => 230, '꪿' => 230, '꫁' => 230, '꫶' => 9, '꯭' => 9, 'ﬞ' => 26, '︠' => 230, '︡' => 230, '︢' => 230, '︣' => 230, '︤' => 230, '︥' => 230, '︦' => 230, '︧' => 220, '︨' => 220, '︩' => 220, '︪' => 220, '︫' => 220, '︬' => 220, '︭' => 220, '︮' => 230, '︯' => 230, '𐇽' => 220, '𐋠' => 220, '𐍶' => 230, '𐍷' => 230, '𐍸' => 230, '𐍹' => 230, '𐍺' => 230, '𐨍' => 220, '𐨏' => 230, '𐨸' => 230, '𐨹' => 1, '𐨺' => 220, '𐨿' => 9, '𐫥' => 230, '𐫦' => 220, '𐴤' => 230, '𐴥' => 230, '𐴦' => 230, '𐴧' => 230, '𐺫' => 230, '𐺬' => 230, '𐽆' => 220, '𐽇' => 220, '𐽈' => 230, '𐽉' => 230, '𐽊' => 230, '𐽋' => 220, '𐽌' => 230, '𐽍' => 220, '𐽎' => 220, '𐽏' => 220, '𐽐' => 220, '𑁆' => 9, '𑁿' => 9, '𑂹' => 9, '𑂺' => 7, '𑄀' => 230, '𑄁' => 230, '𑄂' => 230, '𑄳' => 9, '𑄴' => 9, '𑅳' => 7, '𑇀' => 9, '𑇊' => 7, '𑈵' => 9, '𑈶' => 7, '𑋩' => 7, '𑋪' => 9, '𑌻' => 7, '𑌼' => 7, '𑍍' => 9, '𑍦' => 230, '𑍧' => 230, '𑍨' => 230, '𑍩' => 230, '𑍪' => 230, '𑍫' => 230, '𑍬' => 230, '𑍰' => 230, '𑍱' => 230, '𑍲' => 230, '𑍳' => 230, '𑍴' => 230, '𑑂' => 9, '𑑆' => 7, '𑑞' => 230, '𑓂' => 9, '𑓃' => 7, '𑖿' => 9, '𑗀' => 7, '𑘿' => 9, '𑚶' => 9, '𑚷' => 7, '𑜫' => 9, '𑠹' => 9, '𑠺' => 7, '𑤽' => 9, '𑤾' => 9, '𑥃' => 7, '𑧠' => 9, '𑨴' => 9, '𑩇' => 9, '𑪙' => 9, '𑰿' => 9, '𑵂' => 7, '𑵄' => 9, '𑵅' => 9, '𑶗' => 9, '𖫰' => 1, '𖫱' => 1, '𖫲' => 1, '𖫳' => 1, '𖫴' => 1, '𖬰' => 230, '𖬱' => 230, '𖬲' => 230, '𖬳' => 230, '𖬴' => 230, '𖬵' => 230, '𖬶' => 230, '𖿰' => 6, '𖿱' => 6, '𛲞' => 1, '𝅥' => 216, '𝅦' => 216, '𝅧' => 1, '𝅨' => 1, '𝅩' => 1, '𝅭' => 226, '𝅮' => 216, '𝅯' => 216, '𝅰' => 216, '𝅱' => 216, '𝅲' => 216, '𝅻' => 220, '𝅼' => 220, '𝅽' => 220, '𝅾' => 220, '𝅿' => 220, '𝆀' => 220, '𝆁' => 220, '𝆂' => 220, '𝆅' => 230, '𝆆' => 230, '𝆇' => 230, '𝆈' => 230, '𝆉' => 230, '𝆊' => 220, '𝆋' => 220, '𝆪' => 230, '𝆫' => 230, '𝆬' => 230, '𝆭' => 230, '𝉂' => 230, '𝉃' => 230, '𝉄' => 230, '𞀀' => 230, '𞀁' => 230, '𞀂' => 230, '𞀃' => 230, '𞀄' => 230, '𞀅' => 230, '𞀆' => 230, '𞀈' => 230, '𞀉' => 230, '𞀊' => 230, '𞀋' => 230, '𞀌' => 230, '𞀍' => 230, '𞀎' => 230, '𞀏' => 230, '𞀐' => 230, '𞀑' => 230, '𞀒' => 230, '𞀓' => 230, '𞀔' => 230, '𞀕' => 230, '𞀖' => 230, '𞀗' => 230, '𞀘' => 230, '𞀛' => 230, '𞀜' => 230, '𞀝' => 230, '𞀞' => 230, '𞀟' => 230, '𞀠' => 230, '𞀡' => 230, '𞀣' => 230, '𞀤' => 230, '𞀦' => 230, '𞀧' => 230, '𞀨' => 230, '𞀩' => 230, '𞀪' => 230, '𞄰' => 230, '𞄱' => 230, '𞄲' => 230, '𞄳' => 230, '𞄴' => 230, '𞄵' => 230, '𞄶' => 230, '𞋬' => 230, '𞋭' => 230, '𞋮' => 230, '𞋯' => 230, '𞣐' => 220, '𞣑' => 220, '𞣒' => 220, '𞣓' => 220, '𞣔' => 220, '𞣕' => 220, '𞣖' => 220, '𞥄' => 230, '𞥅' => 230, '𞥆' => 230, '𞥇' => 230, '𞥈' => 230, '𞥉' => 230, '𞥊' => 7); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php deleted file mode 100644 index 15cca6bba..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php +++ /dev/null @@ -1,5 +0,0 @@ - ' ', '¨' => ' ̈', 'ª' => 'a', '¯' => ' ̄', '²' => '2', '³' => '3', '´' => ' ́', 'µ' => 'μ', '¸' => ' ̧', '¹' => '1', 'º' => 'o', '¼' => '1⁄4', '½' => '1⁄2', '¾' => '3⁄4', 'IJ' => 'IJ', 'ij' => 'ij', 'Ŀ' => 'L·', 'ŀ' => 'l·', 'ʼn' => 'ʼn', 'ſ' => 's', 'DŽ' => 'DŽ', 'Dž' => 'Dž', 'dž' => 'dž', 'LJ' => 'LJ', 'Lj' => 'Lj', 'lj' => 'lj', 'NJ' => 'NJ', 'Nj' => 'Nj', 'nj' => 'nj', 'DZ' => 'DZ', 'Dz' => 'Dz', 'dz' => 'dz', 'ʰ' => 'h', 'ʱ' => 'ɦ', 'ʲ' => 'j', 'ʳ' => 'r', 'ʴ' => 'ɹ', 'ʵ' => 'ɻ', 'ʶ' => 'ʁ', 'ʷ' => 'w', 'ʸ' => 'y', '˘' => ' ̆', '˙' => ' ̇', '˚' => ' ̊', '˛' => ' ̨', '˜' => ' ̃', '˝' => ' ̋', 'ˠ' => 'ɣ', 'ˡ' => 'l', 'ˢ' => 's', 'ˣ' => 'x', 'ˤ' => 'ʕ', 'ͺ' => ' ͅ', '΄' => ' ́', '΅' => ' ̈́', 'ϐ' => 'β', 'ϑ' => 'θ', 'ϒ' => 'Υ', 'ϓ' => 'Ύ', 'ϔ' => 'Ϋ', 'ϕ' => 'φ', 'ϖ' => 'π', 'ϰ' => 'κ', 'ϱ' => 'ρ', 'ϲ' => 'ς', 'ϴ' => 'Θ', 'ϵ' => 'ε', 'Ϲ' => 'Σ', 'և' => 'եւ', 'ٵ' => 'اٴ', 'ٶ' => 'وٴ', 'ٷ' => 'ۇٴ', 'ٸ' => 'يٴ', 'ำ' => 'ํา', 'ຳ' => 'ໍາ', 'ໜ' => 'ຫນ', 'ໝ' => 'ຫມ', '༌' => '་', 'ཷ' => 'ྲཱྀ', 'ཹ' => 'ླཱྀ', 'ჼ' => 'ნ', 'ᴬ' => 'A', 'ᴭ' => 'Æ', 'ᴮ' => 'B', 'ᴰ' => 'D', 'ᴱ' => 'E', 'ᴲ' => 'Ǝ', 'ᴳ' => 'G', 'ᴴ' => 'H', 'ᴵ' => 'I', 'ᴶ' => 'J', 'ᴷ' => 'K', 'ᴸ' => 'L', 'ᴹ' => 'M', 'ᴺ' => 'N', 'ᴼ' => 'O', 'ᴽ' => 'Ȣ', 'ᴾ' => 'P', 'ᴿ' => 'R', 'ᵀ' => 'T', 'ᵁ' => 'U', 'ᵂ' => 'W', 'ᵃ' => 'a', 'ᵄ' => 'ɐ', 'ᵅ' => 'ɑ', 'ᵆ' => 'ᴂ', 'ᵇ' => 'b', 'ᵈ' => 'd', 'ᵉ' => 'e', 'ᵊ' => 'ə', 'ᵋ' => 'ɛ', 'ᵌ' => 'ɜ', 'ᵍ' => 'g', 'ᵏ' => 'k', 'ᵐ' => 'm', 'ᵑ' => 'ŋ', 'ᵒ' => 'o', 'ᵓ' => 'ɔ', 'ᵔ' => 'ᴖ', 'ᵕ' => 'ᴗ', 'ᵖ' => 'p', 'ᵗ' => 't', 'ᵘ' => 'u', 'ᵙ' => 'ᴝ', 'ᵚ' => 'ɯ', 'ᵛ' => 'v', 'ᵜ' => 'ᴥ', 'ᵝ' => 'β', 'ᵞ' => 'γ', 'ᵟ' => 'δ', 'ᵠ' => 'φ', 'ᵡ' => 'χ', 'ᵢ' => 'i', 'ᵣ' => 'r', 'ᵤ' => 'u', 'ᵥ' => 'v', 'ᵦ' => 'β', 'ᵧ' => 'γ', 'ᵨ' => 'ρ', 'ᵩ' => 'φ', 'ᵪ' => 'χ', 'ᵸ' => 'н', 'ᶛ' => 'ɒ', 'ᶜ' => 'c', 'ᶝ' => 'ɕ', 'ᶞ' => 'ð', 'ᶟ' => 'ɜ', 'ᶠ' => 'f', 'ᶡ' => 'ɟ', 'ᶢ' => 'ɡ', 'ᶣ' => 'ɥ', 'ᶤ' => 'ɨ', 'ᶥ' => 'ɩ', 'ᶦ' => 'ɪ', 'ᶧ' => 'ᵻ', 'ᶨ' => 'ʝ', 'ᶩ' => 'ɭ', 'ᶪ' => 'ᶅ', 'ᶫ' => 'ʟ', 'ᶬ' => 'ɱ', 'ᶭ' => 'ɰ', 'ᶮ' => 'ɲ', 'ᶯ' => 'ɳ', 'ᶰ' => 'ɴ', 'ᶱ' => 'ɵ', 'ᶲ' => 'ɸ', 'ᶳ' => 'ʂ', 'ᶴ' => 'ʃ', 'ᶵ' => 'ƫ', 'ᶶ' => 'ʉ', 'ᶷ' => 'ʊ', 'ᶸ' => 'ᴜ', 'ᶹ' => 'ʋ', 'ᶺ' => 'ʌ', 'ᶻ' => 'z', 'ᶼ' => 'ʐ', 'ᶽ' => 'ʑ', 'ᶾ' => 'ʒ', 'ᶿ' => 'θ', 'ẚ' => 'aʾ', 'ẛ' => 'ṡ', '᾽' => ' ̓', '᾿' => ' ̓', '῀' => ' ͂', '῁' => ' ̈͂', '῍' => ' ̓̀', '῎' => ' ̓́', '῏' => ' ̓͂', '῝' => ' ̔̀', '῞' => ' ̔́', '῟' => ' ̔͂', '῭' => ' ̈̀', '΅' => ' ̈́', '´' => ' ́', '῾' => ' ̔', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', ' ' => ' ', '‑' => '‐', '‗' => ' ̳', '․' => '.', '‥' => '..', '…' => '...', ' ' => ' ', '″' => '′′', '‴' => '′′′', '‶' => '‵‵', '‷' => '‵‵‵', '‼' => '!!', '‾' => ' ̅', '⁇' => '??', '⁈' => '?!', '⁉' => '!?', '⁗' => '′′′′', ' ' => ' ', '⁰' => '0', 'ⁱ' => 'i', '⁴' => '4', '⁵' => '5', '⁶' => '6', '⁷' => '7', '⁸' => '8', '⁹' => '9', '⁺' => '+', '⁻' => '−', '⁼' => '=', '⁽' => '(', '⁾' => ')', 'ⁿ' => 'n', '₀' => '0', '₁' => '1', '₂' => '2', '₃' => '3', '₄' => '4', '₅' => '5', '₆' => '6', '₇' => '7', '₈' => '8', '₉' => '9', '₊' => '+', '₋' => '−', '₌' => '=', '₍' => '(', '₎' => ')', 'ₐ' => 'a', 'ₑ' => 'e', 'ₒ' => 'o', 'ₓ' => 'x', 'ₔ' => 'ə', 'ₕ' => 'h', 'ₖ' => 'k', 'ₗ' => 'l', 'ₘ' => 'm', 'ₙ' => 'n', 'ₚ' => 'p', 'ₛ' => 's', 'ₜ' => 't', '₨' => 'Rs', '℀' => 'a/c', '℁' => 'a/s', 'ℂ' => 'C', '℃' => '°C', '℅' => 'c/o', '℆' => 'c/u', 'ℇ' => 'Ɛ', '℉' => '°F', 'ℊ' => 'g', 'ℋ' => 'H', 'ℌ' => 'H', 'ℍ' => 'H', 'ℎ' => 'h', 'ℏ' => 'ħ', 'ℐ' => 'I', 'ℑ' => 'I', 'ℒ' => 'L', 'ℓ' => 'l', 'ℕ' => 'N', '№' => 'No', 'ℙ' => 'P', 'ℚ' => 'Q', 'ℛ' => 'R', 'ℜ' => 'R', 'ℝ' => 'R', '℠' => 'SM', '℡' => 'TEL', '™' => 'TM', 'ℤ' => 'Z', 'ℨ' => 'Z', 'ℬ' => 'B', 'ℭ' => 'C', 'ℯ' => 'e', 'ℰ' => 'E', 'ℱ' => 'F', 'ℳ' => 'M', 'ℴ' => 'o', 'ℵ' => 'א', 'ℶ' => 'ב', 'ℷ' => 'ג', 'ℸ' => 'ד', 'ℹ' => 'i', '℻' => 'FAX', 'ℼ' => 'π', 'ℽ' => 'γ', 'ℾ' => 'Γ', 'ℿ' => 'Π', '⅀' => '∑', 'ⅅ' => 'D', 'ⅆ' => 'd', 'ⅇ' => 'e', 'ⅈ' => 'i', 'ⅉ' => 'j', '⅐' => '1⁄7', '⅑' => '1⁄9', '⅒' => '1⁄10', '⅓' => '1⁄3', '⅔' => '2⁄3', '⅕' => '1⁄5', '⅖' => '2⁄5', '⅗' => '3⁄5', '⅘' => '4⁄5', '⅙' => '1⁄6', '⅚' => '5⁄6', '⅛' => '1⁄8', '⅜' => '3⁄8', '⅝' => '5⁄8', '⅞' => '7⁄8', '⅟' => '1⁄', 'Ⅰ' => 'I', 'Ⅱ' => 'II', 'Ⅲ' => 'III', 'Ⅳ' => 'IV', 'Ⅴ' => 'V', 'Ⅵ' => 'VI', 'Ⅶ' => 'VII', 'Ⅷ' => 'VIII', 'Ⅸ' => 'IX', 'Ⅹ' => 'X', 'Ⅺ' => 'XI', 'Ⅻ' => 'XII', 'Ⅼ' => 'L', 'Ⅽ' => 'C', 'Ⅾ' => 'D', 'Ⅿ' => 'M', 'ⅰ' => 'i', 'ⅱ' => 'ii', 'ⅲ' => 'iii', 'ⅳ' => 'iv', 'ⅴ' => 'v', 'ⅵ' => 'vi', 'ⅶ' => 'vii', 'ⅷ' => 'viii', 'ⅸ' => 'ix', 'ⅹ' => 'x', 'ⅺ' => 'xi', 'ⅻ' => 'xii', 'ⅼ' => 'l', 'ⅽ' => 'c', 'ⅾ' => 'd', 'ⅿ' => 'm', '↉' => '0⁄3', '∬' => '∫∫', '∭' => '∫∫∫', '∯' => '∮∮', '∰' => '∮∮∮', '①' => '1', '②' => '2', '③' => '3', '④' => '4', '⑤' => '5', '⑥' => '6', '⑦' => '7', '⑧' => '8', '⑨' => '9', '⑩' => '10', '⑪' => '11', '⑫' => '12', '⑬' => '13', '⑭' => '14', '⑮' => '15', '⑯' => '16', '⑰' => '17', '⑱' => '18', '⑲' => '19', '⑳' => '20', '⑴' => '(1)', '⑵' => '(2)', '⑶' => '(3)', '⑷' => '(4)', '⑸' => '(5)', '⑹' => '(6)', '⑺' => '(7)', '⑻' => '(8)', '⑼' => '(9)', '⑽' => '(10)', '⑾' => '(11)', '⑿' => '(12)', '⒀' => '(13)', '⒁' => '(14)', '⒂' => '(15)', '⒃' => '(16)', '⒄' => '(17)', '⒅' => '(18)', '⒆' => '(19)', '⒇' => '(20)', '⒈' => '1.', '⒉' => '2.', '⒊' => '3.', '⒋' => '4.', '⒌' => '5.', '⒍' => '6.', '⒎' => '7.', '⒏' => '8.', '⒐' => '9.', '⒑' => '10.', '⒒' => '11.', '⒓' => '12.', '⒔' => '13.', '⒕' => '14.', '⒖' => '15.', '⒗' => '16.', '⒘' => '17.', '⒙' => '18.', '⒚' => '19.', '⒛' => '20.', '⒜' => '(a)', '⒝' => '(b)', '⒞' => '(c)', '⒟' => '(d)', '⒠' => '(e)', '⒡' => '(f)', '⒢' => '(g)', '⒣' => '(h)', '⒤' => '(i)', '⒥' => '(j)', '⒦' => '(k)', '⒧' => '(l)', '⒨' => '(m)', '⒩' => '(n)', '⒪' => '(o)', '⒫' => '(p)', '⒬' => '(q)', '⒭' => '(r)', '⒮' => '(s)', '⒯' => '(t)', '⒰' => '(u)', '⒱' => '(v)', '⒲' => '(w)', '⒳' => '(x)', '⒴' => '(y)', '⒵' => '(z)', 'Ⓐ' => 'A', 'Ⓑ' => 'B', 'Ⓒ' => 'C', 'Ⓓ' => 'D', 'Ⓔ' => 'E', 'Ⓕ' => 'F', 'Ⓖ' => 'G', 'Ⓗ' => 'H', 'Ⓘ' => 'I', 'Ⓙ' => 'J', 'Ⓚ' => 'K', 'Ⓛ' => 'L', 'Ⓜ' => 'M', 'Ⓝ' => 'N', 'Ⓞ' => 'O', 'Ⓟ' => 'P', 'Ⓠ' => 'Q', 'Ⓡ' => 'R', 'Ⓢ' => 'S', 'Ⓣ' => 'T', 'Ⓤ' => 'U', 'Ⓥ' => 'V', 'Ⓦ' => 'W', 'Ⓧ' => 'X', 'Ⓨ' => 'Y', 'Ⓩ' => 'Z', 'ⓐ' => 'a', 'ⓑ' => 'b', 'ⓒ' => 'c', 'ⓓ' => 'd', 'ⓔ' => 'e', 'ⓕ' => 'f', 'ⓖ' => 'g', 'ⓗ' => 'h', 'ⓘ' => 'i', 'ⓙ' => 'j', 'ⓚ' => 'k', 'ⓛ' => 'l', 'ⓜ' => 'm', 'ⓝ' => 'n', 'ⓞ' => 'o', 'ⓟ' => 'p', 'ⓠ' => 'q', 'ⓡ' => 'r', 'ⓢ' => 's', 'ⓣ' => 't', 'ⓤ' => 'u', 'ⓥ' => 'v', 'ⓦ' => 'w', 'ⓧ' => 'x', 'ⓨ' => 'y', 'ⓩ' => 'z', '⓪' => '0', '⨌' => '∫∫∫∫', '⩴' => '::=', '⩵' => '==', '⩶' => '===', 'ⱼ' => 'j', 'ⱽ' => 'V', 'ⵯ' => 'ⵡ', '⺟' => '母', '⻳' => '龟', '⼀' => '一', '⼁' => '丨', '⼂' => '丶', '⼃' => '丿', '⼄' => '乙', '⼅' => '亅', '⼆' => '二', '⼇' => '亠', '⼈' => '人', '⼉' => '儿', '⼊' => '入', '⼋' => '八', '⼌' => '冂', '⼍' => '冖', '⼎' => '冫', '⼏' => '几', '⼐' => '凵', '⼑' => '刀', '⼒' => '力', '⼓' => '勹', '⼔' => '匕', '⼕' => '匚', '⼖' => '匸', '⼗' => '十', '⼘' => '卜', '⼙' => '卩', '⼚' => '厂', '⼛' => '厶', '⼜' => '又', '⼝' => '口', '⼞' => '囗', '⼟' => '土', '⼠' => '士', '⼡' => '夂', '⼢' => '夊', '⼣' => '夕', '⼤' => '大', '⼥' => '女', '⼦' => '子', '⼧' => '宀', '⼨' => '寸', '⼩' => '小', '⼪' => '尢', '⼫' => '尸', '⼬' => '屮', '⼭' => '山', '⼮' => '巛', '⼯' => '工', '⼰' => '己', '⼱' => '巾', '⼲' => '干', '⼳' => '幺', '⼴' => '广', '⼵' => '廴', '⼶' => '廾', '⼷' => '弋', '⼸' => '弓', '⼹' => '彐', '⼺' => '彡', '⼻' => '彳', '⼼' => '心', '⼽' => '戈', '⼾' => '戶', '⼿' => '手', '⽀' => '支', '⽁' => '攴', '⽂' => '文', '⽃' => '斗', '⽄' => '斤', '⽅' => '方', '⽆' => '无', '⽇' => '日', '⽈' => '曰', '⽉' => '月', '⽊' => '木', '⽋' => '欠', '⽌' => '止', '⽍' => '歹', '⽎' => '殳', '⽏' => '毋', '⽐' => '比', '⽑' => '毛', '⽒' => '氏', '⽓' => '气', '⽔' => '水', '⽕' => '火', '⽖' => '爪', '⽗' => '父', '⽘' => '爻', '⽙' => '爿', '⽚' => '片', '⽛' => '牙', '⽜' => '牛', '⽝' => '犬', '⽞' => '玄', '⽟' => '玉', '⽠' => '瓜', '⽡' => '瓦', '⽢' => '甘', '⽣' => '生', '⽤' => '用', '⽥' => '田', '⽦' => '疋', '⽧' => '疒', '⽨' => '癶', '⽩' => '白', '⽪' => '皮', '⽫' => '皿', '⽬' => '目', '⽭' => '矛', '⽮' => '矢', '⽯' => '石', '⽰' => '示', '⽱' => '禸', '⽲' => '禾', '⽳' => '穴', '⽴' => '立', '⽵' => '竹', '⽶' => '米', '⽷' => '糸', '⽸' => '缶', '⽹' => '网', '⽺' => '羊', '⽻' => '羽', '⽼' => '老', '⽽' => '而', '⽾' => '耒', '⽿' => '耳', '⾀' => '聿', '⾁' => '肉', '⾂' => '臣', '⾃' => '自', '⾄' => '至', '⾅' => '臼', '⾆' => '舌', '⾇' => '舛', '⾈' => '舟', '⾉' => '艮', '⾊' => '色', '⾋' => '艸', '⾌' => '虍', '⾍' => '虫', '⾎' => '血', '⾏' => '行', '⾐' => '衣', '⾑' => '襾', '⾒' => '見', '⾓' => '角', '⾔' => '言', '⾕' => '谷', '⾖' => '豆', '⾗' => '豕', '⾘' => '豸', '⾙' => '貝', '⾚' => '赤', '⾛' => '走', '⾜' => '足', '⾝' => '身', '⾞' => '車', '⾟' => '辛', '⾠' => '辰', '⾡' => '辵', '⾢' => '邑', '⾣' => '酉', '⾤' => '釆', '⾥' => '里', '⾦' => '金', '⾧' => '長', '⾨' => '門', '⾩' => '阜', '⾪' => '隶', '⾫' => '隹', '⾬' => '雨', '⾭' => '靑', '⾮' => '非', '⾯' => '面', '⾰' => '革', '⾱' => '韋', '⾲' => '韭', '⾳' => '音', '⾴' => '頁', '⾵' => '風', '⾶' => '飛', '⾷' => '食', '⾸' => '首', '⾹' => '香', '⾺' => '馬', '⾻' => '骨', '⾼' => '高', '⾽' => '髟', '⾾' => '鬥', '⾿' => '鬯', '⿀' => '鬲', '⿁' => '鬼', '⿂' => '魚', '⿃' => '鳥', '⿄' => '鹵', '⿅' => '鹿', '⿆' => '麥', '⿇' => '麻', '⿈' => '黃', '⿉' => '黍', '⿊' => '黑', '⿋' => '黹', '⿌' => '黽', '⿍' => '鼎', '⿎' => '鼓', '⿏' => '鼠', '⿐' => '鼻', '⿑' => '齊', '⿒' => '齒', '⿓' => '龍', '⿔' => '龜', '⿕' => '龠', ' ' => ' ', '〶' => '〒', '〸' => '十', '〹' => '卄', '〺' => '卅', '゛' => ' ゙', '゜' => ' ゚', 'ゟ' => 'より', 'ヿ' => 'コト', 'ㄱ' => 'ᄀ', 'ㄲ' => 'ᄁ', 'ㄳ' => 'ᆪ', 'ㄴ' => 'ᄂ', 'ㄵ' => 'ᆬ', 'ㄶ' => 'ᆭ', 'ㄷ' => 'ᄃ', 'ㄸ' => 'ᄄ', 'ㄹ' => 'ᄅ', 'ㄺ' => 'ᆰ', 'ㄻ' => 'ᆱ', 'ㄼ' => 'ᆲ', 'ㄽ' => 'ᆳ', 'ㄾ' => 'ᆴ', 'ㄿ' => 'ᆵ', 'ㅀ' => 'ᄚ', 'ㅁ' => 'ᄆ', 'ㅂ' => 'ᄇ', 'ㅃ' => 'ᄈ', 'ㅄ' => 'ᄡ', 'ㅅ' => 'ᄉ', 'ㅆ' => 'ᄊ', 'ㅇ' => 'ᄋ', 'ㅈ' => 'ᄌ', 'ㅉ' => 'ᄍ', 'ㅊ' => 'ᄎ', 'ㅋ' => 'ᄏ', 'ㅌ' => 'ᄐ', 'ㅍ' => 'ᄑ', 'ㅎ' => 'ᄒ', 'ㅏ' => 'ᅡ', 'ㅐ' => 'ᅢ', 'ㅑ' => 'ᅣ', 'ㅒ' => 'ᅤ', 'ㅓ' => 'ᅥ', 'ㅔ' => 'ᅦ', 'ㅕ' => 'ᅧ', 'ㅖ' => 'ᅨ', 'ㅗ' => 'ᅩ', 'ㅘ' => 'ᅪ', 'ㅙ' => 'ᅫ', 'ㅚ' => 'ᅬ', 'ㅛ' => 'ᅭ', 'ㅜ' => 'ᅮ', 'ㅝ' => 'ᅯ', 'ㅞ' => 'ᅰ', 'ㅟ' => 'ᅱ', 'ㅠ' => 'ᅲ', 'ㅡ' => 'ᅳ', 'ㅢ' => 'ᅴ', 'ㅣ' => 'ᅵ', 'ㅤ' => 'ᅠ', 'ㅥ' => 'ᄔ', 'ㅦ' => 'ᄕ', 'ㅧ' => 'ᇇ', 'ㅨ' => 'ᇈ', 'ㅩ' => 'ᇌ', 'ㅪ' => 'ᇎ', 'ㅫ' => 'ᇓ', 'ㅬ' => 'ᇗ', 'ㅭ' => 'ᇙ', 'ㅮ' => 'ᄜ', 'ㅯ' => 'ᇝ', 'ㅰ' => 'ᇟ', 'ㅱ' => 'ᄝ', 'ㅲ' => 'ᄞ', 'ㅳ' => 'ᄠ', 'ㅴ' => 'ᄢ', 'ㅵ' => 'ᄣ', 'ㅶ' => 'ᄧ', 'ㅷ' => 'ᄩ', 'ㅸ' => 'ᄫ', 'ㅹ' => 'ᄬ', 'ㅺ' => 'ᄭ', 'ㅻ' => 'ᄮ', 'ㅼ' => 'ᄯ', 'ㅽ' => 'ᄲ', 'ㅾ' => 'ᄶ', 'ㅿ' => 'ᅀ', 'ㆀ' => 'ᅇ', 'ㆁ' => 'ᅌ', 'ㆂ' => 'ᇱ', 'ㆃ' => 'ᇲ', 'ㆄ' => 'ᅗ', 'ㆅ' => 'ᅘ', 'ㆆ' => 'ᅙ', 'ㆇ' => 'ᆄ', 'ㆈ' => 'ᆅ', 'ㆉ' => 'ᆈ', 'ㆊ' => 'ᆑ', 'ㆋ' => 'ᆒ', 'ㆌ' => 'ᆔ', 'ㆍ' => 'ᆞ', 'ㆎ' => 'ᆡ', '㆒' => '一', '㆓' => '二', '㆔' => '三', '㆕' => '四', '㆖' => '上', '㆗' => '中', '㆘' => '下', '㆙' => '甲', '㆚' => '乙', '㆛' => '丙', '㆜' => '丁', '㆝' => '天', '㆞' => '地', '㆟' => '人', '㈀' => '(ᄀ)', '㈁' => '(ᄂ)', '㈂' => '(ᄃ)', '㈃' => '(ᄅ)', '㈄' => '(ᄆ)', '㈅' => '(ᄇ)', '㈆' => '(ᄉ)', '㈇' => '(ᄋ)', '㈈' => '(ᄌ)', '㈉' => '(ᄎ)', '㈊' => '(ᄏ)', '㈋' => '(ᄐ)', '㈌' => '(ᄑ)', '㈍' => '(ᄒ)', '㈎' => '(가)', '㈏' => '(나)', '㈐' => '(다)', '㈑' => '(라)', '㈒' => '(마)', '㈓' => '(바)', '㈔' => '(사)', '㈕' => '(아)', '㈖' => '(자)', '㈗' => '(차)', '㈘' => '(카)', '㈙' => '(타)', '㈚' => '(파)', '㈛' => '(하)', '㈜' => '(주)', '㈝' => '(오전)', '㈞' => '(오후)', '㈠' => '(一)', '㈡' => '(二)', '㈢' => '(三)', '㈣' => '(四)', '㈤' => '(五)', '㈥' => '(六)', '㈦' => '(七)', '㈧' => '(八)', '㈨' => '(九)', '㈩' => '(十)', '㈪' => '(月)', '㈫' => '(火)', '㈬' => '(水)', '㈭' => '(木)', '㈮' => '(金)', '㈯' => '(土)', '㈰' => '(日)', '㈱' => '(株)', '㈲' => '(有)', '㈳' => '(社)', '㈴' => '(名)', '㈵' => '(特)', '㈶' => '(財)', '㈷' => '(祝)', '㈸' => '(労)', '㈹' => '(代)', '㈺' => '(呼)', '㈻' => '(学)', '㈼' => '(監)', '㈽' => '(企)', '㈾' => '(資)', '㈿' => '(協)', '㉀' => '(祭)', '㉁' => '(休)', '㉂' => '(自)', '㉃' => '(至)', '㉄' => '問', '㉅' => '幼', '㉆' => '文', '㉇' => '箏', '㉐' => 'PTE', '㉑' => '21', '㉒' => '22', '㉓' => '23', '㉔' => '24', '㉕' => '25', '㉖' => '26', '㉗' => '27', '㉘' => '28', '㉙' => '29', '㉚' => '30', '㉛' => '31', '㉜' => '32', '㉝' => '33', '㉞' => '34', '㉟' => '35', '㉠' => 'ᄀ', '㉡' => 'ᄂ', '㉢' => 'ᄃ', '㉣' => 'ᄅ', '㉤' => 'ᄆ', '㉥' => 'ᄇ', '㉦' => 'ᄉ', '㉧' => 'ᄋ', '㉨' => 'ᄌ', '㉩' => 'ᄎ', '㉪' => 'ᄏ', '㉫' => 'ᄐ', '㉬' => 'ᄑ', '㉭' => 'ᄒ', '㉮' => '가', '㉯' => '나', '㉰' => '다', '㉱' => '라', '㉲' => '마', '㉳' => '바', '㉴' => '사', '㉵' => '아', '㉶' => '자', '㉷' => '차', '㉸' => '카', '㉹' => '타', '㉺' => '파', '㉻' => '하', '㉼' => '참고', '㉽' => '주의', '㉾' => '우', '㊀' => '一', '㊁' => '二', '㊂' => '三', '㊃' => '四', '㊄' => '五', '㊅' => '六', '㊆' => '七', '㊇' => '八', '㊈' => '九', '㊉' => '十', '㊊' => '月', '㊋' => '火', '㊌' => '水', '㊍' => '木', '㊎' => '金', '㊏' => '土', '㊐' => '日', '㊑' => '株', '㊒' => '有', '㊓' => '社', '㊔' => '名', '㊕' => '特', '㊖' => '財', '㊗' => '祝', '㊘' => '労', '㊙' => '秘', '㊚' => '男', '㊛' => '女', '㊜' => '適', '㊝' => '優', '㊞' => '印', '㊟' => '注', '㊠' => '項', '㊡' => '休', '㊢' => '写', '㊣' => '正', '㊤' => '上', '㊥' => '中', '㊦' => '下', '㊧' => '左', '㊨' => '右', '㊩' => '医', '㊪' => '宗', '㊫' => '学', '㊬' => '監', '㊭' => '企', '㊮' => '資', '㊯' => '協', '㊰' => '夜', '㊱' => '36', '㊲' => '37', '㊳' => '38', '㊴' => '39', '㊵' => '40', '㊶' => '41', '㊷' => '42', '㊸' => '43', '㊹' => '44', '㊺' => '45', '㊻' => '46', '㊼' => '47', '㊽' => '48', '㊾' => '49', '㊿' => '50', '㋀' => '1月', '㋁' => '2月', '㋂' => '3月', '㋃' => '4月', '㋄' => '5月', '㋅' => '6月', '㋆' => '7月', '㋇' => '8月', '㋈' => '9月', '㋉' => '10月', '㋊' => '11月', '㋋' => '12月', '㋌' => 'Hg', '㋍' => 'erg', '㋎' => 'eV', '㋏' => 'LTD', '㋐' => 'ア', '㋑' => 'イ', '㋒' => 'ウ', '㋓' => 'エ', '㋔' => 'オ', '㋕' => 'カ', '㋖' => 'キ', '㋗' => 'ク', '㋘' => 'ケ', '㋙' => 'コ', '㋚' => 'サ', '㋛' => 'シ', '㋜' => 'ス', '㋝' => 'セ', '㋞' => 'ソ', '㋟' => 'タ', '㋠' => 'チ', '㋡' => 'ツ', '㋢' => 'テ', '㋣' => 'ト', '㋤' => 'ナ', '㋥' => 'ニ', '㋦' => 'ヌ', '㋧' => 'ネ', '㋨' => 'ノ', '㋩' => 'ハ', '㋪' => 'ヒ', '㋫' => 'フ', '㋬' => 'ヘ', '㋭' => 'ホ', '㋮' => 'マ', '㋯' => 'ミ', '㋰' => 'ム', '㋱' => 'メ', '㋲' => 'モ', '㋳' => 'ヤ', '㋴' => 'ユ', '㋵' => 'ヨ', '㋶' => 'ラ', '㋷' => 'リ', '㋸' => 'ル', '㋹' => 'レ', '㋺' => 'ロ', '㋻' => 'ワ', '㋼' => 'ヰ', '㋽' => 'ヱ', '㋾' => 'ヲ', '㋿' => '令和', '㌀' => 'アパート', '㌁' => 'アルファ', '㌂' => 'アンペア', '㌃' => 'アール', '㌄' => 'イニング', '㌅' => 'インチ', '㌆' => 'ウォン', '㌇' => 'エスクード', '㌈' => 'エーカー', '㌉' => 'オンス', '㌊' => 'オーム', '㌋' => 'カイリ', '㌌' => 'カラット', '㌍' => 'カロリー', '㌎' => 'ガロン', '㌏' => 'ガンマ', '㌐' => 'ギガ', '㌑' => 'ギニー', '㌒' => 'キュリー', '㌓' => 'ギルダー', '㌔' => 'キロ', '㌕' => 'キログラム', '㌖' => 'キロメートル', '㌗' => 'キロワット', '㌘' => 'グラム', '㌙' => 'グラムトン', '㌚' => 'クルゼイロ', '㌛' => 'クローネ', '㌜' => 'ケース', '㌝' => 'コルナ', '㌞' => 'コーポ', '㌟' => 'サイクル', '㌠' => 'サンチーム', '㌡' => 'シリング', '㌢' => 'センチ', '㌣' => 'セント', '㌤' => 'ダース', '㌥' => 'デシ', '㌦' => 'ドル', '㌧' => 'トン', '㌨' => 'ナノ', '㌩' => 'ノット', '㌪' => 'ハイツ', '㌫' => 'パーセント', '㌬' => 'パーツ', '㌭' => 'バーレル', '㌮' => 'ピアストル', '㌯' => 'ピクル', '㌰' => 'ピコ', '㌱' => 'ビル', '㌲' => 'ファラッド', '㌳' => 'フィート', '㌴' => 'ブッシェル', '㌵' => 'フラン', '㌶' => 'ヘクタール', '㌷' => 'ペソ', '㌸' => 'ペニヒ', '㌹' => 'ヘルツ', '㌺' => 'ペンス', '㌻' => 'ページ', '㌼' => 'ベータ', '㌽' => 'ポイント', '㌾' => 'ボルト', '㌿' => 'ホン', '㍀' => 'ポンド', '㍁' => 'ホール', '㍂' => 'ホーン', '㍃' => 'マイクロ', '㍄' => 'マイル', '㍅' => 'マッハ', '㍆' => 'マルク', '㍇' => 'マンション', '㍈' => 'ミクロン', '㍉' => 'ミリ', '㍊' => 'ミリバール', '㍋' => 'メガ', '㍌' => 'メガトン', '㍍' => 'メートル', '㍎' => 'ヤード', '㍏' => 'ヤール', '㍐' => 'ユアン', '㍑' => 'リットル', '㍒' => 'リラ', '㍓' => 'ルピー', '㍔' => 'ルーブル', '㍕' => 'レム', '㍖' => 'レントゲン', '㍗' => 'ワット', '㍘' => '0点', '㍙' => '1点', '㍚' => '2点', '㍛' => '3点', '㍜' => '4点', '㍝' => '5点', '㍞' => '6点', '㍟' => '7点', '㍠' => '8点', '㍡' => '9点', '㍢' => '10点', '㍣' => '11点', '㍤' => '12点', '㍥' => '13点', '㍦' => '14点', '㍧' => '15点', '㍨' => '16点', '㍩' => '17点', '㍪' => '18点', '㍫' => '19点', '㍬' => '20点', '㍭' => '21点', '㍮' => '22点', '㍯' => '23点', '㍰' => '24点', '㍱' => 'hPa', '㍲' => 'da', '㍳' => 'AU', '㍴' => 'bar', '㍵' => 'oV', '㍶' => 'pc', '㍷' => 'dm', '㍸' => 'dm2', '㍹' => 'dm3', '㍺' => 'IU', '㍻' => '平成', '㍼' => '昭和', '㍽' => '大正', '㍾' => '明治', '㍿' => '株式会社', '㎀' => 'pA', '㎁' => 'nA', '㎂' => 'μA', '㎃' => 'mA', '㎄' => 'kA', '㎅' => 'KB', '㎆' => 'MB', '㎇' => 'GB', '㎈' => 'cal', '㎉' => 'kcal', '㎊' => 'pF', '㎋' => 'nF', '㎌' => 'μF', '㎍' => 'μg', '㎎' => 'mg', '㎏' => 'kg', '㎐' => 'Hz', '㎑' => 'kHz', '㎒' => 'MHz', '㎓' => 'GHz', '㎔' => 'THz', '㎕' => 'μl', '㎖' => 'ml', '㎗' => 'dl', '㎘' => 'kl', '㎙' => 'fm', '㎚' => 'nm', '㎛' => 'μm', '㎜' => 'mm', '㎝' => 'cm', '㎞' => 'km', '㎟' => 'mm2', '㎠' => 'cm2', '㎡' => 'm2', '㎢' => 'km2', '㎣' => 'mm3', '㎤' => 'cm3', '㎥' => 'm3', '㎦' => 'km3', '㎧' => 'm∕s', '㎨' => 'm∕s2', '㎩' => 'Pa', '㎪' => 'kPa', '㎫' => 'MPa', '㎬' => 'GPa', '㎭' => 'rad', '㎮' => 'rad∕s', '㎯' => 'rad∕s2', '㎰' => 'ps', '㎱' => 'ns', '㎲' => 'μs', '㎳' => 'ms', '㎴' => 'pV', '㎵' => 'nV', '㎶' => 'μV', '㎷' => 'mV', '㎸' => 'kV', '㎹' => 'MV', '㎺' => 'pW', '㎻' => 'nW', '㎼' => 'μW', '㎽' => 'mW', '㎾' => 'kW', '㎿' => 'MW', '㏀' => 'kΩ', '㏁' => 'MΩ', '㏂' => 'a.m.', '㏃' => 'Bq', '㏄' => 'cc', '㏅' => 'cd', '㏆' => 'C∕kg', '㏇' => 'Co.', '㏈' => 'dB', '㏉' => 'Gy', '㏊' => 'ha', '㏋' => 'HP', '㏌' => 'in', '㏍' => 'KK', '㏎' => 'KM', '㏏' => 'kt', '㏐' => 'lm', '㏑' => 'ln', '㏒' => 'log', '㏓' => 'lx', '㏔' => 'mb', '㏕' => 'mil', '㏖' => 'mol', '㏗' => 'PH', '㏘' => 'p.m.', '㏙' => 'PPM', '㏚' => 'PR', '㏛' => 'sr', '㏜' => 'Sv', '㏝' => 'Wb', '㏞' => 'V∕m', '㏟' => 'A∕m', '㏠' => '1日', '㏡' => '2日', '㏢' => '3日', '㏣' => '4日', '㏤' => '5日', '㏥' => '6日', '㏦' => '7日', '㏧' => '8日', '㏨' => '9日', '㏩' => '10日', '㏪' => '11日', '㏫' => '12日', '㏬' => '13日', '㏭' => '14日', '㏮' => '15日', '㏯' => '16日', '㏰' => '17日', '㏱' => '18日', '㏲' => '19日', '㏳' => '20日', '㏴' => '21日', '㏵' => '22日', '㏶' => '23日', '㏷' => '24日', '㏸' => '25日', '㏹' => '26日', '㏺' => '27日', '㏻' => '28日', '㏼' => '29日', '㏽' => '30日', '㏾' => '31日', '㏿' => 'gal', 'ꚜ' => 'ъ', 'ꚝ' => 'ь', 'ꝰ' => 'ꝯ', 'ꟸ' => 'Ħ', 'ꟹ' => 'œ', 'ꭜ' => 'ꜧ', 'ꭝ' => 'ꬷ', 'ꭞ' => 'ɫ', 'ꭟ' => 'ꭒ', 'ꭩ' => 'ʍ', 'ff' => 'ff', 'fi' => 'fi', 'fl' => 'fl', 'ffi' => 'ffi', 'ffl' => 'ffl', 'ſt' => 'st', 'st' => 'st', 'ﬓ' => 'մն', 'ﬔ' => 'մե', 'ﬕ' => 'մի', 'ﬖ' => 'վն', 'ﬗ' => 'մխ', 'ﬠ' => 'ע', 'ﬡ' => 'א', 'ﬢ' => 'ד', 'ﬣ' => 'ה', 'ﬤ' => 'כ', 'ﬥ' => 'ל', 'ﬦ' => 'ם', 'ﬧ' => 'ר', 'ﬨ' => 'ת', '﬩' => '+', 'ﭏ' => 'אל', 'ﭐ' => 'ٱ', 'ﭑ' => 'ٱ', 'ﭒ' => 'ٻ', 'ﭓ' => 'ٻ', 'ﭔ' => 'ٻ', 'ﭕ' => 'ٻ', 'ﭖ' => 'پ', 'ﭗ' => 'پ', 'ﭘ' => 'پ', 'ﭙ' => 'پ', 'ﭚ' => 'ڀ', 'ﭛ' => 'ڀ', 'ﭜ' => 'ڀ', 'ﭝ' => 'ڀ', 'ﭞ' => 'ٺ', 'ﭟ' => 'ٺ', 'ﭠ' => 'ٺ', 'ﭡ' => 'ٺ', 'ﭢ' => 'ٿ', 'ﭣ' => 'ٿ', 'ﭤ' => 'ٿ', 'ﭥ' => 'ٿ', 'ﭦ' => 'ٹ', 'ﭧ' => 'ٹ', 'ﭨ' => 'ٹ', 'ﭩ' => 'ٹ', 'ﭪ' => 'ڤ', 'ﭫ' => 'ڤ', 'ﭬ' => 'ڤ', 'ﭭ' => 'ڤ', 'ﭮ' => 'ڦ', 'ﭯ' => 'ڦ', 'ﭰ' => 'ڦ', 'ﭱ' => 'ڦ', 'ﭲ' => 'ڄ', 'ﭳ' => 'ڄ', 'ﭴ' => 'ڄ', 'ﭵ' => 'ڄ', 'ﭶ' => 'ڃ', 'ﭷ' => 'ڃ', 'ﭸ' => 'ڃ', 'ﭹ' => 'ڃ', 'ﭺ' => 'چ', 'ﭻ' => 'چ', 'ﭼ' => 'چ', 'ﭽ' => 'چ', 'ﭾ' => 'ڇ', 'ﭿ' => 'ڇ', 'ﮀ' => 'ڇ', 'ﮁ' => 'ڇ', 'ﮂ' => 'ڍ', 'ﮃ' => 'ڍ', 'ﮄ' => 'ڌ', 'ﮅ' => 'ڌ', 'ﮆ' => 'ڎ', 'ﮇ' => 'ڎ', 'ﮈ' => 'ڈ', 'ﮉ' => 'ڈ', 'ﮊ' => 'ژ', 'ﮋ' => 'ژ', 'ﮌ' => 'ڑ', 'ﮍ' => 'ڑ', 'ﮎ' => 'ک', 'ﮏ' => 'ک', 'ﮐ' => 'ک', 'ﮑ' => 'ک', 'ﮒ' => 'گ', 'ﮓ' => 'گ', 'ﮔ' => 'گ', 'ﮕ' => 'گ', 'ﮖ' => 'ڳ', 'ﮗ' => 'ڳ', 'ﮘ' => 'ڳ', 'ﮙ' => 'ڳ', 'ﮚ' => 'ڱ', 'ﮛ' => 'ڱ', 'ﮜ' => 'ڱ', 'ﮝ' => 'ڱ', 'ﮞ' => 'ں', 'ﮟ' => 'ں', 'ﮠ' => 'ڻ', 'ﮡ' => 'ڻ', 'ﮢ' => 'ڻ', 'ﮣ' => 'ڻ', 'ﮤ' => 'ۀ', 'ﮥ' => 'ۀ', 'ﮦ' => 'ہ', 'ﮧ' => 'ہ', 'ﮨ' => 'ہ', 'ﮩ' => 'ہ', 'ﮪ' => 'ھ', 'ﮫ' => 'ھ', 'ﮬ' => 'ھ', 'ﮭ' => 'ھ', 'ﮮ' => 'ے', 'ﮯ' => 'ے', 'ﮰ' => 'ۓ', 'ﮱ' => 'ۓ', 'ﯓ' => 'ڭ', 'ﯔ' => 'ڭ', 'ﯕ' => 'ڭ', 'ﯖ' => 'ڭ', 'ﯗ' => 'ۇ', 'ﯘ' => 'ۇ', 'ﯙ' => 'ۆ', 'ﯚ' => 'ۆ', 'ﯛ' => 'ۈ', 'ﯜ' => 'ۈ', 'ﯝ' => 'ۇٴ', 'ﯞ' => 'ۋ', 'ﯟ' => 'ۋ', 'ﯠ' => 'ۅ', 'ﯡ' => 'ۅ', 'ﯢ' => 'ۉ', 'ﯣ' => 'ۉ', 'ﯤ' => 'ې', 'ﯥ' => 'ې', 'ﯦ' => 'ې', 'ﯧ' => 'ې', 'ﯨ' => 'ى', 'ﯩ' => 'ى', 'ﯪ' => 'ئا', 'ﯫ' => 'ئا', 'ﯬ' => 'ئە', 'ﯭ' => 'ئە', 'ﯮ' => 'ئو', 'ﯯ' => 'ئو', 'ﯰ' => 'ئۇ', 'ﯱ' => 'ئۇ', 'ﯲ' => 'ئۆ', 'ﯳ' => 'ئۆ', 'ﯴ' => 'ئۈ', 'ﯵ' => 'ئۈ', 'ﯶ' => 'ئې', 'ﯷ' => 'ئې', 'ﯸ' => 'ئې', 'ﯹ' => 'ئى', 'ﯺ' => 'ئى', 'ﯻ' => 'ئى', 'ﯼ' => 'ی', 'ﯽ' => 'ی', 'ﯾ' => 'ی', 'ﯿ' => 'ی', 'ﰀ' => 'ئج', 'ﰁ' => 'ئح', 'ﰂ' => 'ئم', 'ﰃ' => 'ئى', 'ﰄ' => 'ئي', 'ﰅ' => 'بج', 'ﰆ' => 'بح', 'ﰇ' => 'بخ', 'ﰈ' => 'بم', 'ﰉ' => 'بى', 'ﰊ' => 'بي', 'ﰋ' => 'تج', 'ﰌ' => 'تح', 'ﰍ' => 'تخ', 'ﰎ' => 'تم', 'ﰏ' => 'تى', 'ﰐ' => 'تي', 'ﰑ' => 'ثج', 'ﰒ' => 'ثم', 'ﰓ' => 'ثى', 'ﰔ' => 'ثي', 'ﰕ' => 'جح', 'ﰖ' => 'جم', 'ﰗ' => 'حج', 'ﰘ' => 'حم', 'ﰙ' => 'خج', 'ﰚ' => 'خح', 'ﰛ' => 'خم', 'ﰜ' => 'سج', 'ﰝ' => 'سح', 'ﰞ' => 'سخ', 'ﰟ' => 'سم', 'ﰠ' => 'صح', 'ﰡ' => 'صم', 'ﰢ' => 'ضج', 'ﰣ' => 'ضح', 'ﰤ' => 'ضخ', 'ﰥ' => 'ضم', 'ﰦ' => 'طح', 'ﰧ' => 'طم', 'ﰨ' => 'ظم', 'ﰩ' => 'عج', 'ﰪ' => 'عم', 'ﰫ' => 'غج', 'ﰬ' => 'غم', 'ﰭ' => 'فج', 'ﰮ' => 'فح', 'ﰯ' => 'فخ', 'ﰰ' => 'فم', 'ﰱ' => 'فى', 'ﰲ' => 'في', 'ﰳ' => 'قح', 'ﰴ' => 'قم', 'ﰵ' => 'قى', 'ﰶ' => 'قي', 'ﰷ' => 'كا', 'ﰸ' => 'كج', 'ﰹ' => 'كح', 'ﰺ' => 'كخ', 'ﰻ' => 'كل', 'ﰼ' => 'كم', 'ﰽ' => 'كى', 'ﰾ' => 'كي', 'ﰿ' => 'لج', 'ﱀ' => 'لح', 'ﱁ' => 'لخ', 'ﱂ' => 'لم', 'ﱃ' => 'لى', 'ﱄ' => 'لي', 'ﱅ' => 'مج', 'ﱆ' => 'مح', 'ﱇ' => 'مخ', 'ﱈ' => 'مم', 'ﱉ' => 'مى', 'ﱊ' => 'مي', 'ﱋ' => 'نج', 'ﱌ' => 'نح', 'ﱍ' => 'نخ', 'ﱎ' => 'نم', 'ﱏ' => 'نى', 'ﱐ' => 'ني', 'ﱑ' => 'هج', 'ﱒ' => 'هم', 'ﱓ' => 'هى', 'ﱔ' => 'هي', 'ﱕ' => 'يج', 'ﱖ' => 'يح', 'ﱗ' => 'يخ', 'ﱘ' => 'يم', 'ﱙ' => 'يى', 'ﱚ' => 'يي', 'ﱛ' => 'ذٰ', 'ﱜ' => 'رٰ', 'ﱝ' => 'ىٰ', 'ﱞ' => ' ٌّ', 'ﱟ' => ' ٍّ', 'ﱠ' => ' َّ', 'ﱡ' => ' ُّ', 'ﱢ' => ' ِّ', 'ﱣ' => ' ّٰ', 'ﱤ' => 'ئر', 'ﱥ' => 'ئز', 'ﱦ' => 'ئم', 'ﱧ' => 'ئن', 'ﱨ' => 'ئى', 'ﱩ' => 'ئي', 'ﱪ' => 'بر', 'ﱫ' => 'بز', 'ﱬ' => 'بم', 'ﱭ' => 'بن', 'ﱮ' => 'بى', 'ﱯ' => 'بي', 'ﱰ' => 'تر', 'ﱱ' => 'تز', 'ﱲ' => 'تم', 'ﱳ' => 'تن', 'ﱴ' => 'تى', 'ﱵ' => 'تي', 'ﱶ' => 'ثر', 'ﱷ' => 'ثز', 'ﱸ' => 'ثم', 'ﱹ' => 'ثن', 'ﱺ' => 'ثى', 'ﱻ' => 'ثي', 'ﱼ' => 'فى', 'ﱽ' => 'في', 'ﱾ' => 'قى', 'ﱿ' => 'قي', 'ﲀ' => 'كا', 'ﲁ' => 'كل', 'ﲂ' => 'كم', 'ﲃ' => 'كى', 'ﲄ' => 'كي', 'ﲅ' => 'لم', 'ﲆ' => 'لى', 'ﲇ' => 'لي', 'ﲈ' => 'ما', 'ﲉ' => 'مم', 'ﲊ' => 'نر', 'ﲋ' => 'نز', 'ﲌ' => 'نم', 'ﲍ' => 'نن', 'ﲎ' => 'نى', 'ﲏ' => 'ني', 'ﲐ' => 'ىٰ', 'ﲑ' => 'ير', 'ﲒ' => 'يز', 'ﲓ' => 'يم', 'ﲔ' => 'ين', 'ﲕ' => 'يى', 'ﲖ' => 'يي', 'ﲗ' => 'ئج', 'ﲘ' => 'ئح', 'ﲙ' => 'ئخ', 'ﲚ' => 'ئم', 'ﲛ' => 'ئه', 'ﲜ' => 'بج', 'ﲝ' => 'بح', 'ﲞ' => 'بخ', 'ﲟ' => 'بم', 'ﲠ' => 'به', 'ﲡ' => 'تج', 'ﲢ' => 'تح', 'ﲣ' => 'تخ', 'ﲤ' => 'تم', 'ﲥ' => 'ته', 'ﲦ' => 'ثم', 'ﲧ' => 'جح', 'ﲨ' => 'جم', 'ﲩ' => 'حج', 'ﲪ' => 'حم', 'ﲫ' => 'خج', 'ﲬ' => 'خم', 'ﲭ' => 'سج', 'ﲮ' => 'سح', 'ﲯ' => 'سخ', 'ﲰ' => 'سم', 'ﲱ' => 'صح', 'ﲲ' => 'صخ', 'ﲳ' => 'صم', 'ﲴ' => 'ضج', 'ﲵ' => 'ضح', 'ﲶ' => 'ضخ', 'ﲷ' => 'ضم', 'ﲸ' => 'طح', 'ﲹ' => 'ظم', 'ﲺ' => 'عج', 'ﲻ' => 'عم', 'ﲼ' => 'غج', 'ﲽ' => 'غم', 'ﲾ' => 'فج', 'ﲿ' => 'فح', 'ﳀ' => 'فخ', 'ﳁ' => 'فم', 'ﳂ' => 'قح', 'ﳃ' => 'قم', 'ﳄ' => 'كج', 'ﳅ' => 'كح', 'ﳆ' => 'كخ', 'ﳇ' => 'كل', 'ﳈ' => 'كم', 'ﳉ' => 'لج', 'ﳊ' => 'لح', 'ﳋ' => 'لخ', 'ﳌ' => 'لم', 'ﳍ' => 'له', 'ﳎ' => 'مج', 'ﳏ' => 'مح', 'ﳐ' => 'مخ', 'ﳑ' => 'مم', 'ﳒ' => 'نج', 'ﳓ' => 'نح', 'ﳔ' => 'نخ', 'ﳕ' => 'نم', 'ﳖ' => 'نه', 'ﳗ' => 'هج', 'ﳘ' => 'هم', 'ﳙ' => 'هٰ', 'ﳚ' => 'يج', 'ﳛ' => 'يح', 'ﳜ' => 'يخ', 'ﳝ' => 'يم', 'ﳞ' => 'يه', 'ﳟ' => 'ئم', 'ﳠ' => 'ئه', 'ﳡ' => 'بم', 'ﳢ' => 'به', 'ﳣ' => 'تم', 'ﳤ' => 'ته', 'ﳥ' => 'ثم', 'ﳦ' => 'ثه', 'ﳧ' => 'سم', 'ﳨ' => 'سه', 'ﳩ' => 'شم', 'ﳪ' => 'شه', 'ﳫ' => 'كل', 'ﳬ' => 'كم', 'ﳭ' => 'لم', 'ﳮ' => 'نم', 'ﳯ' => 'نه', 'ﳰ' => 'يم', 'ﳱ' => 'يه', 'ﳲ' => 'ـَّ', 'ﳳ' => 'ـُّ', 'ﳴ' => 'ـِّ', 'ﳵ' => 'طى', 'ﳶ' => 'طي', 'ﳷ' => 'عى', 'ﳸ' => 'عي', 'ﳹ' => 'غى', 'ﳺ' => 'غي', 'ﳻ' => 'سى', 'ﳼ' => 'سي', 'ﳽ' => 'شى', 'ﳾ' => 'شي', 'ﳿ' => 'حى', 'ﴀ' => 'حي', 'ﴁ' => 'جى', 'ﴂ' => 'جي', 'ﴃ' => 'خى', 'ﴄ' => 'خي', 'ﴅ' => 'صى', 'ﴆ' => 'صي', 'ﴇ' => 'ضى', 'ﴈ' => 'ضي', 'ﴉ' => 'شج', 'ﴊ' => 'شح', 'ﴋ' => 'شخ', 'ﴌ' => 'شم', 'ﴍ' => 'شر', 'ﴎ' => 'سر', 'ﴏ' => 'صر', 'ﴐ' => 'ضر', 'ﴑ' => 'طى', 'ﴒ' => 'طي', 'ﴓ' => 'عى', 'ﴔ' => 'عي', 'ﴕ' => 'غى', 'ﴖ' => 'غي', 'ﴗ' => 'سى', 'ﴘ' => 'سي', 'ﴙ' => 'شى', 'ﴚ' => 'شي', 'ﴛ' => 'حى', 'ﴜ' => 'حي', 'ﴝ' => 'جى', 'ﴞ' => 'جي', 'ﴟ' => 'خى', 'ﴠ' => 'خي', 'ﴡ' => 'صى', 'ﴢ' => 'صي', 'ﴣ' => 'ضى', 'ﴤ' => 'ضي', 'ﴥ' => 'شج', 'ﴦ' => 'شح', 'ﴧ' => 'شخ', 'ﴨ' => 'شم', 'ﴩ' => 'شر', 'ﴪ' => 'سر', 'ﴫ' => 'صر', 'ﴬ' => 'ضر', 'ﴭ' => 'شج', 'ﴮ' => 'شح', 'ﴯ' => 'شخ', 'ﴰ' => 'شم', 'ﴱ' => 'سه', 'ﴲ' => 'شه', 'ﴳ' => 'طم', 'ﴴ' => 'سج', 'ﴵ' => 'سح', 'ﴶ' => 'سخ', 'ﴷ' => 'شج', 'ﴸ' => 'شح', 'ﴹ' => 'شخ', 'ﴺ' => 'طم', 'ﴻ' => 'ظم', 'ﴼ' => 'اً', 'ﴽ' => 'اً', 'ﵐ' => 'تجم', 'ﵑ' => 'تحج', 'ﵒ' => 'تحج', 'ﵓ' => 'تحم', 'ﵔ' => 'تخم', 'ﵕ' => 'تمج', 'ﵖ' => 'تمح', 'ﵗ' => 'تمخ', 'ﵘ' => 'جمح', 'ﵙ' => 'جمح', 'ﵚ' => 'حمي', 'ﵛ' => 'حمى', 'ﵜ' => 'سحج', 'ﵝ' => 'سجح', 'ﵞ' => 'سجى', 'ﵟ' => 'سمح', 'ﵠ' => 'سمح', 'ﵡ' => 'سمج', 'ﵢ' => 'سمم', 'ﵣ' => 'سمم', 'ﵤ' => 'صحح', 'ﵥ' => 'صحح', 'ﵦ' => 'صمم', 'ﵧ' => 'شحم', 'ﵨ' => 'شحم', 'ﵩ' => 'شجي', 'ﵪ' => 'شمخ', 'ﵫ' => 'شمخ', 'ﵬ' => 'شمم', 'ﵭ' => 'شمم', 'ﵮ' => 'ضحى', 'ﵯ' => 'ضخم', 'ﵰ' => 'ضخم', 'ﵱ' => 'طمح', 'ﵲ' => 'طمح', 'ﵳ' => 'طمم', 'ﵴ' => 'طمي', 'ﵵ' => 'عجم', 'ﵶ' => 'عمم', 'ﵷ' => 'عمم', 'ﵸ' => 'عمى', 'ﵹ' => 'غمم', 'ﵺ' => 'غمي', 'ﵻ' => 'غمى', 'ﵼ' => 'فخم', 'ﵽ' => 'فخم', 'ﵾ' => 'قمح', 'ﵿ' => 'قمم', 'ﶀ' => 'لحم', 'ﶁ' => 'لحي', 'ﶂ' => 'لحى', 'ﶃ' => 'لجج', 'ﶄ' => 'لجج', 'ﶅ' => 'لخم', 'ﶆ' => 'لخم', 'ﶇ' => 'لمح', 'ﶈ' => 'لمح', 'ﶉ' => 'محج', 'ﶊ' => 'محم', 'ﶋ' => 'محي', 'ﶌ' => 'مجح', 'ﶍ' => 'مجم', 'ﶎ' => 'مخج', 'ﶏ' => 'مخم', 'ﶒ' => 'مجخ', 'ﶓ' => 'همج', 'ﶔ' => 'همم', 'ﶕ' => 'نحم', 'ﶖ' => 'نحى', 'ﶗ' => 'نجم', 'ﶘ' => 'نجم', 'ﶙ' => 'نجى', 'ﶚ' => 'نمي', 'ﶛ' => 'نمى', 'ﶜ' => 'يمم', 'ﶝ' => 'يمم', 'ﶞ' => 'بخي', 'ﶟ' => 'تجي', 'ﶠ' => 'تجى', 'ﶡ' => 'تخي', 'ﶢ' => 'تخى', 'ﶣ' => 'تمي', 'ﶤ' => 'تمى', 'ﶥ' => 'جمي', 'ﶦ' => 'جحى', 'ﶧ' => 'جمى', 'ﶨ' => 'سخى', 'ﶩ' => 'صحي', 'ﶪ' => 'شحي', 'ﶫ' => 'ضحي', 'ﶬ' => 'لجي', 'ﶭ' => 'لمي', 'ﶮ' => 'يحي', 'ﶯ' => 'يجي', 'ﶰ' => 'يمي', 'ﶱ' => 'ممي', 'ﶲ' => 'قمي', 'ﶳ' => 'نحي', 'ﶴ' => 'قمح', 'ﶵ' => 'لحم', 'ﶶ' => 'عمي', 'ﶷ' => 'كمي', 'ﶸ' => 'نجح', 'ﶹ' => 'مخي', 'ﶺ' => 'لجم', 'ﶻ' => 'كمم', 'ﶼ' => 'لجم', 'ﶽ' => 'نجح', 'ﶾ' => 'جحي', 'ﶿ' => 'حجي', 'ﷀ' => 'مجي', 'ﷁ' => 'فمي', 'ﷂ' => 'بحي', 'ﷃ' => 'كمم', 'ﷄ' => 'عجم', 'ﷅ' => 'صمم', 'ﷆ' => 'سخي', 'ﷇ' => 'نجي', 'ﷰ' => 'صلے', 'ﷱ' => 'قلے', 'ﷲ' => 'الله', 'ﷳ' => 'اكبر', 'ﷴ' => 'محمد', 'ﷵ' => 'صلعم', 'ﷶ' => 'رسول', 'ﷷ' => 'عليه', 'ﷸ' => 'وسلم', 'ﷹ' => 'صلى', 'ﷺ' => 'صلى الله عليه وسلم', 'ﷻ' => 'جل جلاله', '﷼' => 'ریال', '︐' => ',', '︑' => '、', '︒' => '。', '︓' => ':', '︔' => ';', '︕' => '!', '︖' => '?', '︗' => '〖', '︘' => '〗', '︙' => '...', '︰' => '..', '︱' => '—', '︲' => '–', '︳' => '_', '︴' => '_', '︵' => '(', '︶' => ')', '︷' => '{', '︸' => '}', '︹' => '〔', '︺' => '〕', '︻' => '【', '︼' => '】', '︽' => '《', '︾' => '》', '︿' => '〈', '﹀' => '〉', '﹁' => '「', '﹂' => '」', '﹃' => '『', '﹄' => '』', '﹇' => '[', '﹈' => ']', '﹉' => ' ̅', '﹊' => ' ̅', '﹋' => ' ̅', '﹌' => ' ̅', '﹍' => '_', '﹎' => '_', '﹏' => '_', '﹐' => ',', '﹑' => '、', '﹒' => '.', '﹔' => ';', '﹕' => ':', '﹖' => '?', '﹗' => '!', '﹘' => '—', '﹙' => '(', '﹚' => ')', '﹛' => '{', '﹜' => '}', '﹝' => '〔', '﹞' => '〕', '﹟' => '#', '﹠' => '&', '﹡' => '*', '﹢' => '+', '﹣' => '-', '﹤' => '<', '﹥' => '>', '﹦' => '=', '﹨' => '\\', '﹩' => '$', '﹪' => '%', '﹫' => '@', 'ﹰ' => ' ً', 'ﹱ' => 'ـً', 'ﹲ' => ' ٌ', 'ﹴ' => ' ٍ', 'ﹶ' => ' َ', 'ﹷ' => 'ـَ', 'ﹸ' => ' ُ', 'ﹹ' => 'ـُ', 'ﹺ' => ' ِ', 'ﹻ' => 'ـِ', 'ﹼ' => ' ّ', 'ﹽ' => 'ـّ', 'ﹾ' => ' ْ', 'ﹿ' => 'ـْ', 'ﺀ' => 'ء', 'ﺁ' => 'آ', 'ﺂ' => 'آ', 'ﺃ' => 'أ', 'ﺄ' => 'أ', 'ﺅ' => 'ؤ', 'ﺆ' => 'ؤ', 'ﺇ' => 'إ', 'ﺈ' => 'إ', 'ﺉ' => 'ئ', 'ﺊ' => 'ئ', 'ﺋ' => 'ئ', 'ﺌ' => 'ئ', 'ﺍ' => 'ا', 'ﺎ' => 'ا', 'ﺏ' => 'ب', 'ﺐ' => 'ب', 'ﺑ' => 'ب', 'ﺒ' => 'ب', 'ﺓ' => 'ة', 'ﺔ' => 'ة', 'ﺕ' => 'ت', 'ﺖ' => 'ت', 'ﺗ' => 'ت', 'ﺘ' => 'ت', 'ﺙ' => 'ث', 'ﺚ' => 'ث', 'ﺛ' => 'ث', 'ﺜ' => 'ث', 'ﺝ' => 'ج', 'ﺞ' => 'ج', 'ﺟ' => 'ج', 'ﺠ' => 'ج', 'ﺡ' => 'ح', 'ﺢ' => 'ح', 'ﺣ' => 'ح', 'ﺤ' => 'ح', 'ﺥ' => 'خ', 'ﺦ' => 'خ', 'ﺧ' => 'خ', 'ﺨ' => 'خ', 'ﺩ' => 'د', 'ﺪ' => 'د', 'ﺫ' => 'ذ', 'ﺬ' => 'ذ', 'ﺭ' => 'ر', 'ﺮ' => 'ر', 'ﺯ' => 'ز', 'ﺰ' => 'ز', 'ﺱ' => 'س', 'ﺲ' => 'س', 'ﺳ' => 'س', 'ﺴ' => 'س', 'ﺵ' => 'ش', 'ﺶ' => 'ش', 'ﺷ' => 'ش', 'ﺸ' => 'ش', 'ﺹ' => 'ص', 'ﺺ' => 'ص', 'ﺻ' => 'ص', 'ﺼ' => 'ص', 'ﺽ' => 'ض', 'ﺾ' => 'ض', 'ﺿ' => 'ض', 'ﻀ' => 'ض', 'ﻁ' => 'ط', 'ﻂ' => 'ط', 'ﻃ' => 'ط', 'ﻄ' => 'ط', 'ﻅ' => 'ظ', 'ﻆ' => 'ظ', 'ﻇ' => 'ظ', 'ﻈ' => 'ظ', 'ﻉ' => 'ع', 'ﻊ' => 'ع', 'ﻋ' => 'ع', 'ﻌ' => 'ع', 'ﻍ' => 'غ', 'ﻎ' => 'غ', 'ﻏ' => 'غ', 'ﻐ' => 'غ', 'ﻑ' => 'ف', 'ﻒ' => 'ف', 'ﻓ' => 'ف', 'ﻔ' => 'ف', 'ﻕ' => 'ق', 'ﻖ' => 'ق', 'ﻗ' => 'ق', 'ﻘ' => 'ق', 'ﻙ' => 'ك', 'ﻚ' => 'ك', 'ﻛ' => 'ك', 'ﻜ' => 'ك', 'ﻝ' => 'ل', 'ﻞ' => 'ل', 'ﻟ' => 'ل', 'ﻠ' => 'ل', 'ﻡ' => 'م', 'ﻢ' => 'م', 'ﻣ' => 'م', 'ﻤ' => 'م', 'ﻥ' => 'ن', 'ﻦ' => 'ن', 'ﻧ' => 'ن', 'ﻨ' => 'ن', 'ﻩ' => 'ه', 'ﻪ' => 'ه', 'ﻫ' => 'ه', 'ﻬ' => 'ه', 'ﻭ' => 'و', 'ﻮ' => 'و', 'ﻯ' => 'ى', 'ﻰ' => 'ى', 'ﻱ' => 'ي', 'ﻲ' => 'ي', 'ﻳ' => 'ي', 'ﻴ' => 'ي', 'ﻵ' => 'لآ', 'ﻶ' => 'لآ', 'ﻷ' => 'لأ', 'ﻸ' => 'لأ', 'ﻹ' => 'لإ', 'ﻺ' => 'لإ', 'ﻻ' => 'لا', 'ﻼ' => 'لا', '!' => '!', '"' => '"', '#' => '#', '$' => '$', '%' => '%', '&' => '&', ''' => '\'', '(' => '(', ')' => ')', '*' => '*', '+' => '+', ',' => ',', '-' => '-', '.' => '.', '/' => '/', '0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', ':' => ':', ';' => ';', '<' => '<', '=' => '=', '>' => '>', '?' => '?', '@' => '@', 'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E', 'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J', 'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O', 'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T', 'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y', 'Z' => 'Z', '[' => '[', '\' => '\\', ']' => ']', '^' => '^', '_' => '_', '`' => '`', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', '{' => '{', '|' => '|', '}' => '}', '~' => '~', '⦅' => '⦅', '⦆' => '⦆', '。' => '。', '「' => '「', '」' => '」', '、' => '、', '・' => '・', 'ヲ' => 'ヲ', 'ァ' => 'ァ', 'ィ' => 'ィ', 'ゥ' => 'ゥ', 'ェ' => 'ェ', 'ォ' => 'ォ', 'ャ' => 'ャ', 'ュ' => 'ュ', 'ョ' => 'ョ', 'ッ' => 'ッ', 'ー' => 'ー', 'ア' => 'ア', 'イ' => 'イ', 'ウ' => 'ウ', 'エ' => 'エ', 'オ' => 'オ', 'カ' => 'カ', 'キ' => 'キ', 'ク' => 'ク', 'ケ' => 'ケ', 'コ' => 'コ', 'サ' => 'サ', 'シ' => 'シ', 'ス' => 'ス', 'セ' => 'セ', 'ソ' => 'ソ', 'タ' => 'タ', 'チ' => 'チ', 'ツ' => 'ツ', 'テ' => 'テ', 'ト' => 'ト', 'ナ' => 'ナ', 'ニ' => 'ニ', 'ヌ' => 'ヌ', 'ネ' => 'ネ', 'ノ' => 'ノ', 'ハ' => 'ハ', 'ヒ' => 'ヒ', 'フ' => 'フ', 'ヘ' => 'ヘ', 'ホ' => 'ホ', 'マ' => 'マ', 'ミ' => 'ミ', 'ム' => 'ム', 'メ' => 'メ', 'モ' => 'モ', 'ヤ' => 'ヤ', 'ユ' => 'ユ', 'ヨ' => 'ヨ', 'ラ' => 'ラ', 'リ' => 'リ', 'ル' => 'ル', 'レ' => 'レ', 'ロ' => 'ロ', 'ワ' => 'ワ', 'ン' => 'ン', '゙' => '゙', '゚' => '゚', 'ᅠ' => 'ᅠ', 'ᄀ' => 'ᄀ', 'ᄁ' => 'ᄁ', 'ᆪ' => 'ᆪ', 'ᄂ' => 'ᄂ', 'ᆬ' => 'ᆬ', 'ᆭ' => 'ᆭ', 'ᄃ' => 'ᄃ', 'ᄄ' => 'ᄄ', 'ᄅ' => 'ᄅ', 'ᆰ' => 'ᆰ', 'ᆱ' => 'ᆱ', 'ᆲ' => 'ᆲ', 'ᆳ' => 'ᆳ', 'ᆴ' => 'ᆴ', 'ᆵ' => 'ᆵ', 'ᄚ' => 'ᄚ', 'ᄆ' => 'ᄆ', 'ᄇ' => 'ᄇ', 'ᄈ' => 'ᄈ', 'ᄡ' => 'ᄡ', 'ᄉ' => 'ᄉ', 'ᄊ' => 'ᄊ', 'ᄋ' => 'ᄋ', 'ᄌ' => 'ᄌ', 'ᄍ' => 'ᄍ', 'ᄎ' => 'ᄎ', 'ᄏ' => 'ᄏ', 'ᄐ' => 'ᄐ', 'ᄑ' => 'ᄑ', 'ᄒ' => 'ᄒ', 'ᅡ' => 'ᅡ', 'ᅢ' => 'ᅢ', 'ᅣ' => 'ᅣ', 'ᅤ' => 'ᅤ', 'ᅥ' => 'ᅥ', 'ᅦ' => 'ᅦ', 'ᅧ' => 'ᅧ', 'ᅨ' => 'ᅨ', 'ᅩ' => 'ᅩ', 'ᅪ' => 'ᅪ', 'ᅫ' => 'ᅫ', 'ᅬ' => 'ᅬ', 'ᅭ' => 'ᅭ', 'ᅮ' => 'ᅮ', 'ᅯ' => 'ᅯ', 'ᅰ' => 'ᅰ', 'ᅱ' => 'ᅱ', 'ᅲ' => 'ᅲ', 'ᅳ' => 'ᅳ', 'ᅴ' => 'ᅴ', 'ᅵ' => 'ᅵ', '¢' => '¢', '£' => '£', '¬' => '¬', ' ̄' => ' ̄', '¦' => '¦', '¥' => '¥', '₩' => '₩', '│' => '│', '←' => '←', '↑' => '↑', '→' => '→', '↓' => '↓', '■' => '■', '○' => '○', '𝐀' => 'A', '𝐁' => 'B', '𝐂' => 'C', '𝐃' => 'D', '𝐄' => 'E', '𝐅' => 'F', '𝐆' => 'G', '𝐇' => 'H', '𝐈' => 'I', '𝐉' => 'J', '𝐊' => 'K', '𝐋' => 'L', '𝐌' => 'M', '𝐍' => 'N', '𝐎' => 'O', '𝐏' => 'P', '𝐐' => 'Q', '𝐑' => 'R', '𝐒' => 'S', '𝐓' => 'T', '𝐔' => 'U', '𝐕' => 'V', '𝐖' => 'W', '𝐗' => 'X', '𝐘' => 'Y', '𝐙' => 'Z', '𝐚' => 'a', '𝐛' => 'b', '𝐜' => 'c', '𝐝' => 'd', '𝐞' => 'e', '𝐟' => 'f', '𝐠' => 'g', '𝐡' => 'h', '𝐢' => 'i', '𝐣' => 'j', '𝐤' => 'k', '𝐥' => 'l', '𝐦' => 'm', '𝐧' => 'n', '𝐨' => 'o', '𝐩' => 'p', '𝐪' => 'q', '𝐫' => 'r', '𝐬' => 's', '𝐭' => 't', '𝐮' => 'u', '𝐯' => 'v', '𝐰' => 'w', '𝐱' => 'x', '𝐲' => 'y', '𝐳' => 'z', '𝐴' => 'A', '𝐵' => 'B', '𝐶' => 'C', '𝐷' => 'D', '𝐸' => 'E', '𝐹' => 'F', '𝐺' => 'G', '𝐻' => 'H', '𝐼' => 'I', '𝐽' => 'J', '𝐾' => 'K', '𝐿' => 'L', '𝑀' => 'M', '𝑁' => 'N', '𝑂' => 'O', '𝑃' => 'P', '𝑄' => 'Q', '𝑅' => 'R', '𝑆' => 'S', '𝑇' => 'T', '𝑈' => 'U', '𝑉' => 'V', '𝑊' => 'W', '𝑋' => 'X', '𝑌' => 'Y', '𝑍' => 'Z', '𝑎' => 'a', '𝑏' => 'b', '𝑐' => 'c', '𝑑' => 'd', '𝑒' => 'e', '𝑓' => 'f', '𝑔' => 'g', '𝑖' => 'i', '𝑗' => 'j', '𝑘' => 'k', '𝑙' => 'l', '𝑚' => 'm', '𝑛' => 'n', '𝑜' => 'o', '𝑝' => 'p', '𝑞' => 'q', '𝑟' => 'r', '𝑠' => 's', '𝑡' => 't', '𝑢' => 'u', '𝑣' => 'v', '𝑤' => 'w', '𝑥' => 'x', '𝑦' => 'y', '𝑧' => 'z', '𝑨' => 'A', '𝑩' => 'B', '𝑪' => 'C', '𝑫' => 'D', '𝑬' => 'E', '𝑭' => 'F', '𝑮' => 'G', '𝑯' => 'H', '𝑰' => 'I', '𝑱' => 'J', '𝑲' => 'K', '𝑳' => 'L', '𝑴' => 'M', '𝑵' => 'N', '𝑶' => 'O', '𝑷' => 'P', '𝑸' => 'Q', '𝑹' => 'R', '𝑺' => 'S', '𝑻' => 'T', '𝑼' => 'U', '𝑽' => 'V', '𝑾' => 'W', '𝑿' => 'X', '𝒀' => 'Y', '𝒁' => 'Z', '𝒂' => 'a', '𝒃' => 'b', '𝒄' => 'c', '𝒅' => 'd', '𝒆' => 'e', '𝒇' => 'f', '𝒈' => 'g', '𝒉' => 'h', '𝒊' => 'i', '𝒋' => 'j', '𝒌' => 'k', '𝒍' => 'l', '𝒎' => 'm', '𝒏' => 'n', '𝒐' => 'o', '𝒑' => 'p', '𝒒' => 'q', '𝒓' => 'r', '𝒔' => 's', '𝒕' => 't', '𝒖' => 'u', '𝒗' => 'v', '𝒘' => 'w', '𝒙' => 'x', '𝒚' => 'y', '𝒛' => 'z', '𝒜' => 'A', '𝒞' => 'C', '𝒟' => 'D', '𝒢' => 'G', '𝒥' => 'J', '𝒦' => 'K', '𝒩' => 'N', '𝒪' => 'O', '𝒫' => 'P', '𝒬' => 'Q', '𝒮' => 'S', '𝒯' => 'T', '𝒰' => 'U', '𝒱' => 'V', '𝒲' => 'W', '𝒳' => 'X', '𝒴' => 'Y', '𝒵' => 'Z', '𝒶' => 'a', '𝒷' => 'b', '𝒸' => 'c', '𝒹' => 'd', '𝒻' => 'f', '𝒽' => 'h', '𝒾' => 'i', '𝒿' => 'j', '𝓀' => 'k', '𝓁' => 'l', '𝓂' => 'm', '𝓃' => 'n', '𝓅' => 'p', '𝓆' => 'q', '𝓇' => 'r', '𝓈' => 's', '𝓉' => 't', '𝓊' => 'u', '𝓋' => 'v', '𝓌' => 'w', '𝓍' => 'x', '𝓎' => 'y', '𝓏' => 'z', '𝓐' => 'A', '𝓑' => 'B', '𝓒' => 'C', '𝓓' => 'D', '𝓔' => 'E', '𝓕' => 'F', '𝓖' => 'G', '𝓗' => 'H', '𝓘' => 'I', '𝓙' => 'J', '𝓚' => 'K', '𝓛' => 'L', '𝓜' => 'M', '𝓝' => 'N', '𝓞' => 'O', '𝓟' => 'P', '𝓠' => 'Q', '𝓡' => 'R', '𝓢' => 'S', '𝓣' => 'T', '𝓤' => 'U', '𝓥' => 'V', '𝓦' => 'W', '𝓧' => 'X', '𝓨' => 'Y', '𝓩' => 'Z', '𝓪' => 'a', '𝓫' => 'b', '𝓬' => 'c', '𝓭' => 'd', '𝓮' => 'e', '𝓯' => 'f', '𝓰' => 'g', '𝓱' => 'h', '𝓲' => 'i', '𝓳' => 'j', '𝓴' => 'k', '𝓵' => 'l', '𝓶' => 'm', '𝓷' => 'n', '𝓸' => 'o', '𝓹' => 'p', '𝓺' => 'q', '𝓻' => 'r', '𝓼' => 's', '𝓽' => 't', '𝓾' => 'u', '𝓿' => 'v', '𝔀' => 'w', '𝔁' => 'x', '𝔂' => 'y', '𝔃' => 'z', '𝔄' => 'A', '𝔅' => 'B', '𝔇' => 'D', '𝔈' => 'E', '𝔉' => 'F', '𝔊' => 'G', '𝔍' => 'J', '𝔎' => 'K', '𝔏' => 'L', '𝔐' => 'M', '𝔑' => 'N', '𝔒' => 'O', '𝔓' => 'P', '𝔔' => 'Q', '𝔖' => 'S', '𝔗' => 'T', '𝔘' => 'U', '𝔙' => 'V', '𝔚' => 'W', '𝔛' => 'X', '𝔜' => 'Y', '𝔞' => 'a', '𝔟' => 'b', '𝔠' => 'c', '𝔡' => 'd', '𝔢' => 'e', '𝔣' => 'f', '𝔤' => 'g', '𝔥' => 'h', '𝔦' => 'i', '𝔧' => 'j', '𝔨' => 'k', '𝔩' => 'l', '𝔪' => 'm', '𝔫' => 'n', '𝔬' => 'o', '𝔭' => 'p', '𝔮' => 'q', '𝔯' => 'r', '𝔰' => 's', '𝔱' => 't', '𝔲' => 'u', '𝔳' => 'v', '𝔴' => 'w', '𝔵' => 'x', '𝔶' => 'y', '𝔷' => 'z', '𝔸' => 'A', '𝔹' => 'B', '𝔻' => 'D', '𝔼' => 'E', '𝔽' => 'F', '𝔾' => 'G', '𝕀' => 'I', '𝕁' => 'J', '𝕂' => 'K', '𝕃' => 'L', '𝕄' => 'M', '𝕆' => 'O', '𝕊' => 'S', '𝕋' => 'T', '𝕌' => 'U', '𝕍' => 'V', '𝕎' => 'W', '𝕏' => 'X', '𝕐' => 'Y', '𝕒' => 'a', '𝕓' => 'b', '𝕔' => 'c', '𝕕' => 'd', '𝕖' => 'e', '𝕗' => 'f', '𝕘' => 'g', '𝕙' => 'h', '𝕚' => 'i', '𝕛' => 'j', '𝕜' => 'k', '𝕝' => 'l', '𝕞' => 'm', '𝕟' => 'n', '𝕠' => 'o', '𝕡' => 'p', '𝕢' => 'q', '𝕣' => 'r', '𝕤' => 's', '𝕥' => 't', '𝕦' => 'u', '𝕧' => 'v', '𝕨' => 'w', '𝕩' => 'x', '𝕪' => 'y', '𝕫' => 'z', '𝕬' => 'A', '𝕭' => 'B', '𝕮' => 'C', '𝕯' => 'D', '𝕰' => 'E', '𝕱' => 'F', '𝕲' => 'G', '𝕳' => 'H', '𝕴' => 'I', '𝕵' => 'J', '𝕶' => 'K', '𝕷' => 'L', '𝕸' => 'M', '𝕹' => 'N', '𝕺' => 'O', '𝕻' => 'P', '𝕼' => 'Q', '𝕽' => 'R', '𝕾' => 'S', '𝕿' => 'T', '𝖀' => 'U', '𝖁' => 'V', '𝖂' => 'W', '𝖃' => 'X', '𝖄' => 'Y', '𝖅' => 'Z', '𝖆' => 'a', '𝖇' => 'b', '𝖈' => 'c', '𝖉' => 'd', '𝖊' => 'e', '𝖋' => 'f', '𝖌' => 'g', '𝖍' => 'h', '𝖎' => 'i', '𝖏' => 'j', '𝖐' => 'k', '𝖑' => 'l', '𝖒' => 'm', '𝖓' => 'n', '𝖔' => 'o', '𝖕' => 'p', '𝖖' => 'q', '𝖗' => 'r', '𝖘' => 's', '𝖙' => 't', '𝖚' => 'u', '𝖛' => 'v', '𝖜' => 'w', '𝖝' => 'x', '𝖞' => 'y', '𝖟' => 'z', '𝖠' => 'A', '𝖡' => 'B', '𝖢' => 'C', '𝖣' => 'D', '𝖤' => 'E', '𝖥' => 'F', '𝖦' => 'G', '𝖧' => 'H', '𝖨' => 'I', '𝖩' => 'J', '𝖪' => 'K', '𝖫' => 'L', '𝖬' => 'M', '𝖭' => 'N', '𝖮' => 'O', '𝖯' => 'P', '𝖰' => 'Q', '𝖱' => 'R', '𝖲' => 'S', '𝖳' => 'T', '𝖴' => 'U', '𝖵' => 'V', '𝖶' => 'W', '𝖷' => 'X', '𝖸' => 'Y', '𝖹' => 'Z', '𝖺' => 'a', '𝖻' => 'b', '𝖼' => 'c', '𝖽' => 'd', '𝖾' => 'e', '𝖿' => 'f', '𝗀' => 'g', '𝗁' => 'h', '𝗂' => 'i', '𝗃' => 'j', '𝗄' => 'k', '𝗅' => 'l', '𝗆' => 'm', '𝗇' => 'n', '𝗈' => 'o', '𝗉' => 'p', '𝗊' => 'q', '𝗋' => 'r', '𝗌' => 's', '𝗍' => 't', '𝗎' => 'u', '𝗏' => 'v', '𝗐' => 'w', '𝗑' => 'x', '𝗒' => 'y', '𝗓' => 'z', '𝗔' => 'A', '𝗕' => 'B', '𝗖' => 'C', '𝗗' => 'D', '𝗘' => 'E', '𝗙' => 'F', '𝗚' => 'G', '𝗛' => 'H', '𝗜' => 'I', '𝗝' => 'J', '𝗞' => 'K', '𝗟' => 'L', '𝗠' => 'M', '𝗡' => 'N', '𝗢' => 'O', '𝗣' => 'P', '𝗤' => 'Q', '𝗥' => 'R', '𝗦' => 'S', '𝗧' => 'T', '𝗨' => 'U', '𝗩' => 'V', '𝗪' => 'W', '𝗫' => 'X', '𝗬' => 'Y', '𝗭' => 'Z', '𝗮' => 'a', '𝗯' => 'b', '𝗰' => 'c', '𝗱' => 'd', '𝗲' => 'e', '𝗳' => 'f', '𝗴' => 'g', '𝗵' => 'h', '𝗶' => 'i', '𝗷' => 'j', '𝗸' => 'k', '𝗹' => 'l', '𝗺' => 'm', '𝗻' => 'n', '𝗼' => 'o', '𝗽' => 'p', '𝗾' => 'q', '𝗿' => 'r', '𝘀' => 's', '𝘁' => 't', '𝘂' => 'u', '𝘃' => 'v', '𝘄' => 'w', '𝘅' => 'x', '𝘆' => 'y', '𝘇' => 'z', '𝘈' => 'A', '𝘉' => 'B', '𝘊' => 'C', '𝘋' => 'D', '𝘌' => 'E', '𝘍' => 'F', '𝘎' => 'G', '𝘏' => 'H', '𝘐' => 'I', '𝘑' => 'J', '𝘒' => 'K', '𝘓' => 'L', '𝘔' => 'M', '𝘕' => 'N', '𝘖' => 'O', '𝘗' => 'P', '𝘘' => 'Q', '𝘙' => 'R', '𝘚' => 'S', '𝘛' => 'T', '𝘜' => 'U', '𝘝' => 'V', '𝘞' => 'W', '𝘟' => 'X', '𝘠' => 'Y', '𝘡' => 'Z', '𝘢' => 'a', '𝘣' => 'b', '𝘤' => 'c', '𝘥' => 'd', '𝘦' => 'e', '𝘧' => 'f', '𝘨' => 'g', '𝘩' => 'h', '𝘪' => 'i', '𝘫' => 'j', '𝘬' => 'k', '𝘭' => 'l', '𝘮' => 'm', '𝘯' => 'n', '𝘰' => 'o', '𝘱' => 'p', '𝘲' => 'q', '𝘳' => 'r', '𝘴' => 's', '𝘵' => 't', '𝘶' => 'u', '𝘷' => 'v', '𝘸' => 'w', '𝘹' => 'x', '𝘺' => 'y', '𝘻' => 'z', '𝘼' => 'A', '𝘽' => 'B', '𝘾' => 'C', '𝘿' => 'D', '𝙀' => 'E', '𝙁' => 'F', '𝙂' => 'G', '𝙃' => 'H', '𝙄' => 'I', '𝙅' => 'J', '𝙆' => 'K', '𝙇' => 'L', '𝙈' => 'M', '𝙉' => 'N', '𝙊' => 'O', '𝙋' => 'P', '𝙌' => 'Q', '𝙍' => 'R', '𝙎' => 'S', '𝙏' => 'T', '𝙐' => 'U', '𝙑' => 'V', '𝙒' => 'W', '𝙓' => 'X', '𝙔' => 'Y', '𝙕' => 'Z', '𝙖' => 'a', '𝙗' => 'b', '𝙘' => 'c', '𝙙' => 'd', '𝙚' => 'e', '𝙛' => 'f', '𝙜' => 'g', '𝙝' => 'h', '𝙞' => 'i', '𝙟' => 'j', '𝙠' => 'k', '𝙡' => 'l', '𝙢' => 'm', '𝙣' => 'n', '𝙤' => 'o', '𝙥' => 'p', '𝙦' => 'q', '𝙧' => 'r', '𝙨' => 's', '𝙩' => 't', '𝙪' => 'u', '𝙫' => 'v', '𝙬' => 'w', '𝙭' => 'x', '𝙮' => 'y', '𝙯' => 'z', '𝙰' => 'A', '𝙱' => 'B', '𝙲' => 'C', '𝙳' => 'D', '𝙴' => 'E', '𝙵' => 'F', '𝙶' => 'G', '𝙷' => 'H', '𝙸' => 'I', '𝙹' => 'J', '𝙺' => 'K', '𝙻' => 'L', '𝙼' => 'M', '𝙽' => 'N', '𝙾' => 'O', '𝙿' => 'P', '𝚀' => 'Q', '𝚁' => 'R', '𝚂' => 'S', '𝚃' => 'T', '𝚄' => 'U', '𝚅' => 'V', '𝚆' => 'W', '𝚇' => 'X', '𝚈' => 'Y', '𝚉' => 'Z', '𝚊' => 'a', '𝚋' => 'b', '𝚌' => 'c', '𝚍' => 'd', '𝚎' => 'e', '𝚏' => 'f', '𝚐' => 'g', '𝚑' => 'h', '𝚒' => 'i', '𝚓' => 'j', '𝚔' => 'k', '𝚕' => 'l', '𝚖' => 'm', '𝚗' => 'n', '𝚘' => 'o', '𝚙' => 'p', '𝚚' => 'q', '𝚛' => 'r', '𝚜' => 's', '𝚝' => 't', '𝚞' => 'u', '𝚟' => 'v', '𝚠' => 'w', '𝚡' => 'x', '𝚢' => 'y', '𝚣' => 'z', '𝚤' => 'ı', '𝚥' => 'ȷ', '𝚨' => 'Α', '𝚩' => 'Β', '𝚪' => 'Γ', '𝚫' => 'Δ', '𝚬' => 'Ε', '𝚭' => 'Ζ', '𝚮' => 'Η', '𝚯' => 'Θ', '𝚰' => 'Ι', '𝚱' => 'Κ', '𝚲' => 'Λ', '𝚳' => 'Μ', '𝚴' => 'Ν', '𝚵' => 'Ξ', '𝚶' => 'Ο', '𝚷' => 'Π', '𝚸' => 'Ρ', '𝚹' => 'Θ', '𝚺' => 'Σ', '𝚻' => 'Τ', '𝚼' => 'Υ', '𝚽' => 'Φ', '𝚾' => 'Χ', '𝚿' => 'Ψ', '𝛀' => 'Ω', '𝛁' => '∇', '𝛂' => 'α', '𝛃' => 'β', '𝛄' => 'γ', '𝛅' => 'δ', '𝛆' => 'ε', '𝛇' => 'ζ', '𝛈' => 'η', '𝛉' => 'θ', '𝛊' => 'ι', '𝛋' => 'κ', '𝛌' => 'λ', '𝛍' => 'μ', '𝛎' => 'ν', '𝛏' => 'ξ', '𝛐' => 'ο', '𝛑' => 'π', '𝛒' => 'ρ', '𝛓' => 'ς', '𝛔' => 'σ', '𝛕' => 'τ', '𝛖' => 'υ', '𝛗' => 'φ', '𝛘' => 'χ', '𝛙' => 'ψ', '𝛚' => 'ω', '𝛛' => '∂', '𝛜' => 'ε', '𝛝' => 'θ', '𝛞' => 'κ', '𝛟' => 'φ', '𝛠' => 'ρ', '𝛡' => 'π', '𝛢' => 'Α', '𝛣' => 'Β', '𝛤' => 'Γ', '𝛥' => 'Δ', '𝛦' => 'Ε', '𝛧' => 'Ζ', '𝛨' => 'Η', '𝛩' => 'Θ', '𝛪' => 'Ι', '𝛫' => 'Κ', '𝛬' => 'Λ', '𝛭' => 'Μ', '𝛮' => 'Ν', '𝛯' => 'Ξ', '𝛰' => 'Ο', '𝛱' => 'Π', '𝛲' => 'Ρ', '𝛳' => 'Θ', '𝛴' => 'Σ', '𝛵' => 'Τ', '𝛶' => 'Υ', '𝛷' => 'Φ', '𝛸' => 'Χ', '𝛹' => 'Ψ', '𝛺' => 'Ω', '𝛻' => '∇', '𝛼' => 'α', '𝛽' => 'β', '𝛾' => 'γ', '𝛿' => 'δ', '𝜀' => 'ε', '𝜁' => 'ζ', '𝜂' => 'η', '𝜃' => 'θ', '𝜄' => 'ι', '𝜅' => 'κ', '𝜆' => 'λ', '𝜇' => 'μ', '𝜈' => 'ν', '𝜉' => 'ξ', '𝜊' => 'ο', '𝜋' => 'π', '𝜌' => 'ρ', '𝜍' => 'ς', '𝜎' => 'σ', '𝜏' => 'τ', '𝜐' => 'υ', '𝜑' => 'φ', '𝜒' => 'χ', '𝜓' => 'ψ', '𝜔' => 'ω', '𝜕' => '∂', '𝜖' => 'ε', '𝜗' => 'θ', '𝜘' => 'κ', '𝜙' => 'φ', '𝜚' => 'ρ', '𝜛' => 'π', '𝜜' => 'Α', '𝜝' => 'Β', '𝜞' => 'Γ', '𝜟' => 'Δ', '𝜠' => 'Ε', '𝜡' => 'Ζ', '𝜢' => 'Η', '𝜣' => 'Θ', '𝜤' => 'Ι', '𝜥' => 'Κ', '𝜦' => 'Λ', '𝜧' => 'Μ', '𝜨' => 'Ν', '𝜩' => 'Ξ', '𝜪' => 'Ο', '𝜫' => 'Π', '𝜬' => 'Ρ', '𝜭' => 'Θ', '𝜮' => 'Σ', '𝜯' => 'Τ', '𝜰' => 'Υ', '𝜱' => 'Φ', '𝜲' => 'Χ', '𝜳' => 'Ψ', '𝜴' => 'Ω', '𝜵' => '∇', '𝜶' => 'α', '𝜷' => 'β', '𝜸' => 'γ', '𝜹' => 'δ', '𝜺' => 'ε', '𝜻' => 'ζ', '𝜼' => 'η', '𝜽' => 'θ', '𝜾' => 'ι', '𝜿' => 'κ', '𝝀' => 'λ', '𝝁' => 'μ', '𝝂' => 'ν', '𝝃' => 'ξ', '𝝄' => 'ο', '𝝅' => 'π', '𝝆' => 'ρ', '𝝇' => 'ς', '𝝈' => 'σ', '𝝉' => 'τ', '𝝊' => 'υ', '𝝋' => 'φ', '𝝌' => 'χ', '𝝍' => 'ψ', '𝝎' => 'ω', '𝝏' => '∂', '𝝐' => 'ε', '𝝑' => 'θ', '𝝒' => 'κ', '𝝓' => 'φ', '𝝔' => 'ρ', '𝝕' => 'π', '𝝖' => 'Α', '𝝗' => 'Β', '𝝘' => 'Γ', '𝝙' => 'Δ', '𝝚' => 'Ε', '𝝛' => 'Ζ', '𝝜' => 'Η', '𝝝' => 'Θ', '𝝞' => 'Ι', '𝝟' => 'Κ', '𝝠' => 'Λ', '𝝡' => 'Μ', '𝝢' => 'Ν', '𝝣' => 'Ξ', '𝝤' => 'Ο', '𝝥' => 'Π', '𝝦' => 'Ρ', '𝝧' => 'Θ', '𝝨' => 'Σ', '𝝩' => 'Τ', '𝝪' => 'Υ', '𝝫' => 'Φ', '𝝬' => 'Χ', '𝝭' => 'Ψ', '𝝮' => 'Ω', '𝝯' => '∇', '𝝰' => 'α', '𝝱' => 'β', '𝝲' => 'γ', '𝝳' => 'δ', '𝝴' => 'ε', '𝝵' => 'ζ', '𝝶' => 'η', '𝝷' => 'θ', '𝝸' => 'ι', '𝝹' => 'κ', '𝝺' => 'λ', '𝝻' => 'μ', '𝝼' => 'ν', '𝝽' => 'ξ', '𝝾' => 'ο', '𝝿' => 'π', '𝞀' => 'ρ', '𝞁' => 'ς', '𝞂' => 'σ', '𝞃' => 'τ', '𝞄' => 'υ', '𝞅' => 'φ', '𝞆' => 'χ', '𝞇' => 'ψ', '𝞈' => 'ω', '𝞉' => '∂', '𝞊' => 'ε', '𝞋' => 'θ', '𝞌' => 'κ', '𝞍' => 'φ', '𝞎' => 'ρ', '𝞏' => 'π', '𝞐' => 'Α', '𝞑' => 'Β', '𝞒' => 'Γ', '𝞓' => 'Δ', '𝞔' => 'Ε', '𝞕' => 'Ζ', '𝞖' => 'Η', '𝞗' => 'Θ', '𝞘' => 'Ι', '𝞙' => 'Κ', '𝞚' => 'Λ', '𝞛' => 'Μ', '𝞜' => 'Ν', '𝞝' => 'Ξ', '𝞞' => 'Ο', '𝞟' => 'Π', '𝞠' => 'Ρ', '𝞡' => 'Θ', '𝞢' => 'Σ', '𝞣' => 'Τ', '𝞤' => 'Υ', '𝞥' => 'Φ', '𝞦' => 'Χ', '𝞧' => 'Ψ', '𝞨' => 'Ω', '𝞩' => '∇', '𝞪' => 'α', '𝞫' => 'β', '𝞬' => 'γ', '𝞭' => 'δ', '𝞮' => 'ε', '𝞯' => 'ζ', '𝞰' => 'η', '𝞱' => 'θ', '𝞲' => 'ι', '𝞳' => 'κ', '𝞴' => 'λ', '𝞵' => 'μ', '𝞶' => 'ν', '𝞷' => 'ξ', '𝞸' => 'ο', '𝞹' => 'π', '𝞺' => 'ρ', '𝞻' => 'ς', '𝞼' => 'σ', '𝞽' => 'τ', '𝞾' => 'υ', '𝞿' => 'φ', '𝟀' => 'χ', '𝟁' => 'ψ', '𝟂' => 'ω', '𝟃' => '∂', '𝟄' => 'ε', '𝟅' => 'θ', '𝟆' => 'κ', '𝟇' => 'φ', '𝟈' => 'ρ', '𝟉' => 'π', '𝟊' => 'Ϝ', '𝟋' => 'ϝ', '𝟎' => '0', '𝟏' => '1', '𝟐' => '2', '𝟑' => '3', '𝟒' => '4', '𝟓' => '5', '𝟔' => '6', '𝟕' => '7', '𝟖' => '8', '𝟗' => '9', '𝟘' => '0', '𝟙' => '1', '𝟚' => '2', '𝟛' => '3', '𝟜' => '4', '𝟝' => '5', '𝟞' => '6', '𝟟' => '7', '𝟠' => '8', '𝟡' => '9', '𝟢' => '0', '𝟣' => '1', '𝟤' => '2', '𝟥' => '3', '𝟦' => '4', '𝟧' => '5', '𝟨' => '6', '𝟩' => '7', '𝟪' => '8', '𝟫' => '9', '𝟬' => '0', '𝟭' => '1', '𝟮' => '2', '𝟯' => '3', '𝟰' => '4', '𝟱' => '5', '𝟲' => '6', '𝟳' => '7', '𝟴' => '8', '𝟵' => '9', '𝟶' => '0', '𝟷' => '1', '𝟸' => '2', '𝟹' => '3', '𝟺' => '4', '𝟻' => '5', '𝟼' => '6', '𝟽' => '7', '𝟾' => '8', '𝟿' => '9', '𞸀' => 'ا', '𞸁' => 'ب', '𞸂' => 'ج', '𞸃' => 'د', '𞸅' => 'و', '𞸆' => 'ز', '𞸇' => 'ح', '𞸈' => 'ط', '𞸉' => 'ي', '𞸊' => 'ك', '𞸋' => 'ل', '𞸌' => 'م', '𞸍' => 'ن', '𞸎' => 'س', '𞸏' => 'ع', '𞸐' => 'ف', '𞸑' => 'ص', '𞸒' => 'ق', '𞸓' => 'ر', '𞸔' => 'ش', '𞸕' => 'ت', '𞸖' => 'ث', '𞸗' => 'خ', '𞸘' => 'ذ', '𞸙' => 'ض', '𞸚' => 'ظ', '𞸛' => 'غ', '𞸜' => 'ٮ', '𞸝' => 'ں', '𞸞' => 'ڡ', '𞸟' => 'ٯ', '𞸡' => 'ب', '𞸢' => 'ج', '𞸤' => 'ه', '𞸧' => 'ح', '𞸩' => 'ي', '𞸪' => 'ك', '𞸫' => 'ل', '𞸬' => 'م', '𞸭' => 'ن', '𞸮' => 'س', '𞸯' => 'ع', '𞸰' => 'ف', '𞸱' => 'ص', '𞸲' => 'ق', '𞸴' => 'ش', '𞸵' => 'ت', '𞸶' => 'ث', '𞸷' => 'خ', '𞸹' => 'ض', '𞸻' => 'غ', '𞹂' => 'ج', '𞹇' => 'ح', '𞹉' => 'ي', '𞹋' => 'ل', '𞹍' => 'ن', '𞹎' => 'س', '𞹏' => 'ع', '𞹑' => 'ص', '𞹒' => 'ق', '𞹔' => 'ش', '𞹗' => 'خ', '𞹙' => 'ض', '𞹛' => 'غ', '𞹝' => 'ں', '𞹟' => 'ٯ', '𞹡' => 'ب', '𞹢' => 'ج', '𞹤' => 'ه', '𞹧' => 'ح', '𞹨' => 'ط', '𞹩' => 'ي', '𞹪' => 'ك', '𞹬' => 'م', '𞹭' => 'ن', '𞹮' => 'س', '𞹯' => 'ع', '𞹰' => 'ف', '𞹱' => 'ص', '𞹲' => 'ق', '𞹴' => 'ش', '𞹵' => 'ت', '𞹶' => 'ث', '𞹷' => 'خ', '𞹹' => 'ض', '𞹺' => 'ظ', '𞹻' => 'غ', '𞹼' => 'ٮ', '𞹾' => 'ڡ', '𞺀' => 'ا', '𞺁' => 'ب', '𞺂' => 'ج', '𞺃' => 'د', '𞺄' => 'ه', '𞺅' => 'و', '𞺆' => 'ز', '𞺇' => 'ح', '𞺈' => 'ط', '𞺉' => 'ي', '𞺋' => 'ل', '𞺌' => 'م', '𞺍' => 'ن', '𞺎' => 'س', '𞺏' => 'ع', '𞺐' => 'ف', '𞺑' => 'ص', '𞺒' => 'ق', '𞺓' => 'ر', '𞺔' => 'ش', '𞺕' => 'ت', '𞺖' => 'ث', '𞺗' => 'خ', '𞺘' => 'ذ', '𞺙' => 'ض', '𞺚' => 'ظ', '𞺛' => 'غ', '𞺡' => 'ب', '𞺢' => 'ج', '𞺣' => 'د', '𞺥' => 'و', '𞺦' => 'ز', '𞺧' => 'ح', '𞺨' => 'ط', '𞺩' => 'ي', '𞺫' => 'ل', '𞺬' => 'م', '𞺭' => 'ن', '𞺮' => 'س', '𞺯' => 'ع', '𞺰' => 'ف', '𞺱' => 'ص', '𞺲' => 'ق', '𞺳' => 'ر', '𞺴' => 'ش', '𞺵' => 'ت', '𞺶' => 'ث', '𞺷' => 'خ', '𞺸' => 'ذ', '𞺹' => 'ض', '𞺺' => 'ظ', '𞺻' => 'غ', '🄀' => '0.', '🄁' => '0,', '🄂' => '1,', '🄃' => '2,', '🄄' => '3,', '🄅' => '4,', '🄆' => '5,', '🄇' => '6,', '🄈' => '7,', '🄉' => '8,', '🄊' => '9,', '🄐' => '(A)', '🄑' => '(B)', '🄒' => '(C)', '🄓' => '(D)', '🄔' => '(E)', '🄕' => '(F)', '🄖' => '(G)', '🄗' => '(H)', '🄘' => '(I)', '🄙' => '(J)', '🄚' => '(K)', '🄛' => '(L)', '🄜' => '(M)', '🄝' => '(N)', '🄞' => '(O)', '🄟' => '(P)', '🄠' => '(Q)', '🄡' => '(R)', '🄢' => '(S)', '🄣' => '(T)', '🄤' => '(U)', '🄥' => '(V)', '🄦' => '(W)', '🄧' => '(X)', '🄨' => '(Y)', '🄩' => '(Z)', '🄪' => '〔S〕', '🄫' => 'C', '🄬' => 'R', '🄭' => 'CD', '🄮' => 'WZ', '🄰' => 'A', '🄱' => 'B', '🄲' => 'C', '🄳' => 'D', '🄴' => 'E', '🄵' => 'F', '🄶' => 'G', '🄷' => 'H', '🄸' => 'I', '🄹' => 'J', '🄺' => 'K', '🄻' => 'L', '🄼' => 'M', '🄽' => 'N', '🄾' => 'O', '🄿' => 'P', '🅀' => 'Q', '🅁' => 'R', '🅂' => 'S', '🅃' => 'T', '🅄' => 'U', '🅅' => 'V', '🅆' => 'W', '🅇' => 'X', '🅈' => 'Y', '🅉' => 'Z', '🅊' => 'HV', '🅋' => 'MV', '🅌' => 'SD', '🅍' => 'SS', '🅎' => 'PPV', '🅏' => 'WC', '🅪' => 'MC', '🅫' => 'MD', '🅬' => 'MR', '🆐' => 'DJ', '🈀' => 'ほか', '🈁' => 'ココ', '🈂' => 'サ', '🈐' => '手', '🈑' => '字', '🈒' => '双', '🈓' => 'デ', '🈔' => '二', '🈕' => '多', '🈖' => '解', '🈗' => '天', '🈘' => '交', '🈙' => '映', '🈚' => '無', '🈛' => '料', '🈜' => '前', '🈝' => '後', '🈞' => '再', '🈟' => '新', '🈠' => '初', '🈡' => '終', '🈢' => '生', '🈣' => '販', '🈤' => '声', '🈥' => '吹', '🈦' => '演', '🈧' => '投', '🈨' => '捕', '🈩' => '一', '🈪' => '三', '🈫' => '遊', '🈬' => '左', '🈭' => '中', '🈮' => '右', '🈯' => '指', '🈰' => '走', '🈱' => '打', '🈲' => '禁', '🈳' => '空', '🈴' => '合', '🈵' => '満', '🈶' => '有', '🈷' => '月', '🈸' => '申', '🈹' => '割', '🈺' => '営', '🈻' => '配', '🉀' => '〔本〕', '🉁' => '〔三〕', '🉂' => '〔二〕', '🉃' => '〔安〕', '🉄' => '〔点〕', '🉅' => '〔打〕', '🉆' => '〔盗〕', '🉇' => '〔勝〕', '🉈' => '〔敗〕', '🉐' => '得', '🉑' => '可', '🯰' => '0', '🯱' => '1', '🯲' => '2', '🯳' => '3', '🯴' => '4', '🯵' => '5', '🯶' => '6', '🯷' => '7', '🯸' => '8', '🯹' => '9'); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap.php b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap.php deleted file mode 100644 index 3608e5c05..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap.php +++ /dev/null @@ -1,23 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Intl\Normalizer as p; - -if (\PHP_VERSION_ID >= 80000) { - return require __DIR__.'/bootstrap80.php'; -} - -if (!function_exists('normalizer_is_normalized')) { - function normalizer_is_normalized($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::isNormalized($string, $form); } -} -if (!function_exists('normalizer_normalize')) { - function normalizer_normalize($string, $form = p\Normalizer::FORM_C) { return p\Normalizer::normalize($string, $form); } -} diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php deleted file mode 100644 index 35b06c087..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php +++ /dev/null @@ -1,22 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Polyfill\Intl\Normalizer as p; - -if (!function_exists('normalizer_is_normalized')) { - function normalizer_is_normalized(?string $string, ?int $form = p\Normalizer::FORM_C): bool { return p\Normalizer::isNormalized((string) $string, (int) $form); } -} -if (!function_exists('normalizer_normalize')) { - /** - * @return string|false - */ - function normalizer_normalize(?string $string, ?int $form = p\Normalizer::FORM_C) { return p\Normalizer::normalize((string) $string, (int) $form); } -} diff --git a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/composer.json b/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/composer.json deleted file mode 100644 index e8b1c7e96..000000000 --- a/vendor/rector/rector/vendor/symfony/polyfill-intl-normalizer/composer.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "symfony\/polyfill-intl-normalizer", - "type": "library", - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "keywords": [ - "polyfill", - "shim", - "compatibility", - "portable", - "intl", - "normalizer" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=7.1" - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources\/stubs" - ] - }, - "suggest": { - "ext-intl": "For best performance" - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony\/polyfill", - "url": "https:\/\/github.com\/symfony\/polyfill" - } - } -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/LICENSE b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/LICENSE +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Mbstring.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Mbstring.php index 059465918..3b0a3eb27 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Mbstring.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -67,7 +67,7 @@ final class Mbstring { public const MB_CASE_FOLD = \PHP_INT_MAX; - private const CASE_FOLD = [['µ', 'ſ', "ͅ", 'ς', "ϐ", "ϑ", "ϕ", "ϖ", "ϰ", "ϱ", "ϵ", "ẛ", "ι"], ['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "ṡ", 'ι']]; + private const SIMPLE_CASE_FOLD = [['µ', 'ſ', "ͅ", 'ς', "ϐ", "ϑ", "ϕ", "ϖ", "ϰ", "ϱ", "ϵ", "ẛ", "ι"], ['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "ṡ", 'ι']]; private static $encodingList = ['ASCII', 'UTF-8']; private static $language = 'neutral'; private static $internalEncoding = 'UTF-8'; @@ -251,7 +251,11 @@ public static function mb_convert_case($s, $mode, $encoding = null) $map = $upper; } else { if (self::MB_CASE_FOLD === $mode) { - $s = \str_replace(self::CASE_FOLD[0], self::CASE_FOLD[1], $s); + static $caseFolding = null; + if (null === $caseFolding) { + $caseFolding = self::getData('caseFolding'); + } + $s = \strtr($s, $caseFolding); } static $lower = null; if (null === $lower) { @@ -333,13 +337,28 @@ public static function mb_encoding_aliases($encoding) } public static function mb_check_encoding($var = null, $encoding = null) { + if (\PHP_VERSION_ID < 70200 && \is_array($var)) { + \trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); + return null; + } if (null === $encoding) { if (null === $var) { return \false; } $encoding = self::$internalEncoding; } - return self::mb_detect_encoding($var, [$encoding]) || \false !== @\iconv($encoding, $encoding, $var); + if (!\is_array($var)) { + return self::mb_detect_encoding($var, [$encoding]) || \false !== @\iconv($encoding, $encoding, $var); + } + foreach ($var as $key => $value) { + if (!self::mb_check_encoding($key, $encoding)) { + return \false; + } + if (!self::mb_check_encoding($value, $encoding)) { + return \false; + } + } + return \true; } public static function mb_detect_encoding($str, $encodingList = null, $strict = \false) { @@ -521,8 +540,7 @@ public static function mb_substr($s, $start, $length = null, $encoding = null) } public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + [$haystack, $needle] = \str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], [self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding), self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding)]); return self::mb_strpos($haystack, $needle, $offset, $encoding); } public static function mb_stristr($haystack, $needle, $part = \false, $encoding = null) @@ -549,8 +567,10 @@ public static function mb_strrichr($haystack, $needle, $part = \false, $encoding } public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + $haystack = self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding); + $needle = self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding); + $haystack = \str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $haystack); + $needle = \str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $needle); return self::mb_strrpos($haystack, $needle, $offset, $encoding); } public static function mb_strstr($haystack, $needle, $part = \false, $encoding = null) @@ -636,6 +656,41 @@ public static function mb_ord($s, $encoding = null) } return $code; } + public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, string $encoding = null) : string + { + if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], \true)) { + throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); + } + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } + try { + $validEncoding = @self::mb_check_encoding('', $encoding); + } catch (\ValueError $e) { + throw new \ValueError(\sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } + // BC for PHP 7.3 and lower + if (!$validEncoding) { + throw new \ValueError(\sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } + if (self::mb_strlen($pad_string, $encoding) <= 0) { + throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string'); + } + $paddingRequired = $length - self::mb_strlen($string, $encoding); + if ($paddingRequired < 1) { + return $string; + } + switch ($pad_type) { + case \STR_PAD_LEFT: + return self::mb_substr(\str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding) . $string; + case \STR_PAD_RIGHT: + return $string . self::mb_substr(\str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding); + default: + $leftPaddingLength = \floor($paddingRequired / 2); + $rightPaddingLength = $paddingRequired - $leftPaddingLength; + return self::mb_substr(\str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding) . $string . self::mb_substr(\str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding); + } + } private static function getSubpart($pos, $part, $haystack, $encoding) { if (\false === $pos) { diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php new file mode 100644 index 000000000..af1f85cdd --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php @@ -0,0 +1,5 @@ + 'i̇', 'µ' => 'μ', 'ſ' => 's', 'ͅ' => 'ι', 'ς' => 'σ', 'ϐ' => 'β', 'ϑ' => 'θ', 'ϕ' => 'φ', 'ϖ' => 'π', 'ϰ' => 'κ', 'ϱ' => 'ρ', 'ϵ' => 'ε', 'ẛ' => 'ṡ', 'ι' => 'ι', 'ß' => 'ss', 'ʼn' => 'ʼn', 'ǰ' => 'ǰ', 'ΐ' => 'ΐ', 'ΰ' => 'ΰ', 'և' => 'եւ', 'ẖ' => 'ẖ', 'ẗ' => 'ẗ', 'ẘ' => 'ẘ', 'ẙ' => 'ẙ', 'ẚ' => 'aʾ', 'ẞ' => 'ss', 'ὐ' => 'ὐ', 'ὒ' => 'ὒ', 'ὔ' => 'ὔ', 'ὖ' => 'ὖ', 'ᾀ' => 'ἀι', 'ᾁ' => 'ἁι', 'ᾂ' => 'ἂι', 'ᾃ' => 'ἃι', 'ᾄ' => 'ἄι', 'ᾅ' => 'ἅι', 'ᾆ' => 'ἆι', 'ᾇ' => 'ἇι', 'ᾈ' => 'ἀι', 'ᾉ' => 'ἁι', 'ᾊ' => 'ἂι', 'ᾋ' => 'ἃι', 'ᾌ' => 'ἄι', 'ᾍ' => 'ἅι', 'ᾎ' => 'ἆι', 'ᾏ' => 'ἇι', 'ᾐ' => 'ἠι', 'ᾑ' => 'ἡι', 'ᾒ' => 'ἢι', 'ᾓ' => 'ἣι', 'ᾔ' => 'ἤι', 'ᾕ' => 'ἥι', 'ᾖ' => 'ἦι', 'ᾗ' => 'ἧι', 'ᾘ' => 'ἠι', 'ᾙ' => 'ἡι', 'ᾚ' => 'ἢι', 'ᾛ' => 'ἣι', 'ᾜ' => 'ἤι', 'ᾝ' => 'ἥι', 'ᾞ' => 'ἦι', 'ᾟ' => 'ἧι', 'ᾠ' => 'ὠι', 'ᾡ' => 'ὡι', 'ᾢ' => 'ὢι', 'ᾣ' => 'ὣι', 'ᾤ' => 'ὤι', 'ᾥ' => 'ὥι', 'ᾦ' => 'ὦι', 'ᾧ' => 'ὧι', 'ᾨ' => 'ὠι', 'ᾩ' => 'ὡι', 'ᾪ' => 'ὢι', 'ᾫ' => 'ὣι', 'ᾬ' => 'ὤι', 'ᾭ' => 'ὥι', 'ᾮ' => 'ὦι', 'ᾯ' => 'ὧι', 'ᾲ' => 'ὰι', 'ᾳ' => 'αι', 'ᾴ' => 'άι', 'ᾶ' => 'ᾶ', 'ᾷ' => 'ᾶι', 'ᾼ' => 'αι', 'ῂ' => 'ὴι', 'ῃ' => 'ηι', 'ῄ' => 'ήι', 'ῆ' => 'ῆ', 'ῇ' => 'ῆι', 'ῌ' => 'ηι', 'ῒ' => 'ῒ', 'ῖ' => 'ῖ', 'ῗ' => 'ῗ', 'ῢ' => 'ῢ', 'ῤ' => 'ῤ', 'ῦ' => 'ῦ', 'ῧ' => 'ῧ', 'ῲ' => 'ὼι', 'ῳ' => 'ωι', 'ῴ' => 'ώι', 'ῶ' => 'ῶ', 'ῷ' => 'ῶι', 'ῼ' => 'ωι', 'ff' => 'ff', 'fi' => 'fi', 'fl' => 'fl', 'ffi' => 'ffi', 'ffl' => 'ffl', 'ſt' => 'st', 'st' => 'st', 'ﬓ' => 'մն', 'ﬔ' => 'մե', 'ﬕ' => 'մի', 'ﬖ' => 'վն', 'ﬗ' => 'մխ']; diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php index 887438fa6..c0fcc6a31 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php @@ -1,5 +1,5 @@ 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', 'À' => 'à', 'Á' => 'á', 'Â' => 'â', 'Ã' => 'ã', 'Ä' => 'ä', 'Å' => 'å', 'Æ' => 'æ', 'Ç' => 'ç', 'È' => 'è', 'É' => 'é', 'Ê' => 'ê', 'Ë' => 'ë', 'Ì' => 'ì', 'Í' => 'í', 'Î' => 'î', 'Ï' => 'ï', 'Ð' => 'ð', 'Ñ' => 'ñ', 'Ò' => 'ò', 'Ó' => 'ó', 'Ô' => 'ô', 'Õ' => 'õ', 'Ö' => 'ö', 'Ø' => 'ø', 'Ù' => 'ù', 'Ú' => 'ú', 'Û' => 'û', 'Ü' => 'ü', 'Ý' => 'ý', 'Þ' => 'þ', 'Ā' => 'ā', 'Ă' => 'ă', 'Ą' => 'ą', 'Ć' => 'ć', 'Ĉ' => 'ĉ', 'Ċ' => 'ċ', 'Č' => 'č', 'Ď' => 'ď', 'Đ' => 'đ', 'Ē' => 'ē', 'Ĕ' => 'ĕ', 'Ė' => 'ė', 'Ę' => 'ę', 'Ě' => 'ě', 'Ĝ' => 'ĝ', 'Ğ' => 'ğ', 'Ġ' => 'ġ', 'Ģ' => 'ģ', 'Ĥ' => 'ĥ', 'Ħ' => 'ħ', 'Ĩ' => 'ĩ', 'Ī' => 'ī', 'Ĭ' => 'ĭ', 'Į' => 'į', 'İ' => 'i̇', 'IJ' => 'ij', 'Ĵ' => 'ĵ', 'Ķ' => 'ķ', 'Ĺ' => 'ĺ', 'Ļ' => 'ļ', 'Ľ' => 'ľ', 'Ŀ' => 'ŀ', 'Ł' => 'ł', 'Ń' => 'ń', 'Ņ' => 'ņ', 'Ň' => 'ň', 'Ŋ' => 'ŋ', 'Ō' => 'ō', 'Ŏ' => 'ŏ', 'Ő' => 'ő', 'Œ' => 'œ', 'Ŕ' => 'ŕ', 'Ŗ' => 'ŗ', 'Ř' => 'ř', 'Ś' => 'ś', 'Ŝ' => 'ŝ', 'Ş' => 'ş', 'Š' => 'š', 'Ţ' => 'ţ', 'Ť' => 'ť', 'Ŧ' => 'ŧ', 'Ũ' => 'ũ', 'Ū' => 'ū', 'Ŭ' => 'ŭ', 'Ů' => 'ů', 'Ű' => 'ű', 'Ų' => 'ų', 'Ŵ' => 'ŵ', 'Ŷ' => 'ŷ', 'Ÿ' => 'ÿ', 'Ź' => 'ź', 'Ż' => 'ż', 'Ž' => 'ž', 'Ɓ' => 'ɓ', 'Ƃ' => 'ƃ', 'Ƅ' => 'ƅ', 'Ɔ' => 'ɔ', 'Ƈ' => 'ƈ', 'Ɖ' => 'ɖ', 'Ɗ' => 'ɗ', 'Ƌ' => 'ƌ', 'Ǝ' => 'ǝ', 'Ə' => 'ə', 'Ɛ' => 'ɛ', 'Ƒ' => 'ƒ', 'Ɠ' => 'ɠ', 'Ɣ' => 'ɣ', 'Ɩ' => 'ɩ', 'Ɨ' => 'ɨ', 'Ƙ' => 'ƙ', 'Ɯ' => 'ɯ', 'Ɲ' => 'ɲ', 'Ɵ' => 'ɵ', 'Ơ' => 'ơ', 'Ƣ' => 'ƣ', 'Ƥ' => 'ƥ', 'Ʀ' => 'ʀ', 'Ƨ' => 'ƨ', 'Ʃ' => 'ʃ', 'Ƭ' => 'ƭ', 'Ʈ' => 'ʈ', 'Ư' => 'ư', 'Ʊ' => 'ʊ', 'Ʋ' => 'ʋ', 'Ƴ' => 'ƴ', 'Ƶ' => 'ƶ', 'Ʒ' => 'ʒ', 'Ƹ' => 'ƹ', 'Ƽ' => 'ƽ', 'DŽ' => 'dž', 'Dž' => 'dž', 'LJ' => 'lj', 'Lj' => 'lj', 'NJ' => 'nj', 'Nj' => 'nj', 'Ǎ' => 'ǎ', 'Ǐ' => 'ǐ', 'Ǒ' => 'ǒ', 'Ǔ' => 'ǔ', 'Ǖ' => 'ǖ', 'Ǘ' => 'ǘ', 'Ǚ' => 'ǚ', 'Ǜ' => 'ǜ', 'Ǟ' => 'ǟ', 'Ǡ' => 'ǡ', 'Ǣ' => 'ǣ', 'Ǥ' => 'ǥ', 'Ǧ' => 'ǧ', 'Ǩ' => 'ǩ', 'Ǫ' => 'ǫ', 'Ǭ' => 'ǭ', 'Ǯ' => 'ǯ', 'DZ' => 'dz', 'Dz' => 'dz', 'Ǵ' => 'ǵ', 'Ƕ' => 'ƕ', 'Ƿ' => 'ƿ', 'Ǹ' => 'ǹ', 'Ǻ' => 'ǻ', 'Ǽ' => 'ǽ', 'Ǿ' => 'ǿ', 'Ȁ' => 'ȁ', 'Ȃ' => 'ȃ', 'Ȅ' => 'ȅ', 'Ȇ' => 'ȇ', 'Ȉ' => 'ȉ', 'Ȋ' => 'ȋ', 'Ȍ' => 'ȍ', 'Ȏ' => 'ȏ', 'Ȑ' => 'ȑ', 'Ȓ' => 'ȓ', 'Ȕ' => 'ȕ', 'Ȗ' => 'ȗ', 'Ș' => 'ș', 'Ț' => 'ț', 'Ȝ' => 'ȝ', 'Ȟ' => 'ȟ', 'Ƞ' => 'ƞ', 'Ȣ' => 'ȣ', 'Ȥ' => 'ȥ', 'Ȧ' => 'ȧ', 'Ȩ' => 'ȩ', 'Ȫ' => 'ȫ', 'Ȭ' => 'ȭ', 'Ȯ' => 'ȯ', 'Ȱ' => 'ȱ', 'Ȳ' => 'ȳ', 'Ⱥ' => 'ⱥ', 'Ȼ' => 'ȼ', 'Ƚ' => 'ƚ', 'Ⱦ' => 'ⱦ', 'Ɂ' => 'ɂ', 'Ƀ' => 'ƀ', 'Ʉ' => 'ʉ', 'Ʌ' => 'ʌ', 'Ɇ' => 'ɇ', 'Ɉ' => 'ɉ', 'Ɋ' => 'ɋ', 'Ɍ' => 'ɍ', 'Ɏ' => 'ɏ', 'Ͱ' => 'ͱ', 'Ͳ' => 'ͳ', 'Ͷ' => 'ͷ', 'Ϳ' => 'ϳ', 'Ά' => 'ά', 'Έ' => 'έ', 'Ή' => 'ή', 'Ί' => 'ί', 'Ό' => 'ό', 'Ύ' => 'ύ', 'Ώ' => 'ώ', 'Α' => 'α', 'Β' => 'β', 'Γ' => 'γ', 'Δ' => 'δ', 'Ε' => 'ε', 'Ζ' => 'ζ', 'Η' => 'η', 'Θ' => 'θ', 'Ι' => 'ι', 'Κ' => 'κ', 'Λ' => 'λ', 'Μ' => 'μ', 'Ν' => 'ν', 'Ξ' => 'ξ', 'Ο' => 'ο', 'Π' => 'π', 'Ρ' => 'ρ', 'Σ' => 'σ', 'Τ' => 'τ', 'Υ' => 'υ', 'Φ' => 'φ', 'Χ' => 'χ', 'Ψ' => 'ψ', 'Ω' => 'ω', 'Ϊ' => 'ϊ', 'Ϋ' => 'ϋ', 'Ϗ' => 'ϗ', 'Ϙ' => 'ϙ', 'Ϛ' => 'ϛ', 'Ϝ' => 'ϝ', 'Ϟ' => 'ϟ', 'Ϡ' => 'ϡ', 'Ϣ' => 'ϣ', 'Ϥ' => 'ϥ', 'Ϧ' => 'ϧ', 'Ϩ' => 'ϩ', 'Ϫ' => 'ϫ', 'Ϭ' => 'ϭ', 'Ϯ' => 'ϯ', 'ϴ' => 'θ', 'Ϸ' => 'ϸ', 'Ϲ' => 'ϲ', 'Ϻ' => 'ϻ', 'Ͻ' => 'ͻ', 'Ͼ' => 'ͼ', 'Ͽ' => 'ͽ', 'Ѐ' => 'ѐ', 'Ё' => 'ё', 'Ђ' => 'ђ', 'Ѓ' => 'ѓ', 'Є' => 'є', 'Ѕ' => 'ѕ', 'І' => 'і', 'Ї' => 'ї', 'Ј' => 'ј', 'Љ' => 'љ', 'Њ' => 'њ', 'Ћ' => 'ћ', 'Ќ' => 'ќ', 'Ѝ' => 'ѝ', 'Ў' => 'ў', 'Џ' => 'џ', 'А' => 'а', 'Б' => 'б', 'В' => 'в', 'Г' => 'г', 'Д' => 'д', 'Е' => 'е', 'Ж' => 'ж', 'З' => 'з', 'И' => 'и', 'Й' => 'й', 'К' => 'к', 'Л' => 'л', 'М' => 'м', 'Н' => 'н', 'О' => 'о', 'П' => 'п', 'Р' => 'р', 'С' => 'с', 'Т' => 'т', 'У' => 'у', 'Ф' => 'ф', 'Х' => 'х', 'Ц' => 'ц', 'Ч' => 'ч', 'Ш' => 'ш', 'Щ' => 'щ', 'Ъ' => 'ъ', 'Ы' => 'ы', 'Ь' => 'ь', 'Э' => 'э', 'Ю' => 'ю', 'Я' => 'я', 'Ѡ' => 'ѡ', 'Ѣ' => 'ѣ', 'Ѥ' => 'ѥ', 'Ѧ' => 'ѧ', 'Ѩ' => 'ѩ', 'Ѫ' => 'ѫ', 'Ѭ' => 'ѭ', 'Ѯ' => 'ѯ', 'Ѱ' => 'ѱ', 'Ѳ' => 'ѳ', 'Ѵ' => 'ѵ', 'Ѷ' => 'ѷ', 'Ѹ' => 'ѹ', 'Ѻ' => 'ѻ', 'Ѽ' => 'ѽ', 'Ѿ' => 'ѿ', 'Ҁ' => 'ҁ', 'Ҋ' => 'ҋ', 'Ҍ' => 'ҍ', 'Ҏ' => 'ҏ', 'Ґ' => 'ґ', 'Ғ' => 'ғ', 'Ҕ' => 'ҕ', 'Җ' => 'җ', 'Ҙ' => 'ҙ', 'Қ' => 'қ', 'Ҝ' => 'ҝ', 'Ҟ' => 'ҟ', 'Ҡ' => 'ҡ', 'Ң' => 'ң', 'Ҥ' => 'ҥ', 'Ҧ' => 'ҧ', 'Ҩ' => 'ҩ', 'Ҫ' => 'ҫ', 'Ҭ' => 'ҭ', 'Ү' => 'ү', 'Ұ' => 'ұ', 'Ҳ' => 'ҳ', 'Ҵ' => 'ҵ', 'Ҷ' => 'ҷ', 'Ҹ' => 'ҹ', 'Һ' => 'һ', 'Ҽ' => 'ҽ', 'Ҿ' => 'ҿ', 'Ӏ' => 'ӏ', 'Ӂ' => 'ӂ', 'Ӄ' => 'ӄ', 'Ӆ' => 'ӆ', 'Ӈ' => 'ӈ', 'Ӊ' => 'ӊ', 'Ӌ' => 'ӌ', 'Ӎ' => 'ӎ', 'Ӑ' => 'ӑ', 'Ӓ' => 'ӓ', 'Ӕ' => 'ӕ', 'Ӗ' => 'ӗ', 'Ә' => 'ә', 'Ӛ' => 'ӛ', 'Ӝ' => 'ӝ', 'Ӟ' => 'ӟ', 'Ӡ' => 'ӡ', 'Ӣ' => 'ӣ', 'Ӥ' => 'ӥ', 'Ӧ' => 'ӧ', 'Ө' => 'ө', 'Ӫ' => 'ӫ', 'Ӭ' => 'ӭ', 'Ӯ' => 'ӯ', 'Ӱ' => 'ӱ', 'Ӳ' => 'ӳ', 'Ӵ' => 'ӵ', 'Ӷ' => 'ӷ', 'Ӹ' => 'ӹ', 'Ӻ' => 'ӻ', 'Ӽ' => 'ӽ', 'Ӿ' => 'ӿ', 'Ԁ' => 'ԁ', 'Ԃ' => 'ԃ', 'Ԅ' => 'ԅ', 'Ԇ' => 'ԇ', 'Ԉ' => 'ԉ', 'Ԋ' => 'ԋ', 'Ԍ' => 'ԍ', 'Ԏ' => 'ԏ', 'Ԑ' => 'ԑ', 'Ԓ' => 'ԓ', 'Ԕ' => 'ԕ', 'Ԗ' => 'ԗ', 'Ԙ' => 'ԙ', 'Ԛ' => 'ԛ', 'Ԝ' => 'ԝ', 'Ԟ' => 'ԟ', 'Ԡ' => 'ԡ', 'Ԣ' => 'ԣ', 'Ԥ' => 'ԥ', 'Ԧ' => 'ԧ', 'Ԩ' => 'ԩ', 'Ԫ' => 'ԫ', 'Ԭ' => 'ԭ', 'Ԯ' => 'ԯ', 'Ա' => 'ա', 'Բ' => 'բ', 'Գ' => 'գ', 'Դ' => 'դ', 'Ե' => 'ե', 'Զ' => 'զ', 'Է' => 'է', 'Ը' => 'ը', 'Թ' => 'թ', 'Ժ' => 'ժ', 'Ի' => 'ի', 'Լ' => 'լ', 'Խ' => 'խ', 'Ծ' => 'ծ', 'Կ' => 'կ', 'Հ' => 'հ', 'Ձ' => 'ձ', 'Ղ' => 'ղ', 'Ճ' => 'ճ', 'Մ' => 'մ', 'Յ' => 'յ', 'Ն' => 'ն', 'Շ' => 'շ', 'Ո' => 'ո', 'Չ' => 'չ', 'Պ' => 'պ', 'Ջ' => 'ջ', 'Ռ' => 'ռ', 'Ս' => 'ս', 'Վ' => 'վ', 'Տ' => 'տ', 'Ր' => 'ր', 'Ց' => 'ց', 'Ւ' => 'ւ', 'Փ' => 'փ', 'Ք' => 'ք', 'Օ' => 'օ', 'Ֆ' => 'ֆ', 'Ⴀ' => 'ⴀ', 'Ⴁ' => 'ⴁ', 'Ⴂ' => 'ⴂ', 'Ⴃ' => 'ⴃ', 'Ⴄ' => 'ⴄ', 'Ⴅ' => 'ⴅ', 'Ⴆ' => 'ⴆ', 'Ⴇ' => 'ⴇ', 'Ⴈ' => 'ⴈ', 'Ⴉ' => 'ⴉ', 'Ⴊ' => 'ⴊ', 'Ⴋ' => 'ⴋ', 'Ⴌ' => 'ⴌ', 'Ⴍ' => 'ⴍ', 'Ⴎ' => 'ⴎ', 'Ⴏ' => 'ⴏ', 'Ⴐ' => 'ⴐ', 'Ⴑ' => 'ⴑ', 'Ⴒ' => 'ⴒ', 'Ⴓ' => 'ⴓ', 'Ⴔ' => 'ⴔ', 'Ⴕ' => 'ⴕ', 'Ⴖ' => 'ⴖ', 'Ⴗ' => 'ⴗ', 'Ⴘ' => 'ⴘ', 'Ⴙ' => 'ⴙ', 'Ⴚ' => 'ⴚ', 'Ⴛ' => 'ⴛ', 'Ⴜ' => 'ⴜ', 'Ⴝ' => 'ⴝ', 'Ⴞ' => 'ⴞ', 'Ⴟ' => 'ⴟ', 'Ⴠ' => 'ⴠ', 'Ⴡ' => 'ⴡ', 'Ⴢ' => 'ⴢ', 'Ⴣ' => 'ⴣ', 'Ⴤ' => 'ⴤ', 'Ⴥ' => 'ⴥ', 'Ⴧ' => 'ⴧ', 'Ⴭ' => 'ⴭ', 'Ꭰ' => 'ꭰ', 'Ꭱ' => 'ꭱ', 'Ꭲ' => 'ꭲ', 'Ꭳ' => 'ꭳ', 'Ꭴ' => 'ꭴ', 'Ꭵ' => 'ꭵ', 'Ꭶ' => 'ꭶ', 'Ꭷ' => 'ꭷ', 'Ꭸ' => 'ꭸ', 'Ꭹ' => 'ꭹ', 'Ꭺ' => 'ꭺ', 'Ꭻ' => 'ꭻ', 'Ꭼ' => 'ꭼ', 'Ꭽ' => 'ꭽ', 'Ꭾ' => 'ꭾ', 'Ꭿ' => 'ꭿ', 'Ꮀ' => 'ꮀ', 'Ꮁ' => 'ꮁ', 'Ꮂ' => 'ꮂ', 'Ꮃ' => 'ꮃ', 'Ꮄ' => 'ꮄ', 'Ꮅ' => 'ꮅ', 'Ꮆ' => 'ꮆ', 'Ꮇ' => 'ꮇ', 'Ꮈ' => 'ꮈ', 'Ꮉ' => 'ꮉ', 'Ꮊ' => 'ꮊ', 'Ꮋ' => 'ꮋ', 'Ꮌ' => 'ꮌ', 'Ꮍ' => 'ꮍ', 'Ꮎ' => 'ꮎ', 'Ꮏ' => 'ꮏ', 'Ꮐ' => 'ꮐ', 'Ꮑ' => 'ꮑ', 'Ꮒ' => 'ꮒ', 'Ꮓ' => 'ꮓ', 'Ꮔ' => 'ꮔ', 'Ꮕ' => 'ꮕ', 'Ꮖ' => 'ꮖ', 'Ꮗ' => 'ꮗ', 'Ꮘ' => 'ꮘ', 'Ꮙ' => 'ꮙ', 'Ꮚ' => 'ꮚ', 'Ꮛ' => 'ꮛ', 'Ꮜ' => 'ꮜ', 'Ꮝ' => 'ꮝ', 'Ꮞ' => 'ꮞ', 'Ꮟ' => 'ꮟ', 'Ꮠ' => 'ꮠ', 'Ꮡ' => 'ꮡ', 'Ꮢ' => 'ꮢ', 'Ꮣ' => 'ꮣ', 'Ꮤ' => 'ꮤ', 'Ꮥ' => 'ꮥ', 'Ꮦ' => 'ꮦ', 'Ꮧ' => 'ꮧ', 'Ꮨ' => 'ꮨ', 'Ꮩ' => 'ꮩ', 'Ꮪ' => 'ꮪ', 'Ꮫ' => 'ꮫ', 'Ꮬ' => 'ꮬ', 'Ꮭ' => 'ꮭ', 'Ꮮ' => 'ꮮ', 'Ꮯ' => 'ꮯ', 'Ꮰ' => 'ꮰ', 'Ꮱ' => 'ꮱ', 'Ꮲ' => 'ꮲ', 'Ꮳ' => 'ꮳ', 'Ꮴ' => 'ꮴ', 'Ꮵ' => 'ꮵ', 'Ꮶ' => 'ꮶ', 'Ꮷ' => 'ꮷ', 'Ꮸ' => 'ꮸ', 'Ꮹ' => 'ꮹ', 'Ꮺ' => 'ꮺ', 'Ꮻ' => 'ꮻ', 'Ꮼ' => 'ꮼ', 'Ꮽ' => 'ꮽ', 'Ꮾ' => 'ꮾ', 'Ꮿ' => 'ꮿ', 'Ᏸ' => 'ᏸ', 'Ᏹ' => 'ᏹ', 'Ᏺ' => 'ᏺ', 'Ᏻ' => 'ᏻ', 'Ᏼ' => 'ᏼ', 'Ᏽ' => 'ᏽ', 'Ა' => 'ა', 'Ბ' => 'ბ', 'Გ' => 'გ', 'Დ' => 'დ', 'Ე' => 'ე', 'Ვ' => 'ვ', 'Ზ' => 'ზ', 'Თ' => 'თ', 'Ი' => 'ი', 'Კ' => 'კ', 'Ლ' => 'ლ', 'Მ' => 'მ', 'Ნ' => 'ნ', 'Ო' => 'ო', 'Პ' => 'პ', 'Ჟ' => 'ჟ', 'Რ' => 'რ', 'Ს' => 'ს', 'Ტ' => 'ტ', 'Უ' => 'უ', 'Ფ' => 'ფ', 'Ქ' => 'ქ', 'Ღ' => 'ღ', 'Ყ' => 'ყ', 'Შ' => 'შ', 'Ჩ' => 'ჩ', 'Ც' => 'ც', 'Ძ' => 'ძ', 'Წ' => 'წ', 'Ჭ' => 'ჭ', 'Ხ' => 'ხ', 'Ჯ' => 'ჯ', 'Ჰ' => 'ჰ', 'Ჱ' => 'ჱ', 'Ჲ' => 'ჲ', 'Ჳ' => 'ჳ', 'Ჴ' => 'ჴ', 'Ჵ' => 'ჵ', 'Ჶ' => 'ჶ', 'Ჷ' => 'ჷ', 'Ჸ' => 'ჸ', 'Ჹ' => 'ჹ', 'Ჺ' => 'ჺ', 'Ჽ' => 'ჽ', 'Ჾ' => 'ჾ', 'Ჿ' => 'ჿ', 'Ḁ' => 'ḁ', 'Ḃ' => 'ḃ', 'Ḅ' => 'ḅ', 'Ḇ' => 'ḇ', 'Ḉ' => 'ḉ', 'Ḋ' => 'ḋ', 'Ḍ' => 'ḍ', 'Ḏ' => 'ḏ', 'Ḑ' => 'ḑ', 'Ḓ' => 'ḓ', 'Ḕ' => 'ḕ', 'Ḗ' => 'ḗ', 'Ḙ' => 'ḙ', 'Ḛ' => 'ḛ', 'Ḝ' => 'ḝ', 'Ḟ' => 'ḟ', 'Ḡ' => 'ḡ', 'Ḣ' => 'ḣ', 'Ḥ' => 'ḥ', 'Ḧ' => 'ḧ', 'Ḩ' => 'ḩ', 'Ḫ' => 'ḫ', 'Ḭ' => 'ḭ', 'Ḯ' => 'ḯ', 'Ḱ' => 'ḱ', 'Ḳ' => 'ḳ', 'Ḵ' => 'ḵ', 'Ḷ' => 'ḷ', 'Ḹ' => 'ḹ', 'Ḻ' => 'ḻ', 'Ḽ' => 'ḽ', 'Ḿ' => 'ḿ', 'Ṁ' => 'ṁ', 'Ṃ' => 'ṃ', 'Ṅ' => 'ṅ', 'Ṇ' => 'ṇ', 'Ṉ' => 'ṉ', 'Ṋ' => 'ṋ', 'Ṍ' => 'ṍ', 'Ṏ' => 'ṏ', 'Ṑ' => 'ṑ', 'Ṓ' => 'ṓ', 'Ṕ' => 'ṕ', 'Ṗ' => 'ṗ', 'Ṙ' => 'ṙ', 'Ṛ' => 'ṛ', 'Ṝ' => 'ṝ', 'Ṟ' => 'ṟ', 'Ṡ' => 'ṡ', 'Ṣ' => 'ṣ', 'Ṥ' => 'ṥ', 'Ṧ' => 'ṧ', 'Ṩ' => 'ṩ', 'Ṫ' => 'ṫ', 'Ṭ' => 'ṭ', 'Ṯ' => 'ṯ', 'Ṱ' => 'ṱ', 'Ṳ' => 'ṳ', 'Ṵ' => 'ṵ', 'Ṷ' => 'ṷ', 'Ṹ' => 'ṹ', 'Ṻ' => 'ṻ', 'Ṽ' => 'ṽ', 'Ṿ' => 'ṿ', 'Ẁ' => 'ẁ', 'Ẃ' => 'ẃ', 'Ẅ' => 'ẅ', 'Ẇ' => 'ẇ', 'Ẉ' => 'ẉ', 'Ẋ' => 'ẋ', 'Ẍ' => 'ẍ', 'Ẏ' => 'ẏ', 'Ẑ' => 'ẑ', 'Ẓ' => 'ẓ', 'Ẕ' => 'ẕ', 'ẞ' => 'ß', 'Ạ' => 'ạ', 'Ả' => 'ả', 'Ấ' => 'ấ', 'Ầ' => 'ầ', 'Ẩ' => 'ẩ', 'Ẫ' => 'ẫ', 'Ậ' => 'ậ', 'Ắ' => 'ắ', 'Ằ' => 'ằ', 'Ẳ' => 'ẳ', 'Ẵ' => 'ẵ', 'Ặ' => 'ặ', 'Ẹ' => 'ẹ', 'Ẻ' => 'ẻ', 'Ẽ' => 'ẽ', 'Ế' => 'ế', 'Ề' => 'ề', 'Ể' => 'ể', 'Ễ' => 'ễ', 'Ệ' => 'ệ', 'Ỉ' => 'ỉ', 'Ị' => 'ị', 'Ọ' => 'ọ', 'Ỏ' => 'ỏ', 'Ố' => 'ố', 'Ồ' => 'ồ', 'Ổ' => 'ổ', 'Ỗ' => 'ỗ', 'Ộ' => 'ộ', 'Ớ' => 'ớ', 'Ờ' => 'ờ', 'Ở' => 'ở', 'Ỡ' => 'ỡ', 'Ợ' => 'ợ', 'Ụ' => 'ụ', 'Ủ' => 'ủ', 'Ứ' => 'ứ', 'Ừ' => 'ừ', 'Ử' => 'ử', 'Ữ' => 'ữ', 'Ự' => 'ự', 'Ỳ' => 'ỳ', 'Ỵ' => 'ỵ', 'Ỷ' => 'ỷ', 'Ỹ' => 'ỹ', 'Ỻ' => 'ỻ', 'Ỽ' => 'ỽ', 'Ỿ' => 'ỿ', 'Ἀ' => 'ἀ', 'Ἁ' => 'ἁ', 'Ἂ' => 'ἂ', 'Ἃ' => 'ἃ', 'Ἄ' => 'ἄ', 'Ἅ' => 'ἅ', 'Ἆ' => 'ἆ', 'Ἇ' => 'ἇ', 'Ἐ' => 'ἐ', 'Ἑ' => 'ἑ', 'Ἒ' => 'ἒ', 'Ἓ' => 'ἓ', 'Ἔ' => 'ἔ', 'Ἕ' => 'ἕ', 'Ἠ' => 'ἠ', 'Ἡ' => 'ἡ', 'Ἢ' => 'ἢ', 'Ἣ' => 'ἣ', 'Ἤ' => 'ἤ', 'Ἥ' => 'ἥ', 'Ἦ' => 'ἦ', 'Ἧ' => 'ἧ', 'Ἰ' => 'ἰ', 'Ἱ' => 'ἱ', 'Ἲ' => 'ἲ', 'Ἳ' => 'ἳ', 'Ἴ' => 'ἴ', 'Ἵ' => 'ἵ', 'Ἶ' => 'ἶ', 'Ἷ' => 'ἷ', 'Ὀ' => 'ὀ', 'Ὁ' => 'ὁ', 'Ὂ' => 'ὂ', 'Ὃ' => 'ὃ', 'Ὄ' => 'ὄ', 'Ὅ' => 'ὅ', 'Ὑ' => 'ὑ', 'Ὓ' => 'ὓ', 'Ὕ' => 'ὕ', 'Ὗ' => 'ὗ', 'Ὠ' => 'ὠ', 'Ὡ' => 'ὡ', 'Ὢ' => 'ὢ', 'Ὣ' => 'ὣ', 'Ὤ' => 'ὤ', 'Ὥ' => 'ὥ', 'Ὦ' => 'ὦ', 'Ὧ' => 'ὧ', 'ᾈ' => 'ᾀ', 'ᾉ' => 'ᾁ', 'ᾊ' => 'ᾂ', 'ᾋ' => 'ᾃ', 'ᾌ' => 'ᾄ', 'ᾍ' => 'ᾅ', 'ᾎ' => 'ᾆ', 'ᾏ' => 'ᾇ', 'ᾘ' => 'ᾐ', 'ᾙ' => 'ᾑ', 'ᾚ' => 'ᾒ', 'ᾛ' => 'ᾓ', 'ᾜ' => 'ᾔ', 'ᾝ' => 'ᾕ', 'ᾞ' => 'ᾖ', 'ᾟ' => 'ᾗ', 'ᾨ' => 'ᾠ', 'ᾩ' => 'ᾡ', 'ᾪ' => 'ᾢ', 'ᾫ' => 'ᾣ', 'ᾬ' => 'ᾤ', 'ᾭ' => 'ᾥ', 'ᾮ' => 'ᾦ', 'ᾯ' => 'ᾧ', 'Ᾰ' => 'ᾰ', 'Ᾱ' => 'ᾱ', 'Ὰ' => 'ὰ', 'Ά' => 'ά', 'ᾼ' => 'ᾳ', 'Ὲ' => 'ὲ', 'Έ' => 'έ', 'Ὴ' => 'ὴ', 'Ή' => 'ή', 'ῌ' => 'ῃ', 'Ῐ' => 'ῐ', 'Ῑ' => 'ῑ', 'Ὶ' => 'ὶ', 'Ί' => 'ί', 'Ῠ' => 'ῠ', 'Ῡ' => 'ῡ', 'Ὺ' => 'ὺ', 'Ύ' => 'ύ', 'Ῥ' => 'ῥ', 'Ὸ' => 'ὸ', 'Ό' => 'ό', 'Ὼ' => 'ὼ', 'Ώ' => 'ώ', 'ῼ' => 'ῳ', 'Ω' => 'ω', 'K' => 'k', 'Å' => 'å', 'Ⅎ' => 'ⅎ', 'Ⅰ' => 'ⅰ', 'Ⅱ' => 'ⅱ', 'Ⅲ' => 'ⅲ', 'Ⅳ' => 'ⅳ', 'Ⅴ' => 'ⅴ', 'Ⅵ' => 'ⅵ', 'Ⅶ' => 'ⅶ', 'Ⅷ' => 'ⅷ', 'Ⅸ' => 'ⅸ', 'Ⅹ' => 'ⅹ', 'Ⅺ' => 'ⅺ', 'Ⅻ' => 'ⅻ', 'Ⅼ' => 'ⅼ', 'Ⅽ' => 'ⅽ', 'Ⅾ' => 'ⅾ', 'Ⅿ' => 'ⅿ', 'Ↄ' => 'ↄ', 'Ⓐ' => 'ⓐ', 'Ⓑ' => 'ⓑ', 'Ⓒ' => 'ⓒ', 'Ⓓ' => 'ⓓ', 'Ⓔ' => 'ⓔ', 'Ⓕ' => 'ⓕ', 'Ⓖ' => 'ⓖ', 'Ⓗ' => 'ⓗ', 'Ⓘ' => 'ⓘ', 'Ⓙ' => 'ⓙ', 'Ⓚ' => 'ⓚ', 'Ⓛ' => 'ⓛ', 'Ⓜ' => 'ⓜ', 'Ⓝ' => 'ⓝ', 'Ⓞ' => 'ⓞ', 'Ⓟ' => 'ⓟ', 'Ⓠ' => 'ⓠ', 'Ⓡ' => 'ⓡ', 'Ⓢ' => 'ⓢ', 'Ⓣ' => 'ⓣ', 'Ⓤ' => 'ⓤ', 'Ⓥ' => 'ⓥ', 'Ⓦ' => 'ⓦ', 'Ⓧ' => 'ⓧ', 'Ⓨ' => 'ⓨ', 'Ⓩ' => 'ⓩ', 'Ⰰ' => 'ⰰ', 'Ⰱ' => 'ⰱ', 'Ⰲ' => 'ⰲ', 'Ⰳ' => 'ⰳ', 'Ⰴ' => 'ⰴ', 'Ⰵ' => 'ⰵ', 'Ⰶ' => 'ⰶ', 'Ⰷ' => 'ⰷ', 'Ⰸ' => 'ⰸ', 'Ⰹ' => 'ⰹ', 'Ⰺ' => 'ⰺ', 'Ⰻ' => 'ⰻ', 'Ⰼ' => 'ⰼ', 'Ⰽ' => 'ⰽ', 'Ⰾ' => 'ⰾ', 'Ⰿ' => 'ⰿ', 'Ⱀ' => 'ⱀ', 'Ⱁ' => 'ⱁ', 'Ⱂ' => 'ⱂ', 'Ⱃ' => 'ⱃ', 'Ⱄ' => 'ⱄ', 'Ⱅ' => 'ⱅ', 'Ⱆ' => 'ⱆ', 'Ⱇ' => 'ⱇ', 'Ⱈ' => 'ⱈ', 'Ⱉ' => 'ⱉ', 'Ⱊ' => 'ⱊ', 'Ⱋ' => 'ⱋ', 'Ⱌ' => 'ⱌ', 'Ⱍ' => 'ⱍ', 'Ⱎ' => 'ⱎ', 'Ⱏ' => 'ⱏ', 'Ⱐ' => 'ⱐ', 'Ⱑ' => 'ⱑ', 'Ⱒ' => 'ⱒ', 'Ⱓ' => 'ⱓ', 'Ⱔ' => 'ⱔ', 'Ⱕ' => 'ⱕ', 'Ⱖ' => 'ⱖ', 'Ⱗ' => 'ⱗ', 'Ⱘ' => 'ⱘ', 'Ⱙ' => 'ⱙ', 'Ⱚ' => 'ⱚ', 'Ⱛ' => 'ⱛ', 'Ⱜ' => 'ⱜ', 'Ⱝ' => 'ⱝ', 'Ⱞ' => 'ⱞ', 'Ⱡ' => 'ⱡ', 'Ɫ' => 'ɫ', 'Ᵽ' => 'ᵽ', 'Ɽ' => 'ɽ', 'Ⱨ' => 'ⱨ', 'Ⱪ' => 'ⱪ', 'Ⱬ' => 'ⱬ', 'Ɑ' => 'ɑ', 'Ɱ' => 'ɱ', 'Ɐ' => 'ɐ', 'Ɒ' => 'ɒ', 'Ⱳ' => 'ⱳ', 'Ⱶ' => 'ⱶ', 'Ȿ' => 'ȿ', 'Ɀ' => 'ɀ', 'Ⲁ' => 'ⲁ', 'Ⲃ' => 'ⲃ', 'Ⲅ' => 'ⲅ', 'Ⲇ' => 'ⲇ', 'Ⲉ' => 'ⲉ', 'Ⲋ' => 'ⲋ', 'Ⲍ' => 'ⲍ', 'Ⲏ' => 'ⲏ', 'Ⲑ' => 'ⲑ', 'Ⲓ' => 'ⲓ', 'Ⲕ' => 'ⲕ', 'Ⲗ' => 'ⲗ', 'Ⲙ' => 'ⲙ', 'Ⲛ' => 'ⲛ', 'Ⲝ' => 'ⲝ', 'Ⲟ' => 'ⲟ', 'Ⲡ' => 'ⲡ', 'Ⲣ' => 'ⲣ', 'Ⲥ' => 'ⲥ', 'Ⲧ' => 'ⲧ', 'Ⲩ' => 'ⲩ', 'Ⲫ' => 'ⲫ', 'Ⲭ' => 'ⲭ', 'Ⲯ' => 'ⲯ', 'Ⲱ' => 'ⲱ', 'Ⲳ' => 'ⲳ', 'Ⲵ' => 'ⲵ', 'Ⲷ' => 'ⲷ', 'Ⲹ' => 'ⲹ', 'Ⲻ' => 'ⲻ', 'Ⲽ' => 'ⲽ', 'Ⲿ' => 'ⲿ', 'Ⳁ' => 'ⳁ', 'Ⳃ' => 'ⳃ', 'Ⳅ' => 'ⳅ', 'Ⳇ' => 'ⳇ', 'Ⳉ' => 'ⳉ', 'Ⳋ' => 'ⳋ', 'Ⳍ' => 'ⳍ', 'Ⳏ' => 'ⳏ', 'Ⳑ' => 'ⳑ', 'Ⳓ' => 'ⳓ', 'Ⳕ' => 'ⳕ', 'Ⳗ' => 'ⳗ', 'Ⳙ' => 'ⳙ', 'Ⳛ' => 'ⳛ', 'Ⳝ' => 'ⳝ', 'Ⳟ' => 'ⳟ', 'Ⳡ' => 'ⳡ', 'Ⳣ' => 'ⳣ', 'Ⳬ' => 'ⳬ', 'Ⳮ' => 'ⳮ', 'Ⳳ' => 'ⳳ', 'Ꙁ' => 'ꙁ', 'Ꙃ' => 'ꙃ', 'Ꙅ' => 'ꙅ', 'Ꙇ' => 'ꙇ', 'Ꙉ' => 'ꙉ', 'Ꙋ' => 'ꙋ', 'Ꙍ' => 'ꙍ', 'Ꙏ' => 'ꙏ', 'Ꙑ' => 'ꙑ', 'Ꙓ' => 'ꙓ', 'Ꙕ' => 'ꙕ', 'Ꙗ' => 'ꙗ', 'Ꙙ' => 'ꙙ', 'Ꙛ' => 'ꙛ', 'Ꙝ' => 'ꙝ', 'Ꙟ' => 'ꙟ', 'Ꙡ' => 'ꙡ', 'Ꙣ' => 'ꙣ', 'Ꙥ' => 'ꙥ', 'Ꙧ' => 'ꙧ', 'Ꙩ' => 'ꙩ', 'Ꙫ' => 'ꙫ', 'Ꙭ' => 'ꙭ', 'Ꚁ' => 'ꚁ', 'Ꚃ' => 'ꚃ', 'Ꚅ' => 'ꚅ', 'Ꚇ' => 'ꚇ', 'Ꚉ' => 'ꚉ', 'Ꚋ' => 'ꚋ', 'Ꚍ' => 'ꚍ', 'Ꚏ' => 'ꚏ', 'Ꚑ' => 'ꚑ', 'Ꚓ' => 'ꚓ', 'Ꚕ' => 'ꚕ', 'Ꚗ' => 'ꚗ', 'Ꚙ' => 'ꚙ', 'Ꚛ' => 'ꚛ', 'Ꜣ' => 'ꜣ', 'Ꜥ' => 'ꜥ', 'Ꜧ' => 'ꜧ', 'Ꜩ' => 'ꜩ', 'Ꜫ' => 'ꜫ', 'Ꜭ' => 'ꜭ', 'Ꜯ' => 'ꜯ', 'Ꜳ' => 'ꜳ', 'Ꜵ' => 'ꜵ', 'Ꜷ' => 'ꜷ', 'Ꜹ' => 'ꜹ', 'Ꜻ' => 'ꜻ', 'Ꜽ' => 'ꜽ', 'Ꜿ' => 'ꜿ', 'Ꝁ' => 'ꝁ', 'Ꝃ' => 'ꝃ', 'Ꝅ' => 'ꝅ', 'Ꝇ' => 'ꝇ', 'Ꝉ' => 'ꝉ', 'Ꝋ' => 'ꝋ', 'Ꝍ' => 'ꝍ', 'Ꝏ' => 'ꝏ', 'Ꝑ' => 'ꝑ', 'Ꝓ' => 'ꝓ', 'Ꝕ' => 'ꝕ', 'Ꝗ' => 'ꝗ', 'Ꝙ' => 'ꝙ', 'Ꝛ' => 'ꝛ', 'Ꝝ' => 'ꝝ', 'Ꝟ' => 'ꝟ', 'Ꝡ' => 'ꝡ', 'Ꝣ' => 'ꝣ', 'Ꝥ' => 'ꝥ', 'Ꝧ' => 'ꝧ', 'Ꝩ' => 'ꝩ', 'Ꝫ' => 'ꝫ', 'Ꝭ' => 'ꝭ', 'Ꝯ' => 'ꝯ', 'Ꝺ' => 'ꝺ', 'Ꝼ' => 'ꝼ', 'Ᵹ' => 'ᵹ', 'Ꝿ' => 'ꝿ', 'Ꞁ' => 'ꞁ', 'Ꞃ' => 'ꞃ', 'Ꞅ' => 'ꞅ', 'Ꞇ' => 'ꞇ', 'Ꞌ' => 'ꞌ', 'Ɥ' => 'ɥ', 'Ꞑ' => 'ꞑ', 'Ꞓ' => 'ꞓ', 'Ꞗ' => 'ꞗ', 'Ꞙ' => 'ꞙ', 'Ꞛ' => 'ꞛ', 'Ꞝ' => 'ꞝ', 'Ꞟ' => 'ꞟ', 'Ꞡ' => 'ꞡ', 'Ꞣ' => 'ꞣ', 'Ꞥ' => 'ꞥ', 'Ꞧ' => 'ꞧ', 'Ꞩ' => 'ꞩ', 'Ɦ' => 'ɦ', 'Ɜ' => 'ɜ', 'Ɡ' => 'ɡ', 'Ɬ' => 'ɬ', 'Ɪ' => 'ɪ', 'Ʞ' => 'ʞ', 'Ʇ' => 'ʇ', 'Ʝ' => 'ʝ', 'Ꭓ' => 'ꭓ', 'Ꞵ' => 'ꞵ', 'Ꞷ' => 'ꞷ', 'Ꞹ' => 'ꞹ', 'Ꞻ' => 'ꞻ', 'Ꞽ' => 'ꞽ', 'Ꞿ' => 'ꞿ', 'Ꟃ' => 'ꟃ', 'Ꞔ' => 'ꞔ', 'Ʂ' => 'ʂ', 'Ᶎ' => 'ᶎ', 'Ꟈ' => 'ꟈ', 'Ꟊ' => 'ꟊ', 'Ꟶ' => 'ꟶ', 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', '𐐀' => '𐐨', '𐐁' => '𐐩', '𐐂' => '𐐪', '𐐃' => '𐐫', '𐐄' => '𐐬', '𐐅' => '𐐭', '𐐆' => '𐐮', '𐐇' => '𐐯', '𐐈' => '𐐰', '𐐉' => '𐐱', '𐐊' => '𐐲', '𐐋' => '𐐳', '𐐌' => '𐐴', '𐐍' => '𐐵', '𐐎' => '𐐶', '𐐏' => '𐐷', '𐐐' => '𐐸', '𐐑' => '𐐹', '𐐒' => '𐐺', '𐐓' => '𐐻', '𐐔' => '𐐼', '𐐕' => '𐐽', '𐐖' => '𐐾', '𐐗' => '𐐿', '𐐘' => '𐑀', '𐐙' => '𐑁', '𐐚' => '𐑂', '𐐛' => '𐑃', '𐐜' => '𐑄', '𐐝' => '𐑅', '𐐞' => '𐑆', '𐐟' => '𐑇', '𐐠' => '𐑈', '𐐡' => '𐑉', '𐐢' => '𐑊', '𐐣' => '𐑋', '𐐤' => '𐑌', '𐐥' => '𐑍', '𐐦' => '𐑎', '𐐧' => '𐑏', '𐒰' => '𐓘', '𐒱' => '𐓙', '𐒲' => '𐓚', '𐒳' => '𐓛', '𐒴' => '𐓜', '𐒵' => '𐓝', '𐒶' => '𐓞', '𐒷' => '𐓟', '𐒸' => '𐓠', '𐒹' => '𐓡', '𐒺' => '𐓢', '𐒻' => '𐓣', '𐒼' => '𐓤', '𐒽' => '𐓥', '𐒾' => '𐓦', '𐒿' => '𐓧', '𐓀' => '𐓨', '𐓁' => '𐓩', '𐓂' => '𐓪', '𐓃' => '𐓫', '𐓄' => '𐓬', '𐓅' => '𐓭', '𐓆' => '𐓮', '𐓇' => '𐓯', '𐓈' => '𐓰', '𐓉' => '𐓱', '𐓊' => '𐓲', '𐓋' => '𐓳', '𐓌' => '𐓴', '𐓍' => '𐓵', '𐓎' => '𐓶', '𐓏' => '𐓷', '𐓐' => '𐓸', '𐓑' => '𐓹', '𐓒' => '𐓺', '𐓓' => '𐓻', '𐲀' => '𐳀', '𐲁' => '𐳁', '𐲂' => '𐳂', '𐲃' => '𐳃', '𐲄' => '𐳄', '𐲅' => '𐳅', '𐲆' => '𐳆', '𐲇' => '𐳇', '𐲈' => '𐳈', '𐲉' => '𐳉', '𐲊' => '𐳊', '𐲋' => '𐳋', '𐲌' => '𐳌', '𐲍' => '𐳍', '𐲎' => '𐳎', '𐲏' => '𐳏', '𐲐' => '𐳐', '𐲑' => '𐳑', '𐲒' => '𐳒', '𐲓' => '𐳓', '𐲔' => '𐳔', '𐲕' => '𐳕', '𐲖' => '𐳖', '𐲗' => '𐳗', '𐲘' => '𐳘', '𐲙' => '𐳙', '𐲚' => '𐳚', '𐲛' => '𐳛', '𐲜' => '𐳜', '𐲝' => '𐳝', '𐲞' => '𐳞', '𐲟' => '𐳟', '𐲠' => '𐳠', '𐲡' => '𐳡', '𐲢' => '𐳢', '𐲣' => '𐳣', '𐲤' => '𐳤', '𐲥' => '𐳥', '𐲦' => '𐳦', '𐲧' => '𐳧', '𐲨' => '𐳨', '𐲩' => '𐳩', '𐲪' => '𐳪', '𐲫' => '𐳫', '𐲬' => '𐳬', '𐲭' => '𐳭', '𐲮' => '𐳮', '𐲯' => '𐳯', '𐲰' => '𐳰', '𐲱' => '𐳱', '𐲲' => '𐳲', '𑢠' => '𑣀', '𑢡' => '𑣁', '𑢢' => '𑣂', '𑢣' => '𑣃', '𑢤' => '𑣄', '𑢥' => '𑣅', '𑢦' => '𑣆', '𑢧' => '𑣇', '𑢨' => '𑣈', '𑢩' => '𑣉', '𑢪' => '𑣊', '𑢫' => '𑣋', '𑢬' => '𑣌', '𑢭' => '𑣍', '𑢮' => '𑣎', '𑢯' => '𑣏', '𑢰' => '𑣐', '𑢱' => '𑣑', '𑢲' => '𑣒', '𑢳' => '𑣓', '𑢴' => '𑣔', '𑢵' => '𑣕', '𑢶' => '𑣖', '𑢷' => '𑣗', '𑢸' => '𑣘', '𑢹' => '𑣙', '𑢺' => '𑣚', '𑢻' => '𑣛', '𑢼' => '𑣜', '𑢽' => '𑣝', '𑢾' => '𑣞', '𑢿' => '𑣟', '𖹀' => '𖹠', '𖹁' => '𖹡', '𖹂' => '𖹢', '𖹃' => '𖹣', '𖹄' => '𖹤', '𖹅' => '𖹥', '𖹆' => '𖹦', '𖹇' => '𖹧', '𖹈' => '𖹨', '𖹉' => '𖹩', '𖹊' => '𖹪', '𖹋' => '𖹫', '𖹌' => '𖹬', '𖹍' => '𖹭', '𖹎' => '𖹮', '𖹏' => '𖹯', '𖹐' => '𖹰', '𖹑' => '𖹱', '𖹒' => '𖹲', '𖹓' => '𖹳', '𖹔' => '𖹴', '𖹕' => '𖹵', '𖹖' => '𖹶', '𖹗' => '𖹷', '𖹘' => '𖹸', '𖹙' => '𖹹', '𖹚' => '𖹺', '𖹛' => '𖹻', '𖹜' => '𖹼', '𖹝' => '𖹽', '𖹞' => '𖹾', '𖹟' => '𖹿', '𞤀' => '𞤢', '𞤁' => '𞤣', '𞤂' => '𞤤', '𞤃' => '𞤥', '𞤄' => '𞤦', '𞤅' => '𞤧', '𞤆' => '𞤨', '𞤇' => '𞤩', '𞤈' => '𞤪', '𞤉' => '𞤫', '𞤊' => '𞤬', '𞤋' => '𞤭', '𞤌' => '𞤮', '𞤍' => '𞤯', '𞤎' => '𞤰', '𞤏' => '𞤱', '𞤐' => '𞤲', '𞤑' => '𞤳', '𞤒' => '𞤴', '𞤓' => '𞤵', '𞤔' => '𞤶', '𞤕' => '𞤷', '𞤖' => '𞤸', '𞤗' => '𞤹', '𞤘' => '𞤺', '𞤙' => '𞤻', '𞤚' => '𞤼', '𞤛' => '𞤽', '𞤜' => '𞤾', '𞤝' => '𞤿', '𞤞' => '𞥀', '𞤟' => '𞥁', '𞤠' => '𞥂', '𞤡' => '𞥃'); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php index ab478cc83..9117d65e0 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php @@ -1,6 +1,6 @@ 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', 'µ' => 'Μ', 'à' => 'À', 'á' => 'Á', 'â' => 'Â', 'ã' => 'Ã', 'ä' => 'Ä', 'å' => 'Å', 'æ' => 'Æ', 'ç' => 'Ç', 'è' => 'È', 'é' => 'É', 'ê' => 'Ê', 'ë' => 'Ë', 'ì' => 'Ì', 'í' => 'Í', 'î' => 'Î', 'ï' => 'Ï', 'ð' => 'Ð', 'ñ' => 'Ñ', 'ò' => 'Ò', 'ó' => 'Ó', 'ô' => 'Ô', 'õ' => 'Õ', 'ö' => 'Ö', 'ø' => 'Ø', 'ù' => 'Ù', 'ú' => 'Ú', 'û' => 'Û', 'ü' => 'Ü', 'ý' => 'Ý', 'þ' => 'Þ', 'ÿ' => 'Ÿ', 'ā' => 'Ā', 'ă' => 'Ă', 'ą' => 'Ą', 'ć' => 'Ć', 'ĉ' => 'Ĉ', 'ċ' => 'Ċ', 'č' => 'Č', 'ď' => 'Ď', 'đ' => 'Đ', 'ē' => 'Ē', 'ĕ' => 'Ĕ', 'ė' => 'Ė', 'ę' => 'Ę', 'ě' => 'Ě', 'ĝ' => 'Ĝ', 'ğ' => 'Ğ', 'ġ' => 'Ġ', 'ģ' => 'Ģ', 'ĥ' => 'Ĥ', 'ħ' => 'Ħ', 'ĩ' => 'Ĩ', 'ī' => 'Ī', 'ĭ' => 'Ĭ', 'į' => 'Į', 'ı' => 'I', 'ij' => 'IJ', 'ĵ' => 'Ĵ', 'ķ' => 'Ķ', 'ĺ' => 'Ĺ', 'ļ' => 'Ļ', 'ľ' => 'Ľ', 'ŀ' => 'Ŀ', 'ł' => 'Ł', 'ń' => 'Ń', 'ņ' => 'Ņ', 'ň' => 'Ň', 'ŋ' => 'Ŋ', 'ō' => 'Ō', 'ŏ' => 'Ŏ', 'ő' => 'Ő', 'œ' => 'Œ', 'ŕ' => 'Ŕ', 'ŗ' => 'Ŗ', 'ř' => 'Ř', 'ś' => 'Ś', 'ŝ' => 'Ŝ', 'ş' => 'Ş', 'š' => 'Š', 'ţ' => 'Ţ', 'ť' => 'Ť', 'ŧ' => 'Ŧ', 'ũ' => 'Ũ', 'ū' => 'Ū', 'ŭ' => 'Ŭ', 'ů' => 'Ů', 'ű' => 'Ű', 'ų' => 'Ų', 'ŵ' => 'Ŵ', 'ŷ' => 'Ŷ', 'ź' => 'Ź', 'ż' => 'Ż', 'ž' => 'Ž', 'ſ' => 'S', 'ƀ' => 'Ƀ', 'ƃ' => 'Ƃ', 'ƅ' => 'Ƅ', 'ƈ' => 'Ƈ', 'ƌ' => 'Ƌ', 'ƒ' => 'Ƒ', 'ƕ' => 'Ƕ', 'ƙ' => 'Ƙ', 'ƚ' => 'Ƚ', 'ƞ' => 'Ƞ', 'ơ' => 'Ơ', 'ƣ' => 'Ƣ', 'ƥ' => 'Ƥ', 'ƨ' => 'Ƨ', 'ƭ' => 'Ƭ', 'ư' => 'Ư', 'ƴ' => 'Ƴ', 'ƶ' => 'Ƶ', 'ƹ' => 'Ƹ', 'ƽ' => 'Ƽ', 'ƿ' => 'Ƿ', 'Dž' => 'DŽ', 'dž' => 'DŽ', 'Lj' => 'LJ', 'lj' => 'LJ', 'Nj' => 'NJ', 'nj' => 'NJ', 'ǎ' => 'Ǎ', 'ǐ' => 'Ǐ', 'ǒ' => 'Ǒ', 'ǔ' => 'Ǔ', 'ǖ' => 'Ǖ', 'ǘ' => 'Ǘ', 'ǚ' => 'Ǚ', 'ǜ' => 'Ǜ', 'ǝ' => 'Ǝ', 'ǟ' => 'Ǟ', 'ǡ' => 'Ǡ', 'ǣ' => 'Ǣ', 'ǥ' => 'Ǥ', 'ǧ' => 'Ǧ', 'ǩ' => 'Ǩ', 'ǫ' => 'Ǫ', 'ǭ' => 'Ǭ', 'ǯ' => 'Ǯ', 'Dz' => 'DZ', 'dz' => 'DZ', 'ǵ' => 'Ǵ', 'ǹ' => 'Ǹ', 'ǻ' => 'Ǻ', 'ǽ' => 'Ǽ', 'ǿ' => 'Ǿ', 'ȁ' => 'Ȁ', 'ȃ' => 'Ȃ', 'ȅ' => 'Ȅ', 'ȇ' => 'Ȇ', 'ȉ' => 'Ȉ', 'ȋ' => 'Ȋ', 'ȍ' => 'Ȍ', 'ȏ' => 'Ȏ', 'ȑ' => 'Ȑ', 'ȓ' => 'Ȓ', 'ȕ' => 'Ȕ', 'ȗ' => 'Ȗ', 'ș' => 'Ș', 'ț' => 'Ț', 'ȝ' => 'Ȝ', 'ȟ' => 'Ȟ', 'ȣ' => 'Ȣ', 'ȥ' => 'Ȥ', 'ȧ' => 'Ȧ', 'ȩ' => 'Ȩ', 'ȫ' => 'Ȫ', 'ȭ' => 'Ȭ', 'ȯ' => 'Ȯ', 'ȱ' => 'Ȱ', 'ȳ' => 'Ȳ', 'ȼ' => 'Ȼ', 'ȿ' => 'Ȿ', 'ɀ' => 'Ɀ', 'ɂ' => 'Ɂ', 'ɇ' => 'Ɇ', 'ɉ' => 'Ɉ', 'ɋ' => 'Ɋ', 'ɍ' => 'Ɍ', 'ɏ' => 'Ɏ', 'ɐ' => 'Ɐ', 'ɑ' => 'Ɑ', 'ɒ' => 'Ɒ', 'ɓ' => 'Ɓ', 'ɔ' => 'Ɔ', 'ɖ' => 'Ɖ', 'ɗ' => 'Ɗ', 'ə' => 'Ə', 'ɛ' => 'Ɛ', 'ɜ' => 'Ɜ', 'ɠ' => 'Ɠ', 'ɡ' => 'Ɡ', 'ɣ' => 'Ɣ', 'ɥ' => 'Ɥ', 'ɦ' => 'Ɦ', 'ɨ' => 'Ɨ', 'ɩ' => 'Ɩ', 'ɪ' => 'Ɪ', 'ɫ' => 'Ɫ', 'ɬ' => 'Ɬ', 'ɯ' => 'Ɯ', 'ɱ' => 'Ɱ', 'ɲ' => 'Ɲ', 'ɵ' => 'Ɵ', 'ɽ' => 'Ɽ', 'ʀ' => 'Ʀ', 'ʂ' => 'Ʂ', 'ʃ' => 'Ʃ', 'ʇ' => 'Ʇ', 'ʈ' => 'Ʈ', 'ʉ' => 'Ʉ', 'ʊ' => 'Ʊ', 'ʋ' => 'Ʋ', 'ʌ' => 'Ʌ', 'ʒ' => 'Ʒ', 'ʝ' => 'Ʝ', 'ʞ' => 'Ʞ', 'ͅ' => 'Ι', 'ͱ' => 'Ͱ', 'ͳ' => 'Ͳ', 'ͷ' => 'Ͷ', 'ͻ' => 'Ͻ', 'ͼ' => 'Ͼ', 'ͽ' => 'Ͽ', 'ά' => 'Ά', 'έ' => 'Έ', 'ή' => 'Ή', 'ί' => 'Ί', 'α' => 'Α', 'β' => 'Β', 'γ' => 'Γ', 'δ' => 'Δ', 'ε' => 'Ε', 'ζ' => 'Ζ', 'η' => 'Η', 'θ' => 'Θ', 'ι' => 'Ι', 'κ' => 'Κ', 'λ' => 'Λ', 'μ' => 'Μ', 'ν' => 'Ν', 'ξ' => 'Ξ', 'ο' => 'Ο', 'π' => 'Π', 'ρ' => 'Ρ', 'ς' => 'Σ', 'σ' => 'Σ', 'τ' => 'Τ', 'υ' => 'Υ', 'φ' => 'Φ', 'χ' => 'Χ', 'ψ' => 'Ψ', 'ω' => 'Ω', 'ϊ' => 'Ϊ', 'ϋ' => 'Ϋ', 'ό' => 'Ό', 'ύ' => 'Ύ', 'ώ' => 'Ώ', 'ϐ' => 'Β', 'ϑ' => 'Θ', 'ϕ' => 'Φ', 'ϖ' => 'Π', 'ϗ' => 'Ϗ', 'ϙ' => 'Ϙ', 'ϛ' => 'Ϛ', 'ϝ' => 'Ϝ', 'ϟ' => 'Ϟ', 'ϡ' => 'Ϡ', 'ϣ' => 'Ϣ', 'ϥ' => 'Ϥ', 'ϧ' => 'Ϧ', 'ϩ' => 'Ϩ', 'ϫ' => 'Ϫ', 'ϭ' => 'Ϭ', 'ϯ' => 'Ϯ', 'ϰ' => 'Κ', 'ϱ' => 'Ρ', 'ϲ' => 'Ϲ', 'ϳ' => 'Ϳ', 'ϵ' => 'Ε', 'ϸ' => 'Ϸ', 'ϻ' => 'Ϻ', 'а' => 'А', 'б' => 'Б', 'в' => 'В', 'г' => 'Г', 'д' => 'Д', 'е' => 'Е', 'ж' => 'Ж', 'з' => 'З', 'и' => 'И', 'й' => 'Й', 'к' => 'К', 'л' => 'Л', 'м' => 'М', 'н' => 'Н', 'о' => 'О', 'п' => 'П', 'р' => 'Р', 'с' => 'С', 'т' => 'Т', 'у' => 'У', 'ф' => 'Ф', 'х' => 'Х', 'ц' => 'Ц', 'ч' => 'Ч', 'ш' => 'Ш', 'щ' => 'Щ', 'ъ' => 'Ъ', 'ы' => 'Ы', 'ь' => 'Ь', 'э' => 'Э', 'ю' => 'Ю', 'я' => 'Я', 'ѐ' => 'Ѐ', 'ё' => 'Ё', 'ђ' => 'Ђ', 'ѓ' => 'Ѓ', 'є' => 'Є', 'ѕ' => 'Ѕ', 'і' => 'І', 'ї' => 'Ї', 'ј' => 'Ј', 'љ' => 'Љ', 'њ' => 'Њ', 'ћ' => 'Ћ', 'ќ' => 'Ќ', 'ѝ' => 'Ѝ', 'ў' => 'Ў', 'џ' => 'Џ', 'ѡ' => 'Ѡ', 'ѣ' => 'Ѣ', 'ѥ' => 'Ѥ', 'ѧ' => 'Ѧ', 'ѩ' => 'Ѩ', 'ѫ' => 'Ѫ', 'ѭ' => 'Ѭ', 'ѯ' => 'Ѯ', 'ѱ' => 'Ѱ', 'ѳ' => 'Ѳ', 'ѵ' => 'Ѵ', 'ѷ' => 'Ѷ', 'ѹ' => 'Ѹ', 'ѻ' => 'Ѻ', 'ѽ' => 'Ѽ', 'ѿ' => 'Ѿ', 'ҁ' => 'Ҁ', 'ҋ' => 'Ҋ', 'ҍ' => 'Ҍ', 'ҏ' => 'Ҏ', 'ґ' => 'Ґ', 'ғ' => 'Ғ', 'ҕ' => 'Ҕ', 'җ' => 'Җ', 'ҙ' => 'Ҙ', 'қ' => 'Қ', 'ҝ' => 'Ҝ', 'ҟ' => 'Ҟ', 'ҡ' => 'Ҡ', 'ң' => 'Ң', 'ҥ' => 'Ҥ', 'ҧ' => 'Ҧ', 'ҩ' => 'Ҩ', 'ҫ' => 'Ҫ', 'ҭ' => 'Ҭ', 'ү' => 'Ү', 'ұ' => 'Ұ', 'ҳ' => 'Ҳ', 'ҵ' => 'Ҵ', 'ҷ' => 'Ҷ', 'ҹ' => 'Ҹ', 'һ' => 'Һ', 'ҽ' => 'Ҽ', 'ҿ' => 'Ҿ', 'ӂ' => 'Ӂ', 'ӄ' => 'Ӄ', 'ӆ' => 'Ӆ', 'ӈ' => 'Ӈ', 'ӊ' => 'Ӊ', 'ӌ' => 'Ӌ', 'ӎ' => 'Ӎ', 'ӏ' => 'Ӏ', 'ӑ' => 'Ӑ', 'ӓ' => 'Ӓ', 'ӕ' => 'Ӕ', 'ӗ' => 'Ӗ', 'ә' => 'Ә', 'ӛ' => 'Ӛ', 'ӝ' => 'Ӝ', 'ӟ' => 'Ӟ', 'ӡ' => 'Ӡ', 'ӣ' => 'Ӣ', 'ӥ' => 'Ӥ', 'ӧ' => 'Ӧ', 'ө' => 'Ө', 'ӫ' => 'Ӫ', 'ӭ' => 'Ӭ', 'ӯ' => 'Ӯ', 'ӱ' => 'Ӱ', 'ӳ' => 'Ӳ', 'ӵ' => 'Ӵ', 'ӷ' => 'Ӷ', 'ӹ' => 'Ӹ', 'ӻ' => 'Ӻ', 'ӽ' => 'Ӽ', 'ӿ' => 'Ӿ', 'ԁ' => 'Ԁ', 'ԃ' => 'Ԃ', 'ԅ' => 'Ԅ', 'ԇ' => 'Ԇ', 'ԉ' => 'Ԉ', 'ԋ' => 'Ԋ', 'ԍ' => 'Ԍ', 'ԏ' => 'Ԏ', 'ԑ' => 'Ԑ', 'ԓ' => 'Ԓ', 'ԕ' => 'Ԕ', 'ԗ' => 'Ԗ', 'ԙ' => 'Ԙ', 'ԛ' => 'Ԛ', 'ԝ' => 'Ԝ', 'ԟ' => 'Ԟ', 'ԡ' => 'Ԡ', 'ԣ' => 'Ԣ', 'ԥ' => 'Ԥ', 'ԧ' => 'Ԧ', 'ԩ' => 'Ԩ', 'ԫ' => 'Ԫ', 'ԭ' => 'Ԭ', 'ԯ' => 'Ԯ', 'ա' => 'Ա', 'բ' => 'Բ', 'գ' => 'Գ', 'դ' => 'Դ', 'ե' => 'Ե', 'զ' => 'Զ', 'է' => 'Է', 'ը' => 'Ը', 'թ' => 'Թ', 'ժ' => 'Ժ', 'ի' => 'Ի', 'լ' => 'Լ', 'խ' => 'Խ', 'ծ' => 'Ծ', 'կ' => 'Կ', 'հ' => 'Հ', 'ձ' => 'Ձ', 'ղ' => 'Ղ', 'ճ' => 'Ճ', 'մ' => 'Մ', 'յ' => 'Յ', 'ն' => 'Ն', 'շ' => 'Շ', 'ո' => 'Ո', 'չ' => 'Չ', 'պ' => 'Պ', 'ջ' => 'Ջ', 'ռ' => 'Ռ', 'ս' => 'Ս', 'վ' => 'Վ', 'տ' => 'Տ', 'ր' => 'Ր', 'ց' => 'Ց', 'ւ' => 'Ւ', 'փ' => 'Փ', 'ք' => 'Ք', 'օ' => 'Օ', 'ֆ' => 'Ֆ', 'ა' => 'Ა', 'ბ' => 'Ბ', 'გ' => 'Გ', 'დ' => 'Დ', 'ე' => 'Ე', 'ვ' => 'Ვ', 'ზ' => 'Ზ', 'თ' => 'Თ', 'ი' => 'Ი', 'კ' => 'Კ', 'ლ' => 'Ლ', 'მ' => 'Მ', 'ნ' => 'Ნ', 'ო' => 'Ო', 'პ' => 'Პ', 'ჟ' => 'Ჟ', 'რ' => 'Რ', 'ს' => 'Ს', 'ტ' => 'Ტ', 'უ' => 'Უ', 'ფ' => 'Ფ', 'ქ' => 'Ქ', 'ღ' => 'Ღ', 'ყ' => 'Ყ', 'შ' => 'Შ', 'ჩ' => 'Ჩ', 'ც' => 'Ც', 'ძ' => 'Ძ', 'წ' => 'Წ', 'ჭ' => 'Ჭ', 'ხ' => 'Ხ', 'ჯ' => 'Ჯ', 'ჰ' => 'Ჰ', 'ჱ' => 'Ჱ', 'ჲ' => 'Ჲ', 'ჳ' => 'Ჳ', 'ჴ' => 'Ჴ', 'ჵ' => 'Ჵ', 'ჶ' => 'Ჶ', 'ჷ' => 'Ჷ', 'ჸ' => 'Ჸ', 'ჹ' => 'Ჹ', 'ჺ' => 'Ჺ', 'ჽ' => 'Ჽ', 'ჾ' => 'Ჾ', 'ჿ' => 'Ჿ', 'ᏸ' => 'Ᏸ', 'ᏹ' => 'Ᏹ', 'ᏺ' => 'Ᏺ', 'ᏻ' => 'Ᏻ', 'ᏼ' => 'Ᏼ', 'ᏽ' => 'Ᏽ', 'ᲀ' => 'В', 'ᲁ' => 'Д', 'ᲂ' => 'О', 'ᲃ' => 'С', 'ᲄ' => 'Т', 'ᲅ' => 'Т', 'ᲆ' => 'Ъ', 'ᲇ' => 'Ѣ', 'ᲈ' => 'Ꙋ', 'ᵹ' => 'Ᵹ', 'ᵽ' => 'Ᵽ', 'ᶎ' => 'Ᶎ', 'ḁ' => 'Ḁ', 'ḃ' => 'Ḃ', 'ḅ' => 'Ḅ', 'ḇ' => 'Ḇ', 'ḉ' => 'Ḉ', 'ḋ' => 'Ḋ', 'ḍ' => 'Ḍ', 'ḏ' => 'Ḏ', 'ḑ' => 'Ḑ', 'ḓ' => 'Ḓ', 'ḕ' => 'Ḕ', 'ḗ' => 'Ḗ', 'ḙ' => 'Ḙ', 'ḛ' => 'Ḛ', 'ḝ' => 'Ḝ', 'ḟ' => 'Ḟ', 'ḡ' => 'Ḡ', 'ḣ' => 'Ḣ', 'ḥ' => 'Ḥ', 'ḧ' => 'Ḧ', 'ḩ' => 'Ḩ', 'ḫ' => 'Ḫ', 'ḭ' => 'Ḭ', 'ḯ' => 'Ḯ', 'ḱ' => 'Ḱ', 'ḳ' => 'Ḳ', 'ḵ' => 'Ḵ', 'ḷ' => 'Ḷ', 'ḹ' => 'Ḹ', 'ḻ' => 'Ḻ', 'ḽ' => 'Ḽ', 'ḿ' => 'Ḿ', 'ṁ' => 'Ṁ', 'ṃ' => 'Ṃ', 'ṅ' => 'Ṅ', 'ṇ' => 'Ṇ', 'ṉ' => 'Ṉ', 'ṋ' => 'Ṋ', 'ṍ' => 'Ṍ', 'ṏ' => 'Ṏ', 'ṑ' => 'Ṑ', 'ṓ' => 'Ṓ', 'ṕ' => 'Ṕ', 'ṗ' => 'Ṗ', 'ṙ' => 'Ṙ', 'ṛ' => 'Ṛ', 'ṝ' => 'Ṝ', 'ṟ' => 'Ṟ', 'ṡ' => 'Ṡ', 'ṣ' => 'Ṣ', 'ṥ' => 'Ṥ', 'ṧ' => 'Ṧ', 'ṩ' => 'Ṩ', 'ṫ' => 'Ṫ', 'ṭ' => 'Ṭ', 'ṯ' => 'Ṯ', 'ṱ' => 'Ṱ', 'ṳ' => 'Ṳ', 'ṵ' => 'Ṵ', 'ṷ' => 'Ṷ', 'ṹ' => 'Ṹ', 'ṻ' => 'Ṻ', 'ṽ' => 'Ṽ', 'ṿ' => 'Ṿ', 'ẁ' => 'Ẁ', 'ẃ' => 'Ẃ', 'ẅ' => 'Ẅ', 'ẇ' => 'Ẇ', 'ẉ' => 'Ẉ', 'ẋ' => 'Ẋ', 'ẍ' => 'Ẍ', 'ẏ' => 'Ẏ', 'ẑ' => 'Ẑ', 'ẓ' => 'Ẓ', 'ẕ' => 'Ẕ', 'ẛ' => 'Ṡ', 'ạ' => 'Ạ', 'ả' => 'Ả', 'ấ' => 'Ấ', 'ầ' => 'Ầ', 'ẩ' => 'Ẩ', 'ẫ' => 'Ẫ', 'ậ' => 'Ậ', 'ắ' => 'Ắ', 'ằ' => 'Ằ', 'ẳ' => 'Ẳ', 'ẵ' => 'Ẵ', 'ặ' => 'Ặ', 'ẹ' => 'Ẹ', 'ẻ' => 'Ẻ', 'ẽ' => 'Ẽ', 'ế' => 'Ế', 'ề' => 'Ề', 'ể' => 'Ể', 'ễ' => 'Ễ', 'ệ' => 'Ệ', 'ỉ' => 'Ỉ', 'ị' => 'Ị', 'ọ' => 'Ọ', 'ỏ' => 'Ỏ', 'ố' => 'Ố', 'ồ' => 'Ồ', 'ổ' => 'Ổ', 'ỗ' => 'Ỗ', 'ộ' => 'Ộ', 'ớ' => 'Ớ', 'ờ' => 'Ờ', 'ở' => 'Ở', 'ỡ' => 'Ỡ', 'ợ' => 'Ợ', 'ụ' => 'Ụ', 'ủ' => 'Ủ', 'ứ' => 'Ứ', 'ừ' => 'Ừ', 'ử' => 'Ử', 'ữ' => 'Ữ', 'ự' => 'Ự', 'ỳ' => 'Ỳ', 'ỵ' => 'Ỵ', 'ỷ' => 'Ỷ', 'ỹ' => 'Ỹ', 'ỻ' => 'Ỻ', 'ỽ' => 'Ỽ', 'ỿ' => 'Ỿ', 'ἀ' => 'Ἀ', 'ἁ' => 'Ἁ', 'ἂ' => 'Ἂ', 'ἃ' => 'Ἃ', 'ἄ' => 'Ἄ', 'ἅ' => 'Ἅ', 'ἆ' => 'Ἆ', 'ἇ' => 'Ἇ', 'ἐ' => 'Ἐ', 'ἑ' => 'Ἑ', 'ἒ' => 'Ἒ', 'ἓ' => 'Ἓ', 'ἔ' => 'Ἔ', 'ἕ' => 'Ἕ', 'ἠ' => 'Ἠ', 'ἡ' => 'Ἡ', 'ἢ' => 'Ἢ', 'ἣ' => 'Ἣ', 'ἤ' => 'Ἤ', 'ἥ' => 'Ἥ', 'ἦ' => 'Ἦ', 'ἧ' => 'Ἧ', 'ἰ' => 'Ἰ', 'ἱ' => 'Ἱ', 'ἲ' => 'Ἲ', 'ἳ' => 'Ἳ', 'ἴ' => 'Ἴ', 'ἵ' => 'Ἵ', 'ἶ' => 'Ἶ', 'ἷ' => 'Ἷ', 'ὀ' => 'Ὀ', 'ὁ' => 'Ὁ', 'ὂ' => 'Ὂ', 'ὃ' => 'Ὃ', 'ὄ' => 'Ὄ', 'ὅ' => 'Ὅ', 'ὑ' => 'Ὑ', 'ὓ' => 'Ὓ', 'ὕ' => 'Ὕ', 'ὗ' => 'Ὗ', 'ὠ' => 'Ὠ', 'ὡ' => 'Ὡ', 'ὢ' => 'Ὢ', 'ὣ' => 'Ὣ', 'ὤ' => 'Ὤ', 'ὥ' => 'Ὥ', 'ὦ' => 'Ὦ', 'ὧ' => 'Ὧ', 'ὰ' => 'Ὰ', 'ά' => 'Ά', 'ὲ' => 'Ὲ', 'έ' => 'Έ', 'ὴ' => 'Ὴ', 'ή' => 'Ή', 'ὶ' => 'Ὶ', 'ί' => 'Ί', 'ὸ' => 'Ὸ', 'ό' => 'Ό', 'ὺ' => 'Ὺ', 'ύ' => 'Ύ', 'ὼ' => 'Ὼ', 'ώ' => 'Ώ', 'ᾀ' => 'ἈΙ', 'ᾁ' => 'ἉΙ', 'ᾂ' => 'ἊΙ', 'ᾃ' => 'ἋΙ', 'ᾄ' => 'ἌΙ', 'ᾅ' => 'ἍΙ', 'ᾆ' => 'ἎΙ', 'ᾇ' => 'ἏΙ', 'ᾐ' => 'ἨΙ', 'ᾑ' => 'ἩΙ', 'ᾒ' => 'ἪΙ', 'ᾓ' => 'ἫΙ', 'ᾔ' => 'ἬΙ', 'ᾕ' => 'ἭΙ', 'ᾖ' => 'ἮΙ', 'ᾗ' => 'ἯΙ', 'ᾠ' => 'ὨΙ', 'ᾡ' => 'ὩΙ', 'ᾢ' => 'ὪΙ', 'ᾣ' => 'ὫΙ', 'ᾤ' => 'ὬΙ', 'ᾥ' => 'ὭΙ', 'ᾦ' => 'ὮΙ', 'ᾧ' => 'ὯΙ', 'ᾰ' => 'Ᾰ', 'ᾱ' => 'Ᾱ', 'ᾳ' => 'ΑΙ', 'ι' => 'Ι', 'ῃ' => 'ΗΙ', 'ῐ' => 'Ῐ', 'ῑ' => 'Ῑ', 'ῠ' => 'Ῠ', 'ῡ' => 'Ῡ', 'ῥ' => 'Ῥ', 'ῳ' => 'ΩΙ', 'ⅎ' => 'Ⅎ', 'ⅰ' => 'Ⅰ', 'ⅱ' => 'Ⅱ', 'ⅲ' => 'Ⅲ', 'ⅳ' => 'Ⅳ', 'ⅴ' => 'Ⅴ', 'ⅵ' => 'Ⅵ', 'ⅶ' => 'Ⅶ', 'ⅷ' => 'Ⅷ', 'ⅸ' => 'Ⅸ', 'ⅹ' => 'Ⅹ', 'ⅺ' => 'Ⅺ', 'ⅻ' => 'Ⅻ', 'ⅼ' => 'Ⅼ', 'ⅽ' => 'Ⅽ', 'ⅾ' => 'Ⅾ', 'ⅿ' => 'Ⅿ', 'ↄ' => 'Ↄ', 'ⓐ' => 'Ⓐ', 'ⓑ' => 'Ⓑ', 'ⓒ' => 'Ⓒ', 'ⓓ' => 'Ⓓ', 'ⓔ' => 'Ⓔ', 'ⓕ' => 'Ⓕ', 'ⓖ' => 'Ⓖ', 'ⓗ' => 'Ⓗ', 'ⓘ' => 'Ⓘ', 'ⓙ' => 'Ⓙ', 'ⓚ' => 'Ⓚ', 'ⓛ' => 'Ⓛ', 'ⓜ' => 'Ⓜ', 'ⓝ' => 'Ⓝ', 'ⓞ' => 'Ⓞ', 'ⓟ' => 'Ⓟ', 'ⓠ' => 'Ⓠ', 'ⓡ' => 'Ⓡ', 'ⓢ' => 'Ⓢ', 'ⓣ' => 'Ⓣ', 'ⓤ' => 'Ⓤ', 'ⓥ' => 'Ⓥ', 'ⓦ' => 'Ⓦ', 'ⓧ' => 'Ⓧ', 'ⓨ' => 'Ⓨ', 'ⓩ' => 'Ⓩ', 'ⰰ' => 'Ⰰ', 'ⰱ' => 'Ⰱ', 'ⰲ' => 'Ⰲ', 'ⰳ' => 'Ⰳ', 'ⰴ' => 'Ⰴ', 'ⰵ' => 'Ⰵ', 'ⰶ' => 'Ⰶ', 'ⰷ' => 'Ⰷ', 'ⰸ' => 'Ⰸ', 'ⰹ' => 'Ⰹ', 'ⰺ' => 'Ⰺ', 'ⰻ' => 'Ⰻ', 'ⰼ' => 'Ⰼ', 'ⰽ' => 'Ⰽ', 'ⰾ' => 'Ⰾ', 'ⰿ' => 'Ⰿ', 'ⱀ' => 'Ⱀ', 'ⱁ' => 'Ⱁ', 'ⱂ' => 'Ⱂ', 'ⱃ' => 'Ⱃ', 'ⱄ' => 'Ⱄ', 'ⱅ' => 'Ⱅ', 'ⱆ' => 'Ⱆ', 'ⱇ' => 'Ⱇ', 'ⱈ' => 'Ⱈ', 'ⱉ' => 'Ⱉ', 'ⱊ' => 'Ⱊ', 'ⱋ' => 'Ⱋ', 'ⱌ' => 'Ⱌ', 'ⱍ' => 'Ⱍ', 'ⱎ' => 'Ⱎ', 'ⱏ' => 'Ⱏ', 'ⱐ' => 'Ⱐ', 'ⱑ' => 'Ⱑ', 'ⱒ' => 'Ⱒ', 'ⱓ' => 'Ⱓ', 'ⱔ' => 'Ⱔ', 'ⱕ' => 'Ⱕ', 'ⱖ' => 'Ⱖ', 'ⱗ' => 'Ⱗ', 'ⱘ' => 'Ⱘ', 'ⱙ' => 'Ⱙ', 'ⱚ' => 'Ⱚ', 'ⱛ' => 'Ⱛ', 'ⱜ' => 'Ⱜ', 'ⱝ' => 'Ⱝ', 'ⱞ' => 'Ⱞ', 'ⱡ' => 'Ⱡ', 'ⱥ' => 'Ⱥ', 'ⱦ' => 'Ⱦ', 'ⱨ' => 'Ⱨ', 'ⱪ' => 'Ⱪ', 'ⱬ' => 'Ⱬ', 'ⱳ' => 'Ⱳ', 'ⱶ' => 'Ⱶ', 'ⲁ' => 'Ⲁ', 'ⲃ' => 'Ⲃ', 'ⲅ' => 'Ⲅ', 'ⲇ' => 'Ⲇ', 'ⲉ' => 'Ⲉ', 'ⲋ' => 'Ⲋ', 'ⲍ' => 'Ⲍ', 'ⲏ' => 'Ⲏ', 'ⲑ' => 'Ⲑ', 'ⲓ' => 'Ⲓ', 'ⲕ' => 'Ⲕ', 'ⲗ' => 'Ⲗ', 'ⲙ' => 'Ⲙ', 'ⲛ' => 'Ⲛ', 'ⲝ' => 'Ⲝ', 'ⲟ' => 'Ⲟ', 'ⲡ' => 'Ⲡ', 'ⲣ' => 'Ⲣ', 'ⲥ' => 'Ⲥ', 'ⲧ' => 'Ⲧ', 'ⲩ' => 'Ⲩ', 'ⲫ' => 'Ⲫ', 'ⲭ' => 'Ⲭ', 'ⲯ' => 'Ⲯ', 'ⲱ' => 'Ⲱ', 'ⲳ' => 'Ⲳ', 'ⲵ' => 'Ⲵ', 'ⲷ' => 'Ⲷ', 'ⲹ' => 'Ⲹ', 'ⲻ' => 'Ⲻ', 'ⲽ' => 'Ⲽ', 'ⲿ' => 'Ⲿ', 'ⳁ' => 'Ⳁ', 'ⳃ' => 'Ⳃ', 'ⳅ' => 'Ⳅ', 'ⳇ' => 'Ⳇ', 'ⳉ' => 'Ⳉ', 'ⳋ' => 'Ⳋ', 'ⳍ' => 'Ⳍ', 'ⳏ' => 'Ⳏ', 'ⳑ' => 'Ⳑ', 'ⳓ' => 'Ⳓ', 'ⳕ' => 'Ⳕ', 'ⳗ' => 'Ⳗ', 'ⳙ' => 'Ⳙ', 'ⳛ' => 'Ⳛ', 'ⳝ' => 'Ⳝ', 'ⳟ' => 'Ⳟ', 'ⳡ' => 'Ⳡ', 'ⳣ' => 'Ⳣ', 'ⳬ' => 'Ⳬ', 'ⳮ' => 'Ⳮ', 'ⳳ' => 'Ⳳ', 'ⴀ' => 'Ⴀ', 'ⴁ' => 'Ⴁ', 'ⴂ' => 'Ⴂ', 'ⴃ' => 'Ⴃ', 'ⴄ' => 'Ⴄ', 'ⴅ' => 'Ⴅ', 'ⴆ' => 'Ⴆ', 'ⴇ' => 'Ⴇ', 'ⴈ' => 'Ⴈ', 'ⴉ' => 'Ⴉ', 'ⴊ' => 'Ⴊ', 'ⴋ' => 'Ⴋ', 'ⴌ' => 'Ⴌ', 'ⴍ' => 'Ⴍ', 'ⴎ' => 'Ⴎ', 'ⴏ' => 'Ⴏ', 'ⴐ' => 'Ⴐ', 'ⴑ' => 'Ⴑ', 'ⴒ' => 'Ⴒ', 'ⴓ' => 'Ⴓ', 'ⴔ' => 'Ⴔ', 'ⴕ' => 'Ⴕ', 'ⴖ' => 'Ⴖ', 'ⴗ' => 'Ⴗ', 'ⴘ' => 'Ⴘ', 'ⴙ' => 'Ⴙ', 'ⴚ' => 'Ⴚ', 'ⴛ' => 'Ⴛ', 'ⴜ' => 'Ⴜ', 'ⴝ' => 'Ⴝ', 'ⴞ' => 'Ⴞ', 'ⴟ' => 'Ⴟ', 'ⴠ' => 'Ⴠ', 'ⴡ' => 'Ⴡ', 'ⴢ' => 'Ⴢ', 'ⴣ' => 'Ⴣ', 'ⴤ' => 'Ⴤ', 'ⴥ' => 'Ⴥ', 'ⴧ' => 'Ⴧ', 'ⴭ' => 'Ⴭ', 'ꙁ' => 'Ꙁ', 'ꙃ' => 'Ꙃ', 'ꙅ' => 'Ꙅ', 'ꙇ' => 'Ꙇ', 'ꙉ' => 'Ꙉ', 'ꙋ' => 'Ꙋ', 'ꙍ' => 'Ꙍ', 'ꙏ' => 'Ꙏ', 'ꙑ' => 'Ꙑ', 'ꙓ' => 'Ꙓ', 'ꙕ' => 'Ꙕ', 'ꙗ' => 'Ꙗ', 'ꙙ' => 'Ꙙ', 'ꙛ' => 'Ꙛ', 'ꙝ' => 'Ꙝ', 'ꙟ' => 'Ꙟ', 'ꙡ' => 'Ꙡ', 'ꙣ' => 'Ꙣ', 'ꙥ' => 'Ꙥ', 'ꙧ' => 'Ꙧ', 'ꙩ' => 'Ꙩ', 'ꙫ' => 'Ꙫ', 'ꙭ' => 'Ꙭ', 'ꚁ' => 'Ꚁ', 'ꚃ' => 'Ꚃ', 'ꚅ' => 'Ꚅ', 'ꚇ' => 'Ꚇ', 'ꚉ' => 'Ꚉ', 'ꚋ' => 'Ꚋ', 'ꚍ' => 'Ꚍ', 'ꚏ' => 'Ꚏ', 'ꚑ' => 'Ꚑ', 'ꚓ' => 'Ꚓ', 'ꚕ' => 'Ꚕ', 'ꚗ' => 'Ꚗ', 'ꚙ' => 'Ꚙ', 'ꚛ' => 'Ꚛ', 'ꜣ' => 'Ꜣ', 'ꜥ' => 'Ꜥ', 'ꜧ' => 'Ꜧ', 'ꜩ' => 'Ꜩ', 'ꜫ' => 'Ꜫ', 'ꜭ' => 'Ꜭ', 'ꜯ' => 'Ꜯ', 'ꜳ' => 'Ꜳ', 'ꜵ' => 'Ꜵ', 'ꜷ' => 'Ꜷ', 'ꜹ' => 'Ꜹ', 'ꜻ' => 'Ꜻ', 'ꜽ' => 'Ꜽ', 'ꜿ' => 'Ꜿ', 'ꝁ' => 'Ꝁ', 'ꝃ' => 'Ꝃ', 'ꝅ' => 'Ꝅ', 'ꝇ' => 'Ꝇ', 'ꝉ' => 'Ꝉ', 'ꝋ' => 'Ꝋ', 'ꝍ' => 'Ꝍ', 'ꝏ' => 'Ꝏ', 'ꝑ' => 'Ꝑ', 'ꝓ' => 'Ꝓ', 'ꝕ' => 'Ꝕ', 'ꝗ' => 'Ꝗ', 'ꝙ' => 'Ꝙ', 'ꝛ' => 'Ꝛ', 'ꝝ' => 'Ꝝ', 'ꝟ' => 'Ꝟ', 'ꝡ' => 'Ꝡ', 'ꝣ' => 'Ꝣ', 'ꝥ' => 'Ꝥ', 'ꝧ' => 'Ꝧ', 'ꝩ' => 'Ꝩ', 'ꝫ' => 'Ꝫ', 'ꝭ' => 'Ꝭ', 'ꝯ' => 'Ꝯ', 'ꝺ' => 'Ꝺ', 'ꝼ' => 'Ꝼ', 'ꝿ' => 'Ꝿ', 'ꞁ' => 'Ꞁ', 'ꞃ' => 'Ꞃ', 'ꞅ' => 'Ꞅ', 'ꞇ' => 'Ꞇ', 'ꞌ' => 'Ꞌ', 'ꞑ' => 'Ꞑ', 'ꞓ' => 'Ꞓ', 'ꞔ' => 'Ꞔ', 'ꞗ' => 'Ꞗ', 'ꞙ' => 'Ꞙ', 'ꞛ' => 'Ꞛ', 'ꞝ' => 'Ꞝ', 'ꞟ' => 'Ꞟ', 'ꞡ' => 'Ꞡ', 'ꞣ' => 'Ꞣ', 'ꞥ' => 'Ꞥ', 'ꞧ' => 'Ꞧ', 'ꞩ' => 'Ꞩ', 'ꞵ' => 'Ꞵ', 'ꞷ' => 'Ꞷ', 'ꞹ' => 'Ꞹ', 'ꞻ' => 'Ꞻ', 'ꞽ' => 'Ꞽ', 'ꞿ' => 'Ꞿ', 'ꟃ' => 'Ꟃ', 'ꟈ' => 'Ꟈ', 'ꟊ' => 'Ꟊ', 'ꟶ' => 'Ꟶ', 'ꭓ' => 'Ꭓ', 'ꭰ' => 'Ꭰ', 'ꭱ' => 'Ꭱ', 'ꭲ' => 'Ꭲ', 'ꭳ' => 'Ꭳ', 'ꭴ' => 'Ꭴ', 'ꭵ' => 'Ꭵ', 'ꭶ' => 'Ꭶ', 'ꭷ' => 'Ꭷ', 'ꭸ' => 'Ꭸ', 'ꭹ' => 'Ꭹ', 'ꭺ' => 'Ꭺ', 'ꭻ' => 'Ꭻ', 'ꭼ' => 'Ꭼ', 'ꭽ' => 'Ꭽ', 'ꭾ' => 'Ꭾ', 'ꭿ' => 'Ꭿ', 'ꮀ' => 'Ꮀ', 'ꮁ' => 'Ꮁ', 'ꮂ' => 'Ꮂ', 'ꮃ' => 'Ꮃ', 'ꮄ' => 'Ꮄ', 'ꮅ' => 'Ꮅ', 'ꮆ' => 'Ꮆ', 'ꮇ' => 'Ꮇ', 'ꮈ' => 'Ꮈ', 'ꮉ' => 'Ꮉ', 'ꮊ' => 'Ꮊ', 'ꮋ' => 'Ꮋ', 'ꮌ' => 'Ꮌ', 'ꮍ' => 'Ꮍ', 'ꮎ' => 'Ꮎ', 'ꮏ' => 'Ꮏ', 'ꮐ' => 'Ꮐ', 'ꮑ' => 'Ꮑ', 'ꮒ' => 'Ꮒ', 'ꮓ' => 'Ꮓ', 'ꮔ' => 'Ꮔ', 'ꮕ' => 'Ꮕ', 'ꮖ' => 'Ꮖ', 'ꮗ' => 'Ꮗ', 'ꮘ' => 'Ꮘ', 'ꮙ' => 'Ꮙ', 'ꮚ' => 'Ꮚ', 'ꮛ' => 'Ꮛ', 'ꮜ' => 'Ꮜ', 'ꮝ' => 'Ꮝ', 'ꮞ' => 'Ꮞ', 'ꮟ' => 'Ꮟ', 'ꮠ' => 'Ꮠ', 'ꮡ' => 'Ꮡ', 'ꮢ' => 'Ꮢ', 'ꮣ' => 'Ꮣ', 'ꮤ' => 'Ꮤ', 'ꮥ' => 'Ꮥ', 'ꮦ' => 'Ꮦ', 'ꮧ' => 'Ꮧ', 'ꮨ' => 'Ꮨ', 'ꮩ' => 'Ꮩ', 'ꮪ' => 'Ꮪ', 'ꮫ' => 'Ꮫ', 'ꮬ' => 'Ꮬ', 'ꮭ' => 'Ꮭ', 'ꮮ' => 'Ꮮ', 'ꮯ' => 'Ꮯ', 'ꮰ' => 'Ꮰ', 'ꮱ' => 'Ꮱ', 'ꮲ' => 'Ꮲ', 'ꮳ' => 'Ꮳ', 'ꮴ' => 'Ꮴ', 'ꮵ' => 'Ꮵ', 'ꮶ' => 'Ꮶ', 'ꮷ' => 'Ꮷ', 'ꮸ' => 'Ꮸ', 'ꮹ' => 'Ꮹ', 'ꮺ' => 'Ꮺ', 'ꮻ' => 'Ꮻ', 'ꮼ' => 'Ꮼ', 'ꮽ' => 'Ꮽ', 'ꮾ' => 'Ꮾ', 'ꮿ' => 'Ꮿ', 'a' => 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', '𐐨' => '𐐀', '𐐩' => '𐐁', '𐐪' => '𐐂', '𐐫' => '𐐃', '𐐬' => '𐐄', '𐐭' => '𐐅', '𐐮' => '𐐆', '𐐯' => '𐐇', '𐐰' => '𐐈', '𐐱' => '𐐉', '𐐲' => '𐐊', '𐐳' => '𐐋', '𐐴' => '𐐌', '𐐵' => '𐐍', '𐐶' => '𐐎', '𐐷' => '𐐏', '𐐸' => '𐐐', '𐐹' => '𐐑', '𐐺' => '𐐒', '𐐻' => '𐐓', '𐐼' => '𐐔', '𐐽' => '𐐕', '𐐾' => '𐐖', '𐐿' => '𐐗', '𐑀' => '𐐘', '𐑁' => '𐐙', '𐑂' => '𐐚', '𐑃' => '𐐛', '𐑄' => '𐐜', '𐑅' => '𐐝', '𐑆' => '𐐞', '𐑇' => '𐐟', '𐑈' => '𐐠', '𐑉' => '𐐡', '𐑊' => '𐐢', '𐑋' => '𐐣', '𐑌' => '𐐤', '𐑍' => '𐐥', '𐑎' => '𐐦', '𐑏' => '𐐧', '𐓘' => '𐒰', '𐓙' => '𐒱', '𐓚' => '𐒲', '𐓛' => '𐒳', '𐓜' => '𐒴', '𐓝' => '𐒵', '𐓞' => '𐒶', '𐓟' => '𐒷', '𐓠' => '𐒸', '𐓡' => '𐒹', '𐓢' => '𐒺', '𐓣' => '𐒻', '𐓤' => '𐒼', '𐓥' => '𐒽', '𐓦' => '𐒾', '𐓧' => '𐒿', '𐓨' => '𐓀', '𐓩' => '𐓁', '𐓪' => '𐓂', '𐓫' => '𐓃', '𐓬' => '𐓄', '𐓭' => '𐓅', '𐓮' => '𐓆', '𐓯' => '𐓇', '𐓰' => '𐓈', '𐓱' => '𐓉', '𐓲' => '𐓊', '𐓳' => '𐓋', '𐓴' => '𐓌', '𐓵' => '𐓍', '𐓶' => '𐓎', '𐓷' => '𐓏', '𐓸' => '𐓐', '𐓹' => '𐓑', '𐓺' => '𐓒', '𐓻' => '𐓓', '𐳀' => '𐲀', '𐳁' => '𐲁', '𐳂' => '𐲂', '𐳃' => '𐲃', '𐳄' => '𐲄', '𐳅' => '𐲅', '𐳆' => '𐲆', '𐳇' => '𐲇', '𐳈' => '𐲈', '𐳉' => '𐲉', '𐳊' => '𐲊', '𐳋' => '𐲋', '𐳌' => '𐲌', '𐳍' => '𐲍', '𐳎' => '𐲎', '𐳏' => '𐲏', '𐳐' => '𐲐', '𐳑' => '𐲑', '𐳒' => '𐲒', '𐳓' => '𐲓', '𐳔' => '𐲔', '𐳕' => '𐲕', '𐳖' => '𐲖', '𐳗' => '𐲗', '𐳘' => '𐲘', '𐳙' => '𐲙', '𐳚' => '𐲚', '𐳛' => '𐲛', '𐳜' => '𐲜', '𐳝' => '𐲝', '𐳞' => '𐲞', '𐳟' => '𐲟', '𐳠' => '𐲠', '𐳡' => '𐲡', '𐳢' => '𐲢', '𐳣' => '𐲣', '𐳤' => '𐲤', '𐳥' => '𐲥', '𐳦' => '𐲦', '𐳧' => '𐲧', '𐳨' => '𐲨', '𐳩' => '𐲩', '𐳪' => '𐲪', '𐳫' => '𐲫', '𐳬' => '𐲬', '𐳭' => '𐲭', '𐳮' => '𐲮', '𐳯' => '𐲯', '𐳰' => '𐲰', '𐳱' => '𐲱', '𐳲' => '𐲲', '𑣀' => '𑢠', '𑣁' => '𑢡', '𑣂' => '𑢢', '𑣃' => '𑢣', '𑣄' => '𑢤', '𑣅' => '𑢥', '𑣆' => '𑢦', '𑣇' => '𑢧', '𑣈' => '𑢨', '𑣉' => '𑢩', '𑣊' => '𑢪', '𑣋' => '𑢫', '𑣌' => '𑢬', '𑣍' => '𑢭', '𑣎' => '𑢮', '𑣏' => '𑢯', '𑣐' => '𑢰', '𑣑' => '𑢱', '𑣒' => '𑢲', '𑣓' => '𑢳', '𑣔' => '𑢴', '𑣕' => '𑢵', '𑣖' => '𑢶', '𑣗' => '𑢷', '𑣘' => '𑢸', '𑣙' => '𑢹', '𑣚' => '𑢺', '𑣛' => '𑢻', '𑣜' => '𑢼', '𑣝' => '𑢽', '𑣞' => '𑢾', '𑣟' => '𑢿', '𖹠' => '𖹀', '𖹡' => '𖹁', '𖹢' => '𖹂', '𖹣' => '𖹃', '𖹤' => '𖹄', '𖹥' => '𖹅', '𖹦' => '𖹆', '𖹧' => '𖹇', '𖹨' => '𖹈', '𖹩' => '𖹉', '𖹪' => '𖹊', '𖹫' => '𖹋', '𖹬' => '𖹌', '𖹭' => '𖹍', '𖹮' => '𖹎', '𖹯' => '𖹏', '𖹰' => '𖹐', '𖹱' => '𖹑', '𖹲' => '𖹒', '𖹳' => '𖹓', '𖹴' => '𖹔', '𖹵' => '𖹕', '𖹶' => '𖹖', '𖹷' => '𖹗', '𖹸' => '𖹘', '𖹹' => '𖹙', '𖹺' => '𖹚', '𖹻' => '𖹛', '𖹼' => '𖹜', '𖹽' => '𖹝', '𖹾' => '𖹞', '𖹿' => '𖹟', '𞤢' => '𞤀', '𞤣' => '𞤁', '𞤤' => '𞤂', '𞤥' => '𞤃', '𞤦' => '𞤄', '𞤧' => '𞤅', '𞤨' => '𞤆', '𞤩' => '𞤇', '𞤪' => '𞤈', '𞤫' => '𞤉', '𞤬' => '𞤊', '𞤭' => '𞤋', '𞤮' => '𞤌', '𞤯' => '𞤍', '𞤰' => '𞤎', '𞤱' => '𞤏', '𞤲' => '𞤐', '𞤳' => '𞤑', '𞤴' => '𞤒', '𞤵' => '𞤓', '𞤶' => '𞤔', '𞤷' => '𞤕', '𞤸' => '𞤖', '𞤹' => '𞤗', '𞤺' => '𞤘', '𞤻' => '𞤙', '𞤼' => '𞤚', '𞤽' => '𞤛', '𞤾' => '𞤜', '𞤿' => '𞤝', '𞥀' => '𞤞', '𞥁' => '𞤟', '𞥂' => '𞤠', '𞥃' => '𞤡', 'ß' => 'SS', 'ff' => 'FF', 'fi' => 'FI', 'fl' => 'FL', 'ffi' => 'FFI', 'ffl' => 'FFL', 'ſt' => 'ST', 'st' => 'ST', 'և' => 'ԵՒ', 'ﬓ' => 'ՄՆ', 'ﬔ' => 'ՄԵ', 'ﬕ' => 'ՄԻ', 'ﬖ' => 'ՎՆ', 'ﬗ' => 'ՄԽ', 'ʼn' => 'ʼN', 'ΐ' => 'Ϊ́', 'ΰ' => 'Ϋ́', 'ǰ' => 'J̌', 'ẖ' => 'H̱', 'ẗ' => 'T̈', 'ẘ' => 'W̊', 'ẙ' => 'Y̊', 'ẚ' => 'Aʾ', 'ὐ' => 'Υ̓', 'ὒ' => 'Υ̓̀', 'ὔ' => 'Υ̓́', 'ὖ' => 'Υ̓͂', 'ᾶ' => 'Α͂', 'ῆ' => 'Η͂', 'ῒ' => 'Ϊ̀', 'ΐ' => 'Ϊ́', 'ῖ' => 'Ι͂', 'ῗ' => 'Ϊ͂', 'ῢ' => 'Ϋ̀', 'ΰ' => 'Ϋ́', 'ῤ' => 'Ρ̓', 'ῦ' => 'Υ͂', 'ῧ' => 'Ϋ͂', 'ῶ' => 'Ω͂', 'ᾈ' => 'ἈΙ', 'ᾉ' => 'ἉΙ', 'ᾊ' => 'ἊΙ', 'ᾋ' => 'ἋΙ', 'ᾌ' => 'ἌΙ', 'ᾍ' => 'ἍΙ', 'ᾎ' => 'ἎΙ', 'ᾏ' => 'ἏΙ', 'ᾘ' => 'ἨΙ', 'ᾙ' => 'ἩΙ', 'ᾚ' => 'ἪΙ', 'ᾛ' => 'ἫΙ', 'ᾜ' => 'ἬΙ', 'ᾝ' => 'ἭΙ', 'ᾞ' => 'ἮΙ', 'ᾟ' => 'ἯΙ', 'ᾨ' => 'ὨΙ', 'ᾩ' => 'ὩΙ', 'ᾪ' => 'ὪΙ', 'ᾫ' => 'ὫΙ', 'ᾬ' => 'ὬΙ', 'ᾭ' => 'ὭΙ', 'ᾮ' => 'ὮΙ', 'ᾯ' => 'ὯΙ', 'ᾼ' => 'ΑΙ', 'ῌ' => 'ΗΙ', 'ῼ' => 'ΩΙ', 'ᾲ' => 'ᾺΙ', 'ᾴ' => 'ΆΙ', 'ῂ' => 'ῊΙ', 'ῄ' => 'ΉΙ', 'ῲ' => 'ῺΙ', 'ῴ' => 'ΏΙ', 'ᾷ' => 'Α͂Ι', 'ῇ' => 'Η͂Ι', 'ῷ' => 'Ω͂Ι'); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap.php index 1fedd1f7c..ecf1a0352 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -132,6 +132,10 @@ function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap80.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap80.php index 56a3034e7..08db438c9 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap80.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/bootstrap80.php @@ -199,6 +199,10 @@ function mb_scrub(?string $string, ?string $encoding = null): string { $encoding function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/composer.json b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/composer.json index c4b9b24c5..18d803a37 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/composer.json +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/composer.json @@ -41,7 +41,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony\/polyfill", diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php index 060231947..d6d1ff111 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Exception; +namespace RectorPrefix202309\Symfony\Component\Process\Exception; /** * Marker Interface for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php index 4c7112882..a01739a80 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Exception; +namespace RectorPrefix202309\Symfony\Component\Process\Exception; /** * InvalidArgumentException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php b/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php index 88a2544d6..0061dc252 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Exception; +namespace RectorPrefix202309\Symfony\Component\Process\Exception; /** * LogicException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php index 1bb6addd5..f594a382e 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Exception; +namespace RectorPrefix202309\Symfony\Component\Process\Exception; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Symfony\Component\Process\Process; /** * Exception for failed processes. * diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php index 3d3726d32..924c39ea6 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Exception; +namespace RectorPrefix202309\Symfony\Component\Process\Exception; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Symfony\Component\Process\Process; /** * Exception that is thrown when a process has been signaled. * diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php index 69e14d11b..e96afd4e7 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Exception; +namespace RectorPrefix202309\Symfony\Component\Process\Exception; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Symfony\Component\Process\Process; /** * Exception that is thrown when a process times out. * diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php index e2ebe02b1..63f0763b4 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Exception; +namespace RectorPrefix202309\Symfony\Component\Process\Exception; /** * RuntimeException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php b/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php index 1c331d5d8..cc3ec16e4 100644 --- a/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php +++ b/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process; +namespace RectorPrefix202309\Symfony\Component\Process; /** * Generic executable finder. diff --git a/vendor/rector/rector/vendor/symfony/process/InputStream.php b/vendor/rector/rector/vendor/symfony/process/InputStream.php index 18986ebd6..cfdda3300 100644 --- a/vendor/rector/rector/vendor/symfony/process/InputStream.php +++ b/vendor/rector/rector/vendor/symfony/process/InputStream.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process; +namespace RectorPrefix202309\Symfony\Component\Process; -use RectorPrefix202308\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Process\Exception\RuntimeException; /** * Provides a way to continuously write to the input of a Process until the InputStream is closed. * @@ -34,13 +34,13 @@ public function onEmpty(callable $onEmpty = null) $this->onEmpty = $onEmpty; } /** - * Appends an input to the write buffer. - * + * Appends an input to the write buffer. + * * @param mixed $input The input to append as scalar, - stream resource or \Traversable - * - * @return void - */ + * stream resource or \Traversable + * + * @return void + */ public function write($input) { if (null === $input) { diff --git a/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php b/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php index 265d49e0b..77ee11393 100644 --- a/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php +++ b/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process; +namespace RectorPrefix202309\Symfony\Component\Process; /** * An executable finder specifically designed for the PHP executable. diff --git a/vendor/rector/rector/vendor/symfony/process/PhpProcess.php b/vendor/rector/rector/vendor/symfony/process/PhpProcess.php index e14cd72e2..9da472b50 100644 --- a/vendor/rector/rector/vendor/symfony/process/PhpProcess.php +++ b/vendor/rector/rector/vendor/symfony/process/PhpProcess.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process; +namespace RectorPrefix202309\Symfony\Component\Process; -use RectorPrefix202308\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Process\Exception\RuntimeException; /** * PhpProcess runs a PHP script in an independent process. * diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php index 0d2e3bbcf..1377e2001 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Pipes; +namespace RectorPrefix202309\Symfony\Component\Process\Pipes; -use RectorPrefix202308\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Process\Exception\InvalidArgumentException; /** * @author Romain Neutron * diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php b/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php index a437d069a..cad45e50c 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Pipes; +namespace RectorPrefix202309\Symfony\Component\Process\Pipes; /** * PipesInterface manages descriptors and pipes for the use of proc_open. diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php index 7ad9a5e24..b7918ffe8 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Pipes; +namespace RectorPrefix202309\Symfony\Component\Process\Pipes; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Symfony\Component\Process\Process; /** * UnixPipes implementation uses unix pipes as handles. * diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php index 34395b179..03e0f8881 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process\Pipes; +namespace RectorPrefix202309\Symfony\Component\Process\Pipes; -use RectorPrefix202308\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Process\Process; +use RectorPrefix202309\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Process\Process; /** * WindowsPipes implementation uses temporary files as handles. * diff --git a/vendor/rector/rector/vendor/symfony/process/Process.php b/vendor/rector/rector/vendor/symfony/process/Process.php index c00649739..e560d6490 100644 --- a/vendor/rector/rector/vendor/symfony/process/Process.php +++ b/vendor/rector/rector/vendor/symfony/process/Process.php @@ -8,17 +8,17 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process; +namespace RectorPrefix202309\Symfony\Component\Process; -use RectorPrefix202308\Symfony\Component\Process\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202308\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202308\Symfony\Component\Process\Exception\ProcessSignaledException; -use RectorPrefix202308\Symfony\Component\Process\Exception\ProcessTimedOutException; -use RectorPrefix202308\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202308\Symfony\Component\Process\Pipes\PipesInterface; -use RectorPrefix202308\Symfony\Component\Process\Pipes\UnixPipes; -use RectorPrefix202308\Symfony\Component\Process\Pipes\WindowsPipes; +use RectorPrefix202309\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202309\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202309\Symfony\Component\Process\Exception\ProcessSignaledException; +use RectorPrefix202309\Symfony\Component\Process\Exception\ProcessTimedOutException; +use RectorPrefix202309\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202309\Symfony\Component\Process\Pipes\PipesInterface; +use RectorPrefix202309\Symfony\Component\Process\Pipes\UnixPipes; +use RectorPrefix202309\Symfony\Component\Process\Pipes\WindowsPipes; /** * Process is a thin wrapper around proc_* functions to easily * start independent PHP processes. @@ -298,7 +298,7 @@ public function start(callable $callback = null, array $env = []) $descriptors[3] = ['pipe', 'w']; // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input $commandline = '{ (' . $commandline . ') <&3 3<&- 3>/dev/null & } 3<&0;'; - $commandline .= 'pid=$!; echo $pid >&3; wait $pid; code=$?; echo $code >&3; exit $code'; + $commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'; // Workaround for the bug, when PTS functionality is enabled. // @see : https://bugs.php.net/69442 $ptsWorkaround = \fopen(__FILE__, 'r'); diff --git a/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php b/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php index 1a2c01b32..286c546a1 100644 --- a/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php +++ b/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Component\Process; +namespace RectorPrefix202309\Symfony\Component\Process; -use RectorPrefix202308\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202309\Symfony\Component\Process\Exception\InvalidArgumentException; /** * ProcessUtils is a bunch of utility methods. * diff --git a/vendor/rector/rector/vendor/symfony/process/composer.json b/vendor/rector/rector/vendor/symfony/process/composer.json index 09af49c2d..55ff21adf 100644 --- a/vendor/rector/rector/vendor/symfony/process/composer.json +++ b/vendor/rector/rector/vendor/symfony/process/composer.json @@ -20,7 +20,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\Process\\": "" + "RectorPrefix202309\\Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/Attribute/Required.php b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php similarity index 90% rename from vendor/rector/rector/vendor/symfony/contracts/Service/Attribute/Required.php rename to vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php index c07356ab6..7acca3733 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/Attribute/Required.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202309\Symfony\Contracts\Service\Attribute; /** * A required dependency. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/Attribute/SubscribedService.php b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php similarity index 88% rename from vendor/rector/rector/vendor/symfony/contracts/Service/Attribute/SubscribedService.php rename to vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php index 9fd29e8c2..01403abcc 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/Attribute/SubscribedService.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202309\Symfony\Contracts\Service\Attribute; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceSubscriberInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceSubscriberTrait; +use RectorPrefix202309\Symfony\Contracts\Service\ServiceSubscriberInterface; +use RectorPrefix202309\Symfony\Contracts\Service\ServiceSubscriberTrait; /** * For use as the return value for {@see ServiceSubscriberInterface}. * diff --git a/vendor/rector/rector/vendor/symfony/contracts/Cache/LICENSE b/vendor/rector/rector/vendor/symfony/service-contracts/LICENSE similarity index 100% rename from vendor/rector/rector/vendor/symfony/contracts/Cache/LICENSE rename to vendor/rector/rector/vendor/symfony/service-contracts/LICENSE diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/README.md b/vendor/rector/rector/vendor/symfony/service-contracts/README.md similarity index 100% rename from vendor/rector/rector/vendor/symfony/contracts/Service/README.md rename to vendor/rector/rector/vendor/symfony/service-contracts/README.md diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/ResetInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php similarity index 94% rename from vendor/rector/rector/vendor/symfony/contracts/Service/ResetInterface.php rename to vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php index 1bc5f7145..c49e212bf 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/ResetInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service; +namespace RectorPrefix202309\Symfony\Contracts\Service; /** * Provides a way to reset an object to its initial state. diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceLocatorTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php similarity index 95% rename from vendor/rector/rector/vendor/symfony/contracts/Service/ServiceLocatorTrait.php rename to vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php index 95b80a01d..4e8ddca3a 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceLocatorTrait.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service; +namespace RectorPrefix202309\Symfony\Contracts\Service; -use RectorPrefix202308\Psr\Container\ContainerExceptionInterface; -use RectorPrefix202308\Psr\Container\NotFoundExceptionInterface; +use RectorPrefix202309\Psr\Container\ContainerExceptionInterface; +use RectorPrefix202309\Psr\Container\NotFoundExceptionInterface; // Help opcache.preload discover always-needed symbols \class_exists(ContainerExceptionInterface::class); \class_exists(NotFoundExceptionInterface::class); diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceProviderInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php similarity index 91% rename from vendor/rector/rector/vendor/symfony/contracts/Service/ServiceProviderInterface.php rename to vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php index 2c4bef861..fd720dd80 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceProviderInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service; +namespace RectorPrefix202309\Symfony\Contracts\Service; -use RectorPrefix202308\Psr\Container\ContainerInterface; +use RectorPrefix202309\Psr\Container\ContainerInterface; /** * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container. * diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceSubscriberInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php similarity index 95% rename from vendor/rector/rector/vendor/symfony/contracts/Service/ServiceSubscriberInterface.php rename to vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php index 736912544..571421579 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceSubscriberInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service; +namespace RectorPrefix202309\Symfony\Contracts\Service; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202309\Symfony\Contracts\Service\Attribute\SubscribedService; /** * A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method. * diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceSubscriberTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php similarity index 92% rename from vendor/rector/rector/vendor/symfony/contracts/Service/ServiceSubscriberTrait.php rename to vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php index 9e002eb1b..c6913c695 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/ServiceSubscriberTrait.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service; +namespace RectorPrefix202309\Symfony\Contracts\Service; -use RectorPrefix202308\Psr\Container\ContainerInterface; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202309\Psr\Container\ContainerInterface; +use RectorPrefix202309\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202309\Symfony\Contracts\Service\Attribute\SubscribedService; /** * Implementation of ServiceSubscriberInterface that determines subscribed services from * method return types. Service ids are available as "ClassName::methodName". diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/Test/ServiceLocatorTest.php b/vendor/rector/rector/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php similarity index 87% rename from vendor/rector/rector/vendor/symfony/contracts/Service/Test/ServiceLocatorTest.php rename to vendor/rector/rector/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php index 7c4aaf0f3..3edeabf92 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/Test/ServiceLocatorTest.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Test/ServiceLocatorTest.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service\Test; +namespace RectorPrefix202309\Symfony\Contracts\Service\Test; \class_alias(ServiceLocatorTestCase::class, ServiceLocatorTest::class); if (\false) { diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/Test/ServiceLocatorTestCase.php b/vendor/rector/rector/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php similarity index 89% rename from vendor/rector/rector/vendor/symfony/contracts/Service/Test/ServiceLocatorTestCase.php rename to vendor/rector/rector/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php index 90a072ef5..4df910592 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/Test/ServiceLocatorTestCase.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Test/ServiceLocatorTestCase.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202308\Symfony\Contracts\Service\Test; +namespace RectorPrefix202309\Symfony\Contracts\Service\Test; use PHPUnit\Framework\TestCase; -use RectorPrefix202308\Psr\Container\ContainerInterface; -use RectorPrefix202308\Symfony\Contracts\Service\ServiceLocatorTrait; +use RectorPrefix202309\Psr\Container\ContainerInterface; +use RectorPrefix202309\Symfony\Contracts\Service\ServiceLocatorTrait; abstract class ServiceLocatorTestCase extends TestCase { protected function getServiceLocator(array $factories) : ContainerInterface @@ -59,7 +59,7 @@ public function testGetDoesNotMemoize() public function testThrowsOnUndefinedInternalService() { if (!$this->getExpectedException()) { - $this->expectException(\RectorPrefix202308\Psr\Container\NotFoundExceptionInterface::class); + $this->expectException(\RectorPrefix202309\Psr\Container\NotFoundExceptionInterface::class); $this->expectExceptionMessage('The service "foo" has a dependency on a non-existent service "bar". This locator only knows about the "foo" service.'); } $locator = $this->getServiceLocator(['foo' => function () use(&$locator) { @@ -69,7 +69,7 @@ public function testThrowsOnUndefinedInternalService() } public function testThrowsOnCircularReference() { - $this->expectException(\RectorPrefix202308\Psr\Container\ContainerExceptionInterface::class); + $this->expectException(\RectorPrefix202309\Psr\Container\ContainerExceptionInterface::class); $this->expectExceptionMessage('Circular reference detected for service "bar", path: "bar -> baz -> bar".'); $locator = $this->getServiceLocator(['foo' => function () use(&$locator) { return $locator->get('bar'); diff --git a/vendor/rector/rector/vendor/symfony/contracts/Service/composer.json b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json similarity index 94% rename from vendor/rector/rector/vendor/symfony/contracts/Service/composer.json rename to vendor/rector/rector/vendor/symfony/service-contracts/composer.json index 31885d190..94e274ebf 100644 --- a/vendor/rector/rector/vendor/symfony/contracts/Service/composer.json +++ b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json @@ -31,7 +31,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202309\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" diff --git a/vendor/rector/rector/vendor/symfony/string/AbstractString.php b/vendor/rector/rector/vendor/symfony/string/AbstractString.php deleted file mode 100644 index 750b3dd59..000000000 --- a/vendor/rector/rector/vendor/symfony/string/AbstractString.php +++ /dev/null @@ -1,646 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String; - -use RectorPrefix202308\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\String\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\String\Exception\RuntimeException; -/** - * Represents a string of abstract characters. - * - * Unicode defines 3 types of "characters" (bytes, code points and grapheme clusters). - * This class is the abstract type to use as a type-hint when the logic you want to - * implement doesn't care about the exact variant it deals with. - * - * @author Nicolas Grekas - * @author Hugo Hamon - * - * @throws ExceptionInterface - */ -abstract class AbstractString implements \JsonSerializable -{ - public const PREG_PATTERN_ORDER = \PREG_PATTERN_ORDER; - public const PREG_SET_ORDER = \PREG_SET_ORDER; - public const PREG_OFFSET_CAPTURE = \PREG_OFFSET_CAPTURE; - public const PREG_UNMATCHED_AS_NULL = \PREG_UNMATCHED_AS_NULL; - public const PREG_SPLIT = 0; - public const PREG_SPLIT_NO_EMPTY = \PREG_SPLIT_NO_EMPTY; - public const PREG_SPLIT_DELIM_CAPTURE = \PREG_SPLIT_DELIM_CAPTURE; - public const PREG_SPLIT_OFFSET_CAPTURE = \PREG_SPLIT_OFFSET_CAPTURE; - protected $string = ''; - protected $ignoreCase = \false; - public abstract function __construct(string $string = ''); - /** - * Unwraps instances of AbstractString back to strings. - * - * @return string[]|array - */ - public static function unwrap(array $values) : array - { - foreach ($values as $k => $v) { - if ($v instanceof self) { - $values[$k] = $v->__toString(); - } elseif (\is_array($v) && $values[$k] !== ($v = static::unwrap($v))) { - $values[$k] = $v; - } - } - return $values; - } - /** - * Wraps (and normalizes) strings in instances of AbstractString. - * - * @return static[]|array - */ - public static function wrap(array $values) : array - { - $i = 0; - $keys = null; - foreach ($values as $k => $v) { - if (\is_string($k) && '' !== $k && $k !== ($j = (string) new static($k))) { - $keys = $keys ?? \array_keys($values); - $keys[$i] = $j; - } - if (\is_string($v)) { - $values[$k] = new static($v); - } elseif (\is_array($v) && $values[$k] !== ($v = static::wrap($v))) { - $values[$k] = $v; - } - ++$i; - } - return null !== $keys ? \array_combine($keys, $values) : $values; - } - /** - * @param string|string[] $needle - * @return static - */ - public function after($needle, bool $includeNeedle = \false, int $offset = 0) - { - $str = clone $this; - $i = \PHP_INT_MAX; - if (\is_string($needle)) { - $needle = [$needle]; - } - foreach ($needle as $n) { - $n = (string) $n; - $j = $this->indexOf($n, $offset); - if (null !== $j && $j < $i) { - $i = $j; - $str->string = $n; - } - } - if (\PHP_INT_MAX === $i) { - return $str; - } - if (!$includeNeedle) { - $i += $str->length(); - } - return $this->slice($i); - } - /** - * @param string|string[] $needle - * @return static - */ - public function afterLast($needle, bool $includeNeedle = \false, int $offset = 0) - { - $str = clone $this; - $i = null; - if (\is_string($needle)) { - $needle = [$needle]; - } - foreach ($needle as $n) { - $n = (string) $n; - $j = $this->indexOfLast($n, $offset); - if (null !== $j && $j >= $i) { - $i = $offset = $j; - $str->string = $n; - } - } - if (null === $i) { - return $str; - } - if (!$includeNeedle) { - $i += $str->length(); - } - return $this->slice($i); - } - /** - * @return static - */ - public abstract function append(string ...$suffix); - /** - * @param string|string[] $needle - * @return static - */ - public function before($needle, bool $includeNeedle = \false, int $offset = 0) - { - $str = clone $this; - $i = \PHP_INT_MAX; - if (\is_string($needle)) { - $needle = [$needle]; - } - foreach ($needle as $n) { - $n = (string) $n; - $j = $this->indexOf($n, $offset); - if (null !== $j && $j < $i) { - $i = $j; - $str->string = $n; - } - } - if (\PHP_INT_MAX === $i) { - return $str; - } - if ($includeNeedle) { - $i += $str->length(); - } - return $this->slice(0, $i); - } - /** - * @param string|string[] $needle - * @return static - */ - public function beforeLast($needle, bool $includeNeedle = \false, int $offset = 0) - { - $str = clone $this; - $i = null; - if (\is_string($needle)) { - $needle = [$needle]; - } - foreach ($needle as $n) { - $n = (string) $n; - $j = $this->indexOfLast($n, $offset); - if (null !== $j && $j >= $i) { - $i = $offset = $j; - $str->string = $n; - } - } - if (null === $i) { - return $str; - } - if ($includeNeedle) { - $i += $str->length(); - } - return $this->slice(0, $i); - } - /** - * @return int[] - */ - public function bytesAt(int $offset) : array - { - $str = $this->slice($offset, 1); - return '' === $str->string ? [] : \array_values(\unpack('C*', $str->string)); - } - /** - * @return static - */ - public abstract function camel(); - /** - * @return static[] - */ - public abstract function chunk(int $length = 1) : array; - /** - * @return static - */ - public function collapseWhitespace() - { - $str = clone $this; - $str->string = \trim(\preg_replace("/(?:[ \n\r\t\f]{2,}+|[\n\r\t\f])/", ' ', $str->string), " \n\r\t\f"); - return $str; - } - /** - * @param string|string[] $needle - */ - public function containsAny($needle) : bool - { - return null !== $this->indexOf($needle); - } - /** - * @param string|string[] $suffix - */ - public function endsWith($suffix) : bool - { - if (\is_string($suffix)) { - throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class)); - } - foreach ($suffix as $s) { - if ($this->endsWith((string) $s)) { - return \true; - } - } - return \false; - } - /** - * @return static - */ - public function ensureEnd(string $suffix) - { - if (!$this->endsWith($suffix)) { - return $this->append($suffix); - } - $suffix = \preg_quote($suffix); - $regex = '{(' . $suffix . ')(?:' . $suffix . ')++$}D'; - return $this->replaceMatches($regex . ($this->ignoreCase ? 'i' : ''), '$1'); - } - /** - * @return static - */ - public function ensureStart(string $prefix) - { - $prefix = new static($prefix); - if (!$this->startsWith($prefix)) { - return $this->prepend($prefix); - } - $str = clone $this; - $i = $prefixLen = $prefix->length(); - while ($this->indexOf($prefix, $i) === $i) { - $str = $str->slice($prefixLen); - $i += $prefixLen; - } - return $str; - } - /** - * @param string|string[] $string - */ - public function equalsTo($string) : bool - { - if (\is_string($string)) { - throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class)); - } - foreach ($string as $s) { - if ($this->equalsTo((string) $s)) { - return \true; - } - } - return \false; - } - /** - * @return static - */ - public abstract function folded(); - /** - * @return static - */ - public function ignoreCase() - { - $str = clone $this; - $str->ignoreCase = \true; - return $str; - } - /** - * @param string|string[] $needle - */ - public function indexOf($needle, int $offset = 0) : ?int - { - if (\is_string($needle)) { - throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class)); - } - $i = \PHP_INT_MAX; - foreach ($needle as $n) { - $j = $this->indexOf((string) $n, $offset); - if (null !== $j && $j < $i) { - $i = $j; - } - } - return \PHP_INT_MAX === $i ? null : $i; - } - /** - * @param string|string[] $needle - */ - public function indexOfLast($needle, int $offset = 0) : ?int - { - if (\is_string($needle)) { - throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class)); - } - $i = null; - foreach ($needle as $n) { - $j = $this->indexOfLast((string) $n, $offset); - if (null !== $j && $j >= $i) { - $i = $offset = $j; - } - } - return $i; - } - public function isEmpty() : bool - { - return '' === $this->string; - } - /** - * @return static - */ - public abstract function join(array $strings, string $lastGlue = null); - public function jsonSerialize() : string - { - return $this->string; - } - public abstract function length() : int; - /** - * @return static - */ - public abstract function lower(); - /** - * Matches the string using a regular expression. - * - * Pass PREG_PATTERN_ORDER or PREG_SET_ORDER as $flags to get all occurrences matching the regular expression. - * - * @return array All matches in a multi-dimensional array ordered according to flags - */ - public abstract function match(string $regexp, int $flags = 0, int $offset = 0) : array; - /** - * @return static - */ - public abstract function padBoth(int $length, string $padStr = ' '); - /** - * @return static - */ - public abstract function padEnd(int $length, string $padStr = ' '); - /** - * @return static - */ - public abstract function padStart(int $length, string $padStr = ' '); - /** - * @return static - */ - public abstract function prepend(string ...$prefix); - /** - * @return static - */ - public function repeat(int $multiplier) - { - if (0 > $multiplier) { - throw new InvalidArgumentException(\sprintf('Multiplier must be positive, %d given.', $multiplier)); - } - $str = clone $this; - $str->string = \str_repeat($str->string, $multiplier); - return $str; - } - /** - * @return static - */ - public abstract function replace(string $from, string $to); - /** - * @param string|callable $to - * @return static - */ - public abstract function replaceMatches(string $fromRegexp, $to); - /** - * @return static - */ - public abstract function reverse(); - /** - * @return static - */ - public abstract function slice(int $start = 0, int $length = null); - /** - * @return static - */ - public abstract function snake(); - /** - * @return static - */ - public abstract function splice(string $replacement, int $start = 0, int $length = null); - /** - * @return static[] - */ - public function split(string $delimiter, int $limit = null, int $flags = null) : array - { - if (null === $flags) { - throw new \TypeError('Split behavior when $flags is null must be implemented by child classes.'); - } - if ($this->ignoreCase) { - $delimiter .= 'i'; - } - \set_error_handler(static function ($t, $m) { - throw new InvalidArgumentException($m); - }); - try { - if (\false === ($chunks = \preg_split($delimiter, $this->string, $limit, $flags))) { - throw new RuntimeException('Splitting failed with error: ' . \preg_last_error_msg()); - } - } finally { - \restore_error_handler(); - } - $str = clone $this; - if (self::PREG_SPLIT_OFFSET_CAPTURE & $flags) { - foreach ($chunks as &$chunk) { - $str->string = $chunk[0]; - $chunk[0] = clone $str; - } - } else { - foreach ($chunks as &$chunk) { - $str->string = $chunk; - $chunk = clone $str; - } - } - return $chunks; - } - /** - * @param string|string[] $prefix - */ - public function startsWith($prefix) : bool - { - if (\is_string($prefix)) { - throw new \TypeError(\sprintf('Method "%s()" must be overridden by class "%s" to deal with non-iterable values.', __FUNCTION__, static::class)); - } - foreach ($prefix as $prefix) { - if ($this->startsWith((string) $prefix)) { - return \true; - } - } - return \false; - } - /** - * @return static - */ - public abstract function title(bool $allWords = \false); - public function toByteString(string $toEncoding = null) : ByteString - { - $b = new ByteString(); - $toEncoding = \in_array($toEncoding, ['utf8', 'utf-8', 'UTF8'], \true) ? 'UTF-8' : $toEncoding; - if (null === $toEncoding || $toEncoding === ($fromEncoding = $this instanceof AbstractUnicodeString || \preg_match('//u', $b->string) ? 'UTF-8' : 'Windows-1252')) { - $b->string = $this->string; - return $b; - } - \set_error_handler(static function ($t, $m) { - throw new InvalidArgumentException($m); - }); - try { - try { - $b->string = \mb_convert_encoding($this->string, $toEncoding, 'UTF-8'); - } catch (InvalidArgumentException $e) { - if (!\function_exists('iconv')) { - throw $e; - } - $b->string = \iconv('UTF-8', $toEncoding, $this->string); - } - } finally { - \restore_error_handler(); - } - return $b; - } - public function toCodePointString() : CodePointString - { - return new CodePointString($this->string); - } - public function toString() : string - { - return $this->string; - } - public function toUnicodeString() : UnicodeString - { - return new UnicodeString($this->string); - } - /** - * @return static - */ - public abstract function trim(string $chars = " \t\n\r\x00\v\f "); - /** - * @return static - */ - public abstract function trimEnd(string $chars = " \t\n\r\x00\v\f "); - /** - * @param string|string[] $prefix - * @return static - */ - public function trimPrefix($prefix) - { - if (\is_array($prefix) || $prefix instanceof \Traversable) { - // don't use is_iterable(), it's slow - foreach ($prefix as $s) { - $t = $this->trimPrefix($s); - if ($t->string !== $this->string) { - return $t; - } - } - return clone $this; - } - $str = clone $this; - if ($prefix instanceof self) { - $prefix = $prefix->string; - } else { - $prefix = (string) $prefix; - } - if ('' !== $prefix && \strlen($this->string) >= \strlen($prefix) && 0 === \substr_compare($this->string, $prefix, 0, \strlen($prefix), $this->ignoreCase)) { - $str->string = \substr($this->string, \strlen($prefix)); - } - return $str; - } - /** - * @return static - */ - public abstract function trimStart(string $chars = " \t\n\r\x00\v\f "); - /** - * @param string|string[] $suffix - * @return static - */ - public function trimSuffix($suffix) - { - if (\is_array($suffix) || $suffix instanceof \Traversable) { - // don't use is_iterable(), it's slow - foreach ($suffix as $s) { - $t = $this->trimSuffix($s); - if ($t->string !== $this->string) { - return $t; - } - } - return clone $this; - } - $str = clone $this; - if ($suffix instanceof self) { - $suffix = $suffix->string; - } else { - $suffix = (string) $suffix; - } - if ('' !== $suffix && \strlen($this->string) >= \strlen($suffix) && 0 === \substr_compare($this->string, $suffix, -\strlen($suffix), null, $this->ignoreCase)) { - $str->string = \substr($this->string, 0, -\strlen($suffix)); - } - return $str; - } - /** - * @return static - */ - public function truncate(int $length, string $ellipsis = '', bool $cut = \true) - { - $stringLength = $this->length(); - if ($stringLength <= $length) { - return clone $this; - } - $ellipsisLength = '' !== $ellipsis ? (new static($ellipsis))->length() : 0; - if ($length < $ellipsisLength) { - $ellipsisLength = 0; - } - if (!$cut) { - if (null === ($length = $this->indexOf([' ', "\r", "\n", "\t"], ($length ?: 1) - 1))) { - return clone $this; - } - $length += $ellipsisLength; - } - $str = $this->slice(0, $length - $ellipsisLength); - return $ellipsisLength ? $str->trimEnd()->append($ellipsis) : $str; - } - /** - * @return static - */ - public abstract function upper(); - /** - * Returns the printable length on a terminal. - */ - public abstract function width(bool $ignoreAnsiDecoration = \true) : int; - /** - * @return static - */ - public function wordwrap(int $width = 75, string $break = "\n", bool $cut = \false) - { - $lines = '' !== $break ? $this->split($break) : [clone $this]; - $chars = []; - $mask = ''; - if (1 === \count($lines) && '' === $lines[0]->string) { - return $lines[0]; - } - foreach ($lines as $i => $line) { - if ($i) { - $chars[] = $break; - $mask .= '#'; - } - foreach ($line->chunk() as $char) { - $chars[] = $char->string; - $mask .= ' ' === $char->string ? ' ' : '?'; - } - } - $string = ''; - $j = 0; - $b = $i = -1; - $mask = \wordwrap($mask, $width, '#', $cut); - while (\false !== ($b = \strpos($mask, '#', $b + 1))) { - for (++$i; $i < $b; ++$i) { - $string .= $chars[$j]; - unset($chars[$j++]); - } - if ($break === $chars[$j] || ' ' === $chars[$j]) { - unset($chars[$j++]); - } - $string .= $break; - } - $str = clone $this; - $str->string = $string . \implode('', $chars); - return $str; - } - public function __sleep() : array - { - return ['string']; - } - public function __clone() - { - $this->ignoreCase = \false; - } - public function __toString() : string - { - return $this->string; - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/AbstractUnicodeString.php b/vendor/rector/rector/vendor/symfony/string/AbstractUnicodeString.php deleted file mode 100644 index 6b9b824b9..000000000 --- a/vendor/rector/rector/vendor/symfony/string/AbstractUnicodeString.php +++ /dev/null @@ -1,523 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String; - -use RectorPrefix202308\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\String\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\String\Exception\RuntimeException; -/** - * Represents a string of abstract Unicode characters. - * - * Unicode defines 3 types of "characters" (bytes, code points and grapheme clusters). - * This class is the abstract type to use as a type-hint when the logic you want to - * implement is Unicode-aware but doesn't care about code points vs grapheme clusters. - * - * @author Nicolas Grekas - * - * @throws ExceptionInterface - */ -abstract class AbstractUnicodeString extends AbstractString -{ - public const NFC = \Normalizer::NFC; - public const NFD = \Normalizer::NFD; - public const NFKC = \Normalizer::NFKC; - public const NFKD = \Normalizer::NFKD; - // all ASCII letters sorted by typical frequency of occurrence - private const ASCII = " eiasntrolud][cmp'\ng|hv.fb,:=-q10C2*yx)(L9AS/P\"EjMIk3>5T>', '<', '>', '-', '-', '-', '-', '-', '-', '-', '-', '-', '||', '/', '[', ']', '*', ',', '.', '<', '>', '<<', '>>', '[', ']', '[', ']', '[', ']', ',', '.', '[', ']', '<<', '>>', '<', '>', ',', '[', ']', '((', '))', '.', ',', '*', '/', '-', '/', '\\', '|', '||', '<<', '>>', '((', '))']; - private static $transliterators = []; - private static $tableZero; - private static $tableWide; - /** - * @return static - */ - public static function fromCodePoints(int ...$codes) - { - $string = ''; - foreach ($codes as $code) { - if (0x80 > ($code %= 0x200000)) { - $string .= \chr($code); - } elseif (0x800 > $code) { - $string .= \chr(0xc0 | $code >> 6) . \chr(0x80 | $code & 0x3f); - } elseif (0x10000 > $code) { - $string .= \chr(0xe0 | $code >> 12) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f); - } else { - $string .= \chr(0xf0 | $code >> 18) . \chr(0x80 | $code >> 12 & 0x3f) . \chr(0x80 | $code >> 6 & 0x3f) . \chr(0x80 | $code & 0x3f); - } - } - return new static($string); - } - /** - * Generic UTF-8 to ASCII transliteration. - * - * Install the intl extension for best results. - * - * @param string[]|\Transliterator[]|\Closure[] $rules See "*-Latin" rules from Transliterator::listIDs() - */ - public function ascii(array $rules = []) : self - { - $str = clone $this; - $s = $str->string; - $str->string = ''; - \array_unshift($rules, 'nfd'); - $rules[] = 'latin-ascii'; - if (\function_exists('transliterator_transliterate')) { - $rules[] = 'any-latin/bgn'; - } - $rules[] = 'nfkd'; - $rules[] = '[:nonspacing mark:] remove'; - while (\strlen($s) - 1 > ($i = \strspn($s, self::ASCII))) { - if (0 < --$i) { - $str->string .= \substr($s, 0, $i); - $s = \substr($s, $i); - } - if (!($rule = \array_shift($rules))) { - $rules = []; - // An empty rule interrupts the next ones - } - if ($rule instanceof \Transliterator) { - $s = $rule->transliterate($s); - } elseif ($rule instanceof \Closure) { - $s = $rule($s); - } elseif ($rule) { - if ('nfd' === ($rule = \strtolower($rule))) { - \normalizer_is_normalized($s, self::NFD) ?: ($s = \normalizer_normalize($s, self::NFD)); - } elseif ('nfkd' === $rule) { - \normalizer_is_normalized($s, self::NFKD) ?: ($s = \normalizer_normalize($s, self::NFKD)); - } elseif ('[:nonspacing mark:] remove' === $rule) { - $s = \preg_replace('/\\p{Mn}++/u', '', $s); - } elseif ('latin-ascii' === $rule) { - $s = \str_replace(self::TRANSLIT_FROM, self::TRANSLIT_TO, $s); - } elseif ('de-ascii' === $rule) { - $s = \preg_replace("/([AUO])̈(?=\\p{Ll})/u", '$1e', $s); - $s = \str_replace(["ä", "ö", "ü", "Ä", "Ö", "Ü"], ['ae', 'oe', 'ue', 'AE', 'OE', 'UE'], $s); - } elseif (\function_exists('transliterator_transliterate')) { - if (null === ($transliterator = self::$transliterators[$rule] = self::$transliterators[$rule] ?? \Transliterator::create($rule))) { - if ('any-latin/bgn' === $rule) { - $rule = 'any-latin'; - $transliterator = self::$transliterators[$rule] = self::$transliterators[$rule] ?? \Transliterator::create($rule); - } - if (null === $transliterator) { - throw new InvalidArgumentException(\sprintf('Unknown transliteration rule "%s".', $rule)); - } - self::$transliterators['any-latin/bgn'] = $transliterator; - } - $s = $transliterator->transliterate($s); - } - } elseif (!\function_exists('iconv')) { - $s = \preg_replace('/[^\\x00-\\x7F]/u', '?', $s); - } else { - $s = @\preg_replace_callback('/[^\\x00-\\x7F]/u', static function ($c) { - $c = (string) \iconv('UTF-8', 'ASCII//TRANSLIT', $c[0]); - if ('' === $c && '' === \iconv('UTF-8', 'ASCII//TRANSLIT', '²')) { - throw new \LogicException(\sprintf('"%s" requires a translit-able iconv implementation, try installing "gnu-libiconv" if you\'re using Alpine Linux.', static::class)); - } - return 1 < \strlen($c) ? \ltrim($c, '\'`"^~') : ('' !== $c ? $c : '?'); - }, $s); - } - } - $str->string .= $s; - return $str; - } - /** - * @return static - */ - public function camel() - { - $str = clone $this; - $str->string = \str_replace(' ', '', \preg_replace_callback('/\\b.(?![A-Z]{2,})/u', static function ($m) { - static $i = 0; - return 1 === ++$i ? 'İ' === $m[0] ? 'i̇' : \mb_strtolower($m[0], 'UTF-8') : \mb_convert_case($m[0], \MB_CASE_TITLE, 'UTF-8'); - }, \preg_replace('/[^\\pL0-9]++/u', ' ', $this->string))); - return $str; - } - /** - * @return int[] - */ - public function codePointsAt(int $offset) : array - { - $str = $this->slice($offset, 1); - if ('' === $str->string) { - return []; - } - $codePoints = []; - foreach (\preg_split('//u', $str->string, -1, \PREG_SPLIT_NO_EMPTY) as $c) { - $codePoints[] = \mb_ord($c, 'UTF-8'); - } - return $codePoints; - } - /** - * @return static - */ - public function folded(bool $compat = \true) - { - $str = clone $this; - if (!$compat || !\defined('Normalizer::NFKC_CF')) { - $str->string = \normalizer_normalize($str->string, $compat ? \Normalizer::NFKC : \Normalizer::NFC); - $str->string = \mb_strtolower(\str_replace(self::FOLD_FROM, self::FOLD_TO, $this->string), 'UTF-8'); - } else { - $str->string = \normalizer_normalize($str->string, \Normalizer::NFKC_CF); - } - return $str; - } - /** - * @return static - */ - public function join(array $strings, string $lastGlue = null) - { - $str = clone $this; - $tail = null !== $lastGlue && 1 < \count($strings) ? $lastGlue . \array_pop($strings) : ''; - $str->string = \implode($this->string, $strings) . $tail; - if (!\preg_match('//u', $str->string)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - return $str; - } - /** - * @return static - */ - public function lower() - { - $str = clone $this; - $str->string = \mb_strtolower(\str_replace('İ', 'i̇', $str->string), 'UTF-8'); - return $str; - } - public function match(string $regexp, int $flags = 0, int $offset = 0) : array - { - $match = (\PREG_PATTERN_ORDER | \PREG_SET_ORDER) & $flags ? 'preg_match_all' : 'preg_match'; - if ($this->ignoreCase) { - $regexp .= 'i'; - } - \set_error_handler(static function ($t, $m) { - throw new InvalidArgumentException($m); - }); - try { - if (\false === $match($regexp . 'u', $this->string, $matches, $flags | \PREG_UNMATCHED_AS_NULL, $offset)) { - throw new RuntimeException('Matching failed with error: ' . \preg_last_error_msg()); - } - } finally { - \restore_error_handler(); - } - return $matches; - } - /** - * @return static - */ - public function normalize(int $form = self::NFC) - { - if (!\in_array($form, [self::NFC, self::NFD, self::NFKC, self::NFKD])) { - throw new InvalidArgumentException('Unsupported normalization form.'); - } - $str = clone $this; - \normalizer_is_normalized($str->string, $form) ?: ($str->string = \normalizer_normalize($str->string, $form)); - return $str; - } - /** - * @return static - */ - public function padBoth(int $length, string $padStr = ' ') - { - if ('' === $padStr || !\preg_match('//u', $padStr)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - $pad = clone $this; - $pad->string = $padStr; - return $this->pad($length, $pad, \STR_PAD_BOTH); - } - /** - * @return static - */ - public function padEnd(int $length, string $padStr = ' ') - { - if ('' === $padStr || !\preg_match('//u', $padStr)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - $pad = clone $this; - $pad->string = $padStr; - return $this->pad($length, $pad, \STR_PAD_RIGHT); - } - /** - * @return static - */ - public function padStart(int $length, string $padStr = ' ') - { - if ('' === $padStr || !\preg_match('//u', $padStr)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - $pad = clone $this; - $pad->string = $padStr; - return $this->pad($length, $pad, \STR_PAD_LEFT); - } - /** - * @param string|callable $to - * @return static - */ - public function replaceMatches(string $fromRegexp, $to) - { - if ($this->ignoreCase) { - $fromRegexp .= 'i'; - } - if (\is_array($to) || $to instanceof \Closure) { - $replace = 'preg_replace_callback'; - $to = static function (array $m) use($to) : string { - $to = $to($m); - if ('' !== $to && (!\is_string($to) || !\preg_match('//u', $to))) { - throw new InvalidArgumentException('Replace callback must return a valid UTF-8 string.'); - } - return $to; - }; - } elseif ('' !== $to && !\preg_match('//u', $to)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } else { - $replace = 'preg_replace'; - } - \set_error_handler(static function ($t, $m) { - throw new InvalidArgumentException($m); - }); - try { - if (null === ($string = $replace($fromRegexp . 'u', $to, $this->string))) { - $lastError = \preg_last_error(); - foreach (\get_defined_constants(\true)['pcre'] as $k => $v) { - if ($lastError === $v && \substr_compare($k, '_ERROR', -\strlen('_ERROR')) === 0) { - throw new RuntimeException('Matching failed with ' . $k . '.'); - } - } - throw new RuntimeException('Matching failed with unknown error code.'); - } - } finally { - \restore_error_handler(); - } - $str = clone $this; - $str->string = $string; - return $str; - } - /** - * @return static - */ - public function reverse() - { - $str = clone $this; - $str->string = \implode('', \array_reverse(\preg_split('/(\\X)/u', $str->string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY))); - return $str; - } - /** - * @return static - */ - public function snake() - { - $str = $this->camel(); - $str->string = \mb_strtolower(\preg_replace(['/(\\p{Lu}+)(\\p{Lu}\\p{Ll})/u', '/([\\p{Ll}0-9])(\\p{Lu})/u'], '\1_\2', $str->string), 'UTF-8'); - return $str; - } - /** - * @return static - */ - public function title(bool $allWords = \false) - { - $str = clone $this; - $limit = $allWords ? -1 : 1; - $str->string = \preg_replace_callback('/\\b./u', static function (array $m) : string { - return \mb_convert_case($m[0], \MB_CASE_TITLE, 'UTF-8'); - }, $str->string, $limit); - return $str; - } - /** - * @return static - */ - public function trim(string $chars = " \t\n\r\x00\v\f ") - { - if (" \t\n\r\x00\v\f " !== $chars && !\preg_match('//u', $chars)) { - throw new InvalidArgumentException('Invalid UTF-8 chars.'); - } - $chars = \preg_quote($chars); - $str = clone $this; - $str->string = \preg_replace("{^[{$chars}]++|[{$chars}]++\$}uD", '', $str->string); - return $str; - } - /** - * @return static - */ - public function trimEnd(string $chars = " \t\n\r\x00\v\f ") - { - if (" \t\n\r\x00\v\f " !== $chars && !\preg_match('//u', $chars)) { - throw new InvalidArgumentException('Invalid UTF-8 chars.'); - } - $chars = \preg_quote($chars); - $str = clone $this; - $str->string = \preg_replace("{[{$chars}]++\$}uD", '', $str->string); - return $str; - } - /** - * @return static - */ - public function trimPrefix($prefix) - { - if (!$this->ignoreCase) { - return parent::trimPrefix($prefix); - } - $str = clone $this; - if ($prefix instanceof \Traversable) { - $prefix = \iterator_to_array($prefix, \false); - } elseif ($prefix instanceof parent) { - $prefix = $prefix->string; - } - $prefix = \implode('|', \array_map('preg_quote', (array) $prefix)); - $str->string = \preg_replace("{^(?:{$prefix})}iuD", '', $this->string); - return $str; - } - /** - * @return static - */ - public function trimStart(string $chars = " \t\n\r\x00\v\f ") - { - if (" \t\n\r\x00\v\f " !== $chars && !\preg_match('//u', $chars)) { - throw new InvalidArgumentException('Invalid UTF-8 chars.'); - } - $chars = \preg_quote($chars); - $str = clone $this; - $str->string = \preg_replace("{^[{$chars}]++}uD", '', $str->string); - return $str; - } - /** - * @return static - */ - public function trimSuffix($suffix) - { - if (!$this->ignoreCase) { - return parent::trimSuffix($suffix); - } - $str = clone $this; - if ($suffix instanceof \Traversable) { - $suffix = \iterator_to_array($suffix, \false); - } elseif ($suffix instanceof parent) { - $suffix = $suffix->string; - } - $suffix = \implode('|', \array_map('preg_quote', (array) $suffix)); - $str->string = \preg_replace("{(?:{$suffix})\$}iuD", '', $this->string); - return $str; - } - /** - * @return static - */ - public function upper() - { - $str = clone $this; - $str->string = \mb_strtoupper($str->string, 'UTF-8'); - return $str; - } - public function width(bool $ignoreAnsiDecoration = \true) : int - { - $width = 0; - $s = \str_replace(["\x00", "\x05", "\x07"], '', $this->string); - if (\strpos($s, "\r") !== \false) { - $s = \str_replace(["\r\n", "\r"], "\n", $s); - } - if (!$ignoreAnsiDecoration) { - $s = \preg_replace('/[\\p{Cc}\\x7F]++/u', '', $s); - } - foreach (\explode("\n", $s) as $s) { - if ($ignoreAnsiDecoration) { - $s = \preg_replace('/(?:\\x1B(?: - \\[ [\\x30-\\x3F]*+ [\\x20-\\x2F]*+ [\\x40-\\x7E] - | [P\\]X^_] .*? \\x1B\\\\ - | [\\x41-\\x7E] - )|[\\p{Cc}\\x7F]++)/xu', '', $s); - } - $lineWidth = $this->wcswidth($s); - if ($lineWidth > $width) { - $width = $lineWidth; - } - } - return $width; - } - /** - * @return static - */ - private function pad(int $len, self $pad, int $type) - { - $sLen = $this->length(); - if ($len <= $sLen) { - return clone $this; - } - $padLen = $pad->length(); - $freeLen = $len - $sLen; - $len = $freeLen % $padLen; - switch ($type) { - case \STR_PAD_RIGHT: - return $this->append(\str_repeat($pad->string, \intdiv($freeLen, $padLen)) . ($len ? $pad->slice(0, $len) : '')); - case \STR_PAD_LEFT: - return $this->prepend(\str_repeat($pad->string, \intdiv($freeLen, $padLen)) . ($len ? $pad->slice(0, $len) : '')); - case \STR_PAD_BOTH: - $freeLen /= 2; - $rightLen = \ceil($freeLen); - $len = $rightLen % $padLen; - $str = $this->append(\str_repeat($pad->string, \intdiv($rightLen, $padLen)) . ($len ? $pad->slice(0, $len) : '')); - $leftLen = \floor($freeLen); - $len = $leftLen % $padLen; - return $str->prepend(\str_repeat($pad->string, \intdiv($leftLen, $padLen)) . ($len ? $pad->slice(0, $len) : '')); - default: - throw new InvalidArgumentException('Invalid padding type.'); - } - } - /** - * Based on https://github.com/jquast/wcwidth, a Python implementation of https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c. - */ - private function wcswidth(string $string) : int - { - $width = 0; - foreach (\preg_split('//u', $string, -1, \PREG_SPLIT_NO_EMPTY) as $c) { - $codePoint = \mb_ord($c, 'UTF-8'); - if (0 === $codePoint || 0x34f === $codePoint || 0x200b <= $codePoint && 0x200f >= $codePoint || 0x2028 === $codePoint || 0x2029 === $codePoint || 0x202a <= $codePoint && 0x202e >= $codePoint || 0x2060 <= $codePoint && 0x2063 >= $codePoint) { - continue; - } - // Non printable characters - if (32 > $codePoint || 0x7f <= $codePoint && 0xa0 > $codePoint) { - return -1; - } - self::$tableZero = self::$tableZero ?? (require __DIR__ . '/Resources/data/wcswidth_table_zero.php'); - if ($codePoint >= self::$tableZero[0][0] && $codePoint <= self::$tableZero[$ubound = \count(self::$tableZero) - 1][1]) { - $lbound = 0; - while ($ubound >= $lbound) { - $mid = \floor(($lbound + $ubound) / 2); - if ($codePoint > self::$tableZero[$mid][1]) { - $lbound = $mid + 1; - } elseif ($codePoint < self::$tableZero[$mid][0]) { - $ubound = $mid - 1; - } else { - continue 2; - } - } - } - self::$tableWide = self::$tableWide ?? (require __DIR__ . '/Resources/data/wcswidth_table_wide.php'); - if ($codePoint >= self::$tableWide[0][0] && $codePoint <= self::$tableWide[$ubound = \count(self::$tableWide) - 1][1]) { - $lbound = 0; - while ($ubound >= $lbound) { - $mid = \floor(($lbound + $ubound) / 2); - if ($codePoint > self::$tableWide[$mid][1]) { - $lbound = $mid + 1; - } elseif ($codePoint < self::$tableWide[$mid][0]) { - $ubound = $mid - 1; - } else { - $width += 2; - continue 2; - } - } - } - ++$width; - } - return $width; - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/ByteString.php b/vendor/rector/rector/vendor/symfony/string/ByteString.php deleted file mode 100644 index c80b644e2..000000000 --- a/vendor/rector/rector/vendor/symfony/string/ByteString.php +++ /dev/null @@ -1,459 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String; - -use RectorPrefix202308\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\String\Exception\InvalidArgumentException; -use RectorPrefix202308\Symfony\Component\String\Exception\RuntimeException; -/** - * Represents a binary-safe string of bytes. - * - * @author Nicolas Grekas - * @author Hugo Hamon - * - * @throws ExceptionInterface - */ -class ByteString extends AbstractString -{ - private const ALPHABET_ALPHANUMERIC = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'; - public function __construct(string $string = '') - { - $this->string = $string; - } - /* - * The following method was derived from code of the Hack Standard Library (v4.40 - 2020-05-03) - * - * https://github.com/hhvm/hsl/blob/80a42c02f036f72a42f0415e80d6b847f4bf62d5/src/random/private.php#L16 - * - * Code subject to the MIT license (https://github.com/hhvm/hsl/blob/master/LICENSE). - * - * Copyright (c) 2004-2020, Facebook, Inc. (https://www.facebook.com/) - */ - public static function fromRandom(int $length = 16, string $alphabet = null) : self - { - if ($length <= 0) { - throw new InvalidArgumentException(\sprintf('A strictly positive length is expected, "%d" given.', $length)); - } - $alphabet = $alphabet ?? self::ALPHABET_ALPHANUMERIC; - $alphabetSize = \strlen($alphabet); - $bits = (int) \ceil(\log($alphabetSize, 2.0)); - if ($bits <= 0 || $bits > 56) { - throw new InvalidArgumentException('The length of the alphabet must in the [2^1, 2^56] range.'); - } - $ret = ''; - while ($length > 0) { - $urandomLength = (int) \ceil(2 * $length * $bits / 8.0); - $data = \random_bytes($urandomLength); - $unpackedData = 0; - $unpackedBits = 0; - for ($i = 0; $i < $urandomLength && $length > 0; ++$i) { - // Unpack 8 bits - $unpackedData = $unpackedData << 8 | \ord($data[$i]); - $unpackedBits += 8; - // While we have enough bits to select a character from the alphabet, keep - // consuming the random data - for (; $unpackedBits >= $bits && $length > 0; $unpackedBits -= $bits) { - $index = $unpackedData & (1 << $bits) - 1; - $unpackedData >>= $bits; - // Unfortunately, the alphabet size is not necessarily a power of two. - // Worst case, it is 2^k + 1, which means we need (k+1) bits and we - // have around a 50% chance of missing as k gets larger - if ($index < $alphabetSize) { - $ret .= $alphabet[$index]; - --$length; - } - } - } - } - return new static($ret); - } - public function bytesAt(int $offset) : array - { - $str = $this->string[$offset] ?? ''; - return '' === $str ? [] : [\ord($str)]; - } - /** - * @return static - */ - public function append(string ...$suffix) - { - $str = clone $this; - $str->string .= 1 >= \count($suffix) ? $suffix[0] ?? '' : \implode('', $suffix); - return $str; - } - /** - * @return static - */ - public function camel() - { - $str = clone $this; - $parts = \explode(' ', \trim(\ucwords(\preg_replace('/[^a-zA-Z0-9\\x7f-\\xff]++/', ' ', $this->string)))); - $parts[0] = 1 !== \strlen($parts[0]) && \ctype_upper($parts[0]) ? $parts[0] : \lcfirst($parts[0]); - $str->string = \implode('', $parts); - return $str; - } - public function chunk(int $length = 1) : array - { - if (1 > $length) { - throw new InvalidArgumentException('The chunk length must be greater than zero.'); - } - if ('' === $this->string) { - return []; - } - $str = clone $this; - $chunks = []; - foreach (\str_split($this->string, $length) as $chunk) { - $str->string = $chunk; - $chunks[] = clone $str; - } - return $chunks; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $suffix - */ - public function endsWith($suffix) : bool - { - if ($suffix instanceof AbstractString) { - $suffix = $suffix->string; - } elseif (!\is_string($suffix)) { - return parent::endsWith($suffix); - } - return '' !== $suffix && \strlen($this->string) >= \strlen($suffix) && 0 === \substr_compare($this->string, $suffix, -\strlen($suffix), null, $this->ignoreCase); - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $string - */ - public function equalsTo($string) : bool - { - if ($string instanceof AbstractString) { - $string = $string->string; - } elseif (!\is_string($string)) { - return parent::equalsTo($string); - } - if ('' !== $string && $this->ignoreCase) { - return 0 === \strcasecmp($string, $this->string); - } - return $string === $this->string; - } - /** - * @return static - */ - public function folded() - { - $str = clone $this; - $str->string = \strtolower($str->string); - return $str; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $needle - */ - public function indexOf($needle, int $offset = 0) : ?int - { - if ($needle instanceof AbstractString) { - $needle = $needle->string; - } elseif (!\is_string($needle)) { - return parent::indexOf($needle, $offset); - } - if ('' === $needle) { - return null; - } - $i = $this->ignoreCase ? \stripos($this->string, $needle, $offset) : \strpos($this->string, $needle, $offset); - return \false === $i ? null : $i; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $needle - */ - public function indexOfLast($needle, int $offset = 0) : ?int - { - if ($needle instanceof AbstractString) { - $needle = $needle->string; - } elseif (!\is_string($needle)) { - return parent::indexOfLast($needle, $offset); - } - if ('' === $needle) { - return null; - } - $i = $this->ignoreCase ? \strripos($this->string, $needle, $offset) : \strrpos($this->string, $needle, $offset); - return \false === $i ? null : $i; - } - public function isUtf8() : bool - { - return '' === $this->string || \preg_match('//u', $this->string); - } - /** - * @return static - */ - public function join(array $strings, string $lastGlue = null) - { - $str = clone $this; - $tail = null !== $lastGlue && 1 < \count($strings) ? $lastGlue . \array_pop($strings) : ''; - $str->string = \implode($this->string, $strings) . $tail; - return $str; - } - public function length() : int - { - return \strlen($this->string); - } - /** - * @return static - */ - public function lower() - { - $str = clone $this; - $str->string = \strtolower($str->string); - return $str; - } - public function match(string $regexp, int $flags = 0, int $offset = 0) : array - { - $match = (\PREG_PATTERN_ORDER | \PREG_SET_ORDER) & $flags ? 'preg_match_all' : 'preg_match'; - if ($this->ignoreCase) { - $regexp .= 'i'; - } - \set_error_handler(static function ($t, $m) { - throw new InvalidArgumentException($m); - }); - try { - if (\false === $match($regexp, $this->string, $matches, $flags | \PREG_UNMATCHED_AS_NULL, $offset)) { - throw new RuntimeException('Matching failed with error: ' . \preg_last_error_msg()); - } - } finally { - \restore_error_handler(); - } - return $matches; - } - /** - * @return static - */ - public function padBoth(int $length, string $padStr = ' ') - { - $str = clone $this; - $str->string = \str_pad($this->string, $length, $padStr, \STR_PAD_BOTH); - return $str; - } - /** - * @return static - */ - public function padEnd(int $length, string $padStr = ' ') - { - $str = clone $this; - $str->string = \str_pad($this->string, $length, $padStr, \STR_PAD_RIGHT); - return $str; - } - /** - * @return static - */ - public function padStart(int $length, string $padStr = ' ') - { - $str = clone $this; - $str->string = \str_pad($this->string, $length, $padStr, \STR_PAD_LEFT); - return $str; - } - /** - * @return static - */ - public function prepend(string ...$prefix) - { - $str = clone $this; - $str->string = (1 >= \count($prefix) ? $prefix[0] ?? '' : \implode('', $prefix)) . $str->string; - return $str; - } - /** - * @return static - */ - public function replace(string $from, string $to) - { - $str = clone $this; - if ('' !== $from) { - $str->string = $this->ignoreCase ? \str_ireplace($from, $to, $this->string) : \str_replace($from, $to, $this->string); - } - return $str; - } - /** - * @param string|callable $to - * @return static - */ - public function replaceMatches(string $fromRegexp, $to) - { - if ($this->ignoreCase) { - $fromRegexp .= 'i'; - } - $replace = \is_array($to) || $to instanceof \Closure ? 'preg_replace_callback' : 'preg_replace'; - \set_error_handler(static function ($t, $m) { - throw new InvalidArgumentException($m); - }); - try { - if (null === ($string = $replace($fromRegexp, $to, $this->string))) { - $lastError = \preg_last_error(); - foreach (\get_defined_constants(\true)['pcre'] as $k => $v) { - if ($lastError === $v && \substr_compare($k, '_ERROR', -\strlen('_ERROR')) === 0) { - throw new RuntimeException('Matching failed with ' . $k . '.'); - } - } - throw new RuntimeException('Matching failed with unknown error code.'); - } - } finally { - \restore_error_handler(); - } - $str = clone $this; - $str->string = $string; - return $str; - } - /** - * @return static - */ - public function reverse() - { - $str = clone $this; - $str->string = \strrev($str->string); - return $str; - } - /** - * @return static - */ - public function slice(int $start = 0, int $length = null) - { - $str = clone $this; - $str->string = (string) \substr($this->string, $start, $length ?? \PHP_INT_MAX); - return $str; - } - /** - * @return static - */ - public function snake() - { - $str = $this->camel(); - $str->string = \strtolower(\preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\\d])([A-Z])/'], '\1_\2', $str->string)); - return $str; - } - /** - * @return static - */ - public function splice(string $replacement, int $start = 0, int $length = null) - { - $str = clone $this; - $str->string = \substr_replace($this->string, $replacement, $start, $length ?? \PHP_INT_MAX); - return $str; - } - public function split(string $delimiter, int $limit = null, int $flags = null) : array - { - if (1 > ($limit = $limit ?? \PHP_INT_MAX)) { - throw new InvalidArgumentException('Split limit must be a positive integer.'); - } - if ('' === $delimiter) { - throw new InvalidArgumentException('Split delimiter is empty.'); - } - if (null !== $flags) { - return parent::split($delimiter, $limit, $flags); - } - $str = clone $this; - $chunks = $this->ignoreCase ? \preg_split('{' . \preg_quote($delimiter) . '}iD', $this->string, $limit) : \explode($delimiter, $this->string, $limit); - foreach ($chunks as &$chunk) { - $str->string = $chunk; - $chunk = clone $str; - } - return $chunks; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $prefix - */ - public function startsWith($prefix) : bool - { - if ($prefix instanceof AbstractString) { - $prefix = $prefix->string; - } elseif (!\is_string($prefix)) { - return parent::startsWith($prefix); - } - return '' !== $prefix && 0 === ($this->ignoreCase ? \strncasecmp($this->string, $prefix, \strlen($prefix)) : \strncmp($this->string, $prefix, \strlen($prefix))); - } - /** - * @return static - */ - public function title(bool $allWords = \false) - { - $str = clone $this; - $str->string = $allWords ? \ucwords($str->string) : \ucfirst($str->string); - return $str; - } - public function toUnicodeString(string $fromEncoding = null) : UnicodeString - { - return new UnicodeString($this->toCodePointString($fromEncoding)->string); - } - public function toCodePointString(string $fromEncoding = null) : CodePointString - { - $u = new CodePointString(); - if (\in_array($fromEncoding, [null, 'utf8', 'utf-8', 'UTF8', 'UTF-8'], \true) && \preg_match('//u', $this->string)) { - $u->string = $this->string; - return $u; - } - \set_error_handler(static function ($t, $m) { - throw new InvalidArgumentException($m); - }); - try { - try { - $validEncoding = \false !== \mb_detect_encoding($this->string, $fromEncoding ?? 'Windows-1252', \true); - } catch (InvalidArgumentException $e) { - if (!\function_exists('iconv')) { - throw $e; - } - $u->string = \iconv($fromEncoding ?? 'Windows-1252', 'UTF-8', $this->string); - return $u; - } - } finally { - \restore_error_handler(); - } - if (!$validEncoding) { - throw new InvalidArgumentException(\sprintf('Invalid "%s" string.', $fromEncoding ?? 'Windows-1252')); - } - $u->string = \mb_convert_encoding($this->string, 'UTF-8', $fromEncoding ?? 'Windows-1252'); - return $u; - } - /** - * @return static - */ - public function trim(string $chars = " \t\n\r\x00\v\f") - { - $str = clone $this; - $str->string = \trim($str->string, $chars); - return $str; - } - /** - * @return static - */ - public function trimEnd(string $chars = " \t\n\r\x00\v\f") - { - $str = clone $this; - $str->string = \rtrim($str->string, $chars); - return $str; - } - /** - * @return static - */ - public function trimStart(string $chars = " \t\n\r\x00\v\f") - { - $str = clone $this; - $str->string = \ltrim($str->string, $chars); - return $str; - } - /** - * @return static - */ - public function upper() - { - $str = clone $this; - $str->string = \strtoupper($str->string); - return $str; - } - public function width(bool $ignoreAnsiDecoration = \true) : int - { - $string = \preg_match('//u', $this->string) ? $this->string : \preg_replace('/[\\x80-\\xFF]/', '?', $this->string); - return (new CodePointString($string))->width($ignoreAnsiDecoration); - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/CodePointString.php b/vendor/rector/rector/vendor/symfony/string/CodePointString.php deleted file mode 100644 index b9c5741ce..000000000 --- a/vendor/rector/rector/vendor/symfony/string/CodePointString.php +++ /dev/null @@ -1,234 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String; - -use RectorPrefix202308\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\String\Exception\InvalidArgumentException; -/** - * Represents a string of Unicode code points encoded as UTF-8. - * - * @author Nicolas Grekas - * @author Hugo Hamon - * - * @throws ExceptionInterface - */ -class CodePointString extends AbstractUnicodeString -{ - public function __construct(string $string = '') - { - if ('' !== $string && !\preg_match('//u', $string)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - $this->string = $string; - } - /** - * @return static - */ - public function append(string ...$suffix) - { - $str = clone $this; - $str->string .= 1 >= \count($suffix) ? $suffix[0] ?? '' : \implode('', $suffix); - if (!\preg_match('//u', $str->string)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - return $str; - } - public function chunk(int $length = 1) : array - { - if (1 > $length) { - throw new InvalidArgumentException('The chunk length must be greater than zero.'); - } - if ('' === $this->string) { - return []; - } - $rx = '/('; - while (65535 < $length) { - $rx .= '.{65535}'; - $length -= 65535; - } - $rx .= '.{' . $length . '})/us'; - $str = clone $this; - $chunks = []; - foreach (\preg_split($rx, $this->string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY) as $chunk) { - $str->string = $chunk; - $chunks[] = clone $str; - } - return $chunks; - } - public function codePointsAt(int $offset) : array - { - $str = $offset ? $this->slice($offset, 1) : $this; - return '' === $str->string ? [] : [\mb_ord($str->string, 'UTF-8')]; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $suffix - */ - public function endsWith($suffix) : bool - { - if ($suffix instanceof AbstractString) { - $suffix = $suffix->string; - } elseif (!\is_string($suffix)) { - return parent::endsWith($suffix); - } - if ('' === $suffix || !\preg_match('//u', $suffix)) { - return \false; - } - if ($this->ignoreCase) { - return \preg_match('{' . \preg_quote($suffix) . '$}iuD', $this->string); - } - return \strlen($this->string) >= \strlen($suffix) && 0 === \substr_compare($this->string, $suffix, -\strlen($suffix)); - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $string - */ - public function equalsTo($string) : bool - { - if ($string instanceof AbstractString) { - $string = $string->string; - } elseif (!\is_string($string)) { - return parent::equalsTo($string); - } - if ('' !== $string && $this->ignoreCase) { - return \strlen($string) === \strlen($this->string) && 0 === \mb_stripos($this->string, $string, 0, 'UTF-8'); - } - return $string === $this->string; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $needle - */ - public function indexOf($needle, int $offset = 0) : ?int - { - if ($needle instanceof AbstractString) { - $needle = $needle->string; - } elseif (!\is_string($needle)) { - return parent::indexOf($needle, $offset); - } - if ('' === $needle) { - return null; - } - $i = $this->ignoreCase ? \mb_stripos($this->string, $needle, $offset, 'UTF-8') : \mb_strpos($this->string, $needle, $offset, 'UTF-8'); - return \false === $i ? null : $i; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $needle - */ - public function indexOfLast($needle, int $offset = 0) : ?int - { - if ($needle instanceof AbstractString) { - $needle = $needle->string; - } elseif (!\is_string($needle)) { - return parent::indexOfLast($needle, $offset); - } - if ('' === $needle) { - return null; - } - $i = $this->ignoreCase ? \mb_strripos($this->string, $needle, $offset, 'UTF-8') : \mb_strrpos($this->string, $needle, $offset, 'UTF-8'); - return \false === $i ? null : $i; - } - public function length() : int - { - return \mb_strlen($this->string, 'UTF-8'); - } - /** - * @return static - */ - public function prepend(string ...$prefix) - { - $str = clone $this; - $str->string = (1 >= \count($prefix) ? $prefix[0] ?? '' : \implode('', $prefix)) . $this->string; - if (!\preg_match('//u', $str->string)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - return $str; - } - /** - * @return static - */ - public function replace(string $from, string $to) - { - $str = clone $this; - if ('' === $from || !\preg_match('//u', $from)) { - return $str; - } - if ('' !== $to && !\preg_match('//u', $to)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - if ($this->ignoreCase) { - $str->string = \implode($to, \preg_split('{' . \preg_quote($from) . '}iuD', $this->string)); - } else { - $str->string = \str_replace($from, $to, $this->string); - } - return $str; - } - /** - * @return static - */ - public function slice(int $start = 0, int $length = null) - { - $str = clone $this; - $str->string = \mb_substr($this->string, $start, $length, 'UTF-8'); - return $str; - } - /** - * @return static - */ - public function splice(string $replacement, int $start = 0, int $length = null) - { - if (!\preg_match('//u', $replacement)) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - $str = clone $this; - $start = $start ? \strlen(\mb_substr($this->string, 0, $start, 'UTF-8')) : 0; - $length = $length ? \strlen(\mb_substr($this->string, $start, $length, 'UTF-8')) : $length; - $str->string = \substr_replace($this->string, $replacement, $start, $length ?? \PHP_INT_MAX); - return $str; - } - public function split(string $delimiter, int $limit = null, int $flags = null) : array - { - if (1 > ($limit = $limit ?? \PHP_INT_MAX)) { - throw new InvalidArgumentException('Split limit must be a positive integer.'); - } - if ('' === $delimiter) { - throw new InvalidArgumentException('Split delimiter is empty.'); - } - if (null !== $flags) { - return parent::split($delimiter . 'u', $limit, $flags); - } - if (!\preg_match('//u', $delimiter)) { - throw new InvalidArgumentException('Split delimiter is not a valid UTF-8 string.'); - } - $str = clone $this; - $chunks = $this->ignoreCase ? \preg_split('{' . \preg_quote($delimiter) . '}iuD', $this->string, $limit) : \explode($delimiter, $this->string, $limit); - foreach ($chunks as &$chunk) { - $str->string = $chunk; - $chunk = clone $str; - } - return $chunks; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $prefix - */ - public function startsWith($prefix) : bool - { - if ($prefix instanceof AbstractString) { - $prefix = $prefix->string; - } elseif (!\is_string($prefix)) { - return parent::startsWith($prefix); - } - if ('' === $prefix || !\preg_match('//u', $prefix)) { - return \false; - } - if ($this->ignoreCase) { - return 0 === \mb_stripos($this->string, $prefix, 0, 'UTF-8'); - } - return 0 === \strncmp($this->string, $prefix, \strlen($prefix)); - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/string/Exception/ExceptionInterface.php deleted file mode 100644 index 0f4aa40fb..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Exception/ExceptionInterface.php +++ /dev/null @@ -1,15 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String\Exception; - -interface ExceptionInterface extends \Throwable -{ -} diff --git a/vendor/rector/rector/vendor/symfony/string/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/string/Exception/InvalidArgumentException.php deleted file mode 100644 index 4188e6cb8..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Exception/InvalidArgumentException.php +++ /dev/null @@ -1,15 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String\Exception; - -class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/string/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/string/Exception/RuntimeException.php deleted file mode 100644 index 955c90a92..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Exception/RuntimeException.php +++ /dev/null @@ -1,15 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String\Exception; - -class RuntimeException extends \RuntimeException implements ExceptionInterface -{ -} diff --git a/vendor/rector/rector/vendor/symfony/string/Inflector/EnglishInflector.php b/vendor/rector/rector/vendor/symfony/string/Inflector/EnglishInflector.php deleted file mode 100644 index c1554f935..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Inflector/EnglishInflector.php +++ /dev/null @@ -1,382 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String\Inflector; - -final class EnglishInflector implements InflectorInterface -{ - /** - * Map English plural to singular suffixes. - * - * @see http://english-zone.com/spelling/plurals.html - */ - private const PLURAL_MAP = [ - // First entry: plural suffix, reversed - // Second entry: length of plural suffix - // Third entry: Whether the suffix may succeed a vocal - // Fourth entry: Whether the suffix may succeed a consonant - // Fifth entry: singular suffix, normal - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['a', 1, \true, \true, ['on', 'um']], - // nebulae (nebula) - ['ea', 2, \true, \true, 'a'], - // services (service) - ['secivres', 8, \true, \true, 'service'], - // mice (mouse), lice (louse) - ['eci', 3, \false, \true, 'ouse'], - // geese (goose) - ['esee', 4, \false, \true, 'oose'], - // fungi (fungus), alumni (alumnus), syllabi (syllabus), radii (radius) - ['i', 1, \true, \true, 'us'], - // men (man), women (woman) - ['nem', 3, \true, \true, 'man'], - // children (child) - ['nerdlihc', 8, \true, \true, 'child'], - // oxen (ox) - ['nexo', 4, \false, \false, 'ox'], - // indices (index), appendices (appendix), prices (price) - ['seci', 4, \false, \true, ['ex', 'ix', 'ice']], - // codes (code) - ['sedoc', 5, \false, \true, 'code'], - // selfies (selfie) - ['seifles', 7, \true, \true, 'selfie'], - // zombies (zombie) - ['seibmoz', 7, \true, \true, 'zombie'], - // movies (movie) - ['seivom', 6, \true, \true, 'movie'], - // names (name) - ['seman', 5, \true, \false, 'name'], - // conspectuses (conspectus), prospectuses (prospectus) - ['sesutcep', 8, \true, \true, 'pectus'], - // feet (foot) - ['teef', 4, \true, \true, 'foot'], - // geese (goose) - ['eseeg', 5, \true, \true, 'goose'], - // teeth (tooth) - ['hteet', 5, \true, \true, 'tooth'], - // news (news) - ['swen', 4, \true, \true, 'news'], - // series (series) - ['seires', 6, \true, \true, 'series'], - // babies (baby) - ['sei', 3, \false, \true, 'y'], - // accesses (access), addresses (address), kisses (kiss) - ['sess', 4, \true, \false, 'ss'], - // statuses (status) - ['sesutats', 8, \true, \true, 'status'], - // analyses (analysis), ellipses (ellipsis), fungi (fungus), - // neuroses (neurosis), theses (thesis), emphases (emphasis), - // oases (oasis), crises (crisis), houses (house), bases (base), - // atlases (atlas) - ['ses', 3, \true, \true, ['s', 'se', 'sis']], - // objectives (objective), alternative (alternatives) - ['sevit', 5, \true, \true, 'tive'], - // drives (drive) - ['sevird', 6, \false, \true, 'drive'], - // lives (life), wives (wife) - ['sevi', 4, \false, \true, 'ife'], - // moves (move) - ['sevom', 5, \true, \true, 'move'], - // hooves (hoof), dwarves (dwarf), elves (elf), leaves (leaf), caves (cave), staves (staff) - ['sev', 3, \true, \true, ['f', 've', 'ff']], - // axes (axis), axes (ax), axes (axe) - ['sexa', 4, \false, \false, ['ax', 'axe', 'axis']], - // indexes (index), matrixes (matrix) - ['sex', 3, \true, \false, 'x'], - // quizzes (quiz) - ['sezz', 4, \true, \false, 'z'], - // bureaus (bureau) - ['suae', 4, \false, \true, 'eau'], - // fees (fee), trees (tree), employees (employee) - ['see', 3, \true, \true, 'ee'], - // edges (edge) - ['segd', 4, \true, \true, 'dge'], - // roses (rose), garages (garage), cassettes (cassette), - // waltzes (waltz), heroes (hero), bushes (bush), arches (arch), - // shoes (shoe) - ['se', 2, \true, \true, ['', 'e']], - // status (status) - ['sutats', 6, \true, \true, 'status'], - // tags (tag) - ['s', 1, \true, \true, ''], - // chateaux (chateau) - ['xuae', 4, \false, \true, 'eau'], - // people (person) - ['elpoep', 6, \true, \true, 'person'], - ]; - /** - * Map English singular to plural suffixes. - * - * @see http://english-zone.com/spelling/plurals.html - */ - private const SINGULAR_MAP = [ - // First entry: singular suffix, reversed - // Second entry: length of singular suffix - // Third entry: Whether the suffix may succeed a vocal - // Fourth entry: Whether the suffix may succeed a consonant - // Fifth entry: plural suffix, normal - // criterion (criteria) - ['airetirc', 8, \false, \false, 'criterion'], - // nebulae (nebula) - ['aluben', 6, \false, \false, 'nebulae'], - // children (child) - ['dlihc', 5, \true, \true, 'children'], - // prices (price) - ['eci', 3, \false, \true, 'ices'], - // services (service) - ['ecivres', 7, \true, \true, 'services'], - // lives (life), wives (wife) - ['efi', 3, \false, \true, 'ives'], - // selfies (selfie) - ['eifles', 6, \true, \true, 'selfies'], - // movies (movie) - ['eivom', 5, \true, \true, 'movies'], - // lice (louse) - ['esuol', 5, \false, \true, 'lice'], - // mice (mouse) - ['esuom', 5, \false, \true, 'mice'], - // geese (goose) - ['esoo', 4, \false, \true, 'eese'], - // houses (house), bases (base) - ['es', 2, \true, \true, 'ses'], - // geese (goose) - ['esoog', 5, \true, \true, 'geese'], - // caves (cave) - ['ev', 2, \true, \true, 'ves'], - // drives (drive) - ['evird', 5, \false, \true, 'drives'], - // objectives (objective), alternative (alternatives) - ['evit', 4, \true, \true, 'tives'], - // moves (move) - ['evom', 4, \true, \true, 'moves'], - // staves (staff) - ['ffats', 5, \true, \true, 'staves'], - // hooves (hoof), dwarves (dwarf), elves (elf), leaves (leaf) - ['ff', 2, \true, \true, 'ffs'], - // hooves (hoof), dwarves (dwarf), elves (elf), leaves (leaf) - ['f', 1, \true, \true, ['fs', 'ves']], - // arches (arch) - ['hc', 2, \true, \true, 'ches'], - // bushes (bush) - ['hs', 2, \true, \true, 'shes'], - // teeth (tooth) - ['htoot', 5, \true, \true, 'teeth'], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['mu', 2, \true, \true, 'a'], - // men (man), women (woman) - ['nam', 3, \true, \true, 'men'], - // people (person) - ['nosrep', 6, \true, \true, ['persons', 'people']], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['noi', 3, \true, \true, 'ions'], - // coupon (coupons) - ['nop', 3, \true, \true, 'pons'], - // seasons (season), treasons (treason), poisons (poison), lessons (lesson) - ['nos', 3, \true, \true, 'sons'], - // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) - ['no', 2, \true, \true, 'a'], - // echoes (echo) - ['ohce', 4, \true, \true, 'echoes'], - // heroes (hero) - ['oreh', 4, \true, \true, 'heroes'], - // atlases (atlas) - ['salta', 5, \true, \true, 'atlases'], - // irises (iris) - ['siri', 4, \true, \true, 'irises'], - // analyses (analysis), ellipses (ellipsis), neuroses (neurosis) - // theses (thesis), emphases (emphasis), oases (oasis), - // crises (crisis) - ['sis', 3, \true, \true, 'ses'], - // accesses (access), addresses (address), kisses (kiss) - ['ss', 2, \true, \false, 'sses'], - // syllabi (syllabus) - ['suballys', 8, \true, \true, 'syllabi'], - // buses (bus) - ['sub', 3, \true, \true, 'buses'], - // circuses (circus) - ['suc', 3, \true, \true, 'cuses'], - // status (status) - ['sutats', 6, \true, \true, ['status', 'statuses']], - // conspectuses (conspectus), prospectuses (prospectus) - ['sutcep', 6, \true, \true, 'pectuses'], - // fungi (fungus), alumni (alumnus), syllabi (syllabus), radii (radius) - ['su', 2, \true, \true, 'i'], - // news (news) - ['swen', 4, \true, \true, 'news'], - // feet (foot) - ['toof', 4, \true, \true, 'feet'], - // chateaux (chateau), bureaus (bureau) - ['uae', 3, \false, \true, ['eaus', 'eaux']], - // oxen (ox) - ['xo', 2, \false, \false, 'oxen'], - // hoaxes (hoax) - ['xaoh', 4, \true, \false, 'hoaxes'], - // indices (index) - ['xedni', 5, \false, \true, ['indicies', 'indexes']], - // boxes (box) - ['xo', 2, \false, \true, 'oxes'], - // indexes (index), matrixes (matrix) - ['x', 1, \true, \false, ['cies', 'xes']], - // appendices (appendix) - ['xi', 2, \false, \true, 'ices'], - // babies (baby) - ['y', 1, \false, \true, 'ies'], - // quizzes (quiz) - ['ziuq', 4, \true, \false, 'quizzes'], - // waltzes (waltz) - ['z', 1, \true, \true, 'zes'], - ]; - /** - * A list of words which should not be inflected, reversed. - */ - private const UNINFLECTED = [ - '', - // data - 'atad', - // deer - 'reed', - // feedback - 'kcabdeef', - // fish - 'hsif', - // info - 'ofni', - // moose - 'esoom', - // series - 'seires', - // sheep - 'peehs', - // species - 'seiceps', - ]; - public function singularize(string $plural) : array - { - $pluralRev = \strrev($plural); - $lowerPluralRev = \strtolower($pluralRev); - $pluralLength = \strlen($lowerPluralRev); - // Check if the word is one which is not inflected, return early if so - if (\in_array($lowerPluralRev, self::UNINFLECTED, \true)) { - return [$plural]; - } - // The outer loop iterates over the entries of the plural table - // The inner loop $j iterates over the characters of the plural suffix - // in the plural table to compare them with the characters of the actual - // given plural suffix - foreach (self::PLURAL_MAP as $map) { - $suffix = $map[0]; - $suffixLength = $map[1]; - $j = 0; - // Compare characters in the plural table and of the suffix of the - // given plural one by one - while ($suffix[$j] === $lowerPluralRev[$j]) { - // Let $j point to the next character - ++$j; - // Successfully compared the last character - // Add an entry with the singular suffix to the singular array - if ($j === $suffixLength) { - // Is there any character preceding the suffix in the plural string? - if ($j < $pluralLength) { - $nextIsVocal = \strpos('aeiou', $lowerPluralRev[$j]) !== \false; - if (!$map[2] && $nextIsVocal) { - // suffix may not succeed a vocal but next char is one - break; - } - if (!$map[3] && !$nextIsVocal) { - // suffix may not succeed a consonant but next char is one - break; - } - } - $newBase = \substr($plural, 0, $pluralLength - $suffixLength); - $newSuffix = $map[4]; - // Check whether the first character in the plural suffix - // is uppercased. If yes, uppercase the first character in - // the singular suffix too - $firstUpper = \ctype_upper($pluralRev[$j - 1]); - if (\is_array($newSuffix)) { - $singulars = []; - foreach ($newSuffix as $newSuffixEntry) { - $singulars[] = $newBase . ($firstUpper ? \ucfirst($newSuffixEntry) : $newSuffixEntry); - } - return $singulars; - } - return [$newBase . ($firstUpper ? \ucfirst($newSuffix) : $newSuffix)]; - } - // Suffix is longer than word - if ($j === $pluralLength) { - break; - } - } - } - // Assume that plural and singular is identical - return [$plural]; - } - public function pluralize(string $singular) : array - { - $singularRev = \strrev($singular); - $lowerSingularRev = \strtolower($singularRev); - $singularLength = \strlen($lowerSingularRev); - // Check if the word is one which is not inflected, return early if so - if (\in_array($lowerSingularRev, self::UNINFLECTED, \true)) { - return [$singular]; - } - // The outer loop iterates over the entries of the singular table - // The inner loop $j iterates over the characters of the singular suffix - // in the singular table to compare them with the characters of the actual - // given singular suffix - foreach (self::SINGULAR_MAP as $map) { - $suffix = $map[0]; - $suffixLength = $map[1]; - $j = 0; - // Compare characters in the singular table and of the suffix of the - // given plural one by one - while ($suffix[$j] === $lowerSingularRev[$j]) { - // Let $j point to the next character - ++$j; - // Successfully compared the last character - // Add an entry with the plural suffix to the plural array - if ($j === $suffixLength) { - // Is there any character preceding the suffix in the plural string? - if ($j < $singularLength) { - $nextIsVocal = \strpos('aeiou', $lowerSingularRev[$j]) !== \false; - if (!$map[2] && $nextIsVocal) { - // suffix may not succeed a vocal but next char is one - break; - } - if (!$map[3] && !$nextIsVocal) { - // suffix may not succeed a consonant but next char is one - break; - } - } - $newBase = \substr($singular, 0, $singularLength - $suffixLength); - $newSuffix = $map[4]; - // Check whether the first character in the singular suffix - // is uppercased. If yes, uppercase the first character in - // the singular suffix too - $firstUpper = \ctype_upper($singularRev[$j - 1]); - if (\is_array($newSuffix)) { - $plurals = []; - foreach ($newSuffix as $newSuffixEntry) { - $plurals[] = $newBase . ($firstUpper ? \ucfirst($newSuffixEntry) : $newSuffixEntry); - } - return $plurals; - } - return [$newBase . ($firstUpper ? \ucfirst($newSuffix) : $newSuffix)]; - } - // Suffix is longer than word - if ($j === $singularLength) { - break; - } - } - } - // Assume that plural is singular with a trailing `s` - return [$singular . 's']; - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/Inflector/FrenchInflector.php b/vendor/rector/rector/vendor/symfony/string/Inflector/FrenchInflector.php deleted file mode 100644 index 9905b15f9..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Inflector/FrenchInflector.php +++ /dev/null @@ -1,122 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String\Inflector; - -/** - * French inflector. - * - * This class does only inflect nouns; not adjectives nor composed words like "soixante-dix". - */ -final class FrenchInflector implements InflectorInterface -{ - /** - * A list of all rules for pluralise. - * - * @see https://la-conjugaison.nouvelobs.com/regles/grammaire/le-pluriel-des-noms-121.php - */ - private const PLURALIZE_REGEXP = [ - // First entry: regexp - // Second entry: replacement - // Words finishing with "s", "x" or "z" are invariables - // Les mots finissant par "s", "x" ou "z" sont invariables - ['/(s|x|z)$/i', '\\1'], - // Words finishing with "eau" are pluralized with a "x" - // Les mots finissant par "eau" prennent tous un "x" au pluriel - ['/(eau)$/i', '\\1x'], - // Words finishing with "au" are pluralized with a "x" excepted "landau" - // Les mots finissant par "au" prennent un "x" au pluriel sauf "landau" - ['/^(landau)$/i', '\\1s'], - ['/(au)$/i', '\\1x'], - // Words finishing with "eu" are pluralized with a "x" excepted "pneu", "bleu", "émeu" - // Les mots finissant en "eu" prennent un "x" au pluriel sauf "pneu", "bleu", "émeu" - ['/^(pneu|bleu|émeu)$/i', '\\1s'], - ['/(eu)$/i', '\\1x'], - // Words finishing with "al" are pluralized with a "aux" excepted - // Les mots finissant en "al" se terminent en "aux" sauf - ['/^(bal|carnaval|caracal|chacal|choral|corral|étal|festival|récital|val)$/i', '\\1s'], - ['/al$/i', '\\1aux'], - // Aspirail, bail, corail, émail, fermail, soupirail, travail, vantail et vitrail font leur pluriel en -aux - ['/^(aspir|b|cor|ém|ferm|soupir|trav|vant|vitr)ail$/i', '\\1aux'], - // Bijou, caillou, chou, genou, hibou, joujou et pou qui prennent un x au pluriel - ['/^(bij|caill|ch|gen|hib|jouj|p)ou$/i', '\\1oux'], - // Invariable words - ['/^(cinquante|soixante|mille)$/i', '\\1'], - // French titles - ['/^(mon|ma)(sieur|dame|demoiselle|seigneur)$/', 'RectorPrefix202308\\mes\\2s'], - ['/^(Mon|Ma)(sieur|dame|demoiselle|seigneur)$/', 'RectorPrefix202308\\Mes\\2s'], - ]; - /** - * A list of all rules for singularize. - */ - private const SINGULARIZE_REGEXP = [ - // First entry: regexp - // Second entry: replacement - // Aspirail, bail, corail, émail, fermail, soupirail, travail, vantail et vitrail font leur pluriel en -aux - ['/((aspir|b|cor|ém|ferm|soupir|trav|vant|vitr))aux$/i', '\\1ail'], - // Words finishing with "eau" are pluralized with a "x" - // Les mots finissant par "eau" prennent tous un "x" au pluriel - ['/(eau)x$/i', '\\1'], - // Words finishing with "al" are pluralized with a "aux" expected - // Les mots finissant en "al" se terminent en "aux" sauf - ['/(amir|anim|arsen|boc|can|capit|capor|chev|crist|génér|hopit|hôpit|idé|journ|littor|loc|m|mét|minér|princip|radic|termin)aux$/i', '\\1al'], - // Words finishing with "au" are pluralized with a "x" excepted "landau" - // Les mots finissant par "au" prennent un "x" au pluriel sauf "landau" - ['/(au)x$/i', '\\1'], - // Words finishing with "eu" are pluralized with a "x" excepted "pneu", "bleu", "émeu" - // Les mots finissant en "eu" prennent un "x" au pluriel sauf "pneu", "bleu", "émeu" - ['/(eu)x$/i', '\\1'], - // Words finishing with "ou" are pluralized with a "s" excepted bijou, caillou, chou, genou, hibou, joujou, pou - // Les mots finissant par "ou" prennent un "s" sauf bijou, caillou, chou, genou, hibou, joujou, pou - ['/(bij|caill|ch|gen|hib|jouj|p)oux$/i', '\\1ou'], - // French titles - ['/^mes(dame|demoiselle)s$/', 'RectorPrefix202308\\ma\\1'], - ['/^Mes(dame|demoiselle)s$/', 'RectorPrefix202308\\Ma\\1'], - ['/^mes(sieur|seigneur)s$/', 'RectorPrefix202308\\mon\\1'], - ['/^Mes(sieur|seigneur)s$/', 'RectorPrefix202308\\Mon\\1'], - // Default rule - ['/s$/i', ''], - ]; - /** - * A list of words which should not be inflected. - * This list is only used by singularize. - */ - private const UNINFLECTED = '/^(abcès|accès|abus|albatros|anchois|anglais|autobus|bois|brebis|carquois|cas|chas|colis|concours|corps|cours|cyprès|décès|devis|discours|dos|embarras|engrais|entrelacs|excès|fils|fois|gâchis|gars|glas|héros|intrus|jars|jus|kermès|lacis|legs|lilas|marais|mars|matelas|mépris|mets|mois|mors|obus|os|palais|paradis|parcours|pardessus|pays|plusieurs|poids|pois|pouls|printemps|processus|progrès|puits|pus|rabais|radis|recors|recours|refus|relais|remords|remous|rictus|rhinocéros|repas|rubis|sans|sas|secours|sens|souris|succès|talus|tapis|tas|taudis|temps|tiers|univers|velours|verglas|vernis|virus)$/i'; - public function singularize(string $plural) : array - { - if ($this->isInflectedWord($plural)) { - return [$plural]; - } - foreach (self::SINGULARIZE_REGEXP as $rule) { - [$regexp, $replace] = $rule; - if (1 === \preg_match($regexp, $plural)) { - return [\preg_replace($regexp, $replace, $plural)]; - } - } - return [$plural]; - } - public function pluralize(string $singular) : array - { - if ($this->isInflectedWord($singular)) { - return [$singular]; - } - foreach (self::PLURALIZE_REGEXP as $rule) { - [$regexp, $replace] = $rule; - if (1 === \preg_match($regexp, $singular)) { - return [\preg_replace($regexp, $replace, $singular)]; - } - } - return [$singular . 's']; - } - private function isInflectedWord(string $word) : bool - { - return 1 === \preg_match(self::UNINFLECTED, $word); - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/Inflector/InflectorInterface.php b/vendor/rector/rector/vendor/symfony/string/Inflector/InflectorInterface.php deleted file mode 100644 index d36174d52..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Inflector/InflectorInterface.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 RectorPrefix202308\Symfony\Component\String\Inflector; - -interface InflectorInterface -{ - /** - * Returns the singular forms of a string. - * - * If the method can't determine the form with certainty, several possible singulars are returned. - * - * @return string[] - */ - public function singularize(string $plural) : array; - /** - * Returns the plural forms of a string. - * - * If the method can't determine the form with certainty, several possible plurals are returned. - * - * @return string[] - */ - public function pluralize(string $singular) : array; -} diff --git a/vendor/rector/rector/vendor/symfony/string/LICENSE b/vendor/rector/rector/vendor/symfony/string/LICENSE deleted file mode 100644 index f37c76b59..000000000 --- a/vendor/rector/rector/vendor/symfony/string/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2019-present Fabien Potencier - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/rector/rector/vendor/symfony/string/LazyString.php b/vendor/rector/rector/vendor/symfony/string/LazyString.php deleted file mode 100644 index fd4d7efab..000000000 --- a/vendor/rector/rector/vendor/symfony/string/LazyString.php +++ /dev/null @@ -1,132 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String; - -/** - * A string whose value is computed lazily by a callback. - * - * @author Nicolas Grekas - */ -class LazyString implements \JsonSerializable -{ - /** - * @var \Closure|string - */ - private $value; - /** - * @param callable|array $callback A callable or a [Closure, method] lazy-callable - * @param mixed ...$arguments - * @return static - */ - public static function fromCallable($callback, ...$arguments) - { - if (\is_array($callback) && !\is_callable($callback) && !(($callback[0] ?? null) instanceof \Closure || 2 < \count($callback))) { - throw new \TypeError(\sprintf('Argument 1 passed to "%s()" must be a callable or a [Closure, method] lazy-callable, "%s" given.', __METHOD__, '[' . \implode(', ', \array_map('get_debug_type', $callback)) . ']')); - } - $lazyString = new static(); - $lazyString->value = static function () use(&$callback, &$arguments) : string { - static $value; - if (null !== $arguments) { - if (!\is_callable($callback)) { - $callback[0] = $callback[0](); - $callback[1] = $callback[1] ?? '__invoke'; - } - $value = $callback(...$arguments); - $callback = self::getPrettyName($callback); - $arguments = null; - } - return $value ?? ''; - }; - return $lazyString; - } - /** - * @param string|int|float|bool|\Stringable $value - * @return static - */ - public static function fromStringable($value) - { - if (\is_object($value)) { - return static::fromCallable(\Closure::fromCallable([$value, '__toString'])); - } - $lazyString = new static(); - $lazyString->value = (string) $value; - return $lazyString; - } - /** - * Tells whether the provided value can be cast to string. - * @param mixed $value - */ - public static final function isStringable($value) : bool - { - return \is_string($value) || $value instanceof \Stringable || \is_scalar($value); - } - /** - * Casts scalars and stringable objects to strings. - * - * @throws \TypeError When the provided value is not stringable - * @param \Stringable|string|int|float|bool $value - */ - public static final function resolve($value) : string - { - return $value; - } - public function __toString() : string - { - if (\is_string($this->value)) { - return $this->value; - } - try { - return $this->value = ($this->value)(); - } catch (\Throwable $e) { - if (\TypeError::class === \get_class($e) && __FILE__ === $e->getFile()) { - $type = \explode(', ', $e->getMessage()); - $type = \substr(\array_pop($type), 0, -\strlen(' returned')); - $r = new \ReflectionFunction($this->value); - $callback = $r->getStaticVariables()['callback']; - $e = new \TypeError(\sprintf('Return value of %s() passed to %s::fromCallable() must be of the type string, %s returned.', $callback, static::class, $type)); - } - throw $e; - } - } - public function __sleep() : array - { - $this->__toString(); - return ['value']; - } - public function jsonSerialize() : string - { - return $this->__toString(); - } - private function __construct() - { - } - private static function getPrettyName(callable $callback) : string - { - if (\is_string($callback)) { - return $callback; - } - if (\is_array($callback)) { - $class = \is_object($callback[0]) ? \get_debug_type($callback[0]) : $callback[0]; - $method = $callback[1]; - } elseif ($callback instanceof \Closure) { - $r = new \ReflectionFunction($callback); - if (\strpos($r->name, '{closure}') !== \false || !($class = \PHP_VERSION_ID >= 80111 ? $r->getClosureCalledClass() : $r->getClosureScopeClass())) { - return $r->name; - } - $class = $class->name; - $method = $r->name; - } else { - $class = \get_debug_type($callback); - $method = '__invoke'; - } - return $class . '::' . $method; - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/README.md b/vendor/rector/rector/vendor/symfony/string/README.md deleted file mode 100644 index 9c7e1e190..000000000 --- a/vendor/rector/rector/vendor/symfony/string/README.md +++ /dev/null @@ -1,14 +0,0 @@ -String Component -================ - -The String component provides an object-oriented API to strings and deals -with bytes, UTF-8 code points and grapheme clusters in a unified way. - -Resources ---------- - - * [Documentation](https://symfony.com/doc/current/components/string.html) - * [Contributing](https://symfony.com/doc/current/contributing/index.html) - * [Report issues](https://github.com/symfony/symfony/issues) and - [send Pull Requests](https://github.com/symfony/symfony/pulls) - in the [main Symfony repository](https://github.com/symfony/symfony) diff --git a/vendor/rector/rector/vendor/symfony/string/Resources/data/wcswidth_table_wide.php b/vendor/rector/rector/vendor/symfony/string/Resources/data/wcswidth_table_wide.php deleted file mode 100644 index a965ced0c..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Resources/data/wcswidth_table_wide.php +++ /dev/null @@ -1,11 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String; - -if (!\function_exists(u::class)) { - function u(?string $string = '') : UnicodeString - { - return new UnicodeString($string ?? ''); - } -} -if (!\function_exists(b::class)) { - function b(?string $string = '') : ByteString - { - return new ByteString($string ?? ''); - } -} -if (!\function_exists(s::class)) { - /** - * @return UnicodeString|ByteString - */ - function s(?string $string = '') : AbstractString - { - $string = $string ?? ''; - return \preg_match('//u', $string) ? new UnicodeString($string) : new ByteString($string); - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/Slugger/AsciiSlugger.php b/vendor/rector/rector/vendor/symfony/string/Slugger/AsciiSlugger.php deleted file mode 100644 index 86cb85bc9..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Slugger/AsciiSlugger.php +++ /dev/null @@ -1,164 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String\Slugger; - -use RectorPrefix202308\Symfony\Component\Intl\Transliterator\EmojiTransliterator; -use RectorPrefix202308\Symfony\Component\String\AbstractUnicodeString; -use RectorPrefix202308\Symfony\Component\String\UnicodeString; -use RectorPrefix202308\Symfony\Contracts\Translation\LocaleAwareInterface; -if (!\interface_exists(LocaleAwareInterface::class)) { - throw new \LogicException('You cannot use the "Symfony\\Component\\String\\Slugger\\AsciiSlugger" as the "symfony/translation-contracts" package is not installed. Try running "composer require symfony/translation-contracts".'); -} -/** - * @author Titouan Galopin - */ -class AsciiSlugger implements SluggerInterface, LocaleAwareInterface -{ - private const LOCALE_TO_TRANSLITERATOR_ID = ['am' => 'Amharic-Latin', 'ar' => 'Arabic-Latin', 'az' => 'Azerbaijani-Latin', 'be' => 'Belarusian-Latin', 'bg' => 'Bulgarian-Latin', 'bn' => 'Bengali-Latin', 'de' => 'de-ASCII', 'el' => 'Greek-Latin', 'fa' => 'Persian-Latin', 'he' => 'Hebrew-Latin', 'hy' => 'Armenian-Latin', 'ka' => 'Georgian-Latin', 'kk' => 'Kazakh-Latin', 'ky' => 'Kirghiz-Latin', 'ko' => 'Korean-Latin', 'mk' => 'Macedonian-Latin', 'mn' => 'Mongolian-Latin', 'or' => 'Oriya-Latin', 'ps' => 'Pashto-Latin', 'ru' => 'Russian-Latin', 'sr' => 'Serbian-Latin', 'sr_Cyrl' => 'Serbian-Latin', 'th' => 'Thai-Latin', 'tk' => 'Turkmen-Latin', 'uk' => 'Ukrainian-Latin', 'uz' => 'Uzbek-Latin', 'zh' => 'Han-Latin']; - /** - * @var string|null - */ - private $defaultLocale; - /** - * @var \Closure|mixed[] - */ - private $symbolsMap = ['en' => ['@' => 'at', '&' => 'and']]; - /** - * @var bool|string - */ - private $emoji = \false; - /** - * Cache of transliterators per locale. - * - * @var \Transliterator[] - */ - private $transliterators = []; - /** - * @param mixed[]|\Closure $symbolsMap - */ - public function __construct(string $defaultLocale = null, $symbolsMap = null) - { - $this->defaultLocale = $defaultLocale; - $this->symbolsMap = $symbolsMap ?? $this->symbolsMap; - } - /** - * @return void - */ - public function setLocale(string $locale) - { - $this->defaultLocale = $locale; - } - public function getLocale() : string - { - return $this->defaultLocale; - } - /** - * @param bool|string $emoji true will use the same locale, - * false will disable emoji, - * and a string to use a specific locale - * @return static - */ - public function withEmoji($emoji = \true) - { - if (\false !== $emoji && !\class_exists(EmojiTransliterator::class)) { - throw new \LogicException(\sprintf('You cannot use the "%s()" method as the "symfony/intl" package is not installed. Try running "composer require symfony/intl".', __METHOD__)); - } - $new = clone $this; - $new->emoji = $emoji; - return $new; - } - public function slug(string $string, string $separator = '-', string $locale = null) : AbstractUnicodeString - { - $locale = $locale ?? $this->defaultLocale; - $transliterator = []; - if ($locale && ('de' === $locale || \strncmp($locale, 'de_', \strlen('de_')) === 0)) { - // Use the shortcut for German in UnicodeString::ascii() if possible (faster and no requirement on intl) - $transliterator = ['de-ASCII']; - } elseif (\function_exists('transliterator_transliterate') && $locale) { - $transliterator = (array) $this->createTransliterator($locale); - } - if ($emojiTransliterator = $this->createEmojiTransliterator($locale)) { - $transliterator[] = $emojiTransliterator; - } - if ($this->symbolsMap instanceof \Closure) { - // If the symbols map is passed as a closure, there is no need to fallback to the parent locale - // as the closure can just provide substitutions for all locales of interest. - $symbolsMap = $this->symbolsMap; - \array_unshift($transliterator, static function ($s) use($symbolsMap, $locale) { - return $symbolsMap($s, $locale); - }); - } - $unicodeString = (new UnicodeString($string))->ascii($transliterator); - if (\is_array($this->symbolsMap)) { - $map = null; - if (isset($this->symbolsMap[$locale])) { - $map = $this->symbolsMap[$locale]; - } else { - $parent = self::getParentLocale($locale); - if ($parent && isset($this->symbolsMap[$parent])) { - $map = $this->symbolsMap[$parent]; - } - } - if ($map) { - foreach ($map as $char => $replace) { - $unicodeString = $unicodeString->replace($char, ' ' . $replace . ' '); - } - } - } - return $unicodeString->replaceMatches('/[^A-Za-z0-9]++/', $separator)->trim($separator); - } - private function createTransliterator(string $locale) : ?\Transliterator - { - if (\array_key_exists($locale, $this->transliterators)) { - return $this->transliterators[$locale]; - } - // Exact locale supported, cache and return - if ($id = self::LOCALE_TO_TRANSLITERATOR_ID[$locale] ?? null) { - return $this->transliterators[$locale] = \Transliterator::create($id . '/BGN') ?? \Transliterator::create($id); - } - // Locale not supported and no parent, fallback to any-latin - if (!($parent = self::getParentLocale($locale))) { - return $this->transliterators[$locale] = null; - } - // Try to use the parent locale (ie. try "de" for "de_AT") and cache both locales - if ($id = self::LOCALE_TO_TRANSLITERATOR_ID[$parent] ?? null) { - $transliterator = \Transliterator::create($id . '/BGN') ?? \Transliterator::create($id); - } - return $this->transliterators[$locale] = $this->transliterators[$parent] = $transliterator ?? null; - } - private function createEmojiTransliterator(?string $locale) : ?EmojiTransliterator - { - if (\is_string($this->emoji)) { - $locale = $this->emoji; - } elseif (!$this->emoji) { - return null; - } - while (null !== $locale) { - try { - return EmojiTransliterator::create("emoji-{$locale}"); - } catch (\IntlException $exception) { - $locale = self::getParentLocale($locale); - } - } - return null; - } - private static function getParentLocale(?string $locale) : ?string - { - if (!$locale) { - return null; - } - if (\false === ($str = \strrchr($locale, '_'))) { - // no parent locale - return null; - } - return \substr($locale, 0, -\strlen($str)); - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/Slugger/SluggerInterface.php b/vendor/rector/rector/vendor/symfony/string/Slugger/SluggerInterface.php deleted file mode 100644 index e61a249c9..000000000 --- a/vendor/rector/rector/vendor/symfony/string/Slugger/SluggerInterface.php +++ /dev/null @@ -1,25 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String\Slugger; - -use RectorPrefix202308\Symfony\Component\String\AbstractUnicodeString; -/** - * Creates a URL-friendly slug from a given string. - * - * @author Titouan Galopin - */ -interface SluggerInterface -{ - /** - * Creates a slug for the given string and locale, using appropriate transliteration when needed. - */ - public function slug(string $string, string $separator = '-', string $locale = null) : AbstractUnicodeString; -} diff --git a/vendor/rector/rector/vendor/symfony/string/UnicodeString.php b/vendor/rector/rector/vendor/symfony/string/UnicodeString.php deleted file mode 100644 index 42142f1e0..000000000 --- a/vendor/rector/rector/vendor/symfony/string/UnicodeString.php +++ /dev/null @@ -1,323 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ -namespace RectorPrefix202308\Symfony\Component\String; - -use RectorPrefix202308\Symfony\Component\String\Exception\ExceptionInterface; -use RectorPrefix202308\Symfony\Component\String\Exception\InvalidArgumentException; -/** - * Represents a string of Unicode grapheme clusters encoded as UTF-8. - * - * A letter followed by combining characters (accents typically) form what Unicode defines - * as a grapheme cluster: a character as humans mean it in written texts. This class knows - * about the concept and won't split a letter apart from its combining accents. It also - * ensures all string comparisons happen on their canonically-composed representation, - * ignoring e.g. the order in which accents are listed when a letter has many of them. - * - * @see https://unicode.org/reports/tr15/ - * - * @author Nicolas Grekas - * @author Hugo Hamon - * - * @throws ExceptionInterface - */ -class UnicodeString extends AbstractUnicodeString -{ - public function __construct(string $string = '') - { - $this->string = \normalizer_is_normalized($string) ? $string : \normalizer_normalize($string); - if (\false === $this->string) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - } - /** - * @return static - */ - public function append(string ...$suffix) - { - $str = clone $this; - $str->string = $this->string . (1 >= \count($suffix) ? $suffix[0] ?? '' : \implode('', $suffix)); - \normalizer_is_normalized($str->string) ?: ($str->string = \normalizer_normalize($str->string)); - if (\false === $str->string) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - return $str; - } - public function chunk(int $length = 1) : array - { - if (1 > $length) { - throw new InvalidArgumentException('The chunk length must be greater than zero.'); - } - if ('' === $this->string) { - return []; - } - $rx = '/('; - while (65535 < $length) { - $rx .= '\\X{65535}'; - $length -= 65535; - } - $rx .= '\\X{' . $length . '})/u'; - $str = clone $this; - $chunks = []; - foreach (\preg_split($rx, $this->string, -1, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY) as $chunk) { - $str->string = $chunk; - $chunks[] = clone $str; - } - return $chunks; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $suffix - */ - public function endsWith($suffix) : bool - { - if ($suffix instanceof AbstractString) { - $suffix = $suffix->string; - } elseif (!\is_string($suffix)) { - return parent::endsWith($suffix); - } - $form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC; - \normalizer_is_normalized($suffix, $form) ?: ($suffix = \normalizer_normalize($suffix, $form)); - if ('' === $suffix || \false === $suffix) { - return \false; - } - if ($this->ignoreCase) { - return 0 === \mb_stripos(\grapheme_extract($this->string, \strlen($suffix), \GRAPHEME_EXTR_MAXBYTES, \strlen($this->string) - \strlen($suffix)), $suffix, 0, 'UTF-8'); - } - return $suffix === \grapheme_extract($this->string, \strlen($suffix), \GRAPHEME_EXTR_MAXBYTES, \strlen($this->string) - \strlen($suffix)); - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $string - */ - public function equalsTo($string) : bool - { - if ($string instanceof AbstractString) { - $string = $string->string; - } elseif (!\is_string($string)) { - return parent::equalsTo($string); - } - $form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC; - \normalizer_is_normalized($string, $form) ?: ($string = \normalizer_normalize($string, $form)); - if ('' !== $string && \false !== $string && $this->ignoreCase) { - return \strlen($string) === \strlen($this->string) && 0 === \mb_stripos($this->string, $string, 0, 'UTF-8'); - } - return $string === $this->string; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $needle - */ - public function indexOf($needle, int $offset = 0) : ?int - { - if ($needle instanceof AbstractString) { - $needle = $needle->string; - } elseif (!\is_string($needle)) { - return parent::indexOf($needle, $offset); - } - $form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC; - \normalizer_is_normalized($needle, $form) ?: ($needle = \normalizer_normalize($needle, $form)); - if ('' === $needle || \false === $needle) { - return null; - } - try { - $i = $this->ignoreCase ? \grapheme_stripos($this->string, $needle, $offset) : \grapheme_strpos($this->string, $needle, $offset); - } catch (\ValueError $exception) { - return null; - } - return \false === $i ? null : $i; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $needle - */ - public function indexOfLast($needle, int $offset = 0) : ?int - { - if ($needle instanceof AbstractString) { - $needle = $needle->string; - } elseif (!\is_string($needle)) { - return parent::indexOfLast($needle, $offset); - } - $form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC; - \normalizer_is_normalized($needle, $form) ?: ($needle = \normalizer_normalize($needle, $form)); - if ('' === $needle || \false === $needle) { - return null; - } - $string = $this->string; - if (0 > $offset) { - // workaround https://bugs.php.net/74264 - if (0 > ($offset += \grapheme_strlen($needle))) { - $string = \grapheme_substr($string, 0, $offset); - } - $offset = 0; - } - $i = $this->ignoreCase ? \grapheme_strripos($string, $needle, $offset) : \grapheme_strrpos($string, $needle, $offset); - return \false === $i ? null : $i; - } - /** - * @return static - */ - public function join(array $strings, string $lastGlue = null) - { - $str = parent::join($strings, $lastGlue); - \normalizer_is_normalized($str->string) ?: ($str->string = \normalizer_normalize($str->string)); - return $str; - } - public function length() : int - { - return \grapheme_strlen($this->string); - } - /** - * @return static - */ - public function normalize(int $form = self::NFC) - { - $str = clone $this; - if (\in_array($form, [self::NFC, self::NFKC], \true)) { - \normalizer_is_normalized($str->string, $form) ?: ($str->string = \normalizer_normalize($str->string, $form)); - } elseif (!\in_array($form, [self::NFD, self::NFKD], \true)) { - throw new InvalidArgumentException('Unsupported normalization form.'); - } elseif (!\normalizer_is_normalized($str->string, $form)) { - $str->string = \normalizer_normalize($str->string, $form); - $str->ignoreCase = null; - } - return $str; - } - /** - * @return static - */ - public function prepend(string ...$prefix) - { - $str = clone $this; - $str->string = (1 >= \count($prefix) ? $prefix[0] ?? '' : \implode('', $prefix)) . $this->string; - \normalizer_is_normalized($str->string) ?: ($str->string = \normalizer_normalize($str->string)); - if (\false === $str->string) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - return $str; - } - /** - * @return static - */ - public function replace(string $from, string $to) - { - $str = clone $this; - \normalizer_is_normalized($from) ?: ($from = \normalizer_normalize($from)); - if ('' !== $from && \false !== $from) { - $tail = $str->string; - $result = ''; - $indexOf = $this->ignoreCase ? 'grapheme_stripos' : 'grapheme_strpos'; - while ('' !== $tail && \false !== ($i = $indexOf($tail, $from))) { - $slice = \grapheme_substr($tail, 0, $i); - $result .= $slice . $to; - $tail = \substr($tail, \strlen($slice) + \strlen($from)); - } - $str->string = $result . $tail; - \normalizer_is_normalized($str->string) ?: ($str->string = \normalizer_normalize($str->string)); - if (\false === $str->string) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - } - return $str; - } - /** - * @param string|callable $to - * @return static - */ - public function replaceMatches(string $fromRegexp, $to) - { - $str = parent::replaceMatches($fromRegexp, $to); - \normalizer_is_normalized($str->string) ?: ($str->string = \normalizer_normalize($str->string)); - return $str; - } - /** - * @return static - */ - public function slice(int $start = 0, int $length = null) - { - $str = clone $this; - $str->string = (string) \grapheme_substr($this->string, $start, $length ?? 2147483647); - return $str; - } - /** - * @return static - */ - public function splice(string $replacement, int $start = 0, int $length = null) - { - $str = clone $this; - $start = $start ? \strlen(\grapheme_substr($this->string, 0, $start)) : 0; - $length = $length ? \strlen(\grapheme_substr($this->string, $start, $length ?? 2147483647)) : $length; - $str->string = \substr_replace($this->string, $replacement, $start, $length ?? 2147483647); - \normalizer_is_normalized($str->string) ?: ($str->string = \normalizer_normalize($str->string)); - if (\false === $str->string) { - throw new InvalidArgumentException('Invalid UTF-8 string.'); - } - return $str; - } - public function split(string $delimiter, int $limit = null, int $flags = null) : array - { - if (1 > ($limit = $limit ?? 2147483647)) { - throw new InvalidArgumentException('Split limit must be a positive integer.'); - } - if ('' === $delimiter) { - throw new InvalidArgumentException('Split delimiter is empty.'); - } - if (null !== $flags) { - return parent::split($delimiter . 'u', $limit, $flags); - } - \normalizer_is_normalized($delimiter) ?: ($delimiter = \normalizer_normalize($delimiter)); - if (\false === $delimiter) { - throw new InvalidArgumentException('Split delimiter is not a valid UTF-8 string.'); - } - $str = clone $this; - $tail = $this->string; - $chunks = []; - $indexOf = $this->ignoreCase ? 'grapheme_stripos' : 'grapheme_strpos'; - while (1 < $limit && \false !== ($i = $indexOf($tail, $delimiter))) { - $str->string = \grapheme_substr($tail, 0, $i); - $chunks[] = clone $str; - $tail = \substr($tail, \strlen($str->string) + \strlen($delimiter)); - --$limit; - } - $str->string = $tail; - $chunks[] = clone $str; - return $chunks; - } - /** - * @param string|iterable|\Symfony\Component\String\AbstractString $prefix - */ - public function startsWith($prefix) : bool - { - if ($prefix instanceof AbstractString) { - $prefix = $prefix->string; - } elseif (!\is_string($prefix)) { - return parent::startsWith($prefix); - } - $form = null === $this->ignoreCase ? \Normalizer::NFD : \Normalizer::NFC; - \normalizer_is_normalized($prefix, $form) ?: ($prefix = \normalizer_normalize($prefix, $form)); - if ('' === $prefix || \false === $prefix) { - return \false; - } - if ($this->ignoreCase) { - return 0 === \mb_stripos(\grapheme_extract($this->string, \strlen($prefix), \GRAPHEME_EXTR_MAXBYTES), $prefix, 0, 'UTF-8'); - } - return $prefix === \grapheme_extract($this->string, \strlen($prefix), \GRAPHEME_EXTR_MAXBYTES); - } - public function __wakeup() - { - if (!\is_string($this->string)) { - throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); - } - \normalizer_is_normalized($this->string) ?: ($this->string = \normalizer_normalize($this->string)); - } - public function __clone() - { - if (null === $this->ignoreCase) { - \normalizer_is_normalized($this->string) ?: ($this->string = \normalizer_normalize($this->string)); - } - $this->ignoreCase = \false; - } -} diff --git a/vendor/rector/rector/vendor/symfony/string/composer.json b/vendor/rector/rector/vendor/symfony/string/composer.json deleted file mode 100644 index bf0b3de14..000000000 --- a/vendor/rector/rector/vendor/symfony/string/composer.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "symfony\/string", - "type": "library", - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "keywords": [ - "string", - "utf8", - "utf-8", - "grapheme", - "i18n", - "unicode" - ], - "homepage": "https:\/\/symfony.com", - "license": "MIT", - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https:\/\/symfony.com\/contributors" - } - ], - "require": { - "php": ">=8.1", - "symfony\/polyfill-ctype": "~1.8", - "symfony\/polyfill-intl-grapheme": "~1.0", - "symfony\/polyfill-intl-normalizer": "~1.0", - "symfony\/polyfill-mbstring": "~1.0" - }, - "require-dev": { - "symfony\/error-handler": "^5.4|^6.0", - "symfony\/intl": "^6.2", - "symfony\/http-client": "^5.4|^6.0", - "symfony\/translation-contracts": "^2.5|^3.0", - "symfony\/var-exporter": "^5.4|^6.0" - }, - "conflict": { - "symfony\/translation-contracts": "<2.5" - }, - "autoload": { - "psr-4": { - "RectorPrefix202308\\Symfony\\Component\\String\\": "" - }, - "files": [ - "Resources\/functions.php" - ], - "exclude-from-classmap": [ - "\/Tests\/" - ] - }, - "minimum-stability": "dev" -} \ No newline at end of file diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json index 652cf0d64..3ae7eca15 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json @@ -25,12 +25,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202308\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202309\\Symplify\\EasyParallel\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202308\\Symplify\\EasyParallel\\Tests\\": "tests" + "RectorPrefix202309\\Symplify\\EasyParallel\\Tests\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php b/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php index 7022964d3..0f43e5f27 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php @@ -1,11 +1,11 @@ services(); $services->defaults()->public()->autowire(); - $services->load('RectorPrefix202308\Symplify\\EasyParallel\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/ValueObject', __DIR__ . '/../src/Enum', __DIR__ . '/../src/Exception', __DIR__ . '/../src/Contract']); + $services->load('Symplify\\EasyParallel\\', __DIR__ . '/../src')->exclude([__DIR__ . '/../src/ValueObject', __DIR__ . '/../src/Enum', __DIR__ . '/../src/Exception', __DIR__ . '/../src/Contract']); }; diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php b/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php index d223512ef..b5c5c2b3e 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php @@ -1,10 +1,10 @@ typesToSkip([SerializableInterface::class]); }; diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php b/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php index b9da3da0b..ea9b3d89f 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php @@ -1,10 +1,10 @@ paths([__DIR__ . '/config', __DIR__ . '/ecs.php', __DIR__ . '/rector.php', __DIR__ . '/easy-ci.php', __DIR__ . '/src', __DIR__ . '/tests']); $ecsConfig->sets([SetList::COMMON, SetList::PSR_12]); diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php b/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php index 6de4c854c..3c054b38f 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php @@ -1,7 +1,7 @@ addLineBreaks($text, $width); $text = rtrim($text, "\n").($matches[1] ?? ''); if (!$currentLineLength && '' !== $current && "\n" !== substr($current, -1)) { @@ -282,4 +284,11 @@ private function applyCurrentStyle(string $text, string $current, int $width, in return implode("\n", $lines); } + + private function addLineBreaks(string $text, int $width): string + { + $encoding = mb_detect_encoding($text, null, true) ?: 'UTF-8'; + + return b($text)->toCodePointString($encoding)->wordwrap($width, "\n", true)->toByteString($encoding); + } } diff --git a/vendor/symfony/polyfill-ctype/LICENSE b/vendor/symfony/polyfill-ctype/LICENSE index 3f853aaf3..7536caeae 100644 --- a/vendor/symfony/polyfill-ctype/LICENSE +++ b/vendor/symfony/polyfill-ctype/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2019 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-ctype/composer.json b/vendor/symfony/polyfill-ctype/composer.json index 1b3efff57..e5c978f15 100644 --- a/vendor/symfony/polyfill-ctype/composer.json +++ b/vendor/symfony/polyfill-ctype/composer.json @@ -31,7 +31,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-intl-grapheme/LICENSE b/vendor/symfony/polyfill-intl-grapheme/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/vendor/symfony/polyfill-intl-grapheme/LICENSE +++ b/vendor/symfony/polyfill-intl-grapheme/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-intl-grapheme/composer.json b/vendor/symfony/polyfill-intl-grapheme/composer.json index fde5537fc..c00d4e9e4 100644 --- a/vendor/symfony/polyfill-intl-grapheme/composer.json +++ b/vendor/symfony/polyfill-intl-grapheme/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-intl-normalizer/LICENSE b/vendor/symfony/polyfill-intl-normalizer/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/vendor/symfony/polyfill-intl-normalizer/LICENSE +++ b/vendor/symfony/polyfill-intl-normalizer/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-intl-normalizer/composer.json b/vendor/symfony/polyfill-intl-normalizer/composer.json index 65f72d645..2c4de2c83 100644 --- a/vendor/symfony/polyfill-intl-normalizer/composer.json +++ b/vendor/symfony/polyfill-intl-normalizer/composer.json @@ -29,7 +29,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-mbstring/LICENSE b/vendor/symfony/polyfill-mbstring/LICENSE index 4cd8bdd30..6e3afce69 100644 --- a/vendor/symfony/polyfill-mbstring/LICENSE +++ b/vendor/symfony/polyfill-mbstring/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015-2019 Fabien Potencier +Copyright (c) 2015-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-mbstring/Mbstring.php b/vendor/symfony/polyfill-mbstring/Mbstring.php index bce5c4a84..2e0b96940 100644 --- a/vendor/symfony/polyfill-mbstring/Mbstring.php +++ b/vendor/symfony/polyfill-mbstring/Mbstring.php @@ -69,7 +69,7 @@ final class Mbstring { public const MB_CASE_FOLD = \PHP_INT_MAX; - private const CASE_FOLD = [ + private const SIMPLE_CASE_FOLD = [ ['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"], ['μ', 's', 'ι', 'σ', 'β', 'θ', 'φ', 'π', 'κ', 'ρ', 'ε', "\xE1\xB9\xA1", 'ι'], ]; @@ -301,7 +301,11 @@ public static function mb_convert_case($s, $mode, $encoding = null) $map = $upper; } else { if (self::MB_CASE_FOLD === $mode) { - $s = str_replace(self::CASE_FOLD[0], self::CASE_FOLD[1], $s); + static $caseFolding = null; + if (null === $caseFolding) { + $caseFolding = self::getData('caseFolding'); + } + $s = strtr($s, $caseFolding); } static $lower = null; @@ -406,6 +410,12 @@ public static function mb_encoding_aliases($encoding) public static function mb_check_encoding($var = null, $encoding = null) { + if (PHP_VERSION_ID < 70200 && \is_array($var)) { + trigger_error('mb_check_encoding() expects parameter 1 to be string, array given', \E_USER_WARNING); + + return null; + } + if (null === $encoding) { if (null === $var) { return false; @@ -413,7 +423,21 @@ public static function mb_check_encoding($var = null, $encoding = null) $encoding = self::$internalEncoding; } - return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var); + if (!\is_array($var)) { + return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var); + } + + foreach ($var as $key => $value) { + if (!self::mb_check_encoding($key, $encoding)) { + return false; + } + if (!self::mb_check_encoding($value, $encoding)) { + return false; + } + } + + return true; + } public static function mb_detect_encoding($str, $encodingList = null, $strict = false) @@ -638,8 +662,10 @@ public static function mb_substr($s, $start, $length = null, $encoding = null) public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + [$haystack, $needle] = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], [ + self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding), + self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding), + ]); return self::mb_strpos($haystack, $needle, $offset, $encoding); } @@ -674,8 +700,11 @@ public static function mb_strrichr($haystack, $needle, $part = false, $encoding public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { - $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding); - $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding); + $haystack = self::mb_convert_case($haystack, \MB_CASE_LOWER, $encoding); + $needle = self::mb_convert_case($needle, \MB_CASE_LOWER, $encoding); + + $haystack = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $haystack); + $needle = str_replace(self::SIMPLE_CASE_FOLD[0], self::SIMPLE_CASE_FOLD[1], $needle); return self::mb_strrpos($haystack, $needle, $offset, $encoding); } @@ -798,6 +827,50 @@ public static function mb_ord($s, $encoding = null) return $code; } + public static function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = \STR_PAD_RIGHT, string $encoding = null): string + { + if (!\in_array($pad_type, [\STR_PAD_RIGHT, \STR_PAD_LEFT, \STR_PAD_BOTH], true)) { + throw new \ValueError('mb_str_pad(): Argument #4 ($pad_type) must be STR_PAD_LEFT, STR_PAD_RIGHT, or STR_PAD_BOTH'); + } + + if (null === $encoding) { + $encoding = self::mb_internal_encoding(); + } + + try { + $validEncoding = @self::mb_check_encoding('', $encoding); + } catch (\ValueError $e) { + throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } + + // BC for PHP 7.3 and lower + if (!$validEncoding) { + throw new \ValueError(sprintf('mb_str_pad(): Argument #5 ($encoding) must be a valid encoding, "%s" given', $encoding)); + } + + if (self::mb_strlen($pad_string, $encoding) <= 0) { + throw new \ValueError('mb_str_pad(): Argument #3 ($pad_string) must be a non-empty string'); + } + + $paddingRequired = $length - self::mb_strlen($string, $encoding); + + if ($paddingRequired < 1) { + return $string; + } + + switch ($pad_type) { + case \STR_PAD_LEFT: + return self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding).$string; + case \STR_PAD_RIGHT: + return $string.self::mb_substr(str_repeat($pad_string, $paddingRequired), 0, $paddingRequired, $encoding); + default: + $leftPaddingLength = floor($paddingRequired / 2); + $rightPaddingLength = $paddingRequired - $leftPaddingLength; + + return self::mb_substr(str_repeat($pad_string, $leftPaddingLength), 0, $leftPaddingLength, $encoding).$string.self::mb_substr(str_repeat($pad_string, $rightPaddingLength), 0, $rightPaddingLength, $encoding); + } + } + private static function getSubpart($pos, $part, $haystack, $encoding) { if (false === $pos) { diff --git a/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php b/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php new file mode 100644 index 000000000..512bba0bf --- /dev/null +++ b/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php @@ -0,0 +1,119 @@ + 'i̇', + 'µ' => 'μ', + 'ſ' => 's', + 'ͅ' => 'ι', + 'ς' => 'σ', + 'ϐ' => 'β', + 'ϑ' => 'θ', + 'ϕ' => 'φ', + 'ϖ' => 'π', + 'ϰ' => 'κ', + 'ϱ' => 'ρ', + 'ϵ' => 'ε', + 'ẛ' => 'ṡ', + 'ι' => 'ι', + 'ß' => 'ss', + 'ʼn' => 'ʼn', + 'ǰ' => 'ǰ', + 'ΐ' => 'ΐ', + 'ΰ' => 'ΰ', + 'և' => 'եւ', + 'ẖ' => 'ẖ', + 'ẗ' => 'ẗ', + 'ẘ' => 'ẘ', + 'ẙ' => 'ẙ', + 'ẚ' => 'aʾ', + 'ẞ' => 'ss', + 'ὐ' => 'ὐ', + 'ὒ' => 'ὒ', + 'ὔ' => 'ὔ', + 'ὖ' => 'ὖ', + 'ᾀ' => 'ἀι', + 'ᾁ' => 'ἁι', + 'ᾂ' => 'ἂι', + 'ᾃ' => 'ἃι', + 'ᾄ' => 'ἄι', + 'ᾅ' => 'ἅι', + 'ᾆ' => 'ἆι', + 'ᾇ' => 'ἇι', + 'ᾈ' => 'ἀι', + 'ᾉ' => 'ἁι', + 'ᾊ' => 'ἂι', + 'ᾋ' => 'ἃι', + 'ᾌ' => 'ἄι', + 'ᾍ' => 'ἅι', + 'ᾎ' => 'ἆι', + 'ᾏ' => 'ἇι', + 'ᾐ' => 'ἠι', + 'ᾑ' => 'ἡι', + 'ᾒ' => 'ἢι', + 'ᾓ' => 'ἣι', + 'ᾔ' => 'ἤι', + 'ᾕ' => 'ἥι', + 'ᾖ' => 'ἦι', + 'ᾗ' => 'ἧι', + 'ᾘ' => 'ἠι', + 'ᾙ' => 'ἡι', + 'ᾚ' => 'ἢι', + 'ᾛ' => 'ἣι', + 'ᾜ' => 'ἤι', + 'ᾝ' => 'ἥι', + 'ᾞ' => 'ἦι', + 'ᾟ' => 'ἧι', + 'ᾠ' => 'ὠι', + 'ᾡ' => 'ὡι', + 'ᾢ' => 'ὢι', + 'ᾣ' => 'ὣι', + 'ᾤ' => 'ὤι', + 'ᾥ' => 'ὥι', + 'ᾦ' => 'ὦι', + 'ᾧ' => 'ὧι', + 'ᾨ' => 'ὠι', + 'ᾩ' => 'ὡι', + 'ᾪ' => 'ὢι', + 'ᾫ' => 'ὣι', + 'ᾬ' => 'ὤι', + 'ᾭ' => 'ὥι', + 'ᾮ' => 'ὦι', + 'ᾯ' => 'ὧι', + 'ᾲ' => 'ὰι', + 'ᾳ' => 'αι', + 'ᾴ' => 'άι', + 'ᾶ' => 'ᾶ', + 'ᾷ' => 'ᾶι', + 'ᾼ' => 'αι', + 'ῂ' => 'ὴι', + 'ῃ' => 'ηι', + 'ῄ' => 'ήι', + 'ῆ' => 'ῆ', + 'ῇ' => 'ῆι', + 'ῌ' => 'ηι', + 'ῒ' => 'ῒ', + 'ῖ' => 'ῖ', + 'ῗ' => 'ῗ', + 'ῢ' => 'ῢ', + 'ῤ' => 'ῤ', + 'ῦ' => 'ῦ', + 'ῧ' => 'ῧ', + 'ῲ' => 'ὼι', + 'ῳ' => 'ωι', + 'ῴ' => 'ώι', + 'ῶ' => 'ῶ', + 'ῷ' => 'ῶι', + 'ῼ' => 'ωι', + 'ff' => 'ff', + 'fi' => 'fi', + 'fl' => 'fl', + 'ffi' => 'ffi', + 'ffl' => 'ffl', + 'ſt' => 'st', + 'st' => 'st', + 'ﬓ' => 'մն', + 'ﬔ' => 'մե', + 'ﬕ' => 'մի', + 'ﬖ' => 'վն', + 'ﬗ' => 'մխ', +]; diff --git a/vendor/symfony/polyfill-mbstring/bootstrap.php b/vendor/symfony/polyfill-mbstring/bootstrap.php index 1fedd1f7c..ecf1a0352 100644 --- a/vendor/symfony/polyfill-mbstring/bootstrap.php +++ b/vendor/symfony/polyfill-mbstring/bootstrap.php @@ -132,6 +132,10 @@ function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/symfony/polyfill-mbstring/bootstrap80.php b/vendor/symfony/polyfill-mbstring/bootstrap80.php index 82f5ac4d0..2f9fb5b42 100644 --- a/vendor/symfony/polyfill-mbstring/bootstrap80.php +++ b/vendor/symfony/polyfill-mbstring/bootstrap80.php @@ -128,6 +128,10 @@ function mb_scrub(?string $string, ?string $encoding = null): string { $encoding function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); } } +if (!function_exists('mb_str_pad')) { + function mb_str_pad(string $string, int $length, string $pad_string = ' ', int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string { return p\Mbstring::mb_str_pad($string, $length, $pad_string, $pad_type, $encoding); } +} + if (extension_loaded('mbstring')) { return; } diff --git a/vendor/symfony/polyfill-mbstring/composer.json b/vendor/symfony/polyfill-mbstring/composer.json index 44895536b..943e50296 100644 --- a/vendor/symfony/polyfill-mbstring/composer.json +++ b/vendor/symfony/polyfill-mbstring/composer.json @@ -31,7 +31,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-php73/LICENSE b/vendor/symfony/polyfill-php73/LICENSE index 3f853aaf3..7536caeae 100644 --- a/vendor/symfony/polyfill-php73/LICENSE +++ b/vendor/symfony/polyfill-php73/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2019 Fabien Potencier +Copyright (c) 2018-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-php73/composer.json b/vendor/symfony/polyfill-php73/composer.json index b5c58ec19..48295ef97 100644 --- a/vendor/symfony/polyfill-php73/composer.json +++ b/vendor/symfony/polyfill-php73/composer.json @@ -26,7 +26,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-php80/LICENSE b/vendor/symfony/polyfill-php80/LICENSE index 5593b1d84..0ed3a2465 100644 --- a/vendor/symfony/polyfill-php80/LICENSE +++ b/vendor/symfony/polyfill-php80/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2020 Fabien Potencier +Copyright (c) 2020-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-php80/composer.json b/vendor/symfony/polyfill-php80/composer.json index bd9a3262a..f1801f403 100644 --- a/vendor/symfony/polyfill-php80/composer.json +++ b/vendor/symfony/polyfill-php80/composer.json @@ -30,7 +30,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/polyfill-php81/LICENSE b/vendor/symfony/polyfill-php81/LICENSE index efb17f98e..99c6bdf35 100644 --- a/vendor/symfony/polyfill-php81/LICENSE +++ b/vendor/symfony/polyfill-php81/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2021 Fabien Potencier +Copyright (c) 2021-present Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/symfony/polyfill-php81/README.md b/vendor/symfony/polyfill-php81/README.md index 7d8dd1907..c07ef7820 100644 --- a/vendor/symfony/polyfill-php81/README.md +++ b/vendor/symfony/polyfill-php81/README.md @@ -7,6 +7,7 @@ This component provides features added to PHP 8.1 core: - [`enum_exists`](https://php.net/enum-exists) - [`MYSQLI_REFRESH_REPLICA`](https://php.net/mysqli.constants#constantmysqli-refresh-replica) constant - [`ReturnTypeWillChange`](https://wiki.php.net/rfc/internal_method_return_types) +- [`CURLStringFile`](https://php.net/CURLStringFile) (but only if PHP >= 7.4 is used) More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). diff --git a/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php b/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php new file mode 100644 index 000000000..eb5952ee3 --- /dev/null +++ b/vendor/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (\PHP_VERSION_ID >= 70400 && extension_loaded('curl')) { + /** + * @property string $data + */ + class CURLStringFile extends CURLFile + { + private $data; + + public function __construct(string $data, string $postname, string $mime = 'application/octet-stream') + { + $this->data = $data; + parent::__construct('data://application/octet-stream;base64,'.base64_encode($data), $mime, $postname); + } + + public function __set(string $name, $value): void + { + if ('data' !== $name) { + $this->$name = $value; + + return; + } + + if (is_object($value) ? !method_exists($value, '__toString') : !is_scalar($value)) { + throw new \TypeError('Cannot assign '.gettype($value).' to property CURLStringFile::$data of type string'); + } + + $this->name = 'data://application/octet-stream;base64,'.base64_encode($value); + } + + public function __isset(string $name): bool + { + return isset($this->$name); + } + + public function &__get(string $name) + { + return $this->$name; + } + } +} diff --git a/vendor/symfony/polyfill-php81/composer.json b/vendor/symfony/polyfill-php81/composer.json index 149b59821..e02d673d4 100644 --- a/vendor/symfony/polyfill-php81/composer.json +++ b/vendor/symfony/polyfill-php81/composer.json @@ -26,7 +26,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", diff --git a/vendor/symfony/process/Process.php b/vendor/symfony/process/Process.php index 9b19475ac..30ebeb6b5 100644 --- a/vendor/symfony/process/Process.php +++ b/vendor/symfony/process/Process.php @@ -331,7 +331,7 @@ public function start(callable $callback = null, array $env = []) // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input $commandline = '{ ('.$commandline.') <&3 3<&- 3>/dev/null & } 3<&0;'; - $commandline .= 'pid=$!; echo $pid >&3; wait $pid; code=$?; echo $code >&3; exit $code'; + $commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'; // Workaround for the bug, when PTS functionality is enabled. // @see : https://bugs.php.net/69442