Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
PK!``collision/phpstan.neon.distnu[includes: - ./vendor/nunomaduro/larastan/extension.neon parameters: level: max paths: - src reportUnmatchedIgnoredErrors: false ignoreErrors: - '#Parameter \#1 \$input of function str_pad expects string, int given.#' - '#Cannot call method addTheme\(\) on array|JakubOnderka\\PhpConsoleColor\\ConsoleColor#' PK!Qe% collision/README.mdnu[

Collision logo
Collision code example

Build Status Quality Score Coverage Total Downloads Latest Stable Version License

## About Collision Collision was created by, and is maintained by [Nuno Maduro](https://github.com/nunomaduro), and is an error handler framework for console/command-line PHP applications. - Build on top of [Whoops](https://github.com/filp/whoops). - Supports [Laravel](https://github.com/laravel/laravel) Artisan & [PHPUnit](https://github.com/sebastianbergmann/phpunit). - Built with [PHP 7](https://php.net) using modern coding standards. ## Installation & Usage > **Requires [PHP 7.1+](https://php.net/releases/)** Require Collision using [Composer](https://getcomposer.org): ```bash composer require nunomaduro/collision --dev ``` If you are not using Laravel, you need to register the handler in your code: ```php (new \NunoMaduro\Collision\Provider)->register(); ``` ## Lumen adapter Configure the Collision service provider: ```php // bootstrap/app.php: $app->register(\NunoMaduro\Collision\Adapters\Laravel\CollisionServiceProvider::class); ``` ## Phpunit adapter Phpunit must be 7.0 or higher. Add the following configuration to your `phpunit.xml`: ```xml ``` ## Contributing Thank you for considering to contribute to Collision. All the contribution guidelines are mentioned [here](CONTRIBUTING.md). You can have a look at the [CHANGELOG](CHANGELOG.md) for constant updates & detailed information about the changes. You can also follow the twitter account for latest announcements or just come say hi!: [@enunomaduro](https://twitter.com/enunomaduro) ## Support the development **Do you like this project? Support it by donating** - PayPal: [Donate](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L) - Patreon: [Donate](https://www.patreon.com/nunomaduro) ## License Collision is an open-sourced software licensed under the [MIT license](LICENSE.md). Logo by [Caneco](https://twitter.com/caneco). PK!Ucollision/phpunit.xml.distnu[ ./tests ./src PK!zricollision/composer.jsonnu[{ "name": "nunomaduro/collision", "description": "Cli error handling for console/command-line PHP applications.", "keywords": ["console", "command-line", "php", "cli", "error", "handling", "laravel-zero", "laravel", "artisan", "symfony"], "license": "MIT", "support": { "issues": "https://github.com/nunomaduro/collision/issues", "source": "https://github.com/nunomaduro/collision" }, "authors": [ { "name": "Nuno Maduro", "email": "enunomaduro@gmail.com" } ], "require": { "php": "^7.1", "filp/whoops": "^2.1.4", "symfony/console": "~2.8|~3.3|~4.0", "jakub-onderka/php-console-highlighter": "0.3.*|0.4.*" }, "require-dev": { "laravel/framework": "5.8.*", "nunomaduro/larastan": "^0.3.0", "phpstan/phpstan": "^0.11", "phpunit/phpunit": "~8.0" }, "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }, "minimum-stability": "dev", "prefer-stable": true, "autoload": { "psr-4": { "NunoMaduro\\Collision\\": "src/" } }, "config": { "preferred-install": "dist", "sort-packages": true }, "extra": { "laravel": { "providers": [ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" ] } } } PK!&cc,collision/src/Adapters/Laravel/Inspector.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Adapters\Laravel; use Whoops\Exception\Inspector as BaseInspector; /** * This is an Collision Laravel Adapter Inspector implementation. * * @author Nuno Maduro */ class Inspector extends BaseInspector { /** * {@inheritdoc} */ protected function getTrace($e) { return $e->getTrace(); } } PK!iݼ;collision/src/Adapters/Laravel/CollisionServiceProvider.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Adapters\Laravel; use NunoMaduro\Collision\Provider; use Illuminate\Support\ServiceProvider; use NunoMaduro\Collision\Adapters\Phpunit\Listener; use NunoMaduro\Collision\Contracts\Provider as ProviderContract; use Illuminate\Contracts\Debug\ExceptionHandler as ExceptionHandlerContract; use NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener as ListenerContract; /** * This is an Collision Laravel Adapter Service Provider implementation. * * Registers the Error Handler on Laravel. * * @author Nuno Maduro */ class CollisionServiceProvider extends ServiceProvider { /** * {@inheritdoc} */ protected $defer = true; /** * {@inheritdoc} */ public function register() { if ($this->app->runningInConsole() && ! $this->app->runningUnitTests()) { $this->app->singleton(ListenerContract::class, Listener::class); $this->app->bind(ProviderContract::class, Provider::class); $appExceptionHandler = $this->app->make(ExceptionHandlerContract::class); $this->app->singleton( ExceptionHandlerContract::class, function ($app) use ($appExceptionHandler) { return new ExceptionHandler($app, $appExceptionHandler); } ); } } /** * {@inheritdoc} */ public function provides() { return [ProviderContract::class]; } } PK!i i 3collision/src/Adapters/Laravel/ExceptionHandler.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Adapters\Laravel; use Exception; use Illuminate\Contracts\Container\Container; use NunoMaduro\Collision\Contracts\Provider as ProviderContract; use Illuminate\Contracts\Debug\ExceptionHandler as ExceptionHandlerContract; use Symfony\Component\Console\Exception\ExceptionInterface as SymfonyConsoleExceptionInterface; /** * This is an Collision Laravel Adapter ExceptionHandler implementation. * * Registers the Error Handler on Laravel. * * @author Nuno Maduro */ class ExceptionHandler implements ExceptionHandlerContract { /** * Holds an instance of the application exception handler. * * @var \Illuminate\Contracts\Debug\ExceptionHandler */ protected $appExceptionHandler; /** * Holds an instance of the container. * * @var \Illuminate\Contracts\Container\Container */ protected $container; /** * Creates a new instance of the ExceptionHandler. * * @param \Illuminate\Contracts\Container\Container $container * @param \Illuminate\Contracts\Debug\ExceptionHandler $appExceptionHandler */ public function __construct(Container $container, ExceptionHandlerContract $appExceptionHandler) { $this->container = $container; $this->appExceptionHandler = $appExceptionHandler; } /** * {@inheritdoc} */ public function report(Exception $e) { $this->appExceptionHandler->report($e); } /** * {@inheritdoc} */ public function render($request, Exception $e) { return $this->appExceptionHandler->render($request, $e); } /** * {@inheritdoc} */ public function renderForConsole($output, Exception $e) { if ($e instanceof SymfonyConsoleExceptionInterface) { $this->appExceptionHandler->renderForConsole($output, $e); } else { $handler = $this->container->make(ProviderContract::class) ->register() ->getHandler() ->setOutput($output); $handler->setInspector((new Inspector($e))); $handler->handle(); } } /** * Determine if the exception should be reported. * * @param \Exception $e * @return bool */ public function shouldReport(Exception $e) { return $this->appExceptionHandler->shouldReport($e); } } PK!h*Kss+collision/src/Adapters/Phpunit/Listener.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Adapters\Phpunit; use ReflectionObject; use PHPUnit\Framework\Test; use PHPUnit\Framework\Warning; use Whoops\Exception\Inspector; use NunoMaduro\Collision\Writer; use PHPUnit\Framework\TestSuite; use Symfony\Component\Console\Application; use PHPUnit\Framework\AssertionFailedError; use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Output\ConsoleOutput; use NunoMaduro\Collision\Contracts\Writer as WriterContract; use NunoMaduro\Collision\Contracts\Adapters\Phpunit\Listener as ListenerContract; if (class_exists(\PHPUnit\Runner\Version::class) && intval(substr(\PHPUnit\Runner\Version::id(), 0, 1)) >= 7) { /** * This is an Collision Phpunit Adapter implementation. * * @author Nuno Maduro */ class Listener implements ListenerContract { /** * Holds an instance of the writer. * * @var \NunoMaduro\Collision\Contracts\Writer */ protected $writer; /** * Holds the exception found, if any. * * @var \Throwable|null */ protected $exceptionFound; /** * Creates a new instance of the class. * * @param \NunoMaduro\Collision\Contracts\Writer|null $writer */ public function __construct(WriterContract $writer = null) { $this->writer = $writer ?: $this->buildWriter(); } /** * {@inheritdoc} */ public function render(\Throwable $t) { $inspector = new Inspector($t); $this->writer->write($inspector); } /** * {@inheritdoc} */ public function addError(Test $test, \Throwable $t, float $time): void { if ($this->exceptionFound === null) { $this->exceptionFound = $t; } } /** * {@inheritdoc} */ public function addWarning(Test $test, Warning $t, float $time): void { } /** * {@inheritdoc} */ public function addFailure(Test $test, AssertionFailedError $t, float $time): void { $this->writer->ignoreFilesIn(['/vendor/']) ->showTrace(false); if ($this->exceptionFound === null) { $this->exceptionFound = $t; } } /** * {@inheritdoc} */ public function addIncompleteTest(Test $test, \Throwable $t, float $time): void { } /** * {@inheritdoc} */ public function addRiskyTest(Test $test, \Throwable $t, float $time): void { } /** * {@inheritdoc} */ public function addSkippedTest(Test $test, \Throwable $t, float $time): void { } /** * {@inheritdoc} */ public function startTestSuite(TestSuite $suite): void { } /** * {@inheritdoc} */ public function endTestSuite(TestSuite $suite): void { } /** * {@inheritdoc} */ public function startTest(Test $test): void { } /** * {@inheritdoc} */ public function endTest(Test $test, float $time): void { } /** * {@inheritdoc} */ public function __destruct() { if ($this->exceptionFound !== null) { $this->render($this->exceptionFound); } } /** * Builds an Writer. * * @return \NunoMaduro\Collision\Contracts\Writer */ protected function buildWriter(): WriterContract { $writer = new Writer; $application = new Application(); $reflector = new ReflectionObject($application); $method = $reflector->getMethod('configureIO'); $method->setAccessible(true); $method->invoke($application, new ArgvInput, $output = new ConsoleOutput); return $writer->setOutput($output); } } } PK!=collision/src/Highlighter.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision; use JakubOnderka\PhpConsoleColor\ConsoleColor; use JakubOnderka\PhpConsoleHighlighter\Highlighter as BaseHighlighter; use NunoMaduro\Collision\Contracts\Highlighter as HighlighterContract; /** * This is an Collision Highlighter implementation. * * @author Nuno Maduro */ class Highlighter extends BaseHighlighter implements HighlighterContract { /** * Holds the theme. * * @var array */ protected $theme = [ BaseHighlighter::TOKEN_STRING => ['light_gray'], BaseHighlighter::TOKEN_COMMENT => ['dark_gray', 'italic'], BaseHighlighter::TOKEN_KEYWORD => ['yellow'], BaseHighlighter::TOKEN_DEFAULT => ['default', 'bold'], BaseHighlighter::TOKEN_HTML => ['blue', 'bold'], BaseHighlighter::ACTUAL_LINE_MARK => ['bg_red', 'bold'], BaseHighlighter::LINE_NUMBER => ['dark_gray', 'italic'], ]; /** * Creates an instance of the Highlighter. * * @param \JakubOnderka\PhpConsoleColor\ConsoleColor|null $color */ public function __construct(ConsoleColor $color = null) { parent::__construct($color = $color ?: new ConsoleColor); foreach ($this->theme as $name => $styles) { $color->addTheme((string) $name, $styles); } } /** * {@inheritdoc} */ public function highlight(string $content, int $line): string { return rtrim($this->getCodeSnippet($content, $line, 4, 4)); } } PK!mcollision/src/Provider.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision; use Whoops\Run; use Whoops\RunInterface; use NunoMaduro\Collision\Contracts\Handler as HandlerContract; use NunoMaduro\Collision\Contracts\Provider as ProviderContract; /** * This is an Collision Provider implementation. * * @author Nuno Maduro */ class Provider implements ProviderContract { /** * Holds an instance of the Run. * * @var \Whoops\RunInterface */ protected $run; /** * Holds an instance of the handler. * * @var \NunoMaduro\Collision\Contracts\Handler */ protected $handler; /** * Creates a new instance of the Provider. * * @param \Whoops\RunInterface|null $run * @param \NunoMaduro\Collision\Contracts\Handler|null $handler */ public function __construct(RunInterface $run = null, HandlerContract $handler = null) { $this->run = $run ?: new Run; $this->handler = $handler ?: new Handler; } /** * {@inheritdoc} */ public function register(): ProviderContract { $this->run->pushHandler($this->handler) ->register(); return $this; } /** * {@inheritdoc} */ public function getHandler(): HandlerContract { return $this->handler; } } PK!5collision/src/Contracts/Adapters/Phpunit/Listener.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Contracts\Adapters\Phpunit; use PHPUnit\Framework\TestListener; /** * This is an Collision Phpunit Adapter contract. * * @author Nuno Maduro */ interface Listener extends TestListener { /** * Renders the provided error * on the console. * * @param \Throwable $t * * @return void */ public function render(\Throwable $t); } PK!\,jj'collision/src/Contracts/Highlighter.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Contracts; /** * This is the Collision Highlighter contract. * * @author Nuno Maduro */ interface Highlighter { /** * Highlights the provided content. * * @param string $content * @param int $line * * @return string */ public function highlight(string $content, int $line): string; } PK!C$collision/src/Contracts/Provider.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Contracts; /** * This is an Collision Provider contract. * * @author Nuno Maduro */ interface Provider { /** * Registers the current Handler as Error Handler. * * @return \NunoMaduro\Collision\Contracts\Provider */ public function register(): Provider; /** * Returns the handler. * * @return \NunoMaduro\Collision\Contracts\Handler */ public function getHandler(): Handler; } PK!4z-collision/src/Contracts/ArgumentFormatter.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Contracts; /** * This is an Collision Argument Formatter contract. * * @author Nuno Maduro */ interface ArgumentFormatter { /** * Formats the provided array of arguments into * an understandable description. * * @param array $arguments * @param bool $recursive * * @return string */ public function format(array $arguments, bool $recursive = true): string; } PK!4#collision/src/Contracts/Handler.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Contracts; use Whoops\Handler\HandlerInterface; use Symfony\Component\Console\Output\OutputInterface; /** * This is an Collision Handler contract. * * @author Nuno Maduro */ interface Handler extends HandlerInterface { /** * Sets the output. * * @param \Symfony\Component\Console\Output\OutputInterface $output * * @return \NunoMaduro\Collision\Contracts\Handler */ public function setOutput(OutputInterface $output): Handler; /** * Returns the writer. * * @return \NunoMaduro\Collision\Contracts\Writer */ public function getWriter(): Writer; } PK!1H''"collision/src/Contracts/Writer.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision\Contracts; use Whoops\Exception\Inspector; use Symfony\Component\Console\Output\OutputInterface; /** * This is the Collision Writer contract. * * @author Nuno Maduro */ interface Writer { /** * Ignores traces where the file string matches one * of the provided regex expressions. * * @param string[] $ignore The regex expressions. * * @return \NunoMaduro\Collision\Contracts\Writer */ public function ignoreFilesIn(array $ignore): Writer; /** * Declares whether or not the Writer should show the trace. * * @param bool $show * * @return \NunoMaduro\Collision\Contracts\Writer */ public function showTrace(bool $show): Writer; /** * Declares whether or not the Writer should show the editor. * * @param bool $show * * @return \NunoMaduro\Collision\Contracts\Writer */ public function showEditor(bool $show): Writer; /** * Writes the details of the exception on the console. * * @param \Whoops\Exception\Inspector $inspector */ public function write(Inspector $inspector): void; /** * Sets the output. * * @param \Symfony\Component\Console\Output\OutputInterface $output * * @return \NunoMaduro\Collision\Contracts\Writer */ public function setOutput(OutputInterface $output): Writer; /** * Gets the output. * * @return \Symfony\Component\Console\Output\OutputInterface */ public function getOutput(): OutputInterface; } PK!v(`#collision/src/ArgumentFormatter.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision; use NunoMaduro\Collision\Contracts\ArgumentFormatter as ArgumentFormatterContract; /** * This is an Collision Argument Formatter implementation. * * @author Nuno Maduro */ class ArgumentFormatter implements ArgumentFormatterContract { /** * {@inheritdoc} */ public function format(array $arguments, bool $recursive = true): string { $result = []; foreach ($arguments as $argument) { switch (true) { case is_string($argument): $result[] = '"'.$argument.'"'; break; case is_array($argument): $associative = array_keys($argument) !== range(0, count($argument) - 1); if ($recursive && $associative && count($argument) <= 5) { $result[] = '['.$this->format($argument, false).']'; } break; case is_object($argument): $class = get_class($argument); $result[] = "Object($class)"; break; } } return implode(', ', $result); } } PK!Nfcollision/src/Handler.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision; use Whoops\Handler\Handler as AbstractHandler; use Symfony\Component\Console\Output\OutputInterface; use NunoMaduro\Collision\Contracts\Writer as WriterContract; use NunoMaduro\Collision\Contracts\Handler as HandlerContract; /** * This is an Collision Handler implementation. * * @author Nuno Maduro */ class Handler extends AbstractHandler implements HandlerContract { /** * Holds an instance of the writer. * * @var \NunoMaduro\Collision\Contracts\Writer */ protected $writer; /** * Creates an instance of the Handler. * * @param \NunoMaduro\Collision\Contracts\Writer|null $writer */ public function __construct(WriterContract $writer = null) { $this->writer = $writer ?: new Writer; } /** * {@inheritdoc} */ public function handle() { $this->writer->write($this->getInspector()); return static::QUIT; } /** * {@inheritdoc} */ public function setOutput(OutputInterface $output): HandlerContract { $this->writer->setOutput($output); return $this; } /** * {@inheritdoc} */ public function getWriter(): WriterContract { return $this->writer; } } PK!wcollision/src/Writer.phpnu[ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace NunoMaduro\Collision; use Whoops\Exception\Frame; use Whoops\Exception\Inspector; use Symfony\Component\Console\Output\ConsoleOutput; use Symfony\Component\Console\Output\OutputInterface; use NunoMaduro\Collision\Contracts\Writer as WriterContract; use NunoMaduro\Collision\Contracts\Highlighter as HighlighterContract; use NunoMaduro\Collision\Contracts\ArgumentFormatter as ArgumentFormatterContract; /** * This is an Collision Writer implementation. * * @author Nuno Maduro */ class Writer implements WriterContract { /** * The number of frames if no verbosity is specified. */ const VERBOSITY_NORMAL_FRAMES = 1; /** * Holds an instance of the Output. * * @var \Symfony\Component\Console\Output\OutputInterface */ protected $output; /** * Holds an instance of the Argument Formatter. * * @var \NunoMaduro\Collision\Contracts\ArgumentFormatter */ protected $argumentFormatter; /** * Holds an instance of the Highlighter. * * @var \NunoMaduro\Collision\Contracts\Highlighter */ protected $highlighter; /** * Ignores traces where the file string matches one * of the provided regex expressions. * * @var string[] */ protected $ignore = []; /** * Declares whether or not the trace should appear. * * @var bool */ protected $showTrace = true; /** * Declares whether or not the editor should appear. * * @var bool */ protected $showEditor = true; /** * Creates an instance of the writer. * * @param \Symfony\Component\Console\Output\OutputInterface|null $output * @param \NunoMaduro\Collision\Contracts\ArgumentFormatter|null $argumentFormatter * @param \NunoMaduro\Collision\Contracts\Highlighter|null $highlighter */ public function __construct( OutputInterface $output = null, ArgumentFormatterContract $argumentFormatter = null, HighlighterContract $highlighter = null ) { $this->output = $output ?: new ConsoleOutput; $this->argumentFormatter = $argumentFormatter ?: new ArgumentFormatter; $this->highlighter = $highlighter ?: new Highlighter; } /** * {@inheritdoc} */ public function write(Inspector $inspector): void { $this->renderTitle($inspector); $frames = $this->getFrames($inspector); $editorFrame = array_shift($frames); if ($this->showEditor && $editorFrame !== null) { $this->renderEditor($editorFrame); } if ($this->showTrace && ! empty($frames)) { $this->renderTrace($frames); } else { $this->output->writeln(''); } } /** * {@inheritdoc} */ public function ignoreFilesIn(array $ignore): WriterContract { $this->ignore = $ignore; return $this; } /** * {@inheritdoc} */ public function showTrace(bool $show): WriterContract { $this->showTrace = $show; return $this; } /** * {@inheritdoc} */ public function showEditor(bool $show): WriterContract { $this->showEditor = $show; return $this; } /** * {@inheritdoc} */ public function setOutput(OutputInterface $output): WriterContract { $this->output = $output; return $this; } /** * {@inheritdoc} */ public function getOutput(): OutputInterface { return $this->output; } /** * Returns pertinent frames. * * @param \Whoops\Exception\Inspector $inspector * * @return array */ protected function getFrames(Inspector $inspector): array { return $inspector->getFrames() ->filter( function ($frame) { foreach ($this->ignore as $ignore) { if (preg_match($ignore, $frame->getFile())) { return false; } } return true; } ) ->getArray(); } /** * Renders the title of the exception. * * @param \Whoops\Exception\Inspector $inspector * * @return \NunoMaduro\Collision\Contracts\Writer */ protected function renderTitle(Inspector $inspector): WriterContract { $exception = $inspector->getException(); $message = $exception->getMessage(); $class = $inspector->getExceptionName(); $this->render(" $class : $message"); return $this; } /** * Renders the editor containing the code that was the * origin of the exception. * * @param \Whoops\Exception\Frame $frame * * @return \NunoMaduro\Collision\Contracts\Writer */ protected function renderEditor(Frame $frame): WriterContract { $this->render('at '.$frame->getFile().''.':'.$frame->getLine().''); $content = $this->highlighter->highlight((string) $frame->getFileContents(), (int) $frame->getLine()); $this->output->writeln($content); return $this; } /** * Renders the trace of the exception. * * @param array $frames * * @return \NunoMaduro\Collision\Contracts\Writer */ protected function renderTrace(array $frames): WriterContract { $this->render('Exception trace:'); foreach ($frames as $i => $frame) { if ($i > static::VERBOSITY_NORMAL_FRAMES && $this->output->getVerbosity( ) < OutputInterface::VERBOSITY_VERBOSE) { $this->render('Please use the argument -v to see more details.'); break; } $file = $frame->getFile(); $line = $frame->getLine(); $class = empty($frame->getClass()) ? '' : $frame->getClass().'::'; $function = $frame->getFunction(); $args = $this->argumentFormatter->format($frame->getArgs()); $pos = str_pad((int) $i + 1, 4, ' '); $this->render("$pos$class$function($args)"); $this->render(" $file:$line", false); } return $this; } /** * Renders an message into the console. * * @param string $message * @param bool $break * * @return $this */ protected function render(string $message, bool $break = true): WriterContract { if ($break) { $this->output->writeln(''); } $this->output->writeln(" $message"); return $this; } } PK!E_> IIcollision/LICENSE.mdnu[The MIT License (MIT) Copyright (c) Nuno Maduro 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. PK!gVFVF6collision/dda66ef7d7589cf61f6955bc901312cd0ca7d969.zipnuIwPK flgN nunomaduro-collision-af42d33/UT\PK flgNE_> I' nunomaduro-collision-af42d33/LICENSE.mdUT\]RK0W 9I凜* Y4GVb ܰ3N f^cF3I m ;iDJ̴W06M ]߻YkZr2Tx{t%W}|W=cakGFw;uW7-|\#N@Ul+R2 x*Իb;-?eD ~JTɬLt68%>iJ2|#SJPJxr^E%>A\[,"^#+@bՎ)Q1GA\G%_vvELn*TܩTrEe@Ũ;A)Z9و\+ #tуD\ɊUE1Z'N BO)byO[PK flgNQe%  & nunomaduro-collision-af42d33/README.mdUT\Wo6_CR%Rhi֤+ hhPFRqOGJiC$ǻwwp'ڍ̲eZH_6 O2hS&F)љlD2e ֺLz% Zܗ};aUV :B%zeAmҊZVHO u*w4>ǍT9yZ#lAnغ?7V|-\ eNKHkƯX!nmZP8Ndygjyx#ʰ1tT1=~f'pOϣ;=vZ}4+LX*!P²J,p`z3:}vJ@$Q;՛̂fKcjB:[agM]ͦ GT{zw4WZ3%sa DhGeBm@-qRTaH8sf=w!P*&^9(IhwV|xȬP9o$ݍ5:"6w8I.//orm(N/4ĂϮ `7Z})Vđ:ظZ.bI-1/VA]Zs-73łNJhb9qA/d\pN "F?QYxuVgk 86mGv:u]룳[}<9w/Ph7x,IhbPֽe Q o<"Iȏ~bԄH"<M<}2}7 (zD4е4Up'54,b;dʙpQc`.$!@QA݂ߌiX;qm( c)ݣ2upE␒We0!VwJh &ψN)Srbb\52BRgK1K#^c)\}WP&z|o^0V}xjB<7cL-ȡU8 /Sn`͞;ɓ' ӂQϠ/PK flgNzriJ* nunomaduro-collision-af42d33/composer.jsonUT\Qo0Q+@aSl:!oH&9c{g;$im*;|wy_x %+iVh>9 qDwRD1*ʥPhMVVK${B?#n5[?i- ~xhm R%&K|2[~ ˕}j?ʆzhleFG`Fam4.3&M7ՊlV:bxѰ C#ǚWy!t EA\BzdxLj_aT G%5}!{6n_s-I MٴSsҦtfi&ӔZ%Z[RʤK )$;@/1bvu)֭fOru!IHeIzwlF-Vc|u^ؑј{$z \ PK flgNUq- nunomaduro-collision-af42d33/phpunit.xml.distUT\n0 PK flgN! nunomaduro-collision-af42d33/src/UT\PK flgN* nunomaduro-collision-af42d33/src/Adapters/UT\PK flgN2 nunomaduro-collision-af42d33/src/Adapters/Laravel/UT\PK flgNiݼeN nunomaduro-collision-af42d33/src/Adapters/Laravel/CollisionServiceProvider.phpUT\TO0&!T~XUZӲnrm9 9MS$wwϽ E <’ zjf%*!J$,;/`7 .QWY}ܬJy ߔW ,)UPZ:M.)C2ʭ9>Uf|RqU\<1 9wwnɐN1(Ed%Z(doU/9Mg̰5qy{{oԚhd*/dӹZѬ.c %wA[%a;!@}hޛ=qtNS[~Ke~L.z PsB]KHUi\Wc+L!5嵬 yWc>E`ֶ"{S| s |EUmpY.W٦N6a|8ԬS(h2 S$N存| I,gLkr54" '8y>u6NW!^-A:%/.^w(ق<|,<]"Ud0>c@B:۰^'._|~0輑 ߳H!6+vaۑ=cq}&PK flgN i F nunomaduro-collision-af42d33/src/Adapters/Laravel/ExceptionHandler.phpUT\UO0_q}H+X'D%&c%&ƚcg(C}g'i4EªT;>}Ȋ(Fw ,@i j Jng$dN*R\SUθ8KT~UIwfK'$x|Y`2ɥ9d 9>q71 @ʍ|,mF7($K)z(,GS0iRVXf~4["G,

=pKp8m\n zrZYSa*=ۯy nunomaduro-collision-af42d33/src/Adapters/Phpunit/Listener.phpUT\WmOF_1FN"E;[]kw\D]$aȩF3ϼϾ{'`06\'\CSzL14KK$ }\ XT( P[^fn(ÊΤ EB(Rܠ()S-~]. A$sT>yCl,t1gpxo} ~.Bcb{PaJIFu>ݭxkG0 FiXjl:k;9y~yFN.a2 Ms:ќ)65qΕ4PT*oFh!aBD# 3|uMS[PY{Lsę=ԉBf _v9\lC9е_L^PmHIkT8+oD665zkZ4*e{~k#.$HiPD$}=:0ՌTk|v[IN갨ҞmT23`.yԣzpʵ5Ż}E Puؖ o˜l-0=]A3!0=[9T?ΡNR?uDPdК_ n#yZ285+jxA5kyU[Qap{a5f5zrjg7<=*4/36jML{Q_YMk4tdGVŊnu4T=fo]^9Cш9{[4u|Ftr8/74aZs^Qr1w4*o#Jw-i]Urn$*!0PK flgNv(`66 nunomaduro-collision-af42d33/src/ArgumentFormatter.phpUT\To0~_qCU!SJa{I:vEU $Z)ߝ3T!~B&$|W8\k)Z1$D Xw^iFSo4̸UB.h\!RՓyဪ`\YDS6%u2JrG1뛻7V `K-:#6qDJy`A[q= id]|2y;3:/A+nRI[.jĔ\|/PK flgN\,Cj: nunomaduro-collision-af42d33/src/Contracts/Highlighter.phpUT\QMo0 W*DmHi6.qкMԉ9iQ4{)'D]U*xW:@ N5Fmi63%*-5Ǻ6#d 4}zݫZ0A F,2gPrX^7۶poQG!zO[88þMAVj1; 9`pǥ-e  K flgNCQ7 nunomaduro-collision-af42d33/src/Contracts/Provider.phpUT\OK1slthTz%ݝ2ݝnۃPBL,;)Uu2wB 6I9m^t(~jZmݼ X 9(CI1 Wl>E:Z}z}z26#T62}bh!Q"Ta-i9lJVI9K i1BS+؈ɿER(<+՗z3xF!>2gxМ HԽ"Dv C_]˻s2?Ј2ޞ%_Yq5M]jDz5.[PK flgN1H='5 nunomaduro-collision-af42d33/src/Contracts/Writer.phpUT\TK0WaP{m! {{Pq,5B<(Ivv4 ]3{ӘQj"j@5R*HO8$F5MYTܠ.7PDR;:-H26+hDMd; mRާ~H7;R[+)(XTad<- -:tFfYGYһYQF~l+{&R*,}_:CX~ /K֌:_GYG|x#p1<7eVO 5/AMax5h1&6Ȇ! FK[U7.I9$yvD}ɯJ%h6/ȶPVYӴQ2v2sK=֊m7>lp M>75*.yHlXpc_OiIDqX\&2VQl O u+ix<}W3yJ)˗Gp bg 3M˗>Kxs$̞]?PK flgNNf2, nunomaduro-collision-af42d33/src/Handler.phpUT\SMk1ﯘkw'M\LJ mJI/ k^VZQ\wڱ!bAfޛjl4d0J:(@{,)ajN=$H@^ o M:^&I5䦾Mhn,`%J7UtJrؚ!|F FoRݏ>ڰbk栐\z%Vt;-Txe5VbuyW4n@DmI4czM]!7ucH'_ii$#`Jl9S"wqo~P`ޗC)5 U{ʸbn_8Dl(8<UDR;dH]:c4L>yee:X^굎)mGJV0jIQ)br0"P_Ҭij// Jg_!xG6aˆ\0n mIo+AY}UF~=yz\ P@o5З|k4)(Zc\LvN1;~3s\dxۛb.°j\K䀥&+jw&&k"hޫx !M[Y8[ ;|to펺3uɮdkLtsǭ:Ru z&<gi]hX8q0H/!h|{IW1FT'#xd^bf[-E z4PK flgNw+ nunomaduro-collision-af42d33/src/Writer.phpUT\XmOH_1EqzT>$@EzT*7]k"~/vok-$b{fٝgC޻w=x1` ?%RÑH1wD[.r.D0`$, rDHP1y$AERh|.(diB >c_\X{A2%,W4{b|3ːHՈz=N4K >԰-rZ^}H!M5nNyP i_=,?`e*8 L$SҼwk\Q9G֫mQIdh6Wf-珘DFn7 s(sbR5BVȇ(l#Hbdzd ɲFZ{A/ϗ30׼@sQ靖\svb^|>߷.nO.Ϗ`q j#~IdV+\XoK"~a~pG$lʨ T Ɲ-KU$ܔ8]Ip/^4.HTR+Zڴb ?c"~=`b:.̠A~ք' #-H/0!ED@Ҕ t &t34bc ÑDV.h ,7ߎr] t`a\.b|<D=*xf\L^vբeF 疺UKm=LKH#؊Jxͫ V V1F* |㣯2Aq0l&eWPNx5JRQyTBm"cpYPekc^DJplkZ,oQLld7&a}50 eJώfZ&4qgjr߯|-l)8*{Q e1qn^V%Ul-=nU|M~1~?#,OICׄ\͟xQFdmc.OT*;;t =;;Dfwu$DRv*JsʥLą *OUBp U79 RqG}iuqky ]ŰQACI뗛twZ>%T_T} K@fh];~\j)_ùZ=_"_;hZs4urZWضY.}}Q1'HnU9I}a "xo #b{i o 6; "~?_t (ق.Tq%u͊r%O }cQyaUI^q-ۻ {ԥ!`\U -TqPȞפַ_U!=WNy4+.ӇH0B{=3-=)db8u}'j1ӟOB:qE_m /e\Չ.f{jMwD)M.EMI /Rqp>mijҬU)_5fVh\2G>*mnQ$[{;6N>. I' Dnunomaduro-collision-af42d33/LICENSE.mdUT\PK flgNQe%  & nunomaduro-collision-af42d33/README.mdUT\PK flgNzriJ* onunomaduro-collision-af42d33/composer.jsonUT\PK flgN`.  nunomaduro-collision-af42d33/phpstan.neon.distUT\PK flgNUq- E nunomaduro-collision-af42d33/phpunit.xml.distUT\PK flgN!  nunomaduro-collision-af42d33/src/UT\PK flgN* Rnunomaduro-collision-af42d33/src/Adapters/UT\PK flgN2 nunomaduro-collision-af42d33/src/Adapters/Laravel/UT\PK flgNiݼeN nunomaduro-collision-af42d33/src/Adapters/Laravel/CollisionServiceProvider.phpUT\PK flgN i F nunomaduro-collision-af42d33/src/Adapters/Laravel/ExceptionHandler.phpUT\PK flgN&Yc? Mnunomaduro-collision-af42d33/src/Adapters/Laravel/Inspector.phpUT\PK flgN2  nunomaduro-collision-af42d33/src/Adapters/Phpunit/UT\PK flgNh*KHs> enunomaduro-collision-af42d33/src/Adapters/Phpunit/Listener.phpUT\PK flgNv(`66 nunomaduro-collision-af42d33/src/ArgumentFormatter.phpUT\PK flgN+ nunomaduro-collision-af42d33/src/Contracts/UT\PK flgN4 nunomaduro-collision-af42d33/src/Contracts/Adapters/UT\PK flgN< Rnunomaduro-collision-af42d33/src/Contracts/Adapters/Phpunit/UT\PK flgNqH nunomaduro-collision-af42d33/src/Contracts/Adapters/Phpunit/Listener.phpUT\PK flgN4zl@ !nunomaduro-collision-af42d33/src/Contracts/ArgumentFormatter.phpUT\PK flgN46 h#nunomaduro-collision-af42d33/src/Contracts/Handler.phpUT\PK flgN\,Cj: O%nunomaduro-collision-af42d33/src/Contracts/Highlighter.phpUT\PK flgNCQ7 &nunomaduro-collision-af42d33/src/Contracts/Provider.phpUT\PK flgN1H='5 (nunomaduro-collision-af42d33/src/Contracts/Writer.phpUT\PK flgNNf2, ;+nunomaduro-collision-af42d33/src/Handler.phpUT\PK flgN=0 -nunomaduro-collision-af42d33/src/Highlighter.phpUT\PK flgNm- 0nunomaduro-collision-af42d33/src/Provider.phpUT\PK flgNw+ U3nunomaduro-collision-af42d33/src/Writer.phpUT\PK |:(af42d339fe2742295a54f6fdd42aaa6f8c4aca68PK!;j6collision/d88a7ff2301a1e6b925c6eecbf2c887e03c7e21a.zipnuIwPK A]Q nunomaduro-collision-7c125dc/UTۚ_PK A]Q% nunomaduro-collision-7c125dc/.github/UTۚ_PK A]Q yЕ0 nunomaduro-collision-7c125dc/.github/FUNDING.ymlUTۚ_Uλ 0=_ڀCBQ TjLrC ѿLgggrY,ǚ356sBU5TDij% tE8rGqg2ЛOYt4ӂ[_{+,AZ>pn PK A]QrD$ nunomaduro-collision-7c125dc/.php_csUTۚ_S]O0}W(($`pijwǚion0P{9BW2%Bv)hޖm2h8 \τ(}xL(%c⿋)yjC,tRs_~Kf*?em`USn!xf_7ܯ]dLgę=ϐ)NӮHrV΍*j+Γm3 BiVQC?TTi4)Cfm0i:h,gJ]@~[[$g.T?TzPFI<{q)\e8Lـ~w(]ۘMske}}DEc%s݋b .=sxQd}PK A]QE_> I' nunomaduro-collision-7c125dc/LICENSE.mdUTۚ_]RK0W 9I凜* Y4GVb ܰ3N f^cF3I m ;iDJ̴W06M ]߻YkZr2Tx{t%W}|W=cakGFw;uW7-|\#N@Ul+R2 x*Իb;-?eD ~JTɬLt68%>iJ2|#SJPJxr^E%>A\[,"^#+@bՎ)Q1GA\G%_vvELn*TܩTrEe@Ũ;A)Z9و\+ #tуD\ɊUE1Z'N BO)byO[PK A]QwOJ & nunomaduro-collision-7c125dc/README.mdUTۚ_VmoG~bj*BiA$c\zo}do}^b*U<33s%1%3}B{a{Gs 函'e8>\>HtMʚF'γIjKL\W7.Q8J>?~|a;p j/(2q )`WV,7eW vB}˥Pi|)]u1rC$x (lq+LJ=b:%`R{R fx{p?ܘaFJp*yC6-C.+EZcɊXpF\hՌ7 :XYϭ(;q Ub1@W `KAAKSV8R衃[.hb )+K8u^}MIfYܘLR2YЦ G( ų p9-+m wku8G o;9`KfȫNʼp5g7pH;tA}u8=JZjs ~;Z %)(juhӪ 0f|y+ G|>GyZ]̡0WAc\h>2JW\T`DIB c(tk ~-GV E TçǍSwV|stxvbA=mʴ ]8~@ŰJCEiIL֤՚rBͻsd7il~cm/⾘6:]Ƈ~Jn(ZGօ~]v0A\L\DIݰXX@ Gt -5BA3)[O *.ٺdHx& X] /nxͱx/X"z?ѣN`hܯx+@ԧ.f"5{|{o媷SJ,*P"RӖtlr1^CRf#>PK A]Q6U* nunomaduro-collision-7c125dc/composer.jsonUTۚ_U]o0}߯k`LB4 P%l8U6Ns8m&uvϽ9>#'Œ,ĵEJnu&1QEe!\D%>J%5<`$1E❃Y.OZ<ÐtRx5_;c O]NfJjI;pJ*>VM7FM8 B0 ݰ3ܦ}iD37r(;Vy/"\r`v]X`V|?7kVXE鼬U[};ܟNm>˲I4¿9 ,c98O2~o.aa0L'gz}PeY B:5{N/>=yvQ-3{3zU,m\,^fPK A]Q;t- nunomaduro-collision-7c125dc/phpunit.xml.distUTۚ_n0 O]OqVJZD%v8[/;xkM{ڒvfɢc*Z1!7ά1c㘥gU\ĕ~jcIUdžUnV| K]͌~[wS2wUjqeOPK A]Q! nunomaduro-collision-7c125dc/src/UTۚ_PK A]Q* nunomaduro-collision-7c125dc/src/Adapters/UTۚ_PK A]Q2 nunomaduro-collision-7c125dc/src/Adapters/Laravel/UTۚ_PK A]Qd$;& N nunomaduro-collision-7c125dc/src/Adapters/Laravel/CollisionServiceProvider.phpUTۚ_UQo0~ϯI vlՐj*$ؑ@KpHHBש}}ߝ.8`bn`L[PKVBpÕ<#pI?Xi(-)^&qqYÍ`ce&*}|[`2CRY"B*ޚ]Ofcfa DX6tBtaxy%hRF`V%bEm[20"KdVZBkoV94W4Jql6^S?Z](Ih{yÿ_C.7,\,ϏTnh;859AҏɪTe \%{4,Ai+KWTSZSw\٘, #/̘Jd-ҥBc{Vm:2FJC­,&kap?bI/%q]R_4,2fƜ54LKX+re rva@b/v䫗U ܟVEֆx޶w[vܒŗ;i+Ij&I>u沍k .#ye@%.fnX" f+'Ϫ˦*ɪrt-{ݏT0qIѱ~'V3i$qQ_[@A<2. a׋ݜ9;0.K?c5hMI[vypa o[y+Mؚhl?P-=r}?~W *K3HjϦtw5#[/PK A]Q; nunomaduro-collision-7c125dc/src/Adapters/Laravel/Commands/UTۚ_PK A]Q ڧ J nunomaduro-collision-7c125dc/src/Adapters/Laravel/Commands/TestCommand.phpUTۚ_WmoFίHlG8'HkzSb VY,^3ˇdt:Ũ ܧB~eaVF\MJϾ06ѧ8f"םN>Ib3+&Rs#UV1Q4$B+4I2)uRaxm!GI/ȬD f6V2@g;jgWEB bZ)PCy=//.aF+&Ur zZsRRuhX[5Q`ݽ8<f-SA>qt$#a:_<ux]MGa$xm> S4Th[U nZ}cJk{x,q|?!@D|<_ I] V!Q| m@!UFC2Ą40K8pEjp+9(jgCPmDQ,A _|s 6LK|vV2$ 1t$&"{Wzp1oVtjg4yC]i(S|B]UQ5[19\&:y>*z?0fMAT`lO?}6޿RGdKBJC:K{ϒF~ PK A]QTd F nunomaduro-collision-7c125dc/src/Adapters/Laravel/ExceptionHandler.phpUTۚ_Uo0~_q<{1H]7u}DLrk$)T ;wEVDh0`7 -%\+!J[ITN+BI<&q1LT>`3U3HNqO_ƞ[4Z n-OdI_j=lNK$mJj=5=;ާirPDnfZz=E=$aMޗ. -te}4Y2')!UYK}wUQ 16(wm`^;;:j Grp,ʴoKf,]9kaB`mmFKe=ٍ|(佝VwX><-S-`ru *aErU3aTBެi:YُgHSf*Dd+nkuMll gOz=y)"t\ڨ{CA{ @Rِz1V$bgnmc(8߬i{huA剕 ūIy=FpLkZnVvʦظі Kfd}ܮ|!8@Qb+z2}yB#6Luߺ\\>Oo:"j_tȝ,xZb<푐MRQ_D`@@^U1%j$>a#{^Y-=V_Wg^J4NiJt{&oIb>)f38O)z7ӲYɄ8V0t}4;]7Bp|8_@Nwtѽ&8-:jޘ6 L\)/zS OPK A]QTE nunomaduro-collision-7c125dc/src/Adapters/Phpunit/PrinterContents.phpUTۚ_Xm8ίP7`ۉ"nWE$$|kvv $쩥RgǛd4,NHD.=S%'}9LI/&JO$̼n4R]HO N$Tv7ÿpɵBk'=3 4RJ:ط>qL-#Q<3N#r&]&RPap$t2Ij&=5_sX|k2f( H?b ._W?c Dn30 l8=`9zl_ q5)XFC"kf VoWD57?QlE Wh€!W0lYhj9w*= TU˳c''xqH8.T9t j 'A@X T4)IUmTJ^-OŒp]!(¬w]Df)U2y{MeaM"5NE0KO.oTR%RC7G+Nq`'(h'8[k ~ Cv{S(LNgWuyjæY0ݾt񅚹tNflqBÌSE\Tk@О.NqIl4Nˍ-w.уg>E^+wyf냾ә) g"[&T1hDؗ)4Vmd̸$g|؁dq)R32eoQy+%(0좡KTi4:3j n:/Hjw>M=4~c7k/ԼZ9 4DQU,0/ReU| Yslk_^5T2AF6һ,,fŖ2Bܵ eb-8VjwL%tG1SX\䕚^!aXQS^;O<9'݁Dɩ.U;fw۫eONh0~K?2?9GwÒ;ŠU*] vΣ|[geRۗLEak%S_E^|΄n0({jx;hsO=hD=GIk)\=QpRXRs!ZfL05*.Aco/xG^m% Lۺfy +)C?_a]wWao<G \C 9"oә)'kJeiTG1ɕյ2wAGZ5ߘ5I]ȉW,N9C܇r[c*&Nx6b BMGiR- w:F&_wg5PK A]Qu"^@; nunomaduro-collision-7c125dc/src/Adapters/Phpunit/State.phpUTۚ_WKo6W@Aֹ;u7aeIm{g%v=, gͯ* \يs-Q1+!J@zaHC`_SbRd-˶^g4" 5ӆP"!WEڢX%0Y7N­t07kfS-}ßpɬ7{~C(2MV7;/4^F0n |VО`u)0Pۯ܊#؁J*k*P W@Qܮ$`Fkj={߂n2Nkt B7~PD+DqK~Pj1!=\jdg0TFS&/k/CXb| c$|vS0;qӲvU:1W,|5~Oa6qe_*WDa\њ Y(%ҕa=/jòHe=Me3xGj3w!/1. a'qݬnR!'9ç _S*ͧ՝kt[i~"M~UԱ87ք= Rzct5Wv8Z%Γڙ9߿yIF=/zK+PaYqU2zLSa:B'Er!EsB=F TːA:A2M):S0 C(xqGO6wk ߂PK A]QI; nunomaduro-collision-7c125dc/src/Adapters/Phpunit/Style.phpUTۚ_n8_ ұuml`餆A1)[D Xا}O/sHݨ>,BS9G~]덞?d Lɭ@_B9ހܧ\&b"z D4ɠɝ$1aH<d% q_㾐M#CcvzjZdGl`&lCA[Tz a4b*lB,fCIwqʃKU{8; B~vob%TJ ;aK4_b%B5GX1܂ @(V\$NWp0RE]u}NXº3PKu:4X/JerY=$H2x #"%B;_m:/LQK?]sP:9fbbɸ&O0XB\L\kد t|W BPL"U.Iӧ| f$D{ `*w O*%v1nS)h,m?+(MMGO $Q"3T,I%.vhbAv\L4!w$HB6Nȱ>3eI+vd<m@+_DғNO˕wiXgzUUNaBL!xuRFxB׮G[08 <J4T#tw yI4@[CĉѺH:7Di~@9jL8>|Xq6 ?#f'chbv~ٲS;*Bh^K~\U%\Tܫ*<>1S?_Z3mtly,k-ޚ߾yv˟f􍽉ŪXibC,AWua9UrsgBl-ֹW~rAn׸Wvl] v5^p32MlR_[M3tRJPHhh]XAYvfɾe^FŇ_|,ojG&u=q1˜0o qcaACBmAk G0'l|EK?$ ؀V6zN14 ViV ŸgӐ /њ39b"CA^(f|ty`Ii#DU;}PWU8iIv12QQp̂&҃+$zbzAmGMzI2Tz7mxր7;ah2{8y3;CKIbfj`;щr Mٍ`> _ډ{}zmkD 4QrC)8vj! bsPY(j^XGXtCBHYbGhq.w9 r~o Z)~N-6Shq;QţsO)OUA]V'J58-f0HsmuޛAz0+9/:sB'%t6Vg"K:AT x(pM){Ȫޑ mkr kVb<){NZR)o2N!؜Ѯ ,  OO]RL)fm֧ru5Cd:n(ޢosjar綧nojEkp<6n=c_nLeZ5+Sl,nf '2+ bАmL;nl#oimǜ9 hߊPK A]Q֓(; nunomaduro-collision-7c125dc/src/Adapters/Phpunit/Timer.phpUTۚ_uN1 >pY(BTT*WB!a,e(vv^'Bs$=fX4rGW9b ~)%f98G.'Cnitφ!Cvl/G{pdѳvCHmr ѡѻ uu}{]*F`kzbI{ؒQn9YN=Ux3!G{Gћ(x}7If?.kWu/0Mt䲴`c .߬m PVՔ{_<>ιmWjbE} }/AK9`O:-Pm&mw7cdtC;Mh]??nD2Oj0{pFKU|b;@|kPK A]Qm86 nunomaduro-collision-7c125dc/src/ArgumentFormatter.phpUTۚ_To0~_qCUKa/:&mF2xu?P $Z)ߝ3T!~B&$|W8h)Z0$DY^iFSo4LUB.h\!Rֈp@U R0,L:B%9EߓX+rsuRakx  AV{8"<0hmEhY?5!-RPg+w:n 8񓗒CU#1js_T zW~o{LVS3;Bj{-U,Ѕ}3ZC!pf8Ɗ'3p BTqaabXSV@?V`!G?0_®Ihb.z0j=δ5~<:G^~j&p(x1iȷ f30T~sk^‡PҦ7/p}Rl:]vjZKyy]Oȱ2*-\E׿8s *h3ȹ[e+Qx5RLMzoXf wިxQտ>5\MfGv7PK A]QBO1 nunomaduro-collision-7c125dc/src/ConsoleColor.phpUTۚ_YS8=ajC!!>(-4 wܵzsyGIrxxYp8F璐p%N:}ٵGn/GuqN h4FYJKg i%.Kcjw ɷhu*O QDwlk{ǁ?O`MGp֫wCsUZ|ϝ/}Xؒ2`_gq]Chͣ,^ 9A:mCS/Iu-?g+Bb{P"ZmKqrȶTb8V.먲%1LUe#x.2ٶ*K5I(^2%'c Gg~m$$GU6/% !Dœ~t)rޅDD;gUəB6:tIim&2xت9Sp@ (X* J,̼ XDS[NgG5#- IS)ݮГ|h=eUYnd2 1dObȠvK'ƐEN!- C6[:Ij2tZn /3(z.Z*rGM&G^]C):C(Ćpz/\](̒T \B, %P$(>0杪@tPi& i Fn ׅ:[0!kz=3Tֳ-$:OExv]|TUU|W4qPe-m%& idDdJnXMc khd6vgH`^]cJR[*2Q1sL#U@>@SG@̃bK(:pq8E"SyN>Z-vsʈmKPsۻ'BX`9s5U_euP(\ CPlCPK A]Q+ nunomaduro-collision-7c125dc/src/Contracts/UTۚ_PK A]Q4 nunomaduro-collision-7c125dc/src/Contracts/Adapters/UTۚ_PK A]Q< nunomaduro-collision-7c125dc/src/Contracts/Adapters/Phpunit/UTۚ_PK A]QLt3X nunomaduro-collision-7c125dc/src/Contracts/Adapters/Phpunit/HasPrintableTestCaseName.phpUTۚ_mPMO!+h7FkMi^X]HX 04@2 z& :0X5DlRQwj|H]Rz֬IZ7Waz%$ 0@xNv4kpV懐&ILrѡom}mۮ$8 fJ/N OXw%)d&UB/'Qc}Q}⛧$㳖0--oɬ灗mlPʼO3mXď>w=|"sDU]ViCل4%ܐ15uˢXzNF#ҿ"fPR?PK A]QvGuH nunomaduro-collision-7c125dc/src/Contracts/Adapters/Phpunit/Listener.phpUTۚ_n0 z zh"y[ tEЦ7_ɒ@Qqb>JMPa&kI|`{2 #M.Ԫ~w%DM~>_Np " {cM2`Cia4j!WyW9!W*@4['=-anVAY3&jaYDoaOu:Tz~B(֐[wj_HSV9Li}-{܂(jhJ%2$A(T vo:sF6Fdg2oOCΐ9ui͑ 5jܾFr:4䪓uaci %OЅ3u+=*ojgBN.ė^ Y#X#$M;=H^K˒uqOɛ7Ԋ8nû|K-+/&e_%#QFjw-~PK A]QK,: nunomaduro-collision-7c125dc/src/Contracts/Highlighter.phpUTۚ_Mk1s𠋸* J KΚlIVm{kc>gՃ^i4)BOO/CC]pJɚu"kqd lعI#P:v`Hf{Xdޠ=?mmUْ 2BG1:)i0wt9(d q+F/`ﷱfS*_#x["<2)Xt5e-slUJiar) &,` .ŗPK A]QCQ7 nunomaduro-collision-7c125dc/src/Contracts/Provider.phpUTۚ_OK1slthTz%ݝ2ݝnۃPBL,;)Uu2wB 6I9m^t(~jZmݼ X 9(CI1 Wl>E:Z}z}z26#T62}bh!Q"Ta-i9lJVI9K i1BS+؈ɿER(<+՗z3xF!>2gxМ HԽ"Dv C_]˻s2?Ј2ޞ%_Yq5M]jDz5.[PK A]QSedB nunomaduro-collision-7c125dc/src/Contracts/SolutionsRepository.phpUTۚ_Qn0 +|1$api6RTB}N(Re֭R jԆ@=+aA;;HB1uEdteՠ65z'!*()eТ0,{9dJE!`IА>)uCφd=hA_Z4;uK\Osueeih~D5y1wM,^4}KOos~X̬;xyJBEp'8SPK A]Q$S35 nunomaduro-collision-7c125dc/src/Contracts/Writer.phpUTۚ_TK0W!l(ɽY6[=4=(G$;1YfHsմ(fIxnZ*RJ:Iz[qyOAUy֥ɢTӒ/nx$ ERP9Zٴ@c4]gO` ^Iܧzr%nA%r i= =_U7\$z_P2Ƨ'yd;%5LRǺ9sW5Ge+F}@ 3^4PK A]Q, nunomaduro-collision-7c125dc/src/Exceptions/UTۚ_PK A]QF{wj? nunomaduro-collision-7c125dc/src/Exceptions/ShouldNotHappen.phpUTۚ_eMO1 >sߥ-ZJt#fӭ!Df[)!хLUK}l_KK$\GKjI# 5Fp)pz!hHes?w]մ'US/S-㤸3순&'ov1Uw$8緳AW Aoe{jI~؜z?zrST'UxUmCX@I7lZЖt}\5"u}J(IegЙ>뢑dW碣9,HMzV}A]csGxZVFy5/PK A]Q*$, nunomaduro-collision-7c125dc/src/Handler.phpUTۚ_TQk"1~ϯVwRh%fn ,ɤMZ $;o曙/^eh0`0Ry(@{-`fV^Y3$蕉><cσp% }UcCa,%Ak8*A+!lHIA%'ۛ{nnS Krѩe@ZaI7LG^I_s2F Ů c~E' {⫥J%A7CӦ*ِU[# FZ.~:KimcϥO[pf?֮Piݴ<`I#l#&4'NJyGnhʨujܧoyQkgQ^vd$G)aȰ$-WAsEf:r0N t"^TO}3CϤ' =>U[=˰Ledg{Wkj% kq9QPb%봮lu V8$ȴ-4ߐ$Jt8!)jpf_۠9{ں]Fa3F" ;%d>J=|ۉq٩.%5\![ 1p`m [sE[ĨĀQs_]"9[B-ޒ^H+7C) ^x_OBu:( 8N~ݺtH G^'oh !j5(WOwN b1:G:w ~'[<>mTh>&zL66~ +!LC(9{_Ya$j=|>["ax|WQ C3g7ݯh"t !ODܚ2gº~Kx k J- -x~{kάcE]'?_W9#&+zyhkۍu;ӂ%g4>t23'fA;|ѼW K/uZ1]B/gg>]Hx礸9z4b| { er.[_p+T a6s=j0$%AOPzt)K pV9Ć([nN/ ypR5@Ξp]!ŀ,?3vZH,U33ضC8qxX[nwסˌDҾ?K*?(‚%g }^./cnFkQU\nI$wPzrIV+U]bh~Z,觉afj KݖnCn3He|JzҏEim1/  iBƿn2S>cD"j!>R*mukM:l%[p;Puy|ic[lەSwQ_#*<伅pR6~hڑ?rƀu6g*¥?T^rGd};o_b@Qjp OtY1}e-$#SHV9J"8jD] ƕ"C6Ci?} %/8 L: C̍-_ nOJv~w$q8R !&+kPYהOz0|nv/ FpYRkkRBK~P/7\܍湖?OhbFk^H2nls|3o%O дk%ct?}.;8ju5oUu=6Rܚ]-[+4E?<1!ןg#$hb5=G);t-6JќGw ͮnܯ涭@COfO.߭3=nVWz(2Nb4 !&=x;iW~(;ȓ} iIgMd}7ÂS$-~KOe6GTS 3CE\Y~YbӱzɇiIxy^;_ns%CIY0)Ⱥj75j[X^xπy/;, A5ou0Jq'h/tКn>;nAӬHI{n_i{?]/(HHdbYEFV?(尣)=a*'=qpq,dfdG[nK1.\_\.L?V^ 4 j*.ժXfvw Z]~˗x"Q=FK(fLzE!V]dE2^8?}F/Jg(}@!ˑ D3 rkߴL.GDJk@0b;#Q{T7kQ qS P˵ Ǿ]S)Qқ"nls>mdxPK A]QZ- nunomaduro-collision-7c125dc/src/Provider.phpUTۚ_SMk1W!$NII -bVk "lJHxCӛ7ZՌ&tR Gp%1:hgIs"zҬʓնL-8$V!p[B@l|ő\Cm$|CPq=P^F5*!E/$e*dRAV /1z0 [}GCcE|k$_PK A]Q7 nunomaduro-collision-7c125dc/src/SolutionsRepositories/UTۚ_PK A]Q%8cR nunomaduro-collision-7c125dc/src/SolutionsRepositories/NullSolutionsRepository.phpUTۚ_QJk1+fBh(w(`.ƖW,W#9! jXMF:**lHݘUSsXoQ9Ց̜凁gCewsme){~7zLt~FwO]Hq@GՁE?^# iaQ}KJFX^ {gz6w1JY+νPK A]Q嚰0LS.ي"ct+r,\n|5p1%8vFӽ<;9׼4lE2 `<lX-\wB<8YST Y!q)3ALN2_S]hn>,G=J(67I+k&eE`vgkM[1*gWx nE·d&u$yţyړ|]rDc5T$!Mمs2!<?^U 5Z:imޒ<[u ^),}~4*Q(|=G*Dž .wbUȕHlhth);De?\~o/O?~Ev=# ;gA;"`xN#Ͳk,cͬ/Ѐ0H ʅ (ƓT؈>]I}#zQI =.xrI']ï͊ j҉J*%T gܱwtI"3QJc} *hg>Մ Fg袙ơ\%yISJ9Oks||&/D |F{sè Ù9Zy#m5<,Ox )0 BЄ8QAX!.Z4u- n)*ne |+^մ]VǺ#:o+n3)`Uj&M h&a˯z<`ioݷ,Jm0(  *i! #*` <4&f"]?"B\EX^j,?g>KKOcy5d2O}]:3qDi-$ LyXTR~5է߯\1 s>#zjd)̒y:47 oM4ݏ| m2 < e/0Lޑ\dje/ ֺCZR1uWZQ4>;d:?*!f*S@Ѯg<l("Q]{N":lemdc*AX_Lq|JqYQ?ܭ7tR?k~w)Ԓm TO |6Y**WRl6GA>42TԎvjʩn`TiwtS$69tB~;XqaT) ѳ$YRP:(yhfGe?v1J5Kpp2_NQNxOӃqK{.,.Hg }sqŌi9E$sV"ِK3qٰ?9A2UqOu@eV IDgKf3dtXJ]u#7Tݼ?;)}nj;K¼h˾W +ӲvyCL=`3O;h0Lch־ry;gGĿՆ}*#5>?cH>5I5}]YȺުΉlP I' 9nunomaduro-collision-7c125dc/LICENSE.mdUTۚ_PK A]QwOJ &  nunomaduro-collision-7c125dc/README.mdUTۚ_PK A]Q6U*  nunomaduro-collision-7c125dc/composer.jsonUTۚ_PK A]Q?:. nunomaduro-collision-7c125dc/phpstan.neon.distUTۚ_PK A]Q;t- nunomaduro-collision-7c125dc/phpunit.xml.distUTۚ_PK A]Q! nunomaduro-collision-7c125dc/src/UTۚ_PK A]Q*  nunomaduro-collision-7c125dc/src/Adapters/UTۚ_PK A]Q2 qnunomaduro-collision-7c125dc/src/Adapters/Laravel/UTۚ_PK A]Qd$;& N nunomaduro-collision-7c125dc/src/Adapters/Laravel/CollisionServiceProvider.phpUTۚ_PK A]Q; enunomaduro-collision-7c125dc/src/Adapters/Laravel/Commands/UTۚ_PK A]Q ڧ J nunomaduro-collision-7c125dc/src/Adapters/Laravel/Commands/TestCommand.phpUTۚ_PK A]QTd F nunomaduro-collision-7c125dc/src/Adapters/Laravel/ExceptionHandler.phpUTۚ_PK A]QxZQ G nunomaduro-collision-7c125dc/src/Adapters/Laravel/IgnitionSolutionsRepository.phpUTۚ_PK A]Q&Yc? "nunomaduro-collision-7c125dc/src/Adapters/Laravel/Inspector.phpUTۚ_PK A]Q2 }$nunomaduro-collision-7c125dc/src/Adapters/Phpunit/UTۚ_PK A]QhBA $nunomaduro-collision-7c125dc/src/Adapters/Phpunit/ConfigureIO.phpUTۚ_PK A]QxoE9= ''nunomaduro-collision-7c125dc/src/Adapters/Phpunit/Printer.phpUTۚ_PK A]QTE )nunomaduro-collision-7c125dc/src/Adapters/Phpunit/PrinterContents.phpUTۚ_PK A]Qu"^@; /nunomaduro-collision-7c125dc/src/Adapters/Phpunit/State.phpUTۚ_PK A]QI; 4nunomaduro-collision-7c125dc/src/Adapters/Phpunit/Style.phpUTۚ_PK A]Q^h @ <nunomaduro-collision-7c125dc/src/Adapters/Phpunit/TestResult.phpUTۚ_PK A]Q֓(; YAnunomaduro-collision-7c125dc/src/Adapters/Phpunit/Timer.phpUTۚ_PK A]Qm86 NCnunomaduro-collision-7c125dc/src/ArgumentFormatter.phpUTۚ_PK A]QBO1 Enunomaduro-collision-7c125dc/src/ConsoleColor.phpUTۚ_PK A]Q+ Mnunomaduro-collision-7c125dc/src/Contracts/UTۚ_PK A]Q4 Mnunomaduro-collision-7c125dc/src/Contracts/Adapters/UTۚ_PK A]Q< 7Nnunomaduro-collision-7c125dc/src/Contracts/Adapters/Phpunit/UTۚ_PK A]QLt3X Nnunomaduro-collision-7c125dc/src/Contracts/Adapters/Phpunit/HasPrintableTestCaseName.phpUTۚ_PK A]QvGuH LPnunomaduro-collision-7c125dc/src/Contracts/Adapters/Phpunit/Listener.phpUTۚ_PK A]Q pUT@ 0Rnunomaduro-collision-7c125dc/src/Contracts/ArgumentFormatter.phpUTۚ_PK A]Q }56 Snunomaduro-collision-7c125dc/src/Contracts/Handler.phpUTۚ_PK A]QK,: Ununomaduro-collision-7c125dc/src/Contracts/Highlighter.phpUTۚ_PK A]QCQ7 SWnunomaduro-collision-7c125dc/src/Contracts/Provider.phpUTۚ_PK A]QSedB Ynunomaduro-collision-7c125dc/src/Contracts/SolutionsRepository.phpUTۚ_PK A]Q$S35 Znunomaduro-collision-7c125dc/src/Contracts/Writer.phpUTۚ_PK A]Q, ^]nunomaduro-collision-7c125dc/src/Exceptions/UTۚ_PK A]QF{wj? ]nunomaduro-collision-7c125dc/src/Exceptions/ShouldNotHappen.phpUTۚ_PK A]Q*$, _nunomaduro-collision-7c125dc/src/Handler.phpUTۚ_PK A]Q8Hq0 bnunomaduro-collision-7c125dc/src/Highlighter.phpUTۚ_PK A]QZ- ,jnunomaduro-collision-7c125dc/src/Provider.phpUTۚ_PK A]Q7 lnunomaduro-collision-7c125dc/src/SolutionsRepositories/UTۚ_PK A]Q%8cR lnunomaduro-collision-7c125dc/src/SolutionsRepositories/NullSolutionsRepository.phpUTۚ_PK A]Qcollision/src/Highlighter.phpnu[PK!m Fcollision/src/Provider.phpnu[PK!5]Lcollision/src/Contracts/Adapters/Phpunit/Listener.phpnu[PK!\,jj'SOcollision/src/Contracts/Highlighter.phpnu[PK!C$Rcollision/src/Contracts/Provider.phpnu[PK!4z-7Ucollision/src/Contracts/ArgumentFormatter.phpnu[PK!4#KXcollision/src/Contracts/Handler.phpnu[PK!1H''"#\collision/src/Contracts/Writer.phpnu[PK!v(`#ccollision/src/ArgumentFormatter.phpnu[PK!Nficollision/src/Handler.phpnu[PK!wocollision/src/Writer.phpnu[PK!E_> IIًcollision/LICENSE.mdnu[PK!gVFVF6fcollision/dda66ef7d7589cf61f6955bc901312cd0ca7d969.zipnuIwPK!;j6"collision/d88a7ff2301a1e6b925c6eecbf2c887e03c7e21a.zipnuIwPKqd