diff --git a/.github/workflows/test-migrations.yml b/.github/workflows/test-migrations.yml
index 82f5ae258..08e9ba6ef 100644
--- a/.github/workflows/test-migrations.yml
+++ b/.github/workflows/test-migrations.yml
@@ -8,7 +8,7 @@ jobs:
     runs-on: ubuntu-22.04
     strategy:
       matrix:
-        php: ['7.4', '8.0', '8.1', '8.2']
+        php: ['8.0', '8.1', '8.2']
     steps:
       - uses: actions/checkout@v1
 
diff --git a/.github/workflows/test-php.yml b/.github/workflows/test-php.yml
index 215f98741..96a01f9c9 100644
--- a/.github/workflows/test-php.yml
+++ b/.github/workflows/test-php.yml
@@ -8,7 +8,7 @@ jobs:
     runs-on: ubuntu-22.04
     strategy:
       matrix:
-        php: ['7.4', '8.0', '8.1', '8.2']
+        php: ['8.0', '8.1', '8.2']
     steps:
     - uses: actions/checkout@v1
 
diff --git a/app/Config/app.php b/app/Config/app.php
index ed8bcf900..ed73ca612 100644
--- a/app/Config/app.php
+++ b/app/Config/app.php
@@ -8,6 +8,8 @@
  * Do not edit this file unless you're happy to maintain any changes yourself.
  */
 
+use Illuminate\Support\Facades\Facade;
+
 return [
 
     // The environment to run BookStack in.
@@ -98,7 +100,13 @@ return [
     // Encryption cipher
     'cipher' => 'AES-256-CBC',
 
-    // Application Services Provides
+    // Maintenance Mode Driver
+    'maintenance' => [
+        'driver' => 'file',
+        // 'store'  => 'redis',
+    ],
+
+    // Application Service Providers
     'providers' => [
 
         // Laravel Framework Service Providers...
@@ -141,58 +149,9 @@ return [
         BookStack\Providers\ViewTweaksServiceProvider::class,
     ],
 
-    /*
-    |--------------------------------------------------------------------------
-    | Class Aliases
-    |--------------------------------------------------------------------------
-    |
-    | This array of class aliases will be registered when this application
-    | is started. However, feel free to register as many as you wish as
-    | the aliases are "lazy" loaded so they don't hinder performance.
-    |
-    */
-
-    // Class aliases, Registered on application start
-    'aliases' => [
-        // Laravel
-        'App'          => Illuminate\Support\Facades\App::class,
-        'Arr'          => Illuminate\Support\Arr::class,
-        'Artisan'      => Illuminate\Support\Facades\Artisan::class,
-        'Auth'         => Illuminate\Support\Facades\Auth::class,
-        'Blade'        => Illuminate\Support\Facades\Blade::class,
-        'Bus'          => Illuminate\Support\Facades\Bus::class,
-        'Cache'        => Illuminate\Support\Facades\Cache::class,
-        'Config'       => Illuminate\Support\Facades\Config::class,
-        'Cookie'       => Illuminate\Support\Facades\Cookie::class,
-        'Crypt'        => Illuminate\Support\Facades\Crypt::class,
-        'Date'         => Illuminate\Support\Facades\Date::class,
-        'DB'           => Illuminate\Support\Facades\DB::class,
-        'Eloquent'     => Illuminate\Database\Eloquent\Model::class,
-        'Event'        => Illuminate\Support\Facades\Event::class,
-        'File'         => Illuminate\Support\Facades\File::class,
-        'Gate'         => Illuminate\Support\Facades\Gate::class,
-        'Hash'         => Illuminate\Support\Facades\Hash::class,
-        'Http'         => Illuminate\Support\Facades\Http::class,
-        'Lang'         => Illuminate\Support\Facades\Lang::class,
-        'Log'          => Illuminate\Support\Facades\Log::class,
-        'Mail'         => Illuminate\Support\Facades\Mail::class,
-        'Notification' => Illuminate\Support\Facades\Notification::class,
-        'Password'     => Illuminate\Support\Facades\Password::class,
-        'Queue'        => Illuminate\Support\Facades\Queue::class,
-        'RateLimiter'  => Illuminate\Support\Facades\RateLimiter::class,
-        'Redirect'     => Illuminate\Support\Facades\Redirect::class,
-        // 'Redis'        => Illuminate\Support\Facades\Redis::class,
-        'Request'      => Illuminate\Support\Facades\Request::class,
-        'Response'     => Illuminate\Support\Facades\Response::class,
-        'Route'        => Illuminate\Support\Facades\Route::class,
-        'Schema'       => Illuminate\Support\Facades\Schema::class,
-        'Session'      => Illuminate\Support\Facades\Session::class,
-        'Storage'      => Illuminate\Support\Facades\Storage::class,
-        'Str'          => Illuminate\Support\Str::class,
-        'URL'          => Illuminate\Support\Facades\URL::class,
-        'Validator'    => Illuminate\Support\Facades\Validator::class,
-        'View'         => Illuminate\Support\Facades\View::class,
-
+    // Class Aliases
+    // This array of class aliases to be registered on application start.
+    'aliases' => Facade::defaultAliases()->merge([
         // Laravel Packages
         'Socialite'    => Laravel\Socialite\Facades\Socialite::class,
 
@@ -202,7 +161,7 @@ return [
         // Custom BookStack
         'Activity'    => BookStack\Facades\Activity::class,
         'Theme'       => BookStack\Facades\Theme::class,
-    ],
+    ])->toArray(),
 
     // Proxy configuration
     'proxies' => env('APP_PROXIES', ''),
diff --git a/app/Config/broadcasting.php b/app/Config/broadcasting.php
index 5e929d373..3b95698cc 100644
--- a/app/Config/broadcasting.php
+++ b/app/Config/broadcasting.php
@@ -14,7 +14,7 @@ return [
     // This option controls the default broadcaster that will be used by the
     // framework when an event needs to be broadcast. This can be set to
     // any of the connections defined in the "connections" array below.
-    'default' => env('BROADCAST_DRIVER', 'pusher'),
+    'default' => 'null',
 
     // Broadcast Connections
     // Here you may define all of the broadcast connections that will be used
@@ -22,21 +22,7 @@ return [
     // each available type of connection are provided inside this array.
     'connections' => [
 
-        'pusher' => [
-            'driver'  => 'pusher',
-            'key'     => env('PUSHER_APP_KEY'),
-            'secret'  => env('PUSHER_APP_SECRET'),
-            'app_id'  => env('PUSHER_APP_ID'),
-            'options' => [
-                'cluster' => env('PUSHER_APP_CLUSTER'),
-                'useTLS'  => true,
-            ],
-        ],
-
-        'redis' => [
-            'driver'     => 'redis',
-            'connection' => 'default',
-        ],
+        // Default options removed since we don't use broadcasting.
 
         'log' => [
             'driver' => 'log',
diff --git a/app/Config/cache.php b/app/Config/cache.php
index 86297b236..d1d47ab16 100644
--- a/app/Config/cache.php
+++ b/app/Config/cache.php
@@ -87,6 +87,6 @@ return [
     |
     */
 
-    'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_cache'),
+    'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_cache_'),
 
 ];
diff --git a/app/Config/filesystems.php b/app/Config/filesystems.php
index 493d53bfa..e6ae0fed3 100644
--- a/app/Config/filesystems.php
+++ b/app/Config/filesystems.php
@@ -33,17 +33,20 @@ return [
             'driver'     => 'local',
             'root'       => public_path(),
             'visibility' => 'public',
+            'throw'      => true,
         ],
 
         'local_secure_attachments' => [
             'driver' => 'local',
             'root'   => storage_path('uploads/files/'),
+            'throw'  => true,
         ],
 
         'local_secure_images' => [
             'driver'     => 'local',
             'root'       => storage_path('uploads/images/'),
             'visibility' => 'public',
+            'throw'      => true,
         ],
 
         's3' => [
@@ -54,6 +57,7 @@ return [
             'bucket'                  => env('STORAGE_S3_BUCKET', 'your-bucket'),
             'endpoint'                => env('STORAGE_S3_ENDPOINT', null),
             'use_path_style_endpoint' => env('STORAGE_S3_ENDPOINT', null) !== null,
+            'throw'                   => true,
         ],
 
     ],
diff --git a/app/Config/logging.php b/app/Config/logging.php
index 2b80147c8..d49cd727d 100644
--- a/app/Config/logging.php
+++ b/app/Config/logging.php
@@ -21,6 +21,15 @@ return [
     // one of the channels defined in the "channels" configuration array.
     'default' => env('LOG_CHANNEL', 'single'),
 
+    // Deprecations Log Channel
+    // This option controls the log channel that should be used to log warnings
+    // regarding deprecated PHP and library features. This allows you to get
+    // your application ready for upcoming major versions of dependencies.
+    'deprecations' => [
+        'channel' => 'null',
+        'trace' => false,
+    ],
+
     // Log Channels
     // Here you may configure the log channels for your application. Out of
     // the box, Laravel uses the Monolog PHP logging library. This gives
diff --git a/app/Config/mail.php b/app/Config/mail.php
index b223e382a..9339c35c2 100644
--- a/app/Config/mail.php
+++ b/app/Config/mail.php
@@ -14,13 +14,7 @@ return [
     // From Laravel 7+ this is MAIL_MAILER in laravel.
     // Kept as MAIL_DRIVER in BookStack to prevent breaking change.
     // Options: smtp, sendmail, log, array
-    'driver' => env('MAIL_DRIVER', 'smtp'),
-
-    // SMTP host address
-    'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
-
-    // SMTP host port
-    'port' => env('MAIL_PORT', 587),
+    'default' => env('MAIL_DRIVER', 'smtp'),
 
     // Global "From" address & name
     'from' => [
@@ -28,17 +22,42 @@ return [
         'name'    => env('MAIL_FROM_NAME', 'BookStack'),
     ],
 
-    // Email encryption protocol
-    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+    // Mailer Configurations
+    // Available mailing methods and their settings.
+    'mailers' => [
+        'smtp' => [
+            'transport' => 'smtp',
+            'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
+            'port' => env('MAIL_PORT', 587),
+            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
+            'username' => env('MAIL_USERNAME'),
+            'password' => env('MAIL_PASSWORD'),
+            'timeout' => null,
+            'local_domain' => env('MAIL_EHLO_DOMAIN'),
+        ],
 
-    // SMTP server username
-    'username' => env('MAIL_USERNAME'),
+        'sendmail' => [
+            'transport' => 'sendmail',
+            'path' => '/usr/sbin/sendmail -bs',
+        ],
 
-    // SMTP server password
-    'password' => env('MAIL_PASSWORD'),
+        'log' => [
+            'transport' => 'log',
+            'channel' => env('MAIL_LOG_CHANNEL'),
+        ],
 
-    // Sendmail application path
-    'sendmail' => '/usr/sbin/sendmail -bs',
+        'array' => [
+            'transport' => 'array',
+        ],
+
+        'failover' => [
+            'transport' => 'failover',
+            'mailers' => [
+                'smtp',
+                'log',
+            ],
+        ],
+    ],
 
     // Email markdown configuration
     'markdown' => [
@@ -47,11 +66,4 @@ return [
             resource_path('views/vendor/mail'),
         ],
     ],
-
-    // Log Channel
-    // If you are using the "log" driver, you may specify the logging channel
-    // if you prefer to keep mail messages separate from other log entries
-    // for simpler reading. Otherwise, the default channel will be used.
-    'log_channel' => env('MAIL_LOG_CHANNEL'),
-
 ];
diff --git a/app/Entities/Tools/Markdown/CustomListItemRenderer.php b/app/Entities/Tools/Markdown/CustomListItemRenderer.php
index be4cac4a7..0c506d7f9 100644
--- a/app/Entities/Tools/Markdown/CustomListItemRenderer.php
+++ b/app/Entities/Tools/Markdown/CustomListItemRenderer.php
@@ -2,18 +2,18 @@
 
 namespace BookStack\Entities\Tools\Markdown;
 
-use League\CommonMark\Block\Element\AbstractBlock;
-use League\CommonMark\Block\Element\ListItem;
-use League\CommonMark\Block\Element\Paragraph;
-use League\CommonMark\Block\Renderer\BlockRendererInterface;
-use League\CommonMark\Block\Renderer\ListItemRenderer;
-use League\CommonMark\ElementRendererInterface;
+use League\CommonMark\Extension\CommonMark\Node\Block\ListItem;
+use League\CommonMark\Extension\CommonMark\Renderer\Block\ListItemRenderer;
 use League\CommonMark\Extension\TaskList\TaskListItemMarker;
-use League\CommonMark\HtmlElement;
+use League\CommonMark\Node\Block\Paragraph;
+use League\CommonMark\Node\Node;
+use League\CommonMark\Renderer\ChildNodeRendererInterface;
+use League\CommonMark\Renderer\NodeRendererInterface;
+use League\CommonMark\Util\HtmlElement;
 
-class CustomListItemRenderer implements BlockRendererInterface
+class CustomListItemRenderer implements NodeRendererInterface
 {
-    protected $baseRenderer;
+    protected ListItemRenderer $baseRenderer;
 
     public function __construct()
     {
@@ -23,11 +23,11 @@ class CustomListItemRenderer implements BlockRendererInterface
     /**
      * @return HtmlElement|string|null
      */
-    public function render(AbstractBlock $block, ElementRendererInterface $htmlRenderer, bool $inTightList = false)
+    public function render(Node $node, ChildNodeRendererInterface $childRenderer)
     {
-        $listItem = $this->baseRenderer->render($block, $htmlRenderer, $inTightList);
+        $listItem = $this->baseRenderer->render($node, $childRenderer);
 
-        if ($this->startsTaskListItem($block)) {
+        if ($node instanceof ListItem && $this->startsTaskListItem($node) && $listItem instanceof HtmlElement) {
             $listItem->setAttribute('class', 'task-list-item');
         }
 
diff --git a/app/Entities/Tools/Markdown/CustomStrikeThroughExtension.php b/app/Entities/Tools/Markdown/CustomStrikeThroughExtension.php
index a8ccfc4f9..ee4e93397 100644
--- a/app/Entities/Tools/Markdown/CustomStrikeThroughExtension.php
+++ b/app/Entities/Tools/Markdown/CustomStrikeThroughExtension.php
@@ -2,16 +2,16 @@
 
 namespace BookStack\Entities\Tools\Markdown;
 
-use League\CommonMark\ConfigurableEnvironmentInterface;
+use League\CommonMark\Environment\EnvironmentBuilderInterface;
 use League\CommonMark\Extension\ExtensionInterface;
 use League\CommonMark\Extension\Strikethrough\Strikethrough;
 use League\CommonMark\Extension\Strikethrough\StrikethroughDelimiterProcessor;
 
 class CustomStrikeThroughExtension implements ExtensionInterface
 {
-    public function register(ConfigurableEnvironmentInterface $environment)
+    public function register(EnvironmentBuilderInterface $environment): void
     {
         $environment->addDelimiterProcessor(new StrikethroughDelimiterProcessor());
-        $environment->addInlineRenderer(Strikethrough::class, new CustomStrikethroughRenderer());
+        $environment->addRenderer(Strikethrough::class, new CustomStrikethroughRenderer());
     }
 }
diff --git a/app/Entities/Tools/Markdown/CustomStrikethroughRenderer.php b/app/Entities/Tools/Markdown/CustomStrikethroughRenderer.php
index ca9f434af..01b09377b 100644
--- a/app/Entities/Tools/Markdown/CustomStrikethroughRenderer.php
+++ b/app/Entities/Tools/Markdown/CustomStrikethroughRenderer.php
@@ -2,25 +2,23 @@
 
 namespace BookStack\Entities\Tools\Markdown;
 
-use League\CommonMark\ElementRendererInterface;
 use League\CommonMark\Extension\Strikethrough\Strikethrough;
-use League\CommonMark\HtmlElement;
-use League\CommonMark\Inline\Element\AbstractInline;
-use League\CommonMark\Inline\Renderer\InlineRendererInterface;
+use League\CommonMark\Node\Node;
+use League\CommonMark\Renderer\ChildNodeRendererInterface;
+use League\CommonMark\Renderer\NodeRendererInterface;
+use League\CommonMark\Util\HtmlElement;
 
 /**
  * This is a somewhat clone of the League\CommonMark\Extension\Strikethrough\StrikethroughRender
  * class but modified slightly to use <s> HTML tags instead of <del> in order to
  * match front-end markdown-it rendering.
  */
-class CustomStrikethroughRenderer implements InlineRendererInterface
+class CustomStrikethroughRenderer implements NodeRendererInterface
 {
-    public function render(AbstractInline $inline, ElementRendererInterface $htmlRenderer)
+    public function render(Node $node, ChildNodeRendererInterface $childRenderer)
     {
-        if (!($inline instanceof Strikethrough)) {
-            throw new \InvalidArgumentException('Incompatible inline type: ' . get_class($inline));
-        }
+        Strikethrough::assertInstanceOf($node);
 
-        return new HtmlElement('s', $inline->getData('attributes', []), $htmlRenderer->renderInlines($inline->children()));
+        return new HtmlElement('s', $node->data->get('attributes'), $childRenderer->renderNodes($node->children()));
     }
 }
diff --git a/app/Entities/Tools/Markdown/MarkdownToHtml.php b/app/Entities/Tools/Markdown/MarkdownToHtml.php
index 06587ce1f..0cee9d9a3 100644
--- a/app/Entities/Tools/Markdown/MarkdownToHtml.php
+++ b/app/Entities/Tools/Markdown/MarkdownToHtml.php
@@ -4,8 +4,9 @@ namespace BookStack\Entities\Tools\Markdown;
 
 use BookStack\Facades\Theme;
 use BookStack\Theming\ThemeEvents;
-use League\CommonMark\Block\Element\ListItem;
-use League\CommonMark\Environment;
+use League\CommonMark\Environment\Environment;
+use League\CommonMark\Extension\CommonMark\CommonMarkCoreExtension;
+use League\CommonMark\Extension\CommonMark\Node\Block\ListItem;
 use League\CommonMark\Extension\Table\TableExtension;
 use League\CommonMark\Extension\TaskList\TaskListExtension;
 use League\CommonMark\MarkdownConverter;
@@ -21,15 +22,16 @@ class MarkdownToHtml
 
     public function convert(): string
     {
-        $environment = Environment::createCommonMarkEnvironment();
+        $environment = new Environment();
+        $environment->addExtension(new CommonMarkCoreExtension());
         $environment->addExtension(new TableExtension());
         $environment->addExtension(new TaskListExtension());
         $environment->addExtension(new CustomStrikeThroughExtension());
         $environment = Theme::dispatch(ThemeEvents::COMMONMARK_ENVIRONMENT_CONFIGURE, $environment) ?? $environment;
         $converter = new MarkdownConverter($environment);
 
-        $environment->addBlockRenderer(ListItem::class, new CustomListItemRenderer(), 10);
+        $environment->addRenderer(ListItem::class, new CustomListItemRenderer(), 10);
 
-        return $converter->convertToHtml($this->markdown);
+        return $converter->convert($this->markdown)->getContent();
     }
 }
diff --git a/app/Exceptions/WhoopsBookStackPrettyHandler.php b/app/Exceptions/BookStackExceptionHandlerPage.php
similarity index 62%
rename from app/Exceptions/WhoopsBookStackPrettyHandler.php
rename to app/Exceptions/BookStackExceptionHandlerPage.php
index dcf50fa8e..78f586ad0 100644
--- a/app/Exceptions/WhoopsBookStackPrettyHandler.php
+++ b/app/Exceptions/BookStackExceptionHandlerPage.php
@@ -2,25 +2,18 @@
 
 namespace BookStack\Exceptions;
 
-use Whoops\Handler\Handler;
+use Illuminate\Contracts\Foundation\ExceptionRenderer;
 
-class WhoopsBookStackPrettyHandler extends Handler
+class BookStackExceptionHandlerPage implements ExceptionRenderer
 {
-    /**
-     * @return int|null A handler may return nothing, or a Handler::HANDLE_* constant
-     */
-    public function handle()
+    public function render($throwable)
     {
-        $exception = $this->getException();
-
-        echo view('errors.debug', [
-            'error'       => $exception->getMessage(),
-            'errorClass'  => get_class($exception),
-            'trace'       => $exception->getTraceAsString(),
+        return view('errors.debug', [
+            'error'       => $throwable->getMessage(),
+            'errorClass'  => get_class($throwable),
+            'trace'       => $throwable->getTraceAsString(),
             'environment' => $this->getEnvironment(),
         ])->render();
-
-        return Handler::QUIT;
     }
 
     protected function safeReturn(callable $callback, $default = null)
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index 187664f9e..f2672cf57 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -17,7 +17,7 @@ class Handler extends ExceptionHandler
     /**
      * A list of the exception types that are not reported.
      *
-     * @var array
+     * @var array<int, class-string<\Throwable>>
      */
     protected $dontReport = [
         NotFoundException::class,
@@ -25,9 +25,9 @@ class Handler extends ExceptionHandler
     ];
 
     /**
-     * A list of the inputs that are never flashed for validation exceptions.
+     * A list of the inputs that are never flashed to the session on validation exceptions.
      *
-     * @var array
+     * @var array<int, string>
      */
     protected $dontFlash = [
         'current_password',
@@ -98,6 +98,7 @@ class Handler extends ExceptionHandler
         ];
 
         if ($e instanceof ValidationException) {
+            $responseData['error']['message'] = 'The given data was invalid.';
             $responseData['error']['validation'] = $e->errors();
             $code = $e->status;
         }
diff --git a/app/Http/Request.php b/app/Http/Request.php
index 4cbdf34ba..c2d430279 100644
--- a/app/Http/Request.php
+++ b/app/Http/Request.php
@@ -9,10 +9,8 @@ class Request extends LaravelRequest
     /**
      * Override the default request methods to get the scheme and host
      * to directly use the custom APP_URL, if set.
-     *
-     * @return string
      */
-    public function getSchemeAndHttpHost()
+    public function getSchemeAndHttpHost(): string
     {
         $appUrl = config('app.url', null);
 
@@ -27,10 +25,8 @@ class Request extends LaravelRequest
      * Override the default request methods to get the base URL
      * to directly use the custom APP_URL, if set.
      * The base URL never ends with a / but should start with one if not empty.
-     *
-     * @return string
      */
-    public function getBaseUrl()
+    public function getBaseUrl(): string
     {
         $appUrl = config('app.url', null);
 
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index d0841059b..5d36d2c46 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -8,16 +8,16 @@ use BookStack\Entities\Models\Book;
 use BookStack\Entities\Models\Bookshelf;
 use BookStack\Entities\Models\Chapter;
 use BookStack\Entities\Models\Page;
-use BookStack\Exceptions\WhoopsBookStackPrettyHandler;
+use BookStack\Exceptions\BookStackExceptionHandlerPage;
 use BookStack\Settings\SettingService;
 use BookStack\Util\CspService;
 use GuzzleHttp\Client;
+use Illuminate\Contracts\Foundation\ExceptionRenderer;
 use Illuminate\Database\Eloquent\Relations\Relation;
 use Illuminate\Support\Facades\Schema;
 use Illuminate\Support\Facades\URL;
 use Illuminate\Support\ServiceProvider;
 use Psr\Http\Client\ClientInterface as HttpClientInterface;
-use Whoops\Handler\HandlerInterface;
 
 class AppServiceProvider extends ServiceProvider
 {
@@ -26,7 +26,7 @@ class AppServiceProvider extends ServiceProvider
      * @var string[]
      */
     public $bindings = [
-        HandlerInterface::class => WhoopsBookStackPrettyHandler::class,
+        ExceptionRenderer::class => BookStackExceptionHandlerPage::class,
     ];
 
     /**
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index 0edc7f09c..97212e1ea 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -24,11 +24,22 @@ class EventServiceProvider extends ServiceProvider
     ];
 
     /**
-     * Register any other events for your application.
+     * Register any events for your application.
      *
      * @return void
      */
     public function boot()
     {
+        //
+    }
+
+    /**
+     * Determine if events and listeners should be automatically discovered.
+     *
+     * @return bool
+     */
+    public function shouldDiscoverEvents()
+    {
+        return false;
     }
 }
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index 415ec6626..552a41322 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -77,7 +77,7 @@ class RouteServiceProvider extends ServiceProvider
     protected function configureRateLimiting()
     {
         RateLimiter::for('api', function (Request $request) {
-            return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip());
+            return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
         });
     }
 }
diff --git a/app/Theming/ThemeEvents.php b/app/Theming/ThemeEvents.php
index 0a8efaee4..91f4fcd67 100644
--- a/app/Theming/ThemeEvents.php
+++ b/app/Theming/ThemeEvents.php
@@ -65,8 +65,8 @@ class ThemeEvents
      * Provides the commonmark library environment for customization before it's used to render markdown content.
      * If the listener returns a non-null value, that will be used as an environment instead.
      *
-     * @param \League\CommonMark\ConfigurableEnvironmentInterface $environment
-     * @returns \League\CommonMark\ConfigurableEnvironmentInterface|null
+     * @param \League\CommonMark\Environment\Environment $environment
+     * @returns \League\CommonMark\Environment\Environment|null
      */
     const COMMONMARK_ENVIRONMENT_CONFIGURE = 'commonmark_environment_configure';
 
diff --git a/app/Uploads/AttachmentService.php b/app/Uploads/AttachmentService.php
index 88bb41efb..ddabec09f 100644
--- a/app/Uploads/AttachmentService.php
+++ b/app/Uploads/AttachmentService.php
@@ -9,7 +9,7 @@ use Illuminate\Contracts\Filesystem\Filesystem as Storage;
 use Illuminate\Filesystem\FilesystemManager;
 use Illuminate\Support\Facades\Log;
 use Illuminate\Support\Str;
-use League\Flysystem\Util;
+use League\Flysystem\WhitespacePathNormalizer;
 use Symfony\Component\HttpFoundation\File\UploadedFile;
 
 class AttachmentService
@@ -54,7 +54,7 @@ class AttachmentService
      */
     protected function adjustPathForStorageDisk(string $path): string
     {
-        $path = Util::normalizePath(str_replace('uploads/files/', '', $path));
+        $path = (new WhitespacePathNormalizer())->normalizePath(str_replace('uploads/files/', '', $path));
 
         if ($this->getStorageDiskName() === 'local_secure_attachments') {
             return $path;
diff --git a/app/Uploads/ImageService.php b/app/Uploads/ImageService.php
index 55c327e7a..1d04582c0 100644
--- a/app/Uploads/ImageService.php
+++ b/app/Uploads/ImageService.php
@@ -20,7 +20,7 @@ use Illuminate\Support\Str;
 use Intervention\Image\Exception\NotSupportedException;
 use Intervention\Image\Image as InterventionImage;
 use Intervention\Image\ImageManager;
-use League\Flysystem\Util;
+use League\Flysystem\WhitespacePathNormalizer;
 use Psr\SimpleCache\InvalidArgumentException;
 use Symfony\Component\HttpFoundation\File\UploadedFile;
 use Symfony\Component\HttpFoundation\StreamedResponse;
@@ -29,10 +29,9 @@ class ImageService
 {
     protected ImageManager $imageTool;
     protected Cache $cache;
-    protected $storageUrl;
     protected FilesystemManager $fileSystem;
 
-    protected static $supportedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
+    protected static array $supportedExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
 
     public function __construct(ImageManager $imageTool, FilesystemManager $fileSystem, Cache $cache)
     {
@@ -73,7 +72,7 @@ class ImageService
      */
     protected function adjustPathForStorageDisk(string $path, string $imageType = ''): string
     {
-        $path = Util::normalizePath(str_replace('uploads/images/', '', $path));
+        $path = (new WhitespacePathNormalizer())->normalizePath(str_replace('uploads/images/', '', $path));
 
         if ($this->usingSecureImages($imageType)) {
             return $path;
@@ -548,7 +547,7 @@ class ImageService
             // Check the image file exists
             && $disk->exists($imagePath)
             // Check the file is likely an image file
-            && strpos($disk->getMimetype($imagePath), 'image/') === 0;
+            && strpos($disk->mimeType($imagePath), 'image/') === 0;
     }
 
     /**
@@ -661,25 +660,21 @@ class ImageService
      */
     private function getPublicUrl(string $filePath): string
     {
-        if (is_null($this->storageUrl)) {
-            $storageUrl = config('filesystems.url');
+        $storageUrl = config('filesystems.url');
 
-            // Get the standard public s3 url if s3 is set as storage type
-            // Uses the nice, short URL if bucket name has no periods in otherwise the longer
-            // region-based url will be used to prevent http issues.
-            if ($storageUrl == false && config('filesystems.images') === 's3') {
-                $storageDetails = config('filesystems.disks.s3');
-                if (strpos($storageDetails['bucket'], '.') === false) {
-                    $storageUrl = 'https://' . $storageDetails['bucket'] . '.s3.amazonaws.com';
-                } else {
-                    $storageUrl = 'https://s3-' . $storageDetails['region'] . '.amazonaws.com/' . $storageDetails['bucket'];
-                }
+        // Get the standard public s3 url if s3 is set as storage type
+        // Uses the nice, short URL if bucket name has no periods in otherwise the longer
+        // region-based url will be used to prevent http issues.
+        if (!$storageUrl && config('filesystems.images') === 's3') {
+            $storageDetails = config('filesystems.disks.s3');
+            if (strpos($storageDetails['bucket'], '.') === false) {
+                $storageUrl = 'https://' . $storageDetails['bucket'] . '.s3.amazonaws.com';
+            } else {
+                $storageUrl = 'https://s3-' . $storageDetails['region'] . '.amazonaws.com/' . $storageDetails['bucket'];
             }
-
-            $this->storageUrl = $storageUrl;
         }
 
-        $basePath = ($this->storageUrl == false) ? url('/') : $this->storageUrl;
+        $basePath = $storageUrl ?: url('/');
 
         return rtrim($basePath, '/') . $filePath;
     }
diff --git a/app/Util/LanguageManager.php b/app/Util/LanguageManager.php
index ed68f647c..0cbf3f397 100644
--- a/app/Util/LanguageManager.php
+++ b/app/Util/LanguageManager.php
@@ -130,7 +130,7 @@ class LanguageManager
         ]);
 
         if (!empty($locales)) {
-            setlocale(LC_TIME, ...$locales);
+            setlocale(LC_TIME, $locales[0], ...array_slice($locales, 1));
         }
     }
 }
diff --git a/composer.json b/composer.json
index 59c96ba29..b1ac1789b 100644
--- a/composer.json
+++ b/composer.json
@@ -8,7 +8,7 @@
     "license": "MIT",
     "type": "project",
     "require": {
-        "php": "^7.4|^8.0",
+        "php": "^8.0.2",
         "ext-curl": "*",
         "ext-dom": "*",
         "ext-fileinfo": "*",
@@ -19,36 +19,34 @@
         "bacon/bacon-qr-code": "^2.0",
         "barryvdh/laravel-dompdf": "^2.0",
         "barryvdh/laravel-snappy": "^1.0",
-        "doctrine/dbal": "^3.1",
-        "filp/whoops": "^2.14",
+        "doctrine/dbal": "^3.5",
         "guzzlehttp/guzzle": "^7.4",
         "intervention/image": "^2.7",
-        "laravel/framework": "^8.68",
+        "laravel/framework": "^9.0",
         "laravel/socialite": "^5.2",
         "laravel/tinker": "^2.6",
-        "league/commonmark": "^1.6",
-        "league/flysystem-aws-s3-v3": "^1.0.29",
+        "league/commonmark": "^2.3",
+        "league/flysystem-aws-s3-v3": "^3.0",
         "league/html-to-markdown": "^5.0.0",
         "league/oauth2-client": "^2.6",
         "onelogin/php-saml": "^4.0",
-        "phpseclib/phpseclib": "~3.0",
+        "phpseclib/phpseclib": "^3.0",
         "pragmarx/google2fa": "^8.0",
-        "predis/predis": "^1.1",
+        "predis/predis": "^2.1",
         "socialiteproviders/discord": "^4.1",
         "socialiteproviders/gitlab": "^4.1",
-        "socialiteproviders/microsoft-azure": "^5.0.1",
-        "socialiteproviders/okta": "^4.1",
+        "socialiteproviders/microsoft-azure": "^5.1",
+        "socialiteproviders/okta": "^4.2",
         "socialiteproviders/slack": "^4.1",
         "socialiteproviders/twitch": "^5.3",
         "ssddanbrown/htmldiff": "^1.0.2"
     },
     "require-dev": {
-        "brianium/paratest": "^6.6",
-        "fakerphp/faker": "^1.16",
+        "fakerphp/faker": "^1.21",
         "itsgoingd/clockwork": "^5.1",
-        "mockery/mockery": "^1.4",
-        "nunomaduro/collision": "^5.10",
-        "nunomaduro/larastan": "^1.0",
+        "mockery/mockery": "^1.5",
+        "nunomaduro/collision": "^6.4",
+        "nunomaduro/larastan": "^2.4",
         "phpunit/phpunit": "^9.5",
         "squizlabs/php_codesniffer": "^3.7",
         "ssddanbrown/asserthtml": "^1.0"
@@ -73,7 +71,6 @@
         "format": "phpcbf",
         "lint": "phpcs",
         "test": "phpunit",
-        "t": "@php artisan test --parallel",
         "t-reset": "@php artisan test --recreate-databases",
         "post-autoload-dump": [
             "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
@@ -102,7 +99,7 @@
         "preferred-install": "dist",
         "sort-packages": true,
         "platform": {
-            "php": "7.4.0"
+            "php": "8.0.2"
         }
     },
     "extra": {
@@ -110,6 +107,6 @@
             "dont-discover": []
         }
     },
-    "minimum-stability": "dev",
+    "minimum-stability": "stable",
     "prefer-stable": true
 }
diff --git a/composer.lock b/composer.lock
index 7496ac907..88753a309 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,27 +4,27 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "1fed6278d440ef18af1ffa6ca7b29166",
+    "content-hash": "64276cbeb1f79f4c94992cc739807d72",
     "packages": [
         {
             "name": "aws/aws-crt-php",
-            "version": "v1.0.2",
+            "version": "v1.0.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/awslabs/aws-crt-php.git",
-                "reference": "3942776a8c99209908ee0b287746263725685732"
+                "reference": "f5c64ee7c5fce196e2519b3d9b7138649efe032d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/3942776a8c99209908ee0b287746263725685732",
-                "reference": "3942776a8c99209908ee0b287746263725685732",
+                "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/f5c64ee7c5fce196e2519b3d9b7138649efe032d",
+                "reference": "f5c64ee7c5fce196e2519b3d9b7138649efe032d",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.5"
             },
             "require-dev": {
-                "phpunit/phpunit": "^4.8.35|^5.4.3"
+                "phpunit/phpunit": "^4.8.35|^5.6.3"
             },
             "type": "library",
             "autoload": {
@@ -52,26 +52,26 @@
             ],
             "support": {
                 "issues": "https://github.com/awslabs/aws-crt-php/issues",
-                "source": "https://github.com/awslabs/aws-crt-php/tree/v1.0.2"
+                "source": "https://github.com/awslabs/aws-crt-php/tree/v1.0.4"
             },
-            "time": "2021-09-03T22:57:30+00:00"
+            "time": "2023-01-31T23:08:25+00:00"
         },
         {
             "name": "aws/aws-sdk-php",
-            "version": "3.258.1",
+            "version": "3.258.4",
             "source": {
                 "type": "git",
                 "url": "https://github.com/aws/aws-sdk-php.git",
-                "reference": "7d7c4f89d2d0bd77c36cb8f3c8cd20b5aa8c0e6d"
+                "reference": "c20d674f502ed96ed0de63e9da087eb5f0e95590"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/7d7c4f89d2d0bd77c36cb8f3c8cd20b5aa8c0e6d",
-                "reference": "7d7c4f89d2d0bd77c36cb8f3c8cd20b5aa8c0e6d",
+                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c20d674f502ed96ed0de63e9da087eb5f0e95590",
+                "reference": "c20d674f502ed96ed0de63e9da087eb5f0e95590",
                 "shasum": ""
             },
             "require": {
-                "aws/aws-crt-php": "^1.0.2",
+                "aws/aws-crt-php": "^1.0.4",
                 "ext-json": "*",
                 "ext-pcre": "*",
                 "ext-simplexml": "*",
@@ -146,9 +146,9 @@
             "support": {
                 "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
                 "issues": "https://github.com/aws/aws-sdk-php/issues",
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.258.1"
+                "source": "https://github.com/aws/aws-sdk-php/tree/3.258.4"
             },
-            "time": "2023-02-01T19:22:26+00:00"
+            "time": "2023-02-06T19:28:40+00:00"
         },
         {
             "name": "bacon/bacon-qr-code",
@@ -283,26 +283,26 @@
         },
         {
             "name": "barryvdh/laravel-snappy",
-            "version": "v1.0.0",
+            "version": "v1.0.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/barryvdh/laravel-snappy.git",
-                "reference": "2c18a3602981bc6f25b32908cf8aaa05952ab2f7"
+                "reference": "283d9c908e4d63b328edea0ed841bc492b3b73fa"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/barryvdh/laravel-snappy/zipball/2c18a3602981bc6f25b32908cf8aaa05952ab2f7",
-                "reference": "2c18a3602981bc6f25b32908cf8aaa05952ab2f7",
+                "url": "https://api.github.com/repos/barryvdh/laravel-snappy/zipball/283d9c908e4d63b328edea0ed841bc492b3b73fa",
+                "reference": "283d9c908e4d63b328edea0ed841bc492b3b73fa",
                 "shasum": ""
             },
             "require": {
-                "illuminate/filesystem": "^6|^7|^8|^9",
-                "illuminate/support": "^6|^7|^8|^9",
-                "knplabs/knp-snappy": "^1",
+                "illuminate/filesystem": "^9|^10",
+                "illuminate/support": "^9|^10",
+                "knplabs/knp-snappy": "^1.4",
                 "php": ">=7.2"
             },
             "require-dev": {
-                "orchestra/testbench": "^4|^5|^6|^7"
+                "orchestra/testbench": "^7|^8"
             },
             "type": "library",
             "extra": {
@@ -345,7 +345,7 @@
             ],
             "support": {
                 "issues": "https://github.com/barryvdh/laravel-snappy/issues",
-                "source": "https://github.com/barryvdh/laravel-snappy/tree/v1.0.0"
+                "source": "https://github.com/barryvdh/laravel-snappy/tree/v1.0.1"
             },
             "funding": [
                 {
@@ -357,30 +357,30 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-01-29T19:36:49+00:00"
+            "time": "2023-02-05T15:10:01+00:00"
         },
         {
             "name": "brick/math",
-            "version": "0.9.3",
+            "version": "0.10.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/brick/math.git",
-                "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
+                "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
-                "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
+                "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f",
+                "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f",
                 "shasum": ""
             },
             "require": {
                 "ext-json": "*",
-                "php": "^7.1 || ^8.0"
+                "php": "^7.4 || ^8.0"
             },
             "require-dev": {
                 "php-coveralls/php-coveralls": "^2.2",
-                "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
-                "vimeo/psalm": "4.9.2"
+                "phpunit/phpunit": "^9.0",
+                "vimeo/psalm": "4.25.0"
             },
             "type": "library",
             "autoload": {
@@ -405,19 +405,15 @@
             ],
             "support": {
                 "issues": "https://github.com/brick/math/issues",
-                "source": "https://github.com/brick/math/tree/0.9.3"
+                "source": "https://github.com/brick/math/tree/0.10.2"
             },
             "funding": [
                 {
                     "url": "https://github.com/BenMorel",
                     "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/brick/math",
-                    "type": "tidelift"
                 }
             ],
-            "time": "2021-08-15T20:50:18+00:00"
+            "time": "2022-08-10T22:54:19+00:00"
         },
         {
             "name": "dasprid/enum",
@@ -466,6 +462,81 @@
             },
             "time": "2020-10-02T16:03:48+00:00"
         },
+        {
+            "name": "dflydev/dot-access-data",
+            "version": "v3.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
+                "reference": "f41715465d65213d644d3141a6a93081be5d3549"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
+                "reference": "f41715465d65213d644d3141a6a93081be5d3549",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "require-dev": {
+                "phpstan/phpstan": "^0.12.42",
+                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
+                "scrutinizer/ocular": "1.6.0",
+                "squizlabs/php_codesniffer": "^3.5",
+                "vimeo/psalm": "^4.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Dflydev\\DotAccessData\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Dragonfly Development Inc.",
+                    "email": "info@dflydev.com",
+                    "homepage": "http://dflydev.com"
+                },
+                {
+                    "name": "Beau Simensen",
+                    "email": "beau@dflydev.com",
+                    "homepage": "http://beausimensen.com"
+                },
+                {
+                    "name": "Carlos Frutos",
+                    "email": "carlos@kiwing.it",
+                    "homepage": "https://github.com/cfrutos"
+                },
+                {
+                    "name": "Colin O'Dell",
+                    "email": "colinodell@gmail.com",
+                    "homepage": "https://www.colinodell.com"
+                }
+            ],
+            "description": "Given a deep data structure, access data by dot notation.",
+            "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
+            "keywords": [
+                "access",
+                "data",
+                "dot",
+                "notation"
+            ],
+            "support": {
+                "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
+                "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
+            },
+            "time": "2022-10-27T11:44:00+00:00"
+        },
         {
             "name": "doctrine/cache",
             "version": "2.2.0",
@@ -898,31 +969,33 @@
         },
         {
             "name": "doctrine/lexer",
-            "version": "1.2.3",
+            "version": "2.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/doctrine/lexer.git",
-                "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
+                "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
-                "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+                "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
+                "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
                 "shasum": ""
             },
             "require": {
+                "doctrine/deprecations": "^1.0",
                 "php": "^7.1 || ^8.0"
             },
             "require-dev": {
-                "doctrine/coding-standard": "^9.0",
+                "doctrine/coding-standard": "^9 || ^10",
                 "phpstan/phpstan": "^1.3",
                 "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
-                "vimeo/psalm": "^4.11"
+                "psalm/plugin-phpunit": "^0.18.3",
+                "vimeo/psalm": "^4.11 || ^5.0"
             },
             "type": "library",
             "autoload": {
                 "psr-4": {
-                    "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+                    "Doctrine\\Common\\Lexer\\": "src"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -954,7 +1027,7 @@
             ],
             "support": {
                 "issues": "https://github.com/doctrine/lexer/issues",
-                "source": "https://github.com/doctrine/lexer/tree/1.2.3"
+                "source": "https://github.com/doctrine/lexer/tree/2.1.0"
             },
             "funding": [
                 {
@@ -970,7 +1043,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-02-28T11:07:21+00:00"
+            "time": "2022-12-14T08:49:07+00:00"
         },
         {
             "name": "dompdf/dompdf",
@@ -1097,27 +1170,26 @@
         },
         {
             "name": "egulias/email-validator",
-            "version": "2.1.25",
+            "version": "3.2.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/egulias/EmailValidator.git",
-                "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4"
+                "reference": "b531a2311709443320c786feb4519cfaf94af796"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4",
-                "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4",
+                "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b531a2311709443320c786feb4519cfaf94af796",
+                "reference": "b531a2311709443320c786feb4519cfaf94af796",
                 "shasum": ""
             },
             "require": {
-                "doctrine/lexer": "^1.0.1",
-                "php": ">=5.5",
-                "symfony/polyfill-intl-idn": "^1.10"
+                "doctrine/lexer": "^1.2|^2",
+                "php": ">=7.2",
+                "symfony/polyfill-intl-idn": "^1.15"
             },
             "require-dev": {
-                "dominicsayers/isemail": "^3.0.7",
-                "phpunit/phpunit": "^4.8.36|^7.5.15",
-                "satooshi/php-coveralls": "^1.0.1"
+                "phpunit/phpunit": "^8.5.8|^9.3.3",
+                "vimeo/psalm": "^4"
             },
             "suggest": {
                 "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
@@ -1125,7 +1197,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.1.x-dev"
+                    "dev-master": "3.0.x-dev"
                 }
             },
             "autoload": {
@@ -1153,7 +1225,7 @@
             ],
             "support": {
                 "issues": "https://github.com/egulias/EmailValidator/issues",
-                "source": "https://github.com/egulias/EmailValidator/tree/2.1.25"
+                "source": "https://github.com/egulias/EmailValidator/tree/3.2.5"
             },
             "funding": [
                 {
@@ -1161,44 +1233,40 @@
                     "type": "github"
                 }
             ],
-            "time": "2020-12-29T14:50:06+00:00"
+            "time": "2023-01-02T17:26:14+00:00"
         },
         {
-            "name": "filp/whoops",
-            "version": "2.14.6",
+            "name": "fruitcake/php-cors",
+            "version": "v1.2.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/filp/whoops.git",
-                "reference": "f7948baaa0330277c729714910336383286305da"
+                "url": "https://github.com/fruitcake/php-cors.git",
+                "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da",
-                "reference": "f7948baaa0330277c729714910336383286305da",
+                "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e",
+                "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e",
                 "shasum": ""
             },
             "require": {
-                "php": "^5.5.9 || ^7.0 || ^8.0",
-                "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+                "php": "^7.4|^8.0",
+                "symfony/http-foundation": "^4.4|^5.4|^6"
             },
             "require-dev": {
-                "mockery/mockery": "^0.9 || ^1.0",
-                "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
-                "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
-            },
-            "suggest": {
-                "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
-                "whoops/soap": "Formats errors as SOAP responses"
+                "phpstan/phpstan": "^1.4",
+                "phpunit/phpunit": "^9",
+                "squizlabs/php_codesniffer": "^3.5"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "2.7-dev"
+                    "dev-main": "1.1-dev"
                 }
             },
             "autoload": {
                 "psr-4": {
-                    "Whoops\\": "src/Whoops/"
+                    "Fruitcake\\Cors\\": "src/"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -1207,32 +1275,36 @@
             ],
             "authors": [
                 {
-                    "name": "Filipe Dobreira",
-                    "homepage": "https://github.com/filp",
-                    "role": "Developer"
+                    "name": "Fruitcake",
+                    "homepage": "https://fruitcake.nl"
+                },
+                {
+                    "name": "Barryvdh",
+                    "email": "barryvdh@gmail.com"
                 }
             ],
-            "description": "php error handling for cool kids",
-            "homepage": "https://filp.github.io/whoops/",
+            "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
+            "homepage": "https://github.com/fruitcake/php-cors",
             "keywords": [
-                "error",
-                "exception",
-                "handling",
-                "library",
-                "throwable",
-                "whoops"
+                "cors",
+                "laravel",
+                "symfony"
             ],
             "support": {
-                "issues": "https://github.com/filp/whoops/issues",
-                "source": "https://github.com/filp/whoops/tree/2.14.6"
+                "issues": "https://github.com/fruitcake/php-cors/issues",
+                "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0"
             },
             "funding": [
                 {
-                    "url": "https://github.com/denis-sokolov",
+                    "url": "https://fruitcake.nl",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/barryvdh",
                     "type": "github"
                 }
             ],
-            "time": "2022-11-02T16:23:29+00:00"
+            "time": "2022-02-20T15:07:15+00:00"
         },
         {
             "name": "graham-campbell/result-type",
@@ -1787,56 +1859,58 @@
         },
         {
             "name": "laravel/framework",
-            "version": "v8.83.27",
+            "version": "v9.50.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/laravel/framework.git",
-                "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49"
+                "reference": "39932773c09658ddea9045958f305e67f9304995"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/laravel/framework/zipball/e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49",
-                "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49",
+                "url": "https://api.github.com/repos/laravel/framework/zipball/39932773c09658ddea9045958f305e67f9304995",
+                "reference": "39932773c09658ddea9045958f305e67f9304995",
                 "shasum": ""
             },
             "require": {
-                "doctrine/inflector": "^1.4|^2.0",
-                "dragonmantank/cron-expression": "^3.0.2",
-                "egulias/email-validator": "^2.1.10",
-                "ext-json": "*",
+                "brick/math": "^0.9.3|^0.10.2|^0.11",
+                "doctrine/inflector": "^2.0.5",
+                "dragonmantank/cron-expression": "^3.3.2",
+                "egulias/email-validator": "^3.2.1|^4.0",
                 "ext-mbstring": "*",
                 "ext-openssl": "*",
-                "laravel/serializable-closure": "^1.0",
-                "league/commonmark": "^1.3|^2.0.2",
-                "league/flysystem": "^1.1",
+                "fruitcake/php-cors": "^1.2",
+                "laravel/serializable-closure": "^1.2.2",
+                "league/commonmark": "^2.2.1",
+                "league/flysystem": "^3.8.0",
                 "monolog/monolog": "^2.0",
-                "nesbot/carbon": "^2.53.1",
-                "opis/closure": "^3.6",
-                "php": "^7.3|^8.0",
-                "psr/container": "^1.0",
-                "psr/log": "^1.0|^2.0",
-                "psr/simple-cache": "^1.0",
-                "ramsey/uuid": "^4.2.2",
-                "swiftmailer/swiftmailer": "^6.3",
-                "symfony/console": "^5.4",
-                "symfony/error-handler": "^5.4",
-                "symfony/finder": "^5.4",
-                "symfony/http-foundation": "^5.4",
-                "symfony/http-kernel": "^5.4",
-                "symfony/mime": "^5.4",
-                "symfony/process": "^5.4",
-                "symfony/routing": "^5.4",
-                "symfony/var-dumper": "^5.4",
-                "tijsverkoyen/css-to-inline-styles": "^2.2.2",
+                "nesbot/carbon": "^2.62.1",
+                "nunomaduro/termwind": "^1.13",
+                "php": "^8.0.2",
+                "psr/container": "^1.1.1|^2.0.1",
+                "psr/log": "^1.0|^2.0|^3.0",
+                "psr/simple-cache": "^1.0|^2.0|^3.0",
+                "ramsey/uuid": "^4.7",
+                "symfony/console": "^6.0.9",
+                "symfony/error-handler": "^6.0",
+                "symfony/finder": "^6.0",
+                "symfony/http-foundation": "^6.0",
+                "symfony/http-kernel": "^6.0",
+                "symfony/mailer": "^6.0",
+                "symfony/mime": "^6.0",
+                "symfony/process": "^6.0",
+                "symfony/routing": "^6.0",
+                "symfony/uid": "^6.0",
+                "symfony/var-dumper": "^6.0",
+                "tijsverkoyen/css-to-inline-styles": "^2.2.5",
                 "vlucas/phpdotenv": "^5.4.1",
-                "voku/portable-ascii": "^1.6.1"
+                "voku/portable-ascii": "^2.0"
             },
             "conflict": {
                 "tightenco/collect": "<5.5.33"
             },
             "provide": {
-                "psr/container-implementation": "1.0",
-                "psr/simple-cache-implementation": "1.0"
+                "psr/container-implementation": "1.1|2.0",
+                "psr/simple-cache-implementation": "1.0|2.0|3.0"
             },
             "replace": {
                 "illuminate/auth": "self.version",
@@ -1844,6 +1918,7 @@
                 "illuminate/bus": "self.version",
                 "illuminate/cache": "self.version",
                 "illuminate/collections": "self.version",
+                "illuminate/conditionable": "self.version",
                 "illuminate/config": "self.version",
                 "illuminate/console": "self.version",
                 "illuminate/container": "self.version",
@@ -1872,24 +1947,31 @@
                 "illuminate/view": "self.version"
             },
             "require-dev": {
-                "aws/aws-sdk-php": "^3.198.1",
+                "ably/ably-php": "^1.0",
+                "aws/aws-sdk-php": "^3.235.5",
                 "doctrine/dbal": "^2.13.3|^3.1.4",
-                "filp/whoops": "^2.14.3",
-                "guzzlehttp/guzzle": "^6.5.5|^7.0.1",
-                "league/flysystem-cached-adapter": "^1.0",
-                "mockery/mockery": "^1.4.4",
-                "orchestra/testbench-core": "^6.27",
+                "fakerphp/faker": "^1.21",
+                "guzzlehttp/guzzle": "^7.5",
+                "league/flysystem-aws-s3-v3": "^3.0",
+                "league/flysystem-ftp": "^3.0",
+                "league/flysystem-path-prefixing": "^3.3",
+                "league/flysystem-read-only": "^3.3",
+                "league/flysystem-sftp-v3": "^3.0",
+                "mockery/mockery": "^1.5.1",
+                "orchestra/testbench-core": "^7.16",
                 "pda/pheanstalk": "^4.0",
-                "phpunit/phpunit": "^8.5.19|^9.5.8",
-                "predis/predis": "^1.1.9",
-                "symfony/cache": "^5.4"
+                "phpstan/phpdoc-parser": "^1.15",
+                "phpstan/phpstan": "^1.4.7",
+                "phpunit/phpunit": "^9.5.8",
+                "predis/predis": "^1.1.9|^2.0.2",
+                "symfony/cache": "^6.0",
+                "symfony/http-client": "^6.0"
             },
             "suggest": {
                 "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
-                "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).",
+                "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
                 "brianium/paratest": "Required to run tests in parallel (^6.0).",
                 "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).",
-                "ext-bcmath": "Required to use the multiple_of validation rule.",
                 "ext-ftp": "Required to use the Flysystem FTP driver.",
                 "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
                 "ext-memcached": "Required to use the memcache cache driver.",
@@ -1898,27 +1980,31 @@
                 "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
                 "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
                 "filp/whoops": "Required for friendly error pages in development (^2.14.3).",
-                "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).",
+                "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).",
                 "laravel/tinker": "Required to use the tinker console command (^2.0).",
-                "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
-                "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
-                "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).",
-                "mockery/mockery": "Required to use mocking (^1.4.4).",
+                "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+                "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+                "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
+                "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
+                "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+                "mockery/mockery": "Required to use mocking (^1.5.1).",
                 "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
                 "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
-                "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).",
-                "predis/predis": "Required to use the predis connector (^1.1.9).",
+                "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).",
+                "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).",
                 "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
-                "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).",
-                "symfony/cache": "Required to PSR-6 cache bridge (^5.4).",
-                "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).",
-                "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
-                "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
+                "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
+                "symfony/cache": "Required to PSR-6 cache bridge (^6.0).",
+                "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).",
+                "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).",
+                "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).",
+                "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).",
+                "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "8.x-dev"
+                    "dev-master": "9.x-dev"
                 }
             },
             "autoload": {
@@ -1932,7 +2018,8 @@
                     "Illuminate\\": "src/Illuminate/",
                     "Illuminate\\Support\\": [
                         "src/Illuminate/Macroable/",
-                        "src/Illuminate/Collections/"
+                        "src/Illuminate/Collections/",
+                        "src/Illuminate/Conditionable/"
                     ]
                 }
             },
@@ -1956,7 +2043,7 @@
                 "issues": "https://github.com/laravel/framework/issues",
                 "source": "https://github.com/laravel/framework"
             },
-            "time": "2022-12-08T15:28:55+00:00"
+            "time": "2023-02-02T20:52:46+00:00"
         },
         {
             "name": "laravel/serializable-closure",
@@ -2157,42 +2244,54 @@
         },
         {
             "name": "league/commonmark",
-            "version": "1.6.7",
+            "version": "2.3.8",
             "source": {
                 "type": "git",
                 "url": "https://github.com/thephpleague/commonmark.git",
-                "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b"
+                "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2b8185c13bc9578367a5bf901881d1c1b5bbd09b",
-                "reference": "2b8185c13bc9578367a5bf901881d1c1b5bbd09b",
+                "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c493585c130544c4e91d2e0e131e6d35cb0cbc47",
+                "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47",
                 "shasum": ""
             },
             "require": {
                 "ext-mbstring": "*",
-                "php": "^7.1 || ^8.0"
-            },
-            "conflict": {
-                "scrutinizer/ocular": "1.7.*"
+                "league/config": "^1.1.1",
+                "php": "^7.4 || ^8.0",
+                "psr/event-dispatcher": "^1.0",
+                "symfony/deprecation-contracts": "^2.1 || ^3.0",
+                "symfony/polyfill-php80": "^1.16"
             },
             "require-dev": {
-                "cebe/markdown": "~1.0",
-                "commonmark/commonmark.js": "0.29.2",
-                "erusev/parsedown": "~1.0",
+                "cebe/markdown": "^1.0",
+                "commonmark/cmark": "0.30.0",
+                "commonmark/commonmark.js": "0.30.0",
+                "composer/package-versions-deprecated": "^1.8",
+                "embed/embed": "^4.4",
+                "erusev/parsedown": "^1.0",
                 "ext-json": "*",
                 "github/gfm": "0.29.0",
-                "michelf/php-markdown": "~1.4",
-                "mikehaertl/php-shellcommand": "^1.4",
-                "phpstan/phpstan": "^0.12.90",
-                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2",
-                "scrutinizer/ocular": "^1.5",
-                "symfony/finder": "^4.2"
+                "michelf/php-markdown": "^1.4 || ^2.0",
+                "nyholm/psr7": "^1.5",
+                "phpstan/phpstan": "^1.8.2",
+                "phpunit/phpunit": "^9.5.21",
+                "scrutinizer/ocular": "^1.8.1",
+                "symfony/finder": "^5.3 | ^6.0",
+                "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
+                "unleashedtech/php-coding-standard": "^3.1.1",
+                "vimeo/psalm": "^4.24.0 || ^5.0.0"
+            },
+            "suggest": {
+                "symfony/yaml": "v2.3+ required if using the Front Matter extension"
             },
-            "bin": [
-                "bin/commonmark"
-            ],
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.4-dev"
+                }
+            },
             "autoload": {
                 "psr-4": {
                     "League\\CommonMark\\": "src"
@@ -2210,7 +2309,7 @@
                     "role": "Lead Developer"
                 }
             ],
-            "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)",
+            "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
             "homepage": "https://commonmark.thephpleague.com",
             "keywords": [
                 "commonmark",
@@ -2224,6 +2323,7 @@
             ],
             "support": {
                 "docs": "https://commonmark.thephpleague.com/",
+                "forum": "https://github.com/thephpleague/commonmark/discussions",
                 "issues": "https://github.com/thephpleague/commonmark/issues",
                 "rss": "https://github.com/thephpleague/commonmark/releases.atom",
                 "source": "https://github.com/thephpleague/commonmark"
@@ -2246,58 +2346,135 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-01-13T17:18:13+00:00"
+            "time": "2022-12-10T16:02:17+00:00"
         },
         {
-            "name": "league/flysystem",
-            "version": "1.1.10",
+            "name": "league/config",
+            "version": "v1.2.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/thephpleague/flysystem.git",
-                "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1"
+                "url": "https://github.com/thephpleague/config.git",
+                "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1",
-                "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1",
+                "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+                "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
                 "shasum": ""
             },
             "require": {
-                "ext-fileinfo": "*",
-                "league/mime-type-detection": "^1.3",
-                "php": "^7.2.5 || ^8.0"
-            },
-            "conflict": {
-                "league/flysystem-sftp": "<1.0.6"
+                "dflydev/dot-access-data": "^3.0.1",
+                "nette/schema": "^1.2",
+                "php": "^7.4 || ^8.0"
             },
             "require-dev": {
-                "phpspec/prophecy": "^1.11.1",
-                "phpunit/phpunit": "^8.5.8"
-            },
-            "suggest": {
-                "ext-ftp": "Allows you to use FTP server storage",
-                "ext-openssl": "Allows you to use FTPS server storage",
-                "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
-                "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
-                "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
-                "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
-                "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
-                "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
-                "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
-                "league/flysystem-webdav": "Allows you to use WebDAV storage",
-                "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
-                "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
-                "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
+                "phpstan/phpstan": "^1.8.2",
+                "phpunit/phpunit": "^9.5.5",
+                "scrutinizer/ocular": "^1.8.1",
+                "unleashedtech/php-coding-standard": "^3.1",
+                "vimeo/psalm": "^4.7.3"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.1-dev"
+                    "dev-main": "1.2-dev"
                 }
             },
             "autoload": {
                 "psr-4": {
-                    "League\\Flysystem\\": "src/"
+                    "League\\Config\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Colin O'Dell",
+                    "email": "colinodell@gmail.com",
+                    "homepage": "https://www.colinodell.com",
+                    "role": "Lead Developer"
+                }
+            ],
+            "description": "Define configuration arrays with strict schemas and access values with dot notation",
+            "homepage": "https://config.thephpleague.com",
+            "keywords": [
+                "array",
+                "config",
+                "configuration",
+                "dot",
+                "dot-access",
+                "nested",
+                "schema"
+            ],
+            "support": {
+                "docs": "https://config.thephpleague.com/",
+                "issues": "https://github.com/thephpleague/config/issues",
+                "rss": "https://github.com/thephpleague/config/releases.atom",
+                "source": "https://github.com/thephpleague/config"
+            },
+            "funding": [
+                {
+                    "url": "https://www.colinodell.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.paypal.me/colinpodell/10.00",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/colinodell",
+                    "type": "github"
+                }
+            ],
+            "time": "2022-12-11T20:36:23+00:00"
+        },
+        {
+            "name": "league/flysystem",
+            "version": "3.12.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thephpleague/flysystem.git",
+                "reference": "f6377c709d2275ed6feaf63e44be7a7162b0e77f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f6377c709d2275ed6feaf63e44be7a7162b0e77f",
+                "reference": "f6377c709d2275ed6feaf63e44be7a7162b0e77f",
+                "shasum": ""
+            },
+            "require": {
+                "league/mime-type-detection": "^1.0.0",
+                "php": "^8.0.2"
+            },
+            "conflict": {
+                "aws/aws-sdk-php": "3.209.31 || 3.210.0",
+                "guzzlehttp/guzzle": "<7.0",
+                "guzzlehttp/ringphp": "<1.1.1",
+                "phpseclib/phpseclib": "3.0.15",
+                "symfony/http-client": "<5.2"
+            },
+            "require-dev": {
+                "async-aws/s3": "^1.5",
+                "async-aws/simple-s3": "^1.1",
+                "aws/aws-sdk-php": "^3.220.0",
+                "composer/semver": "^3.0",
+                "ext-fileinfo": "*",
+                "ext-ftp": "*",
+                "ext-zip": "*",
+                "friendsofphp/php-cs-fixer": "^3.5",
+                "google/cloud-storage": "^1.23",
+                "microsoft/azure-storage-blob": "^1.1",
+                "phpseclib/phpseclib": "^3.0.14",
+                "phpstan/phpstan": "^0.12.26",
+                "phpunit/phpunit": "^9.5.11",
+                "sabre/dav": "^4.3.1"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "League\\Flysystem\\": "src"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -2307,93 +2484,30 @@
             "authors": [
                 {
                     "name": "Frank de Jonge",
-                    "email": "info@frenky.net"
+                    "email": "info@frankdejonge.nl"
                 }
             ],
-            "description": "Filesystem abstraction: Many filesystems, one API.",
+            "description": "File storage abstraction for PHP",
             "keywords": [
-                "Cloud Files",
                 "WebDAV",
-                "abstraction",
                 "aws",
                 "cloud",
-                "copy.com",
-                "dropbox",
-                "file systems",
+                "file",
                 "files",
                 "filesystem",
                 "filesystems",
                 "ftp",
-                "rackspace",
-                "remote",
                 "s3",
                 "sftp",
                 "storage"
             ],
             "support": {
                 "issues": "https://github.com/thephpleague/flysystem/issues",
-                "source": "https://github.com/thephpleague/flysystem/tree/1.1.10"
+                "source": "https://github.com/thephpleague/flysystem/tree/3.12.2"
             },
             "funding": [
                 {
-                    "url": "https://offset.earth/frankdejonge",
-                    "type": "other"
-                }
-            ],
-            "time": "2022-10-04T09:16:37+00:00"
-        },
-        {
-            "name": "league/flysystem-aws-s3-v3",
-            "version": "1.0.30",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
-                "reference": "af286f291ebab6877bac0c359c6c2cb017eb061d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/af286f291ebab6877bac0c359c6c2cb017eb061d",
-                "reference": "af286f291ebab6877bac0c359c6c2cb017eb061d",
-                "shasum": ""
-            },
-            "require": {
-                "aws/aws-sdk-php": "^3.20.0",
-                "league/flysystem": "^1.0.40",
-                "php": ">=5.5.0"
-            },
-            "require-dev": {
-                "henrikbjorn/phpspec-code-coverage": "~1.0.1",
-                "phpspec/phpspec": "^2.0.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "League\\Flysystem\\AwsS3v3\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Frank de Jonge",
-                    "email": "info@frenky.net"
-                }
-            ],
-            "description": "Flysystem adapter for the AWS S3 SDK v3.x",
-            "support": {
-                "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
-                "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/1.0.30"
-            },
-            "funding": [
-                {
-                    "url": "https://offset.earth/frankdejonge",
+                    "url": "https://ecologi.com/frankdejonge",
                     "type": "custom"
                 },
                 {
@@ -2405,7 +2519,77 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-07-02T13:51:38+00:00"
+            "time": "2023-01-19T12:02:19+00:00"
+        },
+        {
+            "name": "league/flysystem-aws-s3-v3",
+            "version": "3.12.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
+                "reference": "645e14e4a80bd2da8b01e57388e7296a695a80c2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/645e14e4a80bd2da8b01e57388e7296a695a80c2",
+                "reference": "645e14e4a80bd2da8b01e57388e7296a695a80c2",
+                "shasum": ""
+            },
+            "require": {
+                "aws/aws-sdk-php": "^3.220.0",
+                "league/flysystem": "^3.10.0",
+                "league/mime-type-detection": "^1.0.0",
+                "php": "^8.0.2"
+            },
+            "conflict": {
+                "guzzlehttp/guzzle": "<7.0",
+                "guzzlehttp/ringphp": "<1.1.1"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "League\\Flysystem\\AwsS3V3\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Frank de Jonge",
+                    "email": "info@frankdejonge.nl"
+                }
+            ],
+            "description": "AWS S3 filesystem adapter for Flysystem.",
+            "keywords": [
+                "Flysystem",
+                "aws",
+                "file",
+                "files",
+                "filesystem",
+                "s3",
+                "storage"
+            ],
+            "support": {
+                "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
+                "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.12.2"
+            },
+            "funding": [
+                {
+                    "url": "https://ecologi.com/frankdejonge",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/frankdejonge",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-01-17T14:15:08+00:00"
         },
         {
             "name": "league/html-to-markdown",
@@ -2769,16 +2953,16 @@
         },
         {
             "name": "monolog/monolog",
-            "version": "2.8.0",
+            "version": "2.9.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/Seldaek/monolog.git",
-                "reference": "720488632c590286b88b80e62aa3d3d551ad4a50"
+                "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50",
-                "reference": "720488632c590286b88b80e62aa3d3d551ad4a50",
+                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
+                "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
                 "shasum": ""
             },
             "require": {
@@ -2793,7 +2977,7 @@
                 "doctrine/couchdb": "~1.0@dev",
                 "elasticsearch/elasticsearch": "^7 || ^8",
                 "ext-json": "*",
-                "graylog2/gelf-php": "^1.4.2",
+                "graylog2/gelf-php": "^1.4.2 || ^2@dev",
                 "guzzlehttp/guzzle": "^7.4",
                 "guzzlehttp/psr7": "^2.2",
                 "mongodb/mongodb": "^1.8",
@@ -2855,7 +3039,7 @@
             ],
             "support": {
                 "issues": "https://github.com/Seldaek/monolog/issues",
-                "source": "https://github.com/Seldaek/monolog/tree/2.8.0"
+                "source": "https://github.com/Seldaek/monolog/tree/2.9.1"
             },
             "funding": [
                 {
@@ -2867,7 +3051,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-07-24T11:55:47+00:00"
+            "time": "2023-02-06T13:44:46+00:00"
         },
         {
             "name": "mtdowling/jmespath.php",
@@ -3032,6 +3216,155 @@
             ],
             "time": "2023-01-29T18:53:47+00:00"
         },
+        {
+            "name": "nette/schema",
+            "version": "v1.2.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nette/schema.git",
+                "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
+                "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
+                "shasum": ""
+            },
+            "require": {
+                "nette/utils": "^2.5.7 || ^3.1.5 ||  ^4.0",
+                "php": ">=7.1 <8.3"
+            },
+            "require-dev": {
+                "nette/tester": "^2.3 || ^2.4",
+                "phpstan/phpstan-nette": "^1.0",
+                "tracy/tracy": "^2.7"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.2-dev"
+                }
+            },
+            "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": "📐 Nette Schema: validating data structures against a given Schema.",
+            "homepage": "https://nette.org",
+            "keywords": [
+                "config",
+                "nette"
+            ],
+            "support": {
+                "issues": "https://github.com/nette/schema/issues",
+                "source": "https://github.com/nette/schema/tree/v1.2.3"
+            },
+            "time": "2022-10-13T01:24:26+00:00"
+        },
+        {
+            "name": "nette/utils",
+            "version": "v4.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nette/utils.git",
+                "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e",
+                "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.0 <8.3"
+            },
+            "conflict": {
+                "nette/finder": "<3",
+                "nette/schema": "<1.2.2"
+            },
+            "require-dev": {
+                "jetbrains/phpstorm-attributes": "dev-master",
+                "nette/tester": "^2.4",
+                "phpstan/phpstan": "^1.0",
+                "tracy/tracy": "^2.9"
+            },
+            "suggest": {
+                "ext-gd": "to use Image",
+                "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+                "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+                "ext-json": "to use Nette\\Utils\\Json",
+                "ext-mbstring": "to use Strings::lower() etc...",
+                "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
+                "ext-xml": "to use Strings::length() etc. when mbstring is not available"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.0-dev"
+                }
+            },
+            "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": "🛠  Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+            "homepage": "https://nette.org",
+            "keywords": [
+                "array",
+                "core",
+                "datetime",
+                "images",
+                "json",
+                "nette",
+                "paginator",
+                "password",
+                "slugify",
+                "string",
+                "unicode",
+                "utf-8",
+                "utility",
+                "validation"
+            ],
+            "support": {
+                "issues": "https://github.com/nette/utils/issues",
+                "source": "https://github.com/nette/utils/tree/v4.0.0"
+            },
+            "time": "2023-02-02T10:41:53+00:00"
+        },
         {
             "name": "nikic/php-parser",
             "version": "v4.15.3",
@@ -3088,6 +3421,92 @@
             },
             "time": "2023-01-16T22:05:37+00:00"
         },
+        {
+            "name": "nunomaduro/termwind",
+            "version": "v1.15.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nunomaduro/termwind.git",
+                "reference": "594ab862396c16ead000de0c3c38f4a5cbe1938d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/594ab862396c16ead000de0c3c38f4a5cbe1938d",
+                "reference": "594ab862396c16ead000de0c3c38f4a5cbe1938d",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "php": "^8.0",
+                "symfony/console": "^5.3.0|^6.0.0"
+            },
+            "require-dev": {
+                "ergebnis/phpstan-rules": "^1.0.",
+                "illuminate/console": "^8.0|^9.0",
+                "illuminate/support": "^8.0|^9.0",
+                "laravel/pint": "^1.0.0",
+                "pestphp/pest": "^1.21.0",
+                "pestphp/pest-plugin-mock": "^1.0",
+                "phpstan/phpstan": "^1.4.6",
+                "phpstan/phpstan-strict-rules": "^1.1.0",
+                "symfony/var-dumper": "^5.2.7|^6.0.0",
+                "thecodingmachine/phpstan-strict-rules": "^1.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "laravel": {
+                    "providers": [
+                        "Termwind\\Laravel\\TermwindServiceProvider"
+                    ]
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/Functions.php"
+                ],
+                "psr-4": {
+                    "Termwind\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nuno Maduro",
+                    "email": "enunomaduro@gmail.com"
+                }
+            ],
+            "description": "Its like Tailwind CSS, but for the console.",
+            "keywords": [
+                "cli",
+                "console",
+                "css",
+                "package",
+                "php",
+                "style"
+            ],
+            "support": {
+                "issues": "https://github.com/nunomaduro/termwind/issues",
+                "source": "https://github.com/nunomaduro/termwind/tree/v1.15.0"
+            },
+            "funding": [
+                {
+                    "url": "https://www.paypal.com/paypalme/enunomaduro",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/nunomaduro",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/xiCO2k",
+                    "type": "github"
+                }
+            ],
+            "time": "2022-12-20T19:00:15+00:00"
+        },
         {
             "name": "onelogin/php-saml",
             "version": "4.1.0",
@@ -3144,71 +3563,6 @@
             },
             "time": "2022-07-15T20:44:36+00:00"
         },
-        {
-            "name": "opis/closure",
-            "version": "3.6.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/opis/closure.git",
-                "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad",
-                "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.4 || ^7.0 || ^8.0"
-            },
-            "require-dev": {
-                "jeremeamia/superclosure": "^2.0",
-                "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.6.x-dev"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "functions.php"
-                ],
-                "psr-4": {
-                    "Opis\\Closure\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marius Sarca",
-                    "email": "marius.sarca@gmail.com"
-                },
-                {
-                    "name": "Sorin Sarca",
-                    "email": "sarca_sorin@hotmail.com"
-                }
-            ],
-            "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
-            "homepage": "https://opis.io/closure",
-            "keywords": [
-                "anonymous functions",
-                "closure",
-                "function",
-                "serializable",
-                "serialization",
-                "serialize"
-            ],
-            "support": {
-                "issues": "https://github.com/opis/closure/issues",
-                "source": "https://github.com/opis/closure/tree/3.6.3"
-            },
-            "time": "2022-01-27T09:35:39+00:00"
-        },
         {
             "name": "paragonie/constant_time_encoding",
             "version": "v2.6.3",
@@ -3655,29 +4009,33 @@
         },
         {
             "name": "predis/predis",
-            "version": "v1.1.10",
+            "version": "v2.1.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/predis/predis.git",
-                "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e"
+                "reference": "c5b60884e89630f9518a7919f0566db438f0fc9a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/predis/predis/zipball/a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e",
-                "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e",
+                "url": "https://api.github.com/repos/predis/predis/zipball/c5b60884e89630f9518a7919f0566db438f0fc9a",
+                "reference": "c5b60884e89630f9518a7919f0566db438f0fc9a",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.9"
+                "php": "^7.2 || ^8.0"
             },
             "require-dev": {
-                "phpunit/phpunit": "~4.8"
+                "phpunit/phpunit": "^8.0 || ~9.4.4"
             },
             "suggest": {
-                "ext-curl": "Allows access to Webdis when paired with phpiredis",
-                "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol"
+                "ext-curl": "Allows access to Webdis when paired with phpiredis"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.0-dev"
+                }
+            },
             "autoload": {
                 "psr-4": {
                     "Predis\\": "src/"
@@ -3688,19 +4046,19 @@
                 "MIT"
             ],
             "authors": [
-                {
-                    "name": "Daniele Alessandri",
-                    "email": "suppakilla@gmail.com",
-                    "homepage": "http://clorophilla.net",
-                    "role": "Creator & Maintainer"
-                },
                 {
                     "name": "Till Krüss",
                     "homepage": "https://till.im",
                     "role": "Maintainer"
+                },
+                {
+                    "name": "Daniele Alessandri",
+                    "email": "suppakilla@gmail.com",
+                    "homepage": "http://clorophilla.net",
+                    "role": "Creator"
                 }
             ],
-            "description": "Flexible and feature-complete Redis client for PHP and HHVM",
+            "description": "A flexible and feature-complete Redis client for PHP.",
             "homepage": "http://github.com/predis/predis",
             "keywords": [
                 "nosql",
@@ -3709,7 +4067,7 @@
             ],
             "support": {
                 "issues": "https://github.com/predis/predis/issues",
-                "source": "https://github.com/predis/predis/tree/v1.1.10"
+                "source": "https://github.com/predis/predis/tree/v2.1.1"
             },
             "funding": [
                 {
@@ -3717,24 +4075,24 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-01-05T17:46:08+00:00"
+            "time": "2023-01-17T20:57:35+00:00"
         },
         {
             "name": "psr/cache",
-            "version": "1.0.1",
+            "version": "3.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/cache.git",
-                "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+                "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
-                "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+                "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+                "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.0"
+                "php": ">=8.0.0"
             },
             "type": "library",
             "extra": {
@@ -3754,7 +4112,7 @@
             "authors": [
                 {
                     "name": "PHP-FIG",
-                    "homepage": "http://www.php-fig.org/"
+                    "homepage": "https://www.php-fig.org/"
                 }
             ],
             "description": "Common interface for caching libraries",
@@ -3764,28 +4122,33 @@
                 "psr-6"
             ],
             "support": {
-                "source": "https://github.com/php-fig/cache/tree/master"
+                "source": "https://github.com/php-fig/cache/tree/3.0.0"
             },
-            "time": "2016-08-06T20:24:11+00:00"
+            "time": "2021-02-03T23:26:27+00:00"
         },
         {
             "name": "psr/container",
-            "version": "1.1.2",
+            "version": "2.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/container.git",
-                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
-                "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
                 "shasum": ""
             },
             "require": {
                 "php": ">=7.4.0"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
             "autoload": {
                 "psr-4": {
                     "Psr\\Container\\": "src/"
@@ -3812,9 +4175,9 @@
             ],
             "support": {
                 "issues": "https://github.com/php-fig/container/issues",
-                "source": "https://github.com/php-fig/container/tree/1.1.2"
+                "source": "https://github.com/php-fig/container/tree/2.0.2"
             },
-            "time": "2021-11-05T16:50:12+00:00"
+            "time": "2021-11-05T16:47:00+00:00"
         },
         {
             "name": "psr/event-dispatcher",
@@ -4028,30 +4391,30 @@
         },
         {
             "name": "psr/log",
-            "version": "1.1.4",
+            "version": "3.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/log.git",
-                "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+                "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
-                "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+                "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+                "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.0"
+                "php": ">=8.0.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.1.x-dev"
+                    "dev-master": "3.x-dev"
                 }
             },
             "autoload": {
                 "psr-4": {
-                    "Psr\\Log\\": "Psr/Log/"
+                    "Psr\\Log\\": "src"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -4072,31 +4435,31 @@
                 "psr-3"
             ],
             "support": {
-                "source": "https://github.com/php-fig/log/tree/1.1.4"
+                "source": "https://github.com/php-fig/log/tree/3.0.0"
             },
-            "time": "2021-05-03T11:20:27+00:00"
+            "time": "2021-07-14T16:46:02+00:00"
         },
         {
             "name": "psr/simple-cache",
-            "version": "1.0.1",
+            "version": "3.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-fig/simple-cache.git",
-                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
-                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.0"
+                "php": ">=8.0.0"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0.x-dev"
+                    "dev-master": "3.0.x-dev"
                 }
             },
             "autoload": {
@@ -4111,7 +4474,7 @@
             "authors": [
                 {
                     "name": "PHP-FIG",
-                    "homepage": "http://www.php-fig.org/"
+                    "homepage": "https://www.php-fig.org/"
                 }
             ],
             "description": "Common interfaces for simple caching",
@@ -4123,9 +4486,9 @@
                 "simple-cache"
             ],
             "support": {
-                "source": "https://github.com/php-fig/simple-cache/tree/master"
+                "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
             },
-            "time": "2017-10-23T01:57:42+00:00"
+            "time": "2021-10-29T13:26:27+00:00"
         },
         {
             "name": "psy/psysh",
@@ -4339,25 +4702,23 @@
         },
         {
             "name": "ramsey/uuid",
-            "version": "4.2.3",
+            "version": "4.7.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/ramsey/uuid.git",
-                "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df"
+                "reference": "433b2014e3979047db08a17a205f410ba3869cf2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
-                "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
+                "url": "https://api.github.com/repos/ramsey/uuid/zipball/433b2014e3979047db08a17a205f410ba3869cf2",
+                "reference": "433b2014e3979047db08a17a205f410ba3869cf2",
                 "shasum": ""
             },
             "require": {
-                "brick/math": "^0.8 || ^0.9",
+                "brick/math": "^0.8.8 || ^0.9 || ^0.10",
                 "ext-json": "*",
-                "php": "^7.2 || ^8.0",
-                "ramsey/collection": "^1.0",
-                "symfony/polyfill-ctype": "^1.8",
-                "symfony/polyfill-php80": "^1.14"
+                "php": "^8.0",
+                "ramsey/collection": "^1.2 || ^2.0"
             },
             "replace": {
                 "rhumsaa/uuid": "self.version"
@@ -4369,24 +4730,23 @@
                 "doctrine/annotations": "^1.8",
                 "ergebnis/composer-normalize": "^2.15",
                 "mockery/mockery": "^1.3",
-                "moontoast/math": "^1.1",
                 "paragonie/random-lib": "^2",
                 "php-mock/php-mock": "^2.2",
                 "php-mock/php-mock-mockery": "^1.3",
                 "php-parallel-lint/php-parallel-lint": "^1.1",
                 "phpbench/phpbench": "^1.0",
-                "phpstan/extension-installer": "^1.0",
-                "phpstan/phpstan": "^0.12",
-                "phpstan/phpstan-mockery": "^0.12",
-                "phpstan/phpstan-phpunit": "^0.12",
+                "phpstan/extension-installer": "^1.1",
+                "phpstan/phpstan": "^1.8",
+                "phpstan/phpstan-mockery": "^1.1",
+                "phpstan/phpstan-phpunit": "^1.1",
                 "phpunit/phpunit": "^8.5 || ^9",
-                "slevomat/coding-standard": "^7.0",
+                "ramsey/composer-repl": "^1.4",
+                "slevomat/coding-standard": "^8.4",
                 "squizlabs/php_codesniffer": "^3.5",
                 "vimeo/psalm": "^4.9"
             },
             "suggest": {
                 "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
-                "ext-ctype": "Enables faster processing of character classification using ctype functions.",
                 "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
                 "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
                 "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
@@ -4394,9 +4754,6 @@
             },
             "type": "library",
             "extra": {
-                "branch-alias": {
-                    "dev-main": "4.x-dev"
-                },
                 "captainhook": {
                     "force-install": true
                 }
@@ -4421,7 +4778,7 @@
             ],
             "support": {
                 "issues": "https://github.com/ramsey/uuid/issues",
-                "source": "https://github.com/ramsey/uuid/tree/4.2.3"
+                "source": "https://github.com/ramsey/uuid/tree/4.7.3"
             },
             "funding": [
                 {
@@ -4433,7 +4790,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2021-09-25T23:10:38+00:00"
+            "time": "2023-01-12T18:13:24+00:00"
         },
         {
             "name": "robrichards/xmlseclibs",
@@ -4931,124 +5288,44 @@
             ],
             "time": "2022-01-24T20:12:20+00:00"
         },
-        {
-            "name": "swiftmailer/swiftmailer",
-            "version": "v6.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/swiftmailer/swiftmailer.git",
-                "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
-                "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
-                "shasum": ""
-            },
-            "require": {
-                "egulias/email-validator": "^2.0|^3.1",
-                "php": ">=7.0.0",
-                "symfony/polyfill-iconv": "^1.0",
-                "symfony/polyfill-intl-idn": "^1.10",
-                "symfony/polyfill-mbstring": "^1.0"
-            },
-            "require-dev": {
-                "mockery/mockery": "^1.0",
-                "symfony/phpunit-bridge": "^4.4|^5.4"
-            },
-            "suggest": {
-                "ext-intl": "Needed to support internationalized email addresses"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "6.2-dev"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "lib/swift_required.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Chris Corbyn"
-                },
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                }
-            ],
-            "description": "Swiftmailer, free feature-rich PHP mailer",
-            "homepage": "https://swiftmailer.symfony.com",
-            "keywords": [
-                "email",
-                "mail",
-                "mailer"
-            ],
-            "support": {
-                "issues": "https://github.com/swiftmailer/swiftmailer/issues",
-                "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
-                    "type": "tidelift"
-                }
-            ],
-            "abandoned": "symfony/mailer",
-            "time": "2021-10-18T15:26:12+00:00"
-        },
         {
             "name": "symfony/console",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/console.git",
-                "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740"
+                "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/dccb8d251a9017d5994c988b034d3e18aaabf740",
-                "reference": "dccb8d251a9017d5994c988b034d3e18aaabf740",
+                "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
+                "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/deprecation-contracts": "^2.1|^3",
+                "php": ">=8.0.2",
                 "symfony/polyfill-mbstring": "~1.0",
-                "symfony/polyfill-php73": "^1.9",
-                "symfony/polyfill-php80": "^1.16",
                 "symfony/service-contracts": "^1.1|^2|^3",
-                "symfony/string": "^5.1|^6.0"
+                "symfony/string": "^5.4|^6.0"
             },
             "conflict": {
-                "psr/log": ">=3",
-                "symfony/dependency-injection": "<4.4",
-                "symfony/dotenv": "<5.1",
-                "symfony/event-dispatcher": "<4.4",
-                "symfony/lock": "<4.4",
-                "symfony/process": "<4.4"
+                "symfony/dependency-injection": "<5.4",
+                "symfony/dotenv": "<5.4",
+                "symfony/event-dispatcher": "<5.4",
+                "symfony/lock": "<5.4",
+                "symfony/process": "<5.4"
             },
             "provide": {
-                "psr/log-implementation": "1.0|2.0"
+                "psr/log-implementation": "1.0|2.0|3.0"
             },
             "require-dev": {
-                "psr/log": "^1|^2",
-                "symfony/config": "^4.4|^5.0|^6.0",
-                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
-                "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
-                "symfony/lock": "^4.4|^5.0|^6.0",
-                "symfony/process": "^4.4|^5.0|^6.0",
-                "symfony/var-dumper": "^4.4|^5.0|^6.0"
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^5.4|^6.0",
+                "symfony/dependency-injection": "^5.4|^6.0",
+                "symfony/event-dispatcher": "^5.4|^6.0",
+                "symfony/lock": "^5.4|^6.0",
+                "symfony/process": "^5.4|^6.0",
+                "symfony/var-dumper": "^5.4|^6.0"
             },
             "suggest": {
                 "psr/log": "For using the console logger",
@@ -5088,7 +5365,7 @@
                 "terminal"
             ],
             "support": {
-                "source": "https://github.com/symfony/console/tree/v5.4.19"
+                "source": "https://github.com/symfony/console/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -5104,25 +5381,24 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/css-selector",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/css-selector.git",
-                "reference": "f4a7d150f5b9e8f974f6f127d8167e420d11fc62"
+                "reference": "f1d00bddb83a4cb2138564b2150001cb6ce272b1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/css-selector/zipball/f4a7d150f5b9e8f974f6f127d8167e420d11fc62",
-                "reference": "f4a7d150f5b9e8f974f6f127d8167e420d11fc62",
+                "url": "https://api.github.com/repos/symfony/css-selector/zipball/f1d00bddb83a4cb2138564b2150001cb6ce272b1",
+                "reference": "f1d00bddb83a4cb2138564b2150001cb6ce272b1",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/polyfill-php80": "^1.16"
+                "php": ">=8.0.2"
             },
             "type": "library",
             "autoload": {
@@ -5154,7 +5430,7 @@
             "description": "Converts CSS selectors to XPath expressions",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/css-selector/tree/v5.4.19"
+                "source": "https://github.com/symfony/css-selector/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -5170,29 +5446,29 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/deprecation-contracts",
-            "version": "v2.5.2",
+            "version": "v3.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/deprecation-contracts.git",
-                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
+                "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
-                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+                "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.1"
+                "php": ">=8.0.2"
             },
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "2.5-dev"
+                    "dev-main": "3.0-dev"
                 },
                 "thanks": {
                     "name": "symfony/contracts",
@@ -5221,7 +5497,7 @@
             "description": "A generic function and convention to trigger deprecation notices",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2"
             },
             "funding": [
                 {
@@ -5237,31 +5513,31 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-01-02T09:53:40+00:00"
+            "time": "2022-01-02T09:55:41+00:00"
         },
         {
             "name": "symfony/error-handler",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/error-handler.git",
-                "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822"
+                "reference": "c7df52182f43a68522756ac31a532dd5b1e6db67"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/error-handler/zipball/438ef3e5e6481244785da3ce8cf8f4e74e7f2822",
-                "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822",
+                "url": "https://api.github.com/repos/symfony/error-handler/zipball/c7df52182f43a68522756ac31a532dd5b1e6db67",
+                "reference": "c7df52182f43a68522756ac31a532dd5b1e6db67",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
+                "php": ">=8.0.2",
                 "psr/log": "^1|^2|^3",
-                "symfony/var-dumper": "^4.4|^5.0|^6.0"
+                "symfony/var-dumper": "^5.4|^6.0"
             },
             "require-dev": {
                 "symfony/deprecation-contracts": "^2.1|^3",
-                "symfony/http-kernel": "^4.4|^5.0|^6.0",
-                "symfony/serializer": "^4.4|^5.0|^6.0"
+                "symfony/http-kernel": "^5.4|^6.0",
+                "symfony/serializer": "^5.4|^6.0"
             },
             "bin": [
                 "Resources/bin/patch-type-declarations"
@@ -5292,7 +5568,7 @@
             "description": "Provides tools to manage errors and ease debugging PHP code",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/error-handler/tree/v5.4.19"
+                "source": "https://github.com/symfony/error-handler/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -5308,44 +5584,42 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/event-dispatcher",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher.git",
-                "reference": "abf49cc084c087d94b4cb939c3f3672971784e0c"
+                "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abf49cc084c087d94b4cb939c3f3672971784e0c",
-                "reference": "abf49cc084c087d94b4cb939c3f3672971784e0c",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
+                "reference": "2eaf8e63bc5b8cefabd4a800157f0d0c094f677a",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/deprecation-contracts": "^2.1|^3",
-                "symfony/event-dispatcher-contracts": "^2|^3",
-                "symfony/polyfill-php80": "^1.16"
+                "php": ">=8.0.2",
+                "symfony/event-dispatcher-contracts": "^2|^3"
             },
             "conflict": {
-                "symfony/dependency-injection": "<4.4"
+                "symfony/dependency-injection": "<5.4"
             },
             "provide": {
                 "psr/event-dispatcher-implementation": "1.0",
-                "symfony/event-dispatcher-implementation": "2.0"
+                "symfony/event-dispatcher-implementation": "2.0|3.0"
             },
             "require-dev": {
                 "psr/log": "^1|^2|^3",
-                "symfony/config": "^4.4|^5.0|^6.0",
-                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
-                "symfony/error-handler": "^4.4|^5.0|^6.0",
-                "symfony/expression-language": "^4.4|^5.0|^6.0",
-                "symfony/http-foundation": "^4.4|^5.0|^6.0",
+                "symfony/config": "^5.4|^6.0",
+                "symfony/dependency-injection": "^5.4|^6.0",
+                "symfony/error-handler": "^5.4|^6.0",
+                "symfony/expression-language": "^5.4|^6.0",
+                "symfony/http-foundation": "^5.4|^6.0",
                 "symfony/service-contracts": "^1.1|^2|^3",
-                "symfony/stopwatch": "^4.4|^5.0|^6.0"
+                "symfony/stopwatch": "^5.4|^6.0"
             },
             "suggest": {
                 "symfony/dependency-injection": "",
@@ -5377,7 +5651,7 @@
             "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.19"
+                "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -5393,24 +5667,24 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/event-dispatcher-contracts",
-            "version": "v2.5.2",
+            "version": "v3.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/event-dispatcher-contracts.git",
-                "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
+                "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
-                "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
+                "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
+                "php": ">=8.0.2",
                 "psr/event-dispatcher": "^1"
             },
             "suggest": {
@@ -5419,7 +5693,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "2.5-dev"
+                    "dev-main": "3.0-dev"
                 },
                 "thanks": {
                     "name": "symfony/contracts",
@@ -5456,7 +5730,7 @@
                 "standards"
             ],
             "support": {
-                "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
+                "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.2"
             },
             "funding": [
                 {
@@ -5472,26 +5746,24 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-01-02T09:53:40+00:00"
+            "time": "2022-01-02T09:55:41+00:00"
         },
         {
             "name": "symfony/finder",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/finder.git",
-                "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f"
+                "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/finder/zipball/6071aebf810ad13fe8200c224f36103abb37cf1f",
-                "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/5cc9cac6586fc0c28cd173780ca696e419fefa11",
+                "reference": "5cc9cac6586fc0c28cd173780ca696e419fefa11",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/deprecation-contracts": "^2.1|^3",
-                "symfony/polyfill-php80": "^1.16"
+                "php": ">=8.0.2"
             },
             "type": "library",
             "autoload": {
@@ -5519,7 +5791,7 @@
             "description": "Finds files and directories via an intuitive fluent interface",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/finder/tree/v5.4.19"
+                "source": "https://github.com/symfony/finder/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -5535,35 +5807,34 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-14T19:14:44+00:00"
+            "time": "2023-01-20T17:44:14+00:00"
         },
         {
             "name": "symfony/http-foundation",
-            "version": "v5.4.20",
+            "version": "v6.0.20",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-foundation.git",
-                "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a"
+                "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0435363362a47c14e9cf50663cb8ffbf491875a",
-                "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a",
+                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e16b2676a4b3b1fa12378a20b29c364feda2a8d6",
+                "reference": "e16b2676a4b3b1fa12378a20b29c364feda2a8d6",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
+                "php": ">=8.0.2",
                 "symfony/deprecation-contracts": "^2.1|^3",
-                "symfony/polyfill-mbstring": "~1.1",
-                "symfony/polyfill-php80": "^1.16"
+                "symfony/polyfill-mbstring": "~1.1"
             },
             "require-dev": {
                 "predis/predis": "~1.0",
-                "symfony/cache": "^4.4|^5.0|^6.0",
+                "symfony/cache": "^5.4|^6.0",
                 "symfony/dependency-injection": "^5.4|^6.0",
-                "symfony/expression-language": "^4.4|^5.0|^6.0",
+                "symfony/expression-language": "^5.4|^6.0",
                 "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
-                "symfony/mime": "^4.4|^5.0|^6.0",
+                "symfony/mime": "^5.4|^6.0",
                 "symfony/rate-limiter": "^5.2|^6.0"
             },
             "suggest": {
@@ -5595,7 +5866,7 @@
             "description": "Defines an object-oriented layer for the HTTP specification",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/http-foundation/tree/v5.4.20"
+                "source": "https://github.com/symfony/http-foundation/tree/v6.0.20"
             },
             "funding": [
                 {
@@ -5611,67 +5882,64 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-29T11:11:52+00:00"
+            "time": "2023-01-30T15:41:07+00:00"
         },
         {
             "name": "symfony/http-kernel",
-            "version": "v5.4.20",
+            "version": "v6.0.20",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/http-kernel.git",
-                "reference": "aaeec341582d3c160cc9ecfa8b2419ba6c69954e"
+                "reference": "6dc70833fd0ef5e861e17c7854c12d7d86679349"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/aaeec341582d3c160cc9ecfa8b2419ba6c69954e",
-                "reference": "aaeec341582d3c160cc9ecfa8b2419ba6c69954e",
+                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6dc70833fd0ef5e861e17c7854c12d7d86679349",
+                "reference": "6dc70833fd0ef5e861e17c7854c12d7d86679349",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "psr/log": "^1|^2",
-                "symfony/deprecation-contracts": "^2.1|^3",
-                "symfony/error-handler": "^4.4|^5.0|^6.0",
-                "symfony/event-dispatcher": "^5.0|^6.0",
-                "symfony/http-foundation": "^5.3.7|^6.0",
-                "symfony/polyfill-ctype": "^1.8",
-                "symfony/polyfill-php73": "^1.9",
-                "symfony/polyfill-php80": "^1.16"
+                "php": ">=8.0.2",
+                "psr/log": "^1|^2|^3",
+                "symfony/error-handler": "^5.4|^6.0",
+                "symfony/event-dispatcher": "^5.4|^6.0",
+                "symfony/http-foundation": "^5.4|^6.0",
+                "symfony/polyfill-ctype": "^1.8"
             },
             "conflict": {
                 "symfony/browser-kit": "<5.4",
-                "symfony/cache": "<5.0",
-                "symfony/config": "<5.0",
-                "symfony/console": "<4.4",
-                "symfony/dependency-injection": "<5.3",
-                "symfony/doctrine-bridge": "<5.0",
-                "symfony/form": "<5.0",
-                "symfony/http-client": "<5.0",
-                "symfony/mailer": "<5.0",
-                "symfony/messenger": "<5.0",
-                "symfony/translation": "<5.0",
-                "symfony/twig-bridge": "<5.0",
-                "symfony/validator": "<5.0",
+                "symfony/cache": "<5.4",
+                "symfony/config": "<5.4",
+                "symfony/console": "<5.4",
+                "symfony/dependency-injection": "<5.4",
+                "symfony/doctrine-bridge": "<5.4",
+                "symfony/form": "<5.4",
+                "symfony/http-client": "<5.4",
+                "symfony/mailer": "<5.4",
+                "symfony/messenger": "<5.4",
+                "symfony/translation": "<5.4",
+                "symfony/twig-bridge": "<5.4",
+                "symfony/validator": "<5.4",
                 "twig/twig": "<2.13"
             },
             "provide": {
-                "psr/log-implementation": "1.0|2.0"
+                "psr/log-implementation": "1.0|2.0|3.0"
             },
             "require-dev": {
                 "psr/cache": "^1.0|^2.0|^3.0",
                 "symfony/browser-kit": "^5.4|^6.0",
-                "symfony/config": "^5.0|^6.0",
-                "symfony/console": "^4.4|^5.0|^6.0",
-                "symfony/css-selector": "^4.4|^5.0|^6.0",
-                "symfony/dependency-injection": "^5.3|^6.0",
-                "symfony/dom-crawler": "^4.4|^5.0|^6.0",
-                "symfony/expression-language": "^4.4|^5.0|^6.0",
-                "symfony/finder": "^4.4|^5.0|^6.0",
+                "symfony/config": "^5.4|^6.0",
+                "symfony/console": "^5.4|^6.0",
+                "symfony/css-selector": "^5.4|^6.0",
+                "symfony/dependency-injection": "^5.4|^6.0",
+                "symfony/dom-crawler": "^5.4|^6.0",
+                "symfony/expression-language": "^5.4|^6.0",
+                "symfony/finder": "^5.4|^6.0",
                 "symfony/http-client-contracts": "^1.1|^2|^3",
-                "symfony/process": "^4.4|^5.0|^6.0",
-                "symfony/routing": "^4.4|^5.0|^6.0",
-                "symfony/stopwatch": "^4.4|^5.0|^6.0",
-                "symfony/translation": "^4.4|^5.0|^6.0",
+                "symfony/process": "^5.4|^6.0",
+                "symfony/routing": "^5.4|^6.0",
+                "symfony/stopwatch": "^5.4|^6.0",
+                "symfony/translation": "^5.4|^6.0",
                 "symfony/translation-contracts": "^1.1|^2|^3",
                 "twig/twig": "^2.13|^3.0.4"
             },
@@ -5707,7 +5975,7 @@
             "description": "Provides a structured process for converting a Request into a Response",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/http-kernel/tree/v5.4.20"
+                "source": "https://github.com/symfony/http-kernel/tree/v6.0.20"
             },
             "funding": [
                 {
@@ -5723,42 +5991,114 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-02-01T08:18:48+00:00"
+            "time": "2023-02-01T08:22:55+00:00"
         },
         {
-            "name": "symfony/mime",
-            "version": "v5.4.19",
+            "name": "symfony/mailer",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
-                "url": "https://github.com/symfony/mime.git",
-                "reference": "a858429a9c704edc53fe057228cf9ca282ba48eb"
+                "url": "https://github.com/symfony/mailer.git",
+                "reference": "cd60799210c488f545ddde2444dc1aa548322872"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/mime/zipball/a858429a9c704edc53fe057228cf9ca282ba48eb",
-                "reference": "a858429a9c704edc53fe057228cf9ca282ba48eb",
+                "url": "https://api.github.com/repos/symfony/mailer/zipball/cd60799210c488f545ddde2444dc1aa548322872",
+                "reference": "cd60799210c488f545ddde2444dc1aa548322872",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/deprecation-contracts": "^2.1|^3",
+                "egulias/email-validator": "^2.1.10|^3|^4",
+                "php": ">=8.0.2",
+                "psr/event-dispatcher": "^1",
+                "psr/log": "^1|^2|^3",
+                "symfony/event-dispatcher": "^5.4|^6.0",
+                "symfony/mime": "^5.4|^6.0",
+                "symfony/service-contracts": "^1.1|^2|^3"
+            },
+            "conflict": {
+                "symfony/http-kernel": "<5.4"
+            },
+            "require-dev": {
+                "symfony/http-client-contracts": "^1.1|^2|^3",
+                "symfony/messenger": "^5.4|^6.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Mailer\\": ""
+                },
+                "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 sending emails",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/mailer/tree/v6.0.19"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-01-11T11:50:03+00:00"
+        },
+        {
+            "name": "symfony/mime",
+            "version": "v6.0.19",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/mime.git",
+                "reference": "d7052547a0070cbeadd474e172b527a00d657301"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/mime/zipball/d7052547a0070cbeadd474e172b527a00d657301",
+                "reference": "d7052547a0070cbeadd474e172b527a00d657301",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.0.2",
                 "symfony/polyfill-intl-idn": "^1.10",
-                "symfony/polyfill-mbstring": "^1.0",
-                "symfony/polyfill-php80": "^1.16"
+                "symfony/polyfill-mbstring": "^1.0"
             },
             "conflict": {
                 "egulias/email-validator": "~3.0.0",
                 "phpdocumentor/reflection-docblock": "<3.2.2",
                 "phpdocumentor/type-resolver": "<1.4.0",
-                "symfony/mailer": "<4.4",
+                "symfony/mailer": "<5.4",
                 "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6"
             },
             "require-dev": {
                 "egulias/email-validator": "^2.1.10|^3.1|^4",
                 "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
-                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
-                "symfony/property-access": "^4.4|^5.1|^6.0",
-                "symfony/property-info": "^4.4|^5.1|^6.0",
+                "symfony/dependency-injection": "^5.4|^6.0",
+                "symfony/property-access": "^5.4|^6.0",
+                "symfony/property-info": "^5.4|^6.0",
                 "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6"
             },
             "type": "library",
@@ -5791,7 +6131,7 @@
                 "mime-type"
             ],
             "support": {
-                "source": "https://github.com/symfony/mime/tree/v5.4.19"
+                "source": "https://github.com/symfony/mime/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -5807,7 +6147,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-09T05:43:46+00:00"
+            "time": "2023-01-11T11:50:03+00:00"
         },
         {
             "name": "symfony/polyfill-ctype",
@@ -5891,89 +6231,6 @@
             ],
             "time": "2022-11-03T14:55:06+00:00"
         },
-        {
-            "name": "symfony/polyfill-iconv",
-            "version": "v1.27.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-iconv.git",
-                "reference": "927013f3aac555983a5059aada98e1907d842695"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695",
-                "reference": "927013f3aac555983a5059aada98e1907d842695",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "provide": {
-                "ext-iconv": "*"
-            },
-            "suggest": {
-                "ext-iconv": "For best performance"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "1.27-dev"
-                },
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Iconv\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill for the Iconv extension",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "iconv",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-iconv/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"
-                }
-            ],
-            "time": "2022-11-03T14:55:06+00:00"
-        },
         {
             "name": "symfony/polyfill-intl-grapheme",
             "version": "v1.27.0",
@@ -6385,85 +6642,6 @@
             ],
             "time": "2022-11-03T14:55:06+00:00"
         },
-        {
-            "name": "symfony/polyfill-php73",
-            "version": "v1.27.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-php73.git",
-                "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
-                "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "1.27-dev"
-                },
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Php73\\": ""
-                },
-                "classmap": [
-                    "Resources/stubs"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-php73/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"
-                }
-            ],
-            "time": "2022-11-03T14:55:06+00:00"
-        },
         {
             "name": "symfony/polyfill-php80",
             "version": "v1.27.0",
@@ -6627,22 +6805,103 @@
             "time": "2022-11-03T14:55:06+00:00"
         },
         {
-            "name": "symfony/process",
-            "version": "v5.4.19",
+            "name": "symfony/polyfill-uuid",
+            "version": "v1.27.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/symfony/process.git",
-                "reference": "c5ba874c9b636dbccf761e22ce750e88ec3f55e1"
+                "url": "https://github.com/symfony/polyfill-uuid.git",
+                "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/c5ba874c9b636dbccf761e22ce750e88ec3f55e1",
-                "reference": "c5ba874c9b636dbccf761e22ce750e88ec3f55e1",
+                "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166",
+                "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/polyfill-php80": "^1.16"
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-uuid": "*"
+            },
+            "suggest": {
+                "ext-uuid": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.27-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Uuid\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Grégoire Pineau",
+                    "email": "lyrixx@lyrixx.info"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for uuid functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "uuid"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-uuid/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"
+                }
+            ],
+            "time": "2022-11-03T14:55:06+00:00"
+        },
+        {
+            "name": "symfony/process",
+            "version": "v6.0.19",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/process.git",
+                "reference": "2114fd60f26a296cc403a7939ab91478475a33d4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/process/zipball/2114fd60f26a296cc403a7939ab91478475a33d4",
+                "reference": "2114fd60f26a296cc403a7939ab91478475a33d4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.0.2"
             },
             "type": "library",
             "autoload": {
@@ -6670,7 +6929,7 @@
             "description": "Executes commands in sub-processes",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/process/tree/v5.4.19"
+                "source": "https://github.com/symfony/process/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -6686,41 +6945,39 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/routing",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/routing.git",
-                "reference": "df1b28f37c8e78912213c58ef6ab2f2037bbfdc5"
+                "reference": "e56ca9b41c1ec447193474cd86ad7c0b547755ac"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/routing/zipball/df1b28f37c8e78912213c58ef6ab2f2037bbfdc5",
-                "reference": "df1b28f37c8e78912213c58ef6ab2f2037bbfdc5",
+                "url": "https://api.github.com/repos/symfony/routing/zipball/e56ca9b41c1ec447193474cd86ad7c0b547755ac",
+                "reference": "e56ca9b41c1ec447193474cd86ad7c0b547755ac",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/deprecation-contracts": "^2.1|^3",
-                "symfony/polyfill-php80": "^1.16"
+                "php": ">=8.0.2"
             },
             "conflict": {
                 "doctrine/annotations": "<1.12",
-                "symfony/config": "<5.3",
-                "symfony/dependency-injection": "<4.4",
-                "symfony/yaml": "<4.4"
+                "symfony/config": "<5.4",
+                "symfony/dependency-injection": "<5.4",
+                "symfony/yaml": "<5.4"
             },
             "require-dev": {
                 "doctrine/annotations": "^1.12|^2",
                 "psr/log": "^1|^2|^3",
-                "symfony/config": "^5.3|^6.0",
-                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
-                "symfony/expression-language": "^4.4|^5.0|^6.0",
-                "symfony/http-foundation": "^4.4|^5.0|^6.0",
-                "symfony/yaml": "^4.4|^5.0|^6.0"
+                "symfony/config": "^5.4|^6.0",
+                "symfony/dependency-injection": "^5.4|^6.0",
+                "symfony/expression-language": "^5.4|^6.0",
+                "symfony/http-foundation": "^5.4|^6.0",
+                "symfony/yaml": "^5.4|^6.0"
             },
             "suggest": {
                 "symfony/config": "For using the all-in-one router or any loader",
@@ -6760,7 +7017,7 @@
                 "url"
             ],
             "support": {
-                "source": "https://github.com/symfony/routing/tree/v5.4.19"
+                "source": "https://github.com/symfony/routing/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -6776,26 +7033,25 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/service-contracts",
-            "version": "v2.5.2",
+            "version": "v3.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/service-contracts.git",
-                "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+                "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
-                "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
+                "reference": "d78d39c1599bd1188b8e26bb341da52c3c6d8a66",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "psr/container": "^1.1",
-                "symfony/deprecation-contracts": "^2.1|^3"
+                "php": ">=8.0.2",
+                "psr/container": "^2.0"
             },
             "conflict": {
                 "ext-psr": "<1.1|>=2"
@@ -6806,7 +7062,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "2.5-dev"
+                    "dev-main": "3.0-dev"
                 },
                 "thanks": {
                     "name": "symfony/contracts",
@@ -6843,7 +7099,7 @@
                 "standards"
             ],
             "support": {
-                "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+                "source": "https://github.com/symfony/service-contracts/tree/v3.0.2"
             },
             "funding": [
                 {
@@ -6859,38 +7115,37 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-05-30T19:17:29+00:00"
+            "time": "2022-05-30T19:17:58+00:00"
         },
         {
             "name": "symfony/string",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/string.git",
-                "reference": "0a01071610fd861cc160dfb7e2682ceec66064cb"
+                "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/string/zipball/0a01071610fd861cc160dfb7e2682ceec66064cb",
-                "reference": "0a01071610fd861cc160dfb7e2682ceec66064cb",
+                "url": "https://api.github.com/repos/symfony/string/zipball/d9e72497367c23e08bf94176d2be45b00a9d232a",
+                "reference": "d9e72497367c23e08bf94176d2be45b00a9d232a",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
+                "php": ">=8.0.2",
                 "symfony/polyfill-ctype": "~1.8",
                 "symfony/polyfill-intl-grapheme": "~1.0",
                 "symfony/polyfill-intl-normalizer": "~1.0",
-                "symfony/polyfill-mbstring": "~1.0",
-                "symfony/polyfill-php80": "~1.15"
+                "symfony/polyfill-mbstring": "~1.0"
             },
             "conflict": {
-                "symfony/translation-contracts": ">=3.0"
+                "symfony/translation-contracts": "<2.0"
             },
             "require-dev": {
-                "symfony/error-handler": "^4.4|^5.0|^6.0",
-                "symfony/http-client": "^4.4|^5.0|^6.0",
-                "symfony/translation-contracts": "^1.1|^2",
-                "symfony/var-exporter": "^4.4|^5.0|^6.0"
+                "symfony/error-handler": "^5.4|^6.0",
+                "symfony/http-client": "^5.4|^6.0",
+                "symfony/translation-contracts": "^2.0|^3.0",
+                "symfony/var-exporter": "^5.4|^6.0"
             },
             "type": "library",
             "autoload": {
@@ -6929,7 +7184,7 @@
                 "utf8"
             ],
             "support": {
-                "source": "https://github.com/symfony/string/tree/v5.4.19"
+                "source": "https://github.com/symfony/string/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -6945,52 +7200,50 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/translation",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/translation.git",
-                "reference": "83d487b13b7fb4c0a6ad079f4e4c9b4525e1b695"
+                "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/translation/zipball/83d487b13b7fb4c0a6ad079f4e4c9b4525e1b695",
-                "reference": "83d487b13b7fb4c0a6ad079f4e4c9b4525e1b695",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f",
+                "reference": "9c24b3fdbbe9fb2ef3a6afd8bbaadfd72dad681f",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/deprecation-contracts": "^2.1|^3",
+                "php": ">=8.0.2",
                 "symfony/polyfill-mbstring": "~1.0",
-                "symfony/polyfill-php80": "^1.16",
-                "symfony/translation-contracts": "^2.3"
+                "symfony/translation-contracts": "^2.3|^3.0"
             },
             "conflict": {
-                "symfony/config": "<4.4",
-                "symfony/console": "<5.3",
-                "symfony/dependency-injection": "<5.0",
-                "symfony/http-kernel": "<5.0",
-                "symfony/twig-bundle": "<5.0",
-                "symfony/yaml": "<4.4"
+                "symfony/config": "<5.4",
+                "symfony/console": "<5.4",
+                "symfony/dependency-injection": "<5.4",
+                "symfony/http-kernel": "<5.4",
+                "symfony/twig-bundle": "<5.4",
+                "symfony/yaml": "<5.4"
             },
             "provide": {
-                "symfony/translation-implementation": "2.3"
+                "symfony/translation-implementation": "2.3|3.0"
             },
             "require-dev": {
                 "psr/log": "^1|^2|^3",
-                "symfony/config": "^4.4|^5.0|^6.0",
+                "symfony/config": "^5.4|^6.0",
                 "symfony/console": "^5.4|^6.0",
-                "symfony/dependency-injection": "^5.0|^6.0",
-                "symfony/finder": "^4.4|^5.0|^6.0",
+                "symfony/dependency-injection": "^5.4|^6.0",
+                "symfony/finder": "^5.4|^6.0",
                 "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
-                "symfony/http-kernel": "^5.0|^6.0",
-                "symfony/intl": "^4.4|^5.0|^6.0",
+                "symfony/http-kernel": "^5.4|^6.0",
+                "symfony/intl": "^5.4|^6.0",
                 "symfony/polyfill-intl-icu": "^1.21",
                 "symfony/service-contracts": "^1.1.2|^2|^3",
-                "symfony/yaml": "^4.4|^5.0|^6.0"
+                "symfony/yaml": "^5.4|^6.0"
             },
             "suggest": {
                 "psr/log-implementation": "To use logging capability in translator",
@@ -7026,7 +7279,7 @@
             "description": "Provides tools to internationalize your application",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/translation/tree/v5.4.19"
+                "source": "https://github.com/symfony/translation/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -7042,24 +7295,24 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-01T08:32:19+00:00"
+            "time": "2023-01-01T08:36:10+00:00"
         },
         {
             "name": "symfony/translation-contracts",
-            "version": "v2.5.2",
+            "version": "v3.0.2",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/translation-contracts.git",
-                "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
+                "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
-                "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/acbfbb274e730e5a0236f619b6168d9dedb3e282",
+                "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5"
+                "php": ">=8.0.2"
             },
             "suggest": {
                 "symfony/translation-implementation": ""
@@ -7067,7 +7320,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-main": "2.5-dev"
+                    "dev-main": "3.0-dev"
                 },
                 "thanks": {
                     "name": "symfony/contracts",
@@ -7104,7 +7357,7 @@
                 "standards"
             ],
             "support": {
-                "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
+                "source": "https://github.com/symfony/translation-contracts/tree/v3.0.2"
             },
             "funding": [
                 {
@@ -7120,36 +7373,109 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-06-27T16:58:25+00:00"
+            "time": "2022-06-27T17:10:44+00:00"
         },
         {
-            "name": "symfony/var-dumper",
-            "version": "v5.4.19",
+            "name": "symfony/uid",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
-                "url": "https://github.com/symfony/var-dumper.git",
-                "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b"
+                "url": "https://github.com/symfony/uid.git",
+                "reference": "6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b",
-                "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b",
+                "url": "https://api.github.com/repos/symfony/uid/zipball/6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d",
+                "reference": "6499e28b0ac9f2aa3151e11845bdb5cd21e6bb9d",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/polyfill-mbstring": "~1.0",
-                "symfony/polyfill-php80": "^1.16"
+                "php": ">=8.0.2",
+                "symfony/polyfill-uuid": "^1.15"
+            },
+            "require-dev": {
+                "symfony/console": "^5.4|^6.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Uid\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Grégoire Pineau",
+                    "email": "lyrixx@lyrixx.info"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides an object-oriented API to generate and represent UIDs",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "UID",
+                "ulid",
+                "uuid"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/uid/tree/v6.0.19"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-01-01T08:36:10+00:00"
+        },
+        {
+            "name": "symfony/var-dumper",
+            "version": "v6.0.19",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/var-dumper.git",
+                "reference": "eb980457fa6899840fe1687e8627a03a7d8a3d52"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eb980457fa6899840fe1687e8627a03a7d8a3d52",
+                "reference": "eb980457fa6899840fe1687e8627a03a7d8a3d52",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.0.2",
+                "symfony/polyfill-mbstring": "~1.0"
             },
             "conflict": {
                 "phpunit/phpunit": "<5.4.3",
-                "symfony/console": "<4.4"
+                "symfony/console": "<5.4"
             },
             "require-dev": {
                 "ext-iconv": "*",
-                "symfony/console": "^4.4|^5.0|^6.0",
-                "symfony/process": "^4.4|^5.0|^6.0",
-                "symfony/uid": "^5.1|^6.0",
+                "symfony/console": "^5.4|^6.0",
+                "symfony/process": "^5.4|^6.0",
+                "symfony/uid": "^5.4|^6.0",
                 "twig/twig": "^2.13|^3.0.4"
             },
             "suggest": {
@@ -7193,7 +7519,7 @@
                 "dump"
             ],
             "support": {
-                "source": "https://github.com/symfony/var-dumper/tree/v5.4.19"
+                "source": "https://github.com/symfony/var-dumper/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -7209,7 +7535,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-16T10:52:33+00:00"
+            "time": "2023-01-20T17:44:14+00:00"
         },
         {
             "name": "tijsverkoyen/css-to-inline-styles",
@@ -7350,16 +7676,16 @@
         },
         {
             "name": "voku/portable-ascii",
-            "version": "1.6.1",
+            "version": "2.0.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/voku/portable-ascii.git",
-                "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a"
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a",
-                "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a",
+                "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743",
                 "shasum": ""
             },
             "require": {
@@ -7396,7 +7722,7 @@
             ],
             "support": {
                 "issues": "https://github.com/voku/portable-ascii/issues",
-                "source": "https://github.com/voku/portable-ascii/tree/1.6.1"
+                "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
             },
             "funding": [
                 {
@@ -7420,7 +7746,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-01-24T18:55:24+00:00"
+            "time": "2022-03-08T17:03:00+00:00"
         },
         {
             "name": "webmozart/assert",
@@ -7482,727 +7808,6 @@
         }
     ],
     "packages-dev": [
-        {
-            "name": "brianium/paratest",
-            "version": "v6.8.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/paratestphp/paratest.git",
-                "reference": "168c1cfdf79e5b19b57cb03060fc9a6a79c5f582"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/paratestphp/paratest/zipball/168c1cfdf79e5b19b57cb03060fc9a6a79c5f582",
-                "reference": "168c1cfdf79e5b19b57cb03060fc9a6a79c5f582",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-pcre": "*",
-                "ext-reflection": "*",
-                "ext-simplexml": "*",
-                "fidry/cpu-core-counter": "^0.4.1",
-                "jean85/pretty-package-versions": "^2.0.5",
-                "php": "^7.3 || ^8.0",
-                "phpunit/php-code-coverage": "^9.2.23",
-                "phpunit/php-file-iterator": "^3.0.6",
-                "phpunit/php-timer": "^5.0.3",
-                "phpunit/phpunit": "^9.5.28",
-                "sebastian/environment": "^5.1.4",
-                "symfony/console": "^5.4.16 || ^6.2.3",
-                "symfony/process": "^5.4.11 || ^6.2"
-            },
-            "require-dev": {
-                "doctrine/coding-standard": "^10.0.0",
-                "ext-pcov": "*",
-                "ext-posix": "*",
-                "infection/infection": "^0.26.16",
-                "squizlabs/php_codesniffer": "^3.7.1",
-                "symfony/filesystem": "^5.4.13 || ^6.2",
-                "vimeo/psalm": "^5.4"
-            },
-            "bin": [
-                "bin/paratest",
-                "bin/paratest.bat",
-                "bin/paratest_for_phpstorm"
-            ],
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "ParaTest\\": [
-                        "src/"
-                    ]
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Brian Scaturro",
-                    "email": "scaturrob@gmail.com",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Filippo Tessarotto",
-                    "email": "zoeslam@gmail.com",
-                    "role": "Developer"
-                }
-            ],
-            "description": "Parallel testing for PHP",
-            "homepage": "https://github.com/paratestphp/paratest",
-            "keywords": [
-                "concurrent",
-                "parallel",
-                "phpunit",
-                "testing"
-            ],
-            "support": {
-                "issues": "https://github.com/paratestphp/paratest/issues",
-                "source": "https://github.com/paratestphp/paratest/tree/v6.8.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sponsors/Slamdunk",
-                    "type": "github"
-                },
-                {
-                    "url": "https://paypal.me/filippotessarotto",
-                    "type": "paypal"
-                }
-            ],
-            "time": "2023-01-17T10:08:49+00:00"
-        },
-        {
-            "name": "composer/ca-bundle",
-            "version": "1.3.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/ca-bundle.git",
-                "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/ca-bundle/zipball/74780ccf8c19d6acb8d65c5f39cd72110e132bbd",
-                "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd",
-                "shasum": ""
-            },
-            "require": {
-                "ext-openssl": "*",
-                "ext-pcre": "*",
-                "php": "^5.3.2 || ^7.0 || ^8.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^0.12.55",
-                "psr/log": "^1.0",
-                "symfony/phpunit-bridge": "^4.2 || ^5",
-                "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\CaBundle\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                }
-            ],
-            "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
-            "keywords": [
-                "cabundle",
-                "cacert",
-                "certificate",
-                "ssl",
-                "tls"
-            ],
-            "support": {
-                "irc": "irc://irc.freenode.org/composer",
-                "issues": "https://github.com/composer/ca-bundle/issues",
-                "source": "https://github.com/composer/ca-bundle/tree/1.3.5"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2023-01-11T08:27:00+00:00"
-        },
-        {
-            "name": "composer/class-map-generator",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/class-map-generator.git",
-                "reference": "1e1cb2b791facb2dfe32932a7718cf2571187513"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/class-map-generator/zipball/1e1cb2b791facb2dfe32932a7718cf2571187513",
-                "reference": "1e1cb2b791facb2dfe32932a7718cf2571187513",
-                "shasum": ""
-            },
-            "require": {
-                "composer/pcre": "^2 || ^3",
-                "php": "^7.2 || ^8.0",
-                "symfony/finder": "^4.4 || ^5.3 || ^6"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.6",
-                "phpstan/phpstan-deprecation-rules": "^1",
-                "phpstan/phpstan-phpunit": "^1",
-                "phpstan/phpstan-strict-rules": "^1.1",
-                "symfony/filesystem": "^5.4 || ^6",
-                "symfony/phpunit-bridge": "^5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\ClassMapGenerator\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "https://seld.be"
-                }
-            ],
-            "description": "Utilities to scan PHP code and generate class maps.",
-            "keywords": [
-                "classmap"
-            ],
-            "support": {
-                "issues": "https://github.com/composer/class-map-generator/issues",
-                "source": "https://github.com/composer/class-map-generator/tree/1.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-06-19T11:31:27+00:00"
-        },
-        {
-            "name": "composer/composer",
-            "version": "2.5.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/composer.git",
-                "reference": "923278ad13e1621946eb76ab2882655d2cc396a4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/composer/zipball/923278ad13e1621946eb76ab2882655d2cc396a4",
-                "reference": "923278ad13e1621946eb76ab2882655d2cc396a4",
-                "shasum": ""
-            },
-            "require": {
-                "composer/ca-bundle": "^1.0",
-                "composer/class-map-generator": "^1.0",
-                "composer/metadata-minifier": "^1.0",
-                "composer/pcre": "^2.1 || ^3.1",
-                "composer/semver": "^3.0",
-                "composer/spdx-licenses": "^1.5.7",
-                "composer/xdebug-handler": "^2.0.2 || ^3.0.3",
-                "justinrainbow/json-schema": "^5.2.11",
-                "php": "^7.2.5 || ^8.0",
-                "psr/log": "^1.0 || ^2.0 || ^3.0",
-                "react/promise": "^2.8",
-                "seld/jsonlint": "^1.4",
-                "seld/phar-utils": "^1.2",
-                "seld/signal-handler": "^2.0",
-                "symfony/console": "^5.4.11 || ^6.0.11",
-                "symfony/filesystem": "^5.4 || ^6.0",
-                "symfony/finder": "^5.4 || ^6.0",
-                "symfony/polyfill-php73": "^1.24",
-                "symfony/polyfill-php80": "^1.24",
-                "symfony/polyfill-php81": "^1.24",
-                "symfony/process": "^5.4 || ^6.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.9.3",
-                "phpstan/phpstan-deprecation-rules": "^1",
-                "phpstan/phpstan-phpunit": "^1.0",
-                "phpstan/phpstan-strict-rules": "^1",
-                "phpstan/phpstan-symfony": "^1.2.10",
-                "symfony/phpunit-bridge": "^6.0"
-            },
-            "suggest": {
-                "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
-                "ext-zip": "Enabling the zip extension allows you to unzip archives",
-                "ext-zlib": "Allow gzip compression of HTTP requests"
-            },
-            "bin": [
-                "bin/composer"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "2.5-dev"
-                },
-                "phpstan": {
-                    "includes": [
-                        "phpstan/rules.neon"
-                    ]
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\": "src/Composer"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nils Adermann",
-                    "email": "naderman@naderman.de",
-                    "homepage": "https://www.naderman.de"
-                },
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "https://seld.be"
-                }
-            ],
-            "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.",
-            "homepage": "https://getcomposer.org/",
-            "keywords": [
-                "autoload",
-                "dependency",
-                "package"
-            ],
-            "support": {
-                "irc": "ircs://irc.libera.chat:6697/composer",
-                "issues": "https://github.com/composer/composer/issues",
-                "source": "https://github.com/composer/composer/tree/2.5.1"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-12-22T14:33:54+00:00"
-        },
-        {
-            "name": "composer/metadata-minifier",
-            "version": "1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/metadata-minifier.git",
-                "reference": "c549d23829536f0d0e984aaabbf02af91f443207"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207",
-                "reference": "c549d23829536f0d0e984aaabbf02af91f443207",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3.2 || ^7.0 || ^8.0"
-            },
-            "require-dev": {
-                "composer/composer": "^2",
-                "phpstan/phpstan": "^0.12.55",
-                "symfony/phpunit-bridge": "^4.2 || ^5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\MetadataMinifier\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                }
-            ],
-            "description": "Small utility library that handles metadata minification and expansion.",
-            "keywords": [
-                "composer",
-                "compression"
-            ],
-            "support": {
-                "issues": "https://github.com/composer/metadata-minifier/issues",
-                "source": "https://github.com/composer/metadata-minifier/tree/1.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2021-04-07T13:37:33+00:00"
-        },
-        {
-            "name": "composer/pcre",
-            "version": "3.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/pcre.git",
-                "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
-                "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.4 || ^8.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.3",
-                "phpstan/phpstan-strict-rules": "^1.1",
-                "symfony/phpunit-bridge": "^5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\Pcre\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                }
-            ],
-            "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
-            "keywords": [
-                "PCRE",
-                "preg",
-                "regex",
-                "regular expression"
-            ],
-            "support": {
-                "issues": "https://github.com/composer/pcre/issues",
-                "source": "https://github.com/composer/pcre/tree/3.1.0"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-11-17T09:50:14+00:00"
-        },
-        {
-            "name": "composer/semver",
-            "version": "3.3.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/semver.git",
-                "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
-                "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3.2 || ^7.0 || ^8.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.4",
-                "symfony/phpunit-bridge": "^4.2 || ^5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\Semver\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nils Adermann",
-                    "email": "naderman@naderman.de",
-                    "homepage": "http://www.naderman.de"
-                },
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                },
-                {
-                    "name": "Rob Bast",
-                    "email": "rob.bast@gmail.com",
-                    "homepage": "http://robbast.nl"
-                }
-            ],
-            "description": "Semver library that offers utilities, version constraint parsing and validation.",
-            "keywords": [
-                "semantic",
-                "semver",
-                "validation",
-                "versioning"
-            ],
-            "support": {
-                "irc": "irc://irc.freenode.org/composer",
-                "issues": "https://github.com/composer/semver/issues",
-                "source": "https://github.com/composer/semver/tree/3.3.2"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-04-01T19:23:25+00:00"
-        },
-        {
-            "name": "composer/spdx-licenses",
-            "version": "1.5.7",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/spdx-licenses.git",
-                "reference": "c848241796da2abf65837d51dce1fae55a960149"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/c848241796da2abf65837d51dce1fae55a960149",
-                "reference": "c848241796da2abf65837d51dce1fae55a960149",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3.2 || ^7.0 || ^8.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^0.12.55",
-                "symfony/phpunit-bridge": "^4.2 || ^5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Composer\\Spdx\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nils Adermann",
-                    "email": "naderman@naderman.de",
-                    "homepage": "http://www.naderman.de"
-                },
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                },
-                {
-                    "name": "Rob Bast",
-                    "email": "rob.bast@gmail.com",
-                    "homepage": "http://robbast.nl"
-                }
-            ],
-            "description": "SPDX licenses list and validation library.",
-            "keywords": [
-                "license",
-                "spdx",
-                "validator"
-            ],
-            "support": {
-                "irc": "irc://irc.freenode.org/composer",
-                "issues": "https://github.com/composer/spdx-licenses/issues",
-                "source": "https://github.com/composer/spdx-licenses/tree/1.5.7"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-05-23T07:37:50+00:00"
-        },
-        {
-            "name": "composer/xdebug-handler",
-            "version": "3.0.3",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/xdebug-handler.git",
-                "reference": "ced299686f41dce890debac69273b47ffe98a40c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
-                "reference": "ced299686f41dce890debac69273b47ffe98a40c",
-                "shasum": ""
-            },
-            "require": {
-                "composer/pcre": "^1 || ^2 || ^3",
-                "php": "^7.2.5 || ^8.0",
-                "psr/log": "^1 || ^2 || ^3"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.0",
-                "phpstan/phpstan-strict-rules": "^1.1",
-                "symfony/phpunit-bridge": "^6.0"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Composer\\XdebugHandler\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "John Stevenson",
-                    "email": "john-stevenson@blueyonder.co.uk"
-                }
-            ],
-            "description": "Restarts a process without Xdebug.",
-            "keywords": [
-                "Xdebug",
-                "performance"
-            ],
-            "support": {
-                "irc": "irc://irc.freenode.org/composer",
-                "issues": "https://github.com/composer/xdebug-handler/issues",
-                "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-02-25T21:32:43+00:00"
-        },
         {
             "name": "doctrine/instantiator",
             "version": "1.5.0",
@@ -8273,59 +7878,6 @@
             ],
             "time": "2022-12-30T00:15:36+00:00"
         },
-        {
-            "name": "facade/ignition-contracts",
-            "version": "1.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/facade/ignition-contracts.git",
-                "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
-                "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.3|^8.0"
-            },
-            "require-dev": {
-                "friendsofphp/php-cs-fixer": "^v2.15.8",
-                "phpunit/phpunit": "^9.3.11",
-                "vimeo/psalm": "^3.17.1"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Facade\\IgnitionContracts\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Freek Van der Herten",
-                    "email": "freek@spatie.be",
-                    "homepage": "https://flareapp.io",
-                    "role": "Developer"
-                }
-            ],
-            "description": "Solution contracts for Ignition",
-            "homepage": "https://github.com/facade/ignition-contracts",
-            "keywords": [
-                "contracts",
-                "flare",
-                "ignition"
-            ],
-            "support": {
-                "issues": "https://github.com/facade/ignition-contracts/issues",
-                "source": "https://github.com/facade/ignition-contracts/tree/1.0.2"
-            },
-            "time": "2020-10-16T08:27:54+00:00"
-        },
         {
             "name": "fakerphp/faker",
             "version": "v1.21.0",
@@ -8395,37 +7947,41 @@
             "time": "2022-12-13T13:54:32+00:00"
         },
         {
-            "name": "fidry/cpu-core-counter",
-            "version": "0.4.1",
+            "name": "filp/whoops",
+            "version": "2.14.6",
             "source": {
                 "type": "git",
-                "url": "https://github.com/theofidry/cpu-core-counter.git",
-                "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2"
+                "url": "https://github.com/filp/whoops.git",
+                "reference": "f7948baaa0330277c729714910336383286305da"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/79261cc280aded96d098e1b0e0ba0c4881b432c2",
-                "reference": "79261cc280aded96d098e1b0e0ba0c4881b432c2",
+                "url": "https://api.github.com/repos/filp/whoops/zipball/f7948baaa0330277c729714910336383286305da",
+                "reference": "f7948baaa0330277c729714910336383286305da",
                 "shasum": ""
             },
             "require": {
-                "php": "^7.2 || ^8.0"
+                "php": "^5.5.9 || ^7.0 || ^8.0",
+                "psr/log": "^1.0.1 || ^2.0 || ^3.0"
             },
             "require-dev": {
-                "fidry/makefile": "^0.2.0",
-                "phpstan/extension-installer": "^1.2.0",
-                "phpstan/phpstan": "^1.9.2",
-                "phpstan/phpstan-deprecation-rules": "^1.0.0",
-                "phpstan/phpstan-phpunit": "^1.2.2",
-                "phpstan/phpstan-strict-rules": "^1.4.4",
-                "phpunit/phpunit": "^9.5.26 || ^8.5.31",
-                "theofidry/php-cs-fixer-config": "^1.0",
-                "webmozarts/strict-phpunit": "^7.5"
+                "mockery/mockery": "^0.9 || ^1.0",
+                "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
+                "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+            },
+            "suggest": {
+                "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
+                "whoops/soap": "Formats errors as SOAP responses"
             },
             "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.7-dev"
+                }
+            },
             "autoload": {
                 "psr-4": {
-                    "Fidry\\CpuCoreCounter\\": "src/"
+                    "Whoops\\": "src/Whoops/"
                 }
             },
             "notification-url": "https://packagist.org/downloads/",
@@ -8434,26 +7990,32 @@
             ],
             "authors": [
                 {
-                    "name": "Théo FIDRY",
-                    "email": "theo.fidry@gmail.com"
+                    "name": "Filipe Dobreira",
+                    "homepage": "https://github.com/filp",
+                    "role": "Developer"
                 }
             ],
-            "description": "Tiny utility to get the number of CPU cores.",
+            "description": "php error handling for cool kids",
+            "homepage": "https://filp.github.io/whoops/",
             "keywords": [
-                "CPU",
-                "core"
+                "error",
+                "exception",
+                "handling",
+                "library",
+                "throwable",
+                "whoops"
             ],
             "support": {
-                "issues": "https://github.com/theofidry/cpu-core-counter/issues",
-                "source": "https://github.com/theofidry/cpu-core-counter/tree/0.4.1"
+                "issues": "https://github.com/filp/whoops/issues",
+                "source": "https://github.com/filp/whoops/tree/2.14.6"
             },
             "funding": [
                 {
-                    "url": "https://github.com/theofidry",
+                    "url": "https://github.com/denis-sokolov",
                     "type": "github"
                 }
             ],
-            "time": "2022-12-16T22:01:02+00:00"
+            "time": "2022-11-02T16:23:29+00:00"
         },
         {
             "name": "hamcrest/hamcrest-php",
@@ -8574,135 +8136,6 @@
             ],
             "time": "2022-12-13T00:04:12+00:00"
         },
-        {
-            "name": "jean85/pretty-package-versions",
-            "version": "2.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Jean85/pretty-package-versions.git",
-                "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
-                "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
-                "shasum": ""
-            },
-            "require": {
-                "composer-runtime-api": "^2.0.0",
-                "php": "^7.1|^8.0"
-            },
-            "require-dev": {
-                "friendsofphp/php-cs-fixer": "^2.17",
-                "jean85/composer-provided-replaced-stub-package": "^1.0",
-                "phpstan/phpstan": "^0.12.66",
-                "phpunit/phpunit": "^7.5|^8.5|^9.4",
-                "vimeo/psalm": "^4.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Jean85\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Alessandro Lai",
-                    "email": "alessandro.lai85@gmail.com"
-                }
-            ],
-            "description": "A library to get pretty versions strings of installed dependencies",
-            "keywords": [
-                "composer",
-                "package",
-                "release",
-                "versions"
-            ],
-            "support": {
-                "issues": "https://github.com/Jean85/pretty-package-versions/issues",
-                "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
-            },
-            "time": "2021-10-08T21:21:46+00:00"
-        },
-        {
-            "name": "justinrainbow/json-schema",
-            "version": "5.2.12",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/justinrainbow/json-schema.git",
-                "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60",
-                "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
-                "json-schema/json-schema-test-suite": "1.2.0",
-                "phpunit/phpunit": "^4.8.35"
-            },
-            "bin": [
-                "bin/validate-json"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "5.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "JsonSchema\\": "src/JsonSchema/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Bruno Prieto Reis",
-                    "email": "bruno.p.reis@gmail.com"
-                },
-                {
-                    "name": "Justin Rainbow",
-                    "email": "justin.rainbow@gmail.com"
-                },
-                {
-                    "name": "Igor Wiedler",
-                    "email": "igor@wiedler.ch"
-                },
-                {
-                    "name": "Robert Schönthal",
-                    "email": "seroscho@googlemail.com"
-                }
-            ],
-            "description": "A library to validate a json schema.",
-            "homepage": "https://github.com/justinrainbow/json-schema",
-            "keywords": [
-                "json",
-                "schema"
-            ],
-            "support": {
-                "issues": "https://github.com/justinrainbow/json-schema/issues",
-                "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12"
-            },
-            "time": "2022-04-13T08:02:27+00:00"
-        },
         {
             "name": "mockery/mockery",
             "version": "1.5.1",
@@ -8836,37 +8269,38 @@
         },
         {
             "name": "nunomaduro/collision",
-            "version": "v5.11.0",
+            "version": "v6.4.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nunomaduro/collision.git",
-                "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461"
+                "reference": "f05978827b9343cba381ca05b8c7deee346b6015"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461",
-                "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461",
+                "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f05978827b9343cba381ca05b8c7deee346b6015",
+                "reference": "f05978827b9343cba381ca05b8c7deee346b6015",
                 "shasum": ""
             },
             "require": {
-                "facade/ignition-contracts": "^1.0",
-                "filp/whoops": "^2.14.3",
-                "php": "^7.3 || ^8.0",
-                "symfony/console": "^5.0"
+                "filp/whoops": "^2.14.5",
+                "php": "^8.0.0",
+                "symfony/console": "^6.0.2"
             },
             "require-dev": {
-                "brianium/paratest": "^6.1",
-                "fideloper/proxy": "^4.4.1",
-                "fruitcake/laravel-cors": "^2.0.3",
-                "laravel/framework": "8.x-dev",
-                "nunomaduro/larastan": "^0.6.2",
-                "nunomaduro/mock-final-classes": "^1.0",
-                "orchestra/testbench": "^6.0",
-                "phpstan/phpstan": "^0.12.64",
-                "phpunit/phpunit": "^9.5.0"
+                "brianium/paratest": "^6.4.1",
+                "laravel/framework": "^9.26.1",
+                "laravel/pint": "^1.1.1",
+                "nunomaduro/larastan": "^1.0.3",
+                "nunomaduro/mock-final-classes": "^1.1.0",
+                "orchestra/testbench": "^7.7",
+                "phpunit/phpunit": "^9.5.23",
+                "spatie/ignition": "^1.4.1"
             },
             "type": "library",
             "extra": {
+                "branch-alias": {
+                    "dev-develop": "6.x-dev"
+                },
                 "laravel": {
                     "providers": [
                         "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
@@ -8919,41 +8353,39 @@
                     "type": "patreon"
                 }
             ],
-            "time": "2022-01-10T16:22:52+00:00"
+            "time": "2023-01-03T12:54:54+00:00"
         },
         {
             "name": "nunomaduro/larastan",
-            "version": "1.0.4",
+            "version": "2.4.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/nunomaduro/larastan.git",
-                "reference": "769bc6346a6cce3b823c30eaace33d9c3a0dd40e"
+                "reference": "14f631348ead3e245651606931863b4f218d1f78"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/769bc6346a6cce3b823c30eaace33d9c3a0dd40e",
-                "reference": "769bc6346a6cce3b823c30eaace33d9c3a0dd40e",
+                "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/14f631348ead3e245651606931863b4f218d1f78",
+                "reference": "14f631348ead3e245651606931863b4f218d1f78",
                 "shasum": ""
             },
             "require": {
-                "composer/composer": "^1.0 || ^2.0",
                 "ext-json": "*",
-                "illuminate/console": "^6.0 || ^7.0 || ^8.0 || ^9.0",
-                "illuminate/container": "^6.0 || ^7.0 || ^8.0 || ^9.0",
-                "illuminate/contracts": "^6.0 || ^7.0 || ^8.0 || ^9.0",
-                "illuminate/database": "^6.0 || ^7.0 || ^8.0 || ^9.0",
-                "illuminate/http": "^6.0 || ^7.0 || ^8.0 || ^9.0",
-                "illuminate/pipeline": "^6.0 || ^7.0 || ^8.0 || ^9.0",
-                "illuminate/support": "^6.0 || ^7.0 || ^8.0 || ^9.0",
-                "mockery/mockery": "^0.9 || ^1.0",
-                "php": "^7.2 || ^8.0",
-                "phpstan/phpstan": "^1.0 <1.9",
-                "symfony/process": "^4.3 || ^5.0 || ^6.0"
+                "illuminate/console": "^9.47.0 || ^10.0.0",
+                "illuminate/container": "^9.47.0 || ^10.0.0",
+                "illuminate/contracts": "^9.47.0 || ^10.0.0",
+                "illuminate/database": "^9.47.0 || ^10.0.0",
+                "illuminate/http": "^9.47.0 || ^10.0.0",
+                "illuminate/pipeline": "^9.47.0 || ^10.0.0",
+                "illuminate/support": "^9.47.0 || ^10.0.0",
+                "php": "^8.0.2",
+                "phpmyadmin/sql-parser": "^5.6.0",
+                "phpstan/phpstan": "^1.9.8"
             },
             "require-dev": {
-                "nikic/php-parser": "^4.13.0",
-                "orchestra/testbench": "^4.0 || ^5.0 || ^6.0 || ^7.0",
-                "phpunit/phpunit": "^7.3 || ^8.2 || ^9.3"
+                "nikic/php-parser": "^4.15.2",
+                "orchestra/testbench": "^7.19.0|^8.0.0",
+                "phpunit/phpunit": "^9.5.27"
             },
             "suggest": {
                 "orchestra/testbench": "Using Larastan for analysing a package needs Testbench"
@@ -8961,7 +8393,7 @@
             "type": "phpstan-extension",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "1.0-dev"
+                    "dev-master": "2.0-dev"
                 },
                 "phpstan": {
                     "includes": [
@@ -8997,7 +8429,7 @@
             ],
             "support": {
                 "issues": "https://github.com/nunomaduro/larastan/issues",
-                "source": "https://github.com/nunomaduro/larastan/tree/1.0.4"
+                "source": "https://github.com/nunomaduro/larastan/tree/2.4.0"
             },
             "funding": [
                 {
@@ -9017,7 +8449,7 @@
                     "type": "patreon"
                 }
             ],
-            "time": "2022-11-09T09:09:31+00:00"
+            "time": "2023-01-11T11:57:44+00:00"
         },
         {
             "name": "phar-io/manifest",
@@ -9131,17 +8563,104 @@
             "time": "2022-02-21T01:04:05+00:00"
         },
         {
-            "name": "phpstan/phpstan",
-            "version": "1.8.11",
+            "name": "phpmyadmin/sql-parser",
+            "version": "5.7.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/phpstan/phpstan.git",
-                "reference": "46e223dd68a620da18855c23046ddb00940b4014"
+                "url": "https://github.com/phpmyadmin/sql-parser.git",
+                "reference": "0f5895aab2b6002d00b6831b60983523dea30bff"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46e223dd68a620da18855c23046ddb00940b4014",
-                "reference": "46e223dd68a620da18855c23046ddb00940b4014",
+                "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/0f5895aab2b6002d00b6831b60983523dea30bff",
+                "reference": "0f5895aab2b6002d00b6831b60983523dea30bff",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2 || ^8.0",
+                "symfony/polyfill-mbstring": "^1.3",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "conflict": {
+                "phpmyadmin/motranslator": "<3.0"
+            },
+            "require-dev": {
+                "phpbench/phpbench": "^1.1",
+                "phpmyadmin/coding-standard": "^3.0",
+                "phpmyadmin/motranslator": "^4.0 || ^5.0",
+                "phpstan/extension-installer": "^1.1",
+                "phpstan/phpstan": "^1.9.12",
+                "phpstan/phpstan-phpunit": "^1.3.3",
+                "phpunit/php-code-coverage": "*",
+                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+                "psalm/plugin-phpunit": "^0.16.1",
+                "vimeo/psalm": "^4.11",
+                "zumba/json-serializer": "^3.0"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance",
+                "phpmyadmin/motranslator": "Translate messages to your favorite locale"
+            },
+            "bin": [
+                "bin/highlight-query",
+                "bin/lint-query",
+                "bin/tokenize-query"
+            ],
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "PhpMyAdmin\\SqlParser\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "GPL-2.0-or-later"
+            ],
+            "authors": [
+                {
+                    "name": "The phpMyAdmin Team",
+                    "email": "developers@phpmyadmin.net",
+                    "homepage": "https://www.phpmyadmin.net/team/"
+                }
+            ],
+            "description": "A validating SQL lexer and parser with a focus on MySQL dialect.",
+            "homepage": "https://github.com/phpmyadmin/sql-parser",
+            "keywords": [
+                "analysis",
+                "lexer",
+                "parser",
+                "query linter",
+                "sql",
+                "sql lexer",
+                "sql linter",
+                "sql parser",
+                "sql syntax highlighter",
+                "sql tokenizer"
+            ],
+            "support": {
+                "issues": "https://github.com/phpmyadmin/sql-parser/issues",
+                "source": "https://github.com/phpmyadmin/sql-parser"
+            },
+            "funding": [
+                {
+                    "url": "https://www.phpmyadmin.net/donate/",
+                    "type": "other"
+                }
+            ],
+            "time": "2023-01-25T10:43:40+00:00"
+        },
+        {
+            "name": "phpstan/phpstan",
+            "version": "1.9.16",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpstan/phpstan.git",
+                "reference": "922e2689bb180575d0f57de0443c431a5a698e8f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/922e2689bb180575d0f57de0443c431a5a698e8f",
+                "reference": "922e2689bb180575d0f57de0443c431a5a698e8f",
                 "shasum": ""
             },
             "require": {
@@ -9171,7 +8690,7 @@
             ],
             "support": {
                 "issues": "https://github.com/phpstan/phpstan/issues",
-                "source": "https://github.com/phpstan/phpstan/tree/1.8.11"
+                "source": "https://github.com/phpstan/phpstan/tree/1.9.16"
             },
             "funding": [
                 {
@@ -9187,7 +8706,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2022-10-24T15:45:13+00:00"
+            "time": "2023-02-07T10:42:21+00:00"
         },
         {
             "name": "phpunit/php-code-coverage",
@@ -9509,16 +9028,16 @@
         },
         {
             "name": "phpunit/phpunit",
-            "version": "9.5.28",
+            "version": "9.6.3",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "954ca3113a03bf780d22f07bf055d883ee04b65e"
+                "reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/954ca3113a03bf780d22f07bf055d883ee04b65e",
-                "reference": "954ca3113a03bf780d22f07bf055d883ee04b65e",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7b1615e3e887d6c719121c6d4a44b0ab9645555",
+                "reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555",
                 "shasum": ""
             },
             "require": {
@@ -9560,7 +9079,7 @@
             "type": "library",
             "extra": {
                 "branch-alias": {
-                    "dev-master": "9.5-dev"
+                    "dev-master": "9.6-dev"
                 }
             },
             "autoload": {
@@ -9591,7 +9110,7 @@
             ],
             "support": {
                 "issues": "https://github.com/sebastianbergmann/phpunit/issues",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.28"
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.3"
             },
             "funding": [
                 {
@@ -9607,83 +9126,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-14T12:32:24+00:00"
-        },
-        {
-            "name": "react/promise",
-            "version": "v2.9.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/promise.git",
-                "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910",
-                "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
-            },
-            "type": "library",
-            "autoload": {
-                "files": [
-                    "src/functions_include.php"
-                ],
-                "psr-4": {
-                    "React\\Promise\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "A lightweight implementation of CommonJS Promises/A for PHP",
-            "keywords": [
-                "promise",
-                "promises"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/promise/issues",
-                "source": "https://github.com/reactphp/promise/tree/v2.9.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/WyriHaximus",
-                    "type": "github"
-                },
-                {
-                    "url": "https://github.com/clue",
-                    "type": "github"
-                }
-            ],
-            "time": "2022-02-11T10:27:51+00:00"
+            "time": "2023-02-04T13:37:15+00:00"
         },
         {
             "name": "sebastian/cli-parser",
@@ -10051,16 +9494,16 @@
         },
         {
             "name": "sebastian/environment",
-            "version": "5.1.4",
+            "version": "5.1.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
+                "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
-                "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+                "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
                 "shasum": ""
             },
             "require": {
@@ -10102,7 +9545,7 @@
             ],
             "support": {
                 "issues": "https://github.com/sebastianbergmann/environment/issues",
-                "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
+                "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
             },
             "funding": [
                 {
@@ -10110,7 +9553,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-04-03T09:37:03+00:00"
+            "time": "2023-02-03T06:03:51+00:00"
         },
         {
             "name": "sebastian/exporter",
@@ -10424,16 +9867,16 @@
         },
         {
             "name": "sebastian/recursion-context",
-            "version": "4.0.4",
+            "version": "4.0.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+                "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
-                "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+                "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
                 "shasum": ""
             },
             "require": {
@@ -10472,10 +9915,10 @@
                 }
             ],
             "description": "Provides functionality to recursively process PHP variables",
-            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+            "homepage": "https://github.com/sebastianbergmann/recursion-context",
             "support": {
                 "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
-                "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+                "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
             },
             "funding": [
                 {
@@ -10483,7 +9926,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2020-10-26T13:17:30+00:00"
+            "time": "2023-02-03T06:07:39+00:00"
         },
         {
             "name": "sebastian/resource-operations",
@@ -10542,16 +9985,16 @@
         },
         {
             "name": "sebastian/type",
-            "version": "3.2.0",
+            "version": "3.2.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/sebastianbergmann/type.git",
-                "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
+                "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
-                "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
+                "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+                "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
                 "shasum": ""
             },
             "require": {
@@ -10586,7 +10029,7 @@
             "homepage": "https://github.com/sebastianbergmann/type",
             "support": {
                 "issues": "https://github.com/sebastianbergmann/type/issues",
-                "source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
+                "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
             },
             "funding": [
                 {
@@ -10594,7 +10037,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2022-09-12T14:47:03+00:00"
+            "time": "2023-02-03T06:13:03+00:00"
         },
         {
             "name": "sebastian/version",
@@ -10649,179 +10092,6 @@
             ],
             "time": "2020-09-28T06:39:44+00:00"
         },
-        {
-            "name": "seld/jsonlint",
-            "version": "1.9.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Seldaek/jsonlint.git",
-                "reference": "4211420d25eba80712bff236a98960ef68b866b7"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7",
-                "reference": "4211420d25eba80712bff236a98960ef68b866b7",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3 || ^7.0 || ^8.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.5",
-                "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
-            },
-            "bin": [
-                "bin/jsonlint"
-            ],
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Seld\\JsonLint\\": "src/Seld/JsonLint/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                }
-            ],
-            "description": "JSON Linter",
-            "keywords": [
-                "json",
-                "linter",
-                "parser",
-                "validator"
-            ],
-            "support": {
-                "issues": "https://github.com/Seldaek/jsonlint/issues",
-                "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/Seldaek",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2022-04-01T13:37:23+00:00"
-        },
-        {
-            "name": "seld/phar-utils",
-            "version": "1.2.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Seldaek/phar-utils.git",
-                "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
-                "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Seld\\PharUtils\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be"
-                }
-            ],
-            "description": "PHAR file format utilities, for when PHP phars you up",
-            "keywords": [
-                "phar"
-            ],
-            "support": {
-                "issues": "https://github.com/Seldaek/phar-utils/issues",
-                "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1"
-            },
-            "time": "2022-08-31T10:31:18+00:00"
-        },
-        {
-            "name": "seld/signal-handler",
-            "version": "2.0.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Seldaek/signal-handler.git",
-                "reference": "f69d119511dc0360440cdbdaa71829c149b7be75"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/f69d119511dc0360440cdbdaa71829c149b7be75",
-                "reference": "f69d119511dc0360440cdbdaa71829c149b7be75",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.2.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1",
-                "phpstan/phpstan-deprecation-rules": "^1.0",
-                "phpstan/phpstan-phpunit": "^1",
-                "phpstan/phpstan-strict-rules": "^1.3",
-                "phpunit/phpunit": "^7.5.20 || ^8.5.23",
-                "psr/log": "^1 || ^2 || ^3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "2.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Seld\\Signal\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                }
-            ],
-            "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development",
-            "keywords": [
-                "posix",
-                "sigint",
-                "signal",
-                "sigterm",
-                "unix"
-            ],
-            "support": {
-                "issues": "https://github.com/Seldaek/signal-handler/issues",
-                "source": "https://github.com/Seldaek/signal-handler/tree/2.0.1"
-            },
-            "time": "2022-07-20T18:31:45+00:00"
-        },
         {
             "name": "squizlabs/php_codesniffer",
             "version": "3.7.1",
@@ -10936,31 +10206,29 @@
         },
         {
             "name": "symfony/dom-crawler",
-            "version": "v5.4.19",
+            "version": "v6.0.19",
             "source": {
                 "type": "git",
                 "url": "https://github.com/symfony/dom-crawler.git",
-                "reference": "224a1820e7669babdd85970230ed72bd6e342ad4"
+                "reference": "622578ff158318b1b49d95068bd6b66c713601e9"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/224a1820e7669babdd85970230ed72bd6e342ad4",
-                "reference": "224a1820e7669babdd85970230ed72bd6e342ad4",
+                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/622578ff158318b1b49d95068bd6b66c713601e9",
+                "reference": "622578ff158318b1b49d95068bd6b66c713601e9",
                 "shasum": ""
             },
             "require": {
-                "php": ">=7.2.5",
-                "symfony/deprecation-contracts": "^2.1|^3",
+                "php": ">=8.0.2",
                 "symfony/polyfill-ctype": "~1.8",
-                "symfony/polyfill-mbstring": "~1.0",
-                "symfony/polyfill-php80": "^1.16"
+                "symfony/polyfill-mbstring": "~1.0"
             },
             "conflict": {
                 "masterminds/html5": "<2.6"
             },
             "require-dev": {
                 "masterminds/html5": "^2.6",
-                "symfony/css-selector": "^4.4|^5.0|^6.0"
+                "symfony/css-selector": "^5.4|^6.0"
             },
             "suggest": {
                 "symfony/css-selector": ""
@@ -10991,7 +10259,7 @@
             "description": "Eases DOM navigation for HTML and XML documents",
             "homepage": "https://symfony.com",
             "support": {
-                "source": "https://github.com/symfony/dom-crawler/tree/v5.4.19"
+                "source": "https://github.com/symfony/dom-crawler/tree/v6.0.19"
             },
             "funding": [
                 {
@@ -11007,71 +10275,7 @@
                     "type": "tidelift"
                 }
             ],
-            "time": "2023-01-14T19:14:44+00:00"
-        },
-        {
-            "name": "symfony/filesystem",
-            "version": "v5.4.19",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/filesystem.git",
-                "reference": "648bfaca6a494f3e22378123bcee2894045dc9d8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/filesystem/zipball/648bfaca6a494f3e22378123bcee2894045dc9d8",
-                "reference": "648bfaca6a494f3e22378123bcee2894045dc9d8",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.2.5",
-                "symfony/polyfill-ctype": "~1.8",
-                "symfony/polyfill-mbstring": "~1.8",
-                "symfony/polyfill-php80": "^1.16"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Filesystem\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Provides basic utilities for the filesystem",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/filesystem/tree/v5.4.19"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "time": "2023-01-14T19:14:44+00:00"
+            "time": "2023-01-20T17:44:14+00:00"
         },
         {
             "name": "theseer/tokenizer",
@@ -11125,12 +10329,12 @@
         }
     ],
     "aliases": [],
-    "minimum-stability": "dev",
+    "minimum-stability": "stable",
     "stability-flags": [],
     "prefer-stable": true,
     "prefer-lowest": false,
     "platform": {
-        "php": "^7.4|^8.0",
+        "php": "^8.0.2",
         "ext-curl": "*",
         "ext-dom": "*",
         "ext-fileinfo": "*",
@@ -11141,7 +10345,7 @@
     },
     "platform-dev": [],
     "platform-overrides": {
-        "php": "7.4.0"
+        "php": "8.0.2"
     },
     "plugin-api-version": "2.3.0"
 }
diff --git a/crowdin.yml b/crowdin.yml
index 59f357e97..32f2ad052 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -5,6 +5,6 @@ pull_request_title: Updated translations with latest Crowdin changes
 pull_request_labels:
   - ":earth_africa: Translations"
 files:
-  - source: /resources/lang/en/*.php
-    translation: /resources/lang/%two_letters_code%/%original_file_name%
+  - source: /lang/en/*.php
+    translation: /lang/%two_letters_code%/%original_file_name%
     type: php
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
index 10ae5222b..61b73b7f2 100644
--- a/database/migrations/2014_10_12_000000_create_users_table.php
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateUsersTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -40,4 +40,4 @@ class CreateUsersTable extends Migration
     {
         Schema::drop('users');
     }
-}
+};
diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php
index c647b562d..f29aff42b 100644
--- a/database/migrations/2014_10_12_100000_create_password_resets_table.php
+++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreatePasswordResetsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -28,4 +28,4 @@ class CreatePasswordResetsTable extends Migration
     {
         Schema::drop('password_resets');
     }
-}
+};
diff --git a/database/migrations/2015_07_12_114933_create_books_table.php b/database/migrations/2015_07_12_114933_create_books_table.php
index 966dcd6d9..959169458 100644
--- a/database/migrations/2015_07_12_114933_create_books_table.php
+++ b/database/migrations/2015_07_12_114933_create_books_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateBooksTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -30,4 +30,4 @@ class CreateBooksTable extends Migration
     {
         Schema::drop('books');
     }
-}
+};
diff --git a/database/migrations/2015_07_12_190027_create_pages_table.php b/database/migrations/2015_07_12_190027_create_pages_table.php
index afba2b3eb..d9b266813 100644
--- a/database/migrations/2015_07_12_190027_create_pages_table.php
+++ b/database/migrations/2015_07_12_190027_create_pages_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreatePagesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -34,4 +34,4 @@ class CreatePagesTable extends Migration
     {
         Schema::drop('pages');
     }
-}
+};
diff --git a/database/migrations/2015_07_13_172121_create_images_table.php b/database/migrations/2015_07_13_172121_create_images_table.php
index f54ab9e2a..8814d079e 100644
--- a/database/migrations/2015_07_13_172121_create_images_table.php
+++ b/database/migrations/2015_07_13_172121_create_images_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateImagesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class CreateImagesTable extends Migration
     {
         Schema::drop('images');
     }
-}
+};
diff --git a/database/migrations/2015_07_27_172342_create_chapters_table.php b/database/migrations/2015_07_27_172342_create_chapters_table.php
index f557cced4..bfccd6fac 100644
--- a/database/migrations/2015_07_27_172342_create_chapters_table.php
+++ b/database/migrations/2015_07_27_172342_create_chapters_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateChaptersTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -32,4 +32,4 @@ class CreateChaptersTable extends Migration
     {
         Schema::drop('chapters');
     }
-}
+};
diff --git a/database/migrations/2015_08_08_200447_add_users_to_entities.php b/database/migrations/2015_08_08_200447_add_users_to_entities.php
index 4dc878462..8acfd360a 100644
--- a/database/migrations/2015_08_08_200447_add_users_to_entities.php
+++ b/database/migrations/2015_08_08_200447_add_users_to_entities.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddUsersToEntities extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -54,4 +54,4 @@ class AddUsersToEntities extends Migration
             $table->dropColumn('updated_by');
         });
     }
-}
+};
diff --git a/database/migrations/2015_08_09_093534_create_page_revisions_table.php b/database/migrations/2015_08_09_093534_create_page_revisions_table.php
index 3540678e6..b8264fd29 100644
--- a/database/migrations/2015_08_09_093534_create_page_revisions_table.php
+++ b/database/migrations/2015_08_09_093534_create_page_revisions_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreatePageRevisionsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -32,4 +32,4 @@ class CreatePageRevisionsTable extends Migration
     {
         Schema::drop('page_revisions');
     }
-}
+};
diff --git a/database/migrations/2015_08_16_142133_create_activities_table.php b/database/migrations/2015_08_16_142133_create_activities_table.php
index e45e11b53..742a4a40d 100644
--- a/database/migrations/2015_08_16_142133_create_activities_table.php
+++ b/database/migrations/2015_08_16_142133_create_activities_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateActivitiesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -33,4 +33,4 @@ class CreateActivitiesTable extends Migration
     {
         Schema::drop('activities');
     }
-}
+};
diff --git a/database/migrations/2015_08_29_105422_add_roles_and_permissions.php b/database/migrations/2015_08_29_105422_add_roles_and_permissions.php
index c17f72e2f..517cfaf43 100644
--- a/database/migrations/2015_08_29_105422_add_roles_and_permissions.php
+++ b/database/migrations/2015_08_29_105422_add_roles_and_permissions.php
@@ -1,8 +1,5 @@
 <?php
 
-use Illuminate\Database\Migrations\Migration;
-use Illuminate\Database\Schema\Blueprint;
-
 /**
  * Much of this code has been taken from entrust,
  * a role & permission management solution for Laravel.
@@ -12,7 +9,11 @@ use Illuminate\Database\Schema\Blueprint;
  * @license MIT
  * @url https://github.com/Zizaco/entrust
  */
-class AddRolesAndPermissions extends Migration
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -147,4 +148,4 @@ class AddRolesAndPermissions extends Migration
         Schema::drop('role_user');
         Schema::drop('roles');
     }
-}
+};
diff --git a/database/migrations/2015_08_30_125859_create_settings_table.php b/database/migrations/2015_08_30_125859_create_settings_table.php
index 1b0a8c1c6..45c9c08b3 100644
--- a/database/migrations/2015_08_30_125859_create_settings_table.php
+++ b/database/migrations/2015_08_30_125859_create_settings_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateSettingsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -28,4 +28,4 @@ class CreateSettingsTable extends Migration
     {
         Schema::drop('settings');
     }
-}
+};
diff --git a/database/migrations/2015_08_31_175240_add_search_indexes.php b/database/migrations/2015_08_31_175240_add_search_indexes.php
index c28902a44..6097fd13e 100644
--- a/database/migrations/2015_08_31_175240_add_search_indexes.php
+++ b/database/migrations/2015_08_31_175240_add_search_indexes.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddSearchIndexes extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -51,4 +51,4 @@ class AddSearchIndexes extends Migration
             });
         }
     }
-}
+};
diff --git a/database/migrations/2015_09_04_165821_create_social_accounts_table.php b/database/migrations/2015_09_04_165821_create_social_accounts_table.php
index 3eec96163..bea901136 100644
--- a/database/migrations/2015_09_04_165821_create_social_accounts_table.php
+++ b/database/migrations/2015_09_04_165821_create_social_accounts_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateSocialAccountsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -31,4 +31,4 @@ class CreateSocialAccountsTable extends Migration
     {
         Schema::drop('social_accounts');
     }
-}
+};
diff --git a/database/migrations/2015_09_05_164707_add_email_confirmation_table.php b/database/migrations/2015_09_05_164707_add_email_confirmation_table.php
index 927ef89bc..a28a5728e 100644
--- a/database/migrations/2015_09_05_164707_add_email_confirmation_table.php
+++ b/database/migrations/2015_09_05_164707_add_email_confirmation_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddEmailConfirmationTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -36,4 +36,4 @@ class AddEmailConfirmationTable extends Migration
         });
         Schema::drop('email_confirmations');
     }
-}
+};
diff --git a/database/migrations/2015_11_21_145609_create_views_table.php b/database/migrations/2015_11_21_145609_create_views_table.php
index 4c267b08e..bb8c373d8 100644
--- a/database/migrations/2015_11_21_145609_create_views_table.php
+++ b/database/migrations/2015_11_21_145609_create_views_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateViewsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -31,4 +31,4 @@ class CreateViewsTable extends Migration
     {
         Schema::drop('views');
     }
-}
+};
diff --git a/database/migrations/2015_11_26_221857_add_entity_indexes.php b/database/migrations/2015_11_26_221857_add_entity_indexes.php
index 09773b1f3..3203eb8a7 100644
--- a/database/migrations/2015_11_26_221857_add_entity_indexes.php
+++ b/database/migrations/2015_11_26_221857_add_entity_indexes.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddEntityIndexes extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -86,4 +86,4 @@ class AddEntityIndexes extends Migration
             $table->dropIndex('views_viewable_id_index');
         });
     }
-}
+};
diff --git a/database/migrations/2015_12_05_145049_fulltext_weighting.php b/database/migrations/2015_12_05_145049_fulltext_weighting.php
index a45310b33..a18508c45 100644
--- a/database/migrations/2015_12_05_145049_fulltext_weighting.php
+++ b/database/migrations/2015_12_05_145049_fulltext_weighting.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class FulltextWeighting extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -51,4 +51,4 @@ class FulltextWeighting extends Migration
             });
         }
     }
-}
+};
diff --git a/database/migrations/2015_12_07_195238_add_image_upload_types.php b/database/migrations/2015_12_07_195238_add_image_upload_types.php
index 3ebb10bb9..c9f9675c7 100644
--- a/database/migrations/2015_12_07_195238_add_image_upload_types.php
+++ b/database/migrations/2015_12_07_195238_add_image_upload_types.php
@@ -4,7 +4,7 @@ use BookStack\Uploads\Image;
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddImageUploadTypes extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -37,4 +37,4 @@ class AddImageUploadTypes extends Migration
             $table->dropColumn('path');
         });
     }
-}
+};
diff --git a/database/migrations/2015_12_09_195748_add_user_avatars.php b/database/migrations/2015_12_09_195748_add_user_avatars.php
index 083f0a5bc..950526ddc 100644
--- a/database/migrations/2015_12_09_195748_add_user_avatars.php
+++ b/database/migrations/2015_12_09_195748_add_user_avatars.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddUserAvatars extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -28,4 +28,4 @@ class AddUserAvatars extends Migration
             $table->dropColumn('image_id');
         });
     }
-}
+};
diff --git a/database/migrations/2016_01_11_210908_add_external_auth_to_users.php b/database/migrations/2016_01_11_210908_add_external_auth_to_users.php
index 002b45aec..ff889d867 100644
--- a/database/migrations/2016_01_11_210908_add_external_auth_to_users.php
+++ b/database/migrations/2016_01_11_210908_add_external_auth_to_users.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddExternalAuthToUsers extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -28,4 +28,4 @@ class AddExternalAuthToUsers extends Migration
             $table->dropColumn('external_auth_id');
         });
     }
-}
+};
diff --git a/database/migrations/2016_02_25_184030_add_slug_to_revisions.php b/database/migrations/2016_02_25_184030_add_slug_to_revisions.php
index 7139178e8..a083e10b5 100644
--- a/database/migrations/2016_02_25_184030_add_slug_to_revisions.php
+++ b/database/migrations/2016_02_25_184030_add_slug_to_revisions.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddSlugToRevisions extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -32,4 +32,4 @@ class AddSlugToRevisions extends Migration
             $table->dropColumn('book_slug');
         });
     }
-}
+};
diff --git a/database/migrations/2016_02_27_120329_update_permissions_and_roles.php b/database/migrations/2016_02_27_120329_update_permissions_and_roles.php
index 1bab5a873..dd62301d6 100644
--- a/database/migrations/2016_02_27_120329_update_permissions_and_roles.php
+++ b/database/migrations/2016_02_27_120329_update_permissions_and_roles.php
@@ -2,7 +2,7 @@
 
 use Illuminate\Database\Migrations\Migration;
 
-class UpdatePermissionsAndRoles extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -113,4 +113,4 @@ class UpdatePermissionsAndRoles extends Migration
             }
         }
     }
-}
+};
diff --git a/database/migrations/2016_02_28_084200_add_entity_access_controls.php b/database/migrations/2016_02_28_084200_add_entity_access_controls.php
index 674640952..7a796e728 100644
--- a/database/migrations/2016_02_28_084200_add_entity_access_controls.php
+++ b/database/migrations/2016_02_28_084200_add_entity_access_controls.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddEntityAccessControls extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -69,4 +69,4 @@ class AddEntityAccessControls extends Migration
 
         Schema::drop('restrictions');
     }
-}
+};
diff --git a/database/migrations/2016_03_09_203143_add_page_revision_types.php b/database/migrations/2016_03_09_203143_add_page_revision_types.php
index d633fb949..2fc630437 100644
--- a/database/migrations/2016_03_09_203143_add_page_revision_types.php
+++ b/database/migrations/2016_03_09_203143_add_page_revision_types.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddPageRevisionTypes extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class AddPageRevisionTypes extends Migration
             $table->dropColumn('type');
         });
     }
-}
+};
diff --git a/database/migrations/2016_03_13_082138_add_page_drafts.php b/database/migrations/2016_03_13_082138_add_page_drafts.php
index 2cc296d05..ce5979632 100644
--- a/database/migrations/2016_03_13_082138_add_page_drafts.php
+++ b/database/migrations/2016_03_13_082138_add_page_drafts.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddPageDrafts extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class AddPageDrafts extends Migration
             $table->dropColumn('draft');
         });
     }
-}
+};
diff --git a/database/migrations/2016_03_25_123157_add_markdown_support.php b/database/migrations/2016_03_25_123157_add_markdown_support.php
index 27a198dc9..a89fc273d 100644
--- a/database/migrations/2016_03_25_123157_add_markdown_support.php
+++ b/database/migrations/2016_03_25_123157_add_markdown_support.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class AddMarkdownSupport extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -36,4 +36,4 @@ class AddMarkdownSupport extends Migration
             $table->dropColumn('markdown');
         });
     }
-}
+};
diff --git a/database/migrations/2016_04_09_100730_add_view_permissions_to_roles.php b/database/migrations/2016_04_09_100730_add_view_permissions_to_roles.php
index 48a913f82..411c24007 100644
--- a/database/migrations/2016_04_09_100730_add_view_permissions_to_roles.php
+++ b/database/migrations/2016_04_09_100730_add_view_permissions_to_roles.php
@@ -2,7 +2,7 @@
 
 use Illuminate\Database\Migrations\Migration;
 
-class AddViewPermissionsToRoles extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -54,4 +54,4 @@ class AddViewPermissionsToRoles extends Migration
             }
         }
     }
-}
+};
diff --git a/database/migrations/2016_04_20_192649_create_joint_permissions_table.php b/database/migrations/2016_04_20_192649_create_joint_permissions_table.php
index 8c3d9124c..745e156bc 100644
--- a/database/migrations/2016_04_20_192649_create_joint_permissions_table.php
+++ b/database/migrations/2016_04_20_192649_create_joint_permissions_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Str;
 
-class CreateJointPermissionsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -97,4 +97,4 @@ class CreateJointPermissionsTable extends Migration
             $table->dropColumn('hidden');
         });
     }
-}
+};
diff --git a/database/migrations/2016_05_06_185215_create_tags_table.php b/database/migrations/2016_05_06_185215_create_tags_table.php
index 1c691f561..b065a052f 100644
--- a/database/migrations/2016_05_06_185215_create_tags_table.php
+++ b/database/migrations/2016_05_06_185215_create_tags_table.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 
-class CreateTagsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -37,4 +37,4 @@ class CreateTagsTable extends Migration
     {
         Schema::drop('tags');
     }
-}
+};
diff --git a/database/migrations/2016_07_07_181521_add_summary_to_page_revisions.php b/database/migrations/2016_07_07_181521_add_summary_to_page_revisions.php
index 904e8a48e..03942b17a 100644
--- a/database/migrations/2016_07_07_181521_add_summary_to_page_revisions.php
+++ b/database/migrations/2016_07_07_181521_add_summary_to_page_revisions.php
@@ -2,7 +2,7 @@
 
 use Illuminate\Database\Migrations\Migration;
 
-class AddSummaryToPageRevisions extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -27,4 +27,4 @@ class AddSummaryToPageRevisions extends Migration
             $table->dropColumn('summary');
         });
     }
-}
+};
diff --git a/database/migrations/2016_09_29_101449_remove_hidden_roles.php b/database/migrations/2016_09_29_101449_remove_hidden_roles.php
index f5f1aa26b..2f729673f 100644
--- a/database/migrations/2016_09_29_101449_remove_hidden_roles.php
+++ b/database/migrations/2016_09_29_101449_remove_hidden_roles.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class RemoveHiddenRoles extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -63,4 +63,4 @@ class RemoveHiddenRoles extends Migration
 
         DB::table('roles')->where('system_name', '=', 'public')->update(['hidden' => true]);
     }
-}
+};
diff --git a/database/migrations/2016_10_09_142037_create_attachments_table.php b/database/migrations/2016_10_09_142037_create_attachments_table.php
index 9c5422f08..41db5723d 100644
--- a/database/migrations/2016_10_09_142037_create_attachments_table.php
+++ b/database/migrations/2016_10_09_142037_create_attachments_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateAttachmentsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -67,4 +67,4 @@ class CreateAttachmentsTable extends Migration
             DB::table('role_permissions')->where('name', '=', $permName)->delete();
         }
     }
-}
+};
diff --git a/database/migrations/2017_01_21_163556_create_cache_table.php b/database/migrations/2017_01_21_163556_create_cache_table.php
index f77d4a4eb..abff912f2 100644
--- a/database/migrations/2017_01_21_163556_create_cache_table.php
+++ b/database/migrations/2017_01_21_163556_create_cache_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateCacheTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class CreateCacheTable extends Migration
     {
         Schema::dropIfExists('cache');
     }
-}
+};
diff --git a/database/migrations/2017_01_21_163602_create_sessions_table.php b/database/migrations/2017_01_21_163602_create_sessions_table.php
index b4d154fda..c32838a8c 100644
--- a/database/migrations/2017_01_21_163602_create_sessions_table.php
+++ b/database/migrations/2017_01_21_163602_create_sessions_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateSessionsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -32,4 +32,4 @@ class CreateSessionsTable extends Migration
     {
         Schema::dropIfExists('sessions');
     }
-}
+};
diff --git a/database/migrations/2017_03_19_091553_create_search_index_table.php b/database/migrations/2017_03_19_091553_create_search_index_table.php
index 0f8a3dd34..03a63392a 100644
--- a/database/migrations/2017_03_19_091553_create_search_index_table.php
+++ b/database/migrations/2017_03_19_091553_create_search_index_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateSearchIndexTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -73,4 +73,4 @@ class CreateSearchIndexTable extends Migration
 
         Schema::dropIfExists('search_terms');
     }
-}
+};
diff --git a/database/migrations/2017_04_20_185112_add_revision_counts.php b/database/migrations/2017_04_20_185112_add_revision_counts.php
index 8c6d75e77..9961c1dee 100644
--- a/database/migrations/2017_04_20_185112_add_revision_counts.php
+++ b/database/migrations/2017_04_20_185112_add_revision_counts.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddRevisionCounts extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -41,4 +41,4 @@ class AddRevisionCounts extends Migration
             $table->dropColumn('revision_number');
         });
     }
-}
+};
diff --git a/database/migrations/2017_07_02_152834_update_db_encoding_to_ut8mb4.php b/database/migrations/2017_07_02_152834_update_db_encoding_to_ut8mb4.php
index 5681013ad..7805be700 100644
--- a/database/migrations/2017_07_02_152834_update_db_encoding_to_ut8mb4.php
+++ b/database/migrations/2017_07_02_152834_update_db_encoding_to_ut8mb4.php
@@ -2,7 +2,7 @@
 
 use Illuminate\Database\Migrations\Migration;
 
-class UpdateDbEncodingToUt8mb4 extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -25,4 +25,4 @@ class UpdateDbEncodingToUt8mb4 extends Migration
     {
         //
     }
-}
+};
diff --git a/database/migrations/2017_08_01_130541_create_comments_table.php b/database/migrations/2017_08_01_130541_create_comments_table.php
index 7e64d347b..f654ebf65 100644
--- a/database/migrations/2017_08_01_130541_create_comments_table.php
+++ b/database/migrations/2017_08_01_130541_create_comments_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateCommentsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -64,4 +64,4 @@ class CreateCommentsTable extends Migration
             DB::table('role_permissions')->where('name', '=', $permName)->delete();
         }
     }
-}
+};
diff --git a/database/migrations/2017_08_29_102650_add_cover_image_display.php b/database/migrations/2017_08_29_102650_add_cover_image_display.php
index 7dd924338..5ba3145f2 100644
--- a/database/migrations/2017_08_29_102650_add_cover_image_display.php
+++ b/database/migrations/2017_08_29_102650_add_cover_image_display.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddCoverImageDisplay extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class AddCoverImageDisplay extends Migration
             $table->dropColumn('image_id');
         });
     }
-}
+};
diff --git a/database/migrations/2018_07_15_173514_add_role_external_auth_id.php b/database/migrations/2018_07_15_173514_add_role_external_auth_id.php
index 85e10a74b..eb2bf91fc 100644
--- a/database/migrations/2018_07_15_173514_add_role_external_auth_id.php
+++ b/database/migrations/2018_07_15_173514_add_role_external_auth_id.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddRoleExternalAuthId extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -30,4 +30,4 @@ class AddRoleExternalAuthId extends Migration
             $table->dropColumn('external_auth_id');
         });
     }
-}
+};
diff --git a/database/migrations/2018_08_04_115700_create_bookshelves_table.php b/database/migrations/2018_08_04_115700_create_bookshelves_table.php
index bb1aec95b..bd3478bc7 100644
--- a/database/migrations/2018_08_04_115700_create_bookshelves_table.php
+++ b/database/migrations/2018_08_04_115700_create_bookshelves_table.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class CreateBookshelvesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -128,4 +128,4 @@ class CreateBookshelvesTable extends Migration
         DB::table('search_terms')->where('entity_type', '=', 'BookStack\Entities\Models\Bookshelf')->delete();
         DB::table('comments')->where('entity_type', '=', 'BookStack\Entities\Models\Bookshelf')->delete();
     }
-}
+};
diff --git a/database/migrations/2019_07_07_112515_add_template_support.php b/database/migrations/2019_07_07_112515_add_template_support.php
index ae26985ed..423e02827 100644
--- a/database/migrations/2019_07_07_112515_add_template_support.php
+++ b/database/migrations/2019_07_07_112515_add_template_support.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddTemplateSupport extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -51,4 +51,4 @@ class AddTemplateSupport extends Migration
         DB::table('permission_role')->where('permission_id', '=', $templatesManagePermission->id)->delete();
         DB::table('role_permissions')->where('name', '=', 'templates-manage')->delete();
     }
-}
+};
diff --git a/database/migrations/2019_08_17_140214_add_user_invites_table.php b/database/migrations/2019_08_17_140214_add_user_invites_table.php
index 6321b8187..ce88a2894 100644
--- a/database/migrations/2019_08_17_140214_add_user_invites_table.php
+++ b/database/migrations/2019_08_17_140214_add_user_invites_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddUserInvitesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -30,4 +30,4 @@ class AddUserInvitesTable extends Migration
     {
         Schema::dropIfExists('user_invites');
     }
-}
+};
diff --git a/database/migrations/2019_12_29_120917_add_api_auth.php b/database/migrations/2019_12_29_120917_add_api_auth.php
index 409383379..2cf970a8a 100644
--- a/database/migrations/2019_12_29_120917_add_api_auth.php
+++ b/database/migrations/2019_12_29_120917_add_api_auth.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\Schema;
 
-class AddApiAuth extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -57,4 +57,4 @@ class AddApiAuth extends Migration
         DB::table('permission_role')->where('permission_id', '=', $apiAccessPermission->id)->delete();
         DB::table('role_permissions')->where('name', '=', 'access-api')->delete();
     }
-}
+};
diff --git a/database/migrations/2020_08_04_111754_drop_joint_permissions_id.php b/database/migrations/2020_08_04_111754_drop_joint_permissions_id.php
index bb953a5bf..902d3c227 100644
--- a/database/migrations/2020_08_04_111754_drop_joint_permissions_id.php
+++ b/database/migrations/2020_08_04_111754_drop_joint_permissions_id.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class DropJointPermissionsId extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -34,4 +34,4 @@ class DropJointPermissionsId extends Migration
             $table->increments('id')->unsigned();
         });
     }
-}
+};
diff --git a/database/migrations/2020_08_04_131052_remove_role_name_field.php b/database/migrations/2020_08_04_131052_remove_role_name_field.php
index 8f99817d2..cd9f64697 100644
--- a/database/migrations/2020_08_04_131052_remove_role_name_field.php
+++ b/database/migrations/2020_08_04_131052_remove_role_name_field.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class RemoveRoleNameField extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -34,4 +34,4 @@ class RemoveRoleNameField extends Migration
             'name' => DB::raw("lower(replace(`display_name`, ' ', '-'))"),
         ]);
     }
-}
+};
diff --git a/database/migrations/2020_09_19_094251_add_activity_indexes.php b/database/migrations/2020_09_19_094251_add_activity_indexes.php
index 28355265b..f7f35b62b 100644
--- a/database/migrations/2020_09_19_094251_add_activity_indexes.php
+++ b/database/migrations/2020_09_19_094251_add_activity_indexes.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddActivityIndexes extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -31,4 +31,4 @@ class AddActivityIndexes extends Migration
             $table->dropIndex('activities_created_at_index');
         });
     }
-}
+};
diff --git a/database/migrations/2020_09_27_210059_add_entity_soft_deletes.php b/database/migrations/2020_09_27_210059_add_entity_soft_deletes.php
index 09ee87f5a..9cc12acdc 100644
--- a/database/migrations/2020_09_27_210059_add_entity_soft_deletes.php
+++ b/database/migrations/2020_09_27_210059_add_entity_soft_deletes.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddEntitySoftDeletes extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -47,4 +47,4 @@ class AddEntitySoftDeletes extends Migration
             $table->dropSoftDeletes();
         });
     }
-}
+};
diff --git a/database/migrations/2020_09_27_210528_create_deletions_table.php b/database/migrations/2020_09_27_210528_create_deletions_table.php
index c38a9357f..3b1098175 100644
--- a/database/migrations/2020_09_27_210528_create_deletions_table.php
+++ b/database/migrations/2020_09_27_210528_create_deletions_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateDeletionsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -35,4 +35,4 @@ class CreateDeletionsTable extends Migration
     {
         Schema::dropIfExists('deletions');
     }
-}
+};
diff --git a/database/migrations/2020_11_07_232321_simplify_activities_table.php b/database/migrations/2020_11_07_232321_simplify_activities_table.php
index 59f13f456..6ebe3fad0 100644
--- a/database/migrations/2020_11_07_232321_simplify_activities_table.php
+++ b/database/migrations/2020_11_07_232321_simplify_activities_table.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class SimplifyActivitiesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -55,4 +55,4 @@ class SimplifyActivitiesTable extends Migration
             $table->index('book_id');
         });
     }
-}
+};
diff --git a/database/migrations/2020_12_30_173528_add_owned_by_field_to_entities.php b/database/migrations/2020_12_30_173528_add_owned_by_field_to_entities.php
index abff3906f..d9fab7f02 100644
--- a/database/migrations/2020_12_30_173528_add_owned_by_field_to_entities.php
+++ b/database/migrations/2020_12_30_173528_add_owned_by_field_to_entities.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class AddOwnedByFieldToEntities extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -46,4 +46,4 @@ class AddOwnedByFieldToEntities extends Migration
             $table->renameColumn('owned_by', 'created_by');
         });
     }
-}
+};
diff --git a/database/migrations/2021_01_30_225441_add_settings_type_column.php b/database/migrations/2021_01_30_225441_add_settings_type_column.php
index 61d9bda41..5d83d15f1 100644
--- a/database/migrations/2021_01_30_225441_add_settings_type_column.php
+++ b/database/migrations/2021_01_30_225441_add_settings_type_column.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddSettingsTypeColumn extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class AddSettingsTypeColumn extends Migration
             $table->dropColumn('type');
         });
     }
-}
+};
diff --git a/database/migrations/2021_03_08_215138_add_user_slug.php b/database/migrations/2021_03_08_215138_add_user_slug.php
index dad1e4227..c0e1313a7 100644
--- a/database/migrations/2021_03_08_215138_add_user_slug.php
+++ b/database/migrations/2021_03_08_215138_add_user_slug.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 use Illuminate\Support\Str;
 
-class AddUserSlug extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -47,4 +47,4 @@ class AddUserSlug extends Migration
             $table->dropColumn('slug');
         });
     }
-}
+};
diff --git a/database/migrations/2021_05_15_173110_create_favourites_table.php b/database/migrations/2021_05_15_173110_create_favourites_table.php
index 783bf5825..cdd7f4f64 100644
--- a/database/migrations/2021_05_15_173110_create_favourites_table.php
+++ b/database/migrations/2021_05_15_173110_create_favourites_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateFavouritesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -33,4 +33,4 @@ class CreateFavouritesTable extends Migration
     {
         Schema::dropIfExists('favourites');
     }
-}
+};
diff --git a/database/migrations/2021_06_30_173111_create_mfa_values_table.php b/database/migrations/2021_06_30_173111_create_mfa_values_table.php
index 937fd31d9..d145bf4ae 100644
--- a/database/migrations/2021_06_30_173111_create_mfa_values_table.php
+++ b/database/migrations/2021_06_30_173111_create_mfa_values_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateMfaValuesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -31,4 +31,4 @@ class CreateMfaValuesTable extends Migration
     {
         Schema::dropIfExists('mfa_values');
     }
-}
+};
diff --git a/database/migrations/2021_07_03_085038_add_mfa_enforced_to_roles_table.php b/database/migrations/2021_07_03_085038_add_mfa_enforced_to_roles_table.php
index c14d47ea7..8a180f088 100644
--- a/database/migrations/2021_07_03_085038_add_mfa_enforced_to_roles_table.php
+++ b/database/migrations/2021_07_03_085038_add_mfa_enforced_to_roles_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddMfaEnforcedToRolesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class AddMfaEnforcedToRolesTable extends Migration
             $table->dropColumn('mfa_enforced');
         });
     }
-}
+};
diff --git a/database/migrations/2021_08_28_161743_add_export_role_permission.php b/database/migrations/2021_08_28_161743_add_export_role_permission.php
index 1da607655..3bacab20b 100644
--- a/database/migrations/2021_08_28_161743_add_export_role_permission.php
+++ b/database/migrations/2021_08_28_161743_add_export_role_permission.php
@@ -4,7 +4,7 @@ use Carbon\Carbon;
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Support\Facades\DB;
 
-class AddExportRolePermission extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -46,4 +46,4 @@ class AddExportRolePermission extends Migration
         DB::table('permission_role')->where('permission_id', '=', $contentExportPermission->id)->delete();
         DB::table('role_permissions')->where('id', '=', 'content-export')->delete();
     }
-}
+};
diff --git a/database/migrations/2021_09_26_044614_add_activities_ip_column.php b/database/migrations/2021_09_26_044614_add_activities_ip_column.php
index 68391b1c2..5f8a95002 100644
--- a/database/migrations/2021_09_26_044614_add_activities_ip_column.php
+++ b/database/migrations/2021_09_26_044614_add_activities_ip_column.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddActivitiesIpColumn extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class AddActivitiesIpColumn extends Migration
             $table->dropColumn('ip');
         });
     }
-}
+};
diff --git a/database/migrations/2021_11_26_070438_add_index_for_user_ip.php b/database/migrations/2021_11_26_070438_add_index_for_user_ip.php
index eebab7958..564e68a6d 100644
--- a/database/migrations/2021_11_26_070438_add_index_for_user_ip.php
+++ b/database/migrations/2021_11_26_070438_add_index_for_user_ip.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddIndexForUserIp extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -29,4 +29,4 @@ class AddIndexForUserIp extends Migration
             $table->dropIndex('activities_ip_index');
         });
     }
-}
+};
diff --git a/database/migrations/2021_12_07_111343_create_webhooks_table.php b/database/migrations/2021_12_07_111343_create_webhooks_table.php
index be4fc539d..15d4851d6 100644
--- a/database/migrations/2021_12_07_111343_create_webhooks_table.php
+++ b/database/migrations/2021_12_07_111343_create_webhooks_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateWebhooksTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -45,4 +45,4 @@ class CreateWebhooksTable extends Migration
         Schema::dropIfExists('webhooks');
         Schema::dropIfExists('webhook_tracked_events');
     }
-}
+};
diff --git a/database/migrations/2021_12_13_152024_create_jobs_table.php b/database/migrations/2021_12_13_152024_create_jobs_table.php
index 1be9e8a80..a786a8910 100644
--- a/database/migrations/2021_12_13_152024_create_jobs_table.php
+++ b/database/migrations/2021_12_13_152024_create_jobs_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateJobsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -33,4 +33,4 @@ class CreateJobsTable extends Migration
     {
         Schema::dropIfExists('jobs');
     }
-}
+};
diff --git a/database/migrations/2021_12_13_152120_create_failed_jobs_table.php b/database/migrations/2021_12_13_152120_create_failed_jobs_table.php
index 6aa6d743e..17191986b 100644
--- a/database/migrations/2021_12_13_152120_create_failed_jobs_table.php
+++ b/database/migrations/2021_12_13_152120_create_failed_jobs_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateFailedJobsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -33,4 +33,4 @@ class CreateFailedJobsTable extends Migration
     {
         Schema::dropIfExists('failed_jobs');
     }
-}
+};
diff --git a/database/migrations/2022_01_03_154041_add_webhooks_timeout_error_columns.php b/database/migrations/2022_01_03_154041_add_webhooks_timeout_error_columns.php
index c7258d0f5..cb26fa26a 100644
--- a/database/migrations/2022_01_03_154041_add_webhooks_timeout_error_columns.php
+++ b/database/migrations/2022_01_03_154041_add_webhooks_timeout_error_columns.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class AddWebhooksTimeoutErrorColumns extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -35,4 +35,4 @@ class AddWebhooksTimeoutErrorColumns extends Migration
             $table->dropColumn('last_errored_at');
         });
     }
-}
+};
diff --git a/database/migrations/2022_04_17_101741_add_editor_change_field_and_permission.php b/database/migrations/2022_04_17_101741_add_editor_change_field_and_permission.php
index a562a480f..17ed0fba0 100644
--- a/database/migrations/2022_04_17_101741_add_editor_change_field_and_permission.php
+++ b/database/migrations/2022_04_17_101741_add_editor_change_field_and_permission.php
@@ -6,7 +6,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class AddEditorChangeFieldAndPermission extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -59,4 +59,4 @@ class AddEditorChangeFieldAndPermission extends Migration
         // Remove traces of the role permission
         DB::table('role_permissions')->where('name', '=', 'editor-change')->delete();
     }
-}
+};
diff --git a/database/migrations/2022_04_25_140741_update_polymorphic_types.php b/database/migrations/2022_04_25_140741_update_polymorphic_types.php
index 9f312bf75..2ec45e7d1 100644
--- a/database/migrations/2022_04_25_140741_update_polymorphic_types.php
+++ b/database/migrations/2022_04_25_140741_update_polymorphic_types.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Support\Facades\DB;
 
-class UpdatePolymorphicTypes extends Migration
+return new class extends Migration
 {
     /**
      * Mapping of old polymorphic types to new simpler values.
@@ -61,4 +61,4 @@ class UpdatePolymorphicTypes extends Migration
             }
         }
     }
-}
+};
diff --git a/database/migrations/2022_07_16_170051_drop_joint_permission_type.php b/database/migrations/2022_07_16_170051_drop_joint_permission_type.php
index f34f73636..ac52af2a6 100644
--- a/database/migrations/2022_07_16_170051_drop_joint_permission_type.php
+++ b/database/migrations/2022_07_16_170051_drop_joint_permission_type.php
@@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class DropJointPermissionType extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -38,4 +38,4 @@ class DropJointPermissionType extends Migration
             $table->primary(['role_id', 'entity_type', 'entity_id', 'action']);
         });
     }
-}
+};
diff --git a/database/migrations/2022_08_17_092941_create_references_table.php b/database/migrations/2022_08_17_092941_create_references_table.php
index 443bce551..4b688c43e 100644
--- a/database/migrations/2022_08_17_092941_create_references_table.php
+++ b/database/migrations/2022_08_17_092941_create_references_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-class CreateReferencesTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -31,4 +31,4 @@ class CreateReferencesTable extends Migration
     {
         Schema::dropIfExists('references');
     }
-}
+};
diff --git a/database/migrations/2022_09_02_082910_fix_shelf_cover_image_types.php b/database/migrations/2022_09_02_082910_fix_shelf_cover_image_types.php
index a9a413607..b8c23671d 100644
--- a/database/migrations/2022_09_02_082910_fix_shelf_cover_image_types.php
+++ b/database/migrations/2022_09_02_082910_fix_shelf_cover_image_types.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Support\Facades\DB;
 
-class FixShelfCoverImageTypes extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -41,4 +41,4 @@ class FixShelfCoverImageTypes extends Migration
             ->where('type', '=', 'cover_bookshelf')
             ->update(['type' => 'cover_book']);
     }
-}
+};
diff --git a/database/migrations/2022_10_07_091406_flatten_entity_permissions_table.php b/database/migrations/2022_10_07_091406_flatten_entity_permissions_table.php
index 468f33248..f1072102f 100644
--- a/database/migrations/2022_10_07_091406_flatten_entity_permissions_table.php
+++ b/database/migrations/2022_10_07_091406_flatten_entity_permissions_table.php
@@ -6,7 +6,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class FlattenEntityPermissionsTable extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -102,4 +102,4 @@ class FlattenEntityPermissionsTable extends Migration
         Schema::dropIfExists('entity_permissions');
         Schema::rename('old_entity_permissions', 'entity_permissions');
     }
-}
+};
diff --git a/database/migrations/2022_10_08_104202_drop_entity_restricted_field.php b/database/migrations/2022_10_08_104202_drop_entity_restricted_field.php
index 063f924f2..b2987674d 100644
--- a/database/migrations/2022_10_08_104202_drop_entity_restricted_field.php
+++ b/database/migrations/2022_10_08_104202_drop_entity_restricted_field.php
@@ -7,7 +7,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class DropEntityRestrictedField extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -90,4 +90,4 @@ class DropEntityRestrictedField extends Migration
         // Delete default entity permissions
         DB::table('entity_permissions')->where('role_id', '=', 0)->delete();
     }
-}
+};
diff --git a/database/migrations/2023_01_24_104625_refactor_joint_permissions_storage.php b/database/migrations/2023_01_24_104625_refactor_joint_permissions_storage.php
index 0f73f456b..411868c8e 100644
--- a/database/migrations/2023_01_24_104625_refactor_joint_permissions_storage.php
+++ b/database/migrations/2023_01_24_104625_refactor_joint_permissions_storage.php
@@ -6,7 +6,7 @@ use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Schema;
 
-class RefactorJointPermissionsStorage extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -49,4 +49,4 @@ class RefactorJointPermissionsStorage extends Migration
             $table->unsignedInteger('owned_by')->index();
         });
     }
-}
+};
diff --git a/database/migrations/2023_01_28_141230_copy_color_settings_for_dark_mode.php b/database/migrations/2023_01_28_141230_copy_color_settings_for_dark_mode.php
index eb779fc7b..5187dabf4 100644
--- a/database/migrations/2023_01_28_141230_copy_color_settings_for_dark_mode.php
+++ b/database/migrations/2023_01_28_141230_copy_color_settings_for_dark_mode.php
@@ -3,7 +3,7 @@
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Support\Facades\DB;
 
-class CopyColorSettingsForDarkMode extends Migration
+return new class extends Migration
 {
     /**
      * Run the migrations.
@@ -66,4 +66,4 @@ class CopyColorSettingsForDarkMode extends Migration
             ->whereIn('setting_key', $colorSettings)
             ->delete();
     }
-}
+};
diff --git a/resources/lang/ar/activities.php b/lang/ar/activities.php
similarity index 100%
rename from resources/lang/ar/activities.php
rename to lang/ar/activities.php
diff --git a/resources/lang/ar/auth.php b/lang/ar/auth.php
similarity index 100%
rename from resources/lang/ar/auth.php
rename to lang/ar/auth.php
diff --git a/resources/lang/ar/common.php b/lang/ar/common.php
similarity index 100%
rename from resources/lang/ar/common.php
rename to lang/ar/common.php
diff --git a/resources/lang/ar/components.php b/lang/ar/components.php
similarity index 100%
rename from resources/lang/ar/components.php
rename to lang/ar/components.php
diff --git a/resources/lang/ar/editor.php b/lang/ar/editor.php
similarity index 100%
rename from resources/lang/ar/editor.php
rename to lang/ar/editor.php
diff --git a/resources/lang/ar/entities.php b/lang/ar/entities.php
similarity index 100%
rename from resources/lang/ar/entities.php
rename to lang/ar/entities.php
diff --git a/resources/lang/ar/errors.php b/lang/ar/errors.php
similarity index 100%
rename from resources/lang/ar/errors.php
rename to lang/ar/errors.php
diff --git a/resources/lang/ar/pagination.php b/lang/ar/pagination.php
similarity index 100%
rename from resources/lang/ar/pagination.php
rename to lang/ar/pagination.php
diff --git a/resources/lang/ar/passwords.php b/lang/ar/passwords.php
similarity index 100%
rename from resources/lang/ar/passwords.php
rename to lang/ar/passwords.php
diff --git a/resources/lang/ar/preferences.php b/lang/ar/preferences.php
similarity index 100%
rename from resources/lang/ar/preferences.php
rename to lang/ar/preferences.php
diff --git a/resources/lang/ar/settings.php b/lang/ar/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/ar/settings.php
rename to lang/ar/settings.php
diff --git a/resources/lang/ar/validation.php b/lang/ar/validation.php
similarity index 100%
rename from resources/lang/ar/validation.php
rename to lang/ar/validation.php
diff --git a/resources/lang/bg/activities.php b/lang/bg/activities.php
similarity index 100%
rename from resources/lang/bg/activities.php
rename to lang/bg/activities.php
diff --git a/resources/lang/bg/auth.php b/lang/bg/auth.php
similarity index 100%
rename from resources/lang/bg/auth.php
rename to lang/bg/auth.php
diff --git a/resources/lang/bg/common.php b/lang/bg/common.php
similarity index 100%
rename from resources/lang/bg/common.php
rename to lang/bg/common.php
diff --git a/resources/lang/bg/components.php b/lang/bg/components.php
similarity index 100%
rename from resources/lang/bg/components.php
rename to lang/bg/components.php
diff --git a/resources/lang/bg/editor.php b/lang/bg/editor.php
similarity index 100%
rename from resources/lang/bg/editor.php
rename to lang/bg/editor.php
diff --git a/resources/lang/bg/entities.php b/lang/bg/entities.php
similarity index 100%
rename from resources/lang/bg/entities.php
rename to lang/bg/entities.php
diff --git a/resources/lang/bg/errors.php b/lang/bg/errors.php
similarity index 100%
rename from resources/lang/bg/errors.php
rename to lang/bg/errors.php
diff --git a/resources/lang/bg/pagination.php b/lang/bg/pagination.php
similarity index 100%
rename from resources/lang/bg/pagination.php
rename to lang/bg/pagination.php
diff --git a/resources/lang/bg/passwords.php b/lang/bg/passwords.php
similarity index 100%
rename from resources/lang/bg/passwords.php
rename to lang/bg/passwords.php
diff --git a/resources/lang/bg/preferences.php b/lang/bg/preferences.php
similarity index 100%
rename from resources/lang/bg/preferences.php
rename to lang/bg/preferences.php
diff --git a/resources/lang/bg/settings.php b/lang/bg/settings.php
similarity index 100%
rename from resources/lang/bg/settings.php
rename to lang/bg/settings.php
diff --git a/resources/lang/bg/validation.php b/lang/bg/validation.php
similarity index 100%
rename from resources/lang/bg/validation.php
rename to lang/bg/validation.php
diff --git a/resources/lang/bs/activities.php b/lang/bs/activities.php
similarity index 100%
rename from resources/lang/bs/activities.php
rename to lang/bs/activities.php
diff --git a/resources/lang/bs/auth.php b/lang/bs/auth.php
similarity index 100%
rename from resources/lang/bs/auth.php
rename to lang/bs/auth.php
diff --git a/resources/lang/bs/common.php b/lang/bs/common.php
similarity index 100%
rename from resources/lang/bs/common.php
rename to lang/bs/common.php
diff --git a/resources/lang/bs/components.php b/lang/bs/components.php
similarity index 100%
rename from resources/lang/bs/components.php
rename to lang/bs/components.php
diff --git a/resources/lang/bs/editor.php b/lang/bs/editor.php
similarity index 100%
rename from resources/lang/bs/editor.php
rename to lang/bs/editor.php
diff --git a/resources/lang/bs/entities.php b/lang/bs/entities.php
similarity index 100%
rename from resources/lang/bs/entities.php
rename to lang/bs/entities.php
diff --git a/resources/lang/bs/errors.php b/lang/bs/errors.php
similarity index 100%
rename from resources/lang/bs/errors.php
rename to lang/bs/errors.php
diff --git a/resources/lang/bs/pagination.php b/lang/bs/pagination.php
similarity index 100%
rename from resources/lang/bs/pagination.php
rename to lang/bs/pagination.php
diff --git a/resources/lang/bs/passwords.php b/lang/bs/passwords.php
similarity index 100%
rename from resources/lang/bs/passwords.php
rename to lang/bs/passwords.php
diff --git a/resources/lang/bs/preferences.php b/lang/bs/preferences.php
similarity index 100%
rename from resources/lang/bs/preferences.php
rename to lang/bs/preferences.php
diff --git a/resources/lang/bs/settings.php b/lang/bs/settings.php
similarity index 100%
rename from resources/lang/bs/settings.php
rename to lang/bs/settings.php
diff --git a/resources/lang/bs/validation.php b/lang/bs/validation.php
similarity index 100%
rename from resources/lang/bs/validation.php
rename to lang/bs/validation.php
diff --git a/resources/lang/ca/activities.php b/lang/ca/activities.php
similarity index 100%
rename from resources/lang/ca/activities.php
rename to lang/ca/activities.php
diff --git a/resources/lang/ca/auth.php b/lang/ca/auth.php
similarity index 100%
rename from resources/lang/ca/auth.php
rename to lang/ca/auth.php
diff --git a/resources/lang/ca/common.php b/lang/ca/common.php
similarity index 100%
rename from resources/lang/ca/common.php
rename to lang/ca/common.php
diff --git a/resources/lang/ca/components.php b/lang/ca/components.php
similarity index 100%
rename from resources/lang/ca/components.php
rename to lang/ca/components.php
diff --git a/resources/lang/ca/editor.php b/lang/ca/editor.php
similarity index 100%
rename from resources/lang/ca/editor.php
rename to lang/ca/editor.php
diff --git a/resources/lang/ca/entities.php b/lang/ca/entities.php
similarity index 100%
rename from resources/lang/ca/entities.php
rename to lang/ca/entities.php
diff --git a/resources/lang/ca/errors.php b/lang/ca/errors.php
similarity index 100%
rename from resources/lang/ca/errors.php
rename to lang/ca/errors.php
diff --git a/resources/lang/ca/pagination.php b/lang/ca/pagination.php
similarity index 100%
rename from resources/lang/ca/pagination.php
rename to lang/ca/pagination.php
diff --git a/resources/lang/ca/passwords.php b/lang/ca/passwords.php
similarity index 100%
rename from resources/lang/ca/passwords.php
rename to lang/ca/passwords.php
diff --git a/resources/lang/ca/preferences.php b/lang/ca/preferences.php
similarity index 100%
rename from resources/lang/ca/preferences.php
rename to lang/ca/preferences.php
diff --git a/resources/lang/ca/settings.php b/lang/ca/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/ca/settings.php
rename to lang/ca/settings.php
diff --git a/resources/lang/ca/validation.php b/lang/ca/validation.php
similarity index 100%
rename from resources/lang/ca/validation.php
rename to lang/ca/validation.php
diff --git a/resources/lang/cs/activities.php b/lang/cs/activities.php
similarity index 100%
rename from resources/lang/cs/activities.php
rename to lang/cs/activities.php
diff --git a/resources/lang/cs/auth.php b/lang/cs/auth.php
similarity index 100%
rename from resources/lang/cs/auth.php
rename to lang/cs/auth.php
diff --git a/resources/lang/cs/common.php b/lang/cs/common.php
similarity index 100%
rename from resources/lang/cs/common.php
rename to lang/cs/common.php
diff --git a/resources/lang/cs/components.php b/lang/cs/components.php
similarity index 100%
rename from resources/lang/cs/components.php
rename to lang/cs/components.php
diff --git a/resources/lang/cs/editor.php b/lang/cs/editor.php
similarity index 100%
rename from resources/lang/cs/editor.php
rename to lang/cs/editor.php
diff --git a/resources/lang/cs/entities.php b/lang/cs/entities.php
similarity index 100%
rename from resources/lang/cs/entities.php
rename to lang/cs/entities.php
diff --git a/resources/lang/cs/errors.php b/lang/cs/errors.php
similarity index 100%
rename from resources/lang/cs/errors.php
rename to lang/cs/errors.php
diff --git a/resources/lang/cs/pagination.php b/lang/cs/pagination.php
similarity index 100%
rename from resources/lang/cs/pagination.php
rename to lang/cs/pagination.php
diff --git a/resources/lang/cs/passwords.php b/lang/cs/passwords.php
similarity index 100%
rename from resources/lang/cs/passwords.php
rename to lang/cs/passwords.php
diff --git a/resources/lang/cs/preferences.php b/lang/cs/preferences.php
similarity index 100%
rename from resources/lang/cs/preferences.php
rename to lang/cs/preferences.php
diff --git a/resources/lang/cs/settings.php b/lang/cs/settings.php
similarity index 100%
rename from resources/lang/cs/settings.php
rename to lang/cs/settings.php
diff --git a/resources/lang/cs/validation.php b/lang/cs/validation.php
similarity index 100%
rename from resources/lang/cs/validation.php
rename to lang/cs/validation.php
diff --git a/resources/lang/cy/activities.php b/lang/cy/activities.php
similarity index 100%
rename from resources/lang/cy/activities.php
rename to lang/cy/activities.php
diff --git a/resources/lang/cy/auth.php b/lang/cy/auth.php
similarity index 100%
rename from resources/lang/cy/auth.php
rename to lang/cy/auth.php
diff --git a/resources/lang/cy/common.php b/lang/cy/common.php
similarity index 100%
rename from resources/lang/cy/common.php
rename to lang/cy/common.php
diff --git a/resources/lang/cy/components.php b/lang/cy/components.php
similarity index 100%
rename from resources/lang/cy/components.php
rename to lang/cy/components.php
diff --git a/resources/lang/cy/editor.php b/lang/cy/editor.php
similarity index 100%
rename from resources/lang/cy/editor.php
rename to lang/cy/editor.php
diff --git a/resources/lang/cy/entities.php b/lang/cy/entities.php
similarity index 100%
rename from resources/lang/cy/entities.php
rename to lang/cy/entities.php
diff --git a/resources/lang/cy/errors.php b/lang/cy/errors.php
similarity index 100%
rename from resources/lang/cy/errors.php
rename to lang/cy/errors.php
diff --git a/resources/lang/cy/pagination.php b/lang/cy/pagination.php
similarity index 100%
rename from resources/lang/cy/pagination.php
rename to lang/cy/pagination.php
diff --git a/resources/lang/cy/passwords.php b/lang/cy/passwords.php
similarity index 100%
rename from resources/lang/cy/passwords.php
rename to lang/cy/passwords.php
diff --git a/resources/lang/cy/preferences.php b/lang/cy/preferences.php
similarity index 100%
rename from resources/lang/cy/preferences.php
rename to lang/cy/preferences.php
diff --git a/resources/lang/cy/settings.php b/lang/cy/settings.php
similarity index 100%
rename from resources/lang/cy/settings.php
rename to lang/cy/settings.php
diff --git a/resources/lang/cy/validation.php b/lang/cy/validation.php
similarity index 100%
rename from resources/lang/cy/validation.php
rename to lang/cy/validation.php
diff --git a/resources/lang/da/activities.php b/lang/da/activities.php
similarity index 100%
rename from resources/lang/da/activities.php
rename to lang/da/activities.php
diff --git a/resources/lang/da/auth.php b/lang/da/auth.php
similarity index 100%
rename from resources/lang/da/auth.php
rename to lang/da/auth.php
diff --git a/resources/lang/da/common.php b/lang/da/common.php
similarity index 100%
rename from resources/lang/da/common.php
rename to lang/da/common.php
diff --git a/resources/lang/da/components.php b/lang/da/components.php
similarity index 100%
rename from resources/lang/da/components.php
rename to lang/da/components.php
diff --git a/resources/lang/da/editor.php b/lang/da/editor.php
similarity index 100%
rename from resources/lang/da/editor.php
rename to lang/da/editor.php
diff --git a/resources/lang/da/entities.php b/lang/da/entities.php
similarity index 100%
rename from resources/lang/da/entities.php
rename to lang/da/entities.php
diff --git a/resources/lang/da/errors.php b/lang/da/errors.php
similarity index 100%
rename from resources/lang/da/errors.php
rename to lang/da/errors.php
diff --git a/resources/lang/da/pagination.php b/lang/da/pagination.php
similarity index 100%
rename from resources/lang/da/pagination.php
rename to lang/da/pagination.php
diff --git a/resources/lang/da/passwords.php b/lang/da/passwords.php
similarity index 100%
rename from resources/lang/da/passwords.php
rename to lang/da/passwords.php
diff --git a/resources/lang/da/preferences.php b/lang/da/preferences.php
similarity index 100%
rename from resources/lang/da/preferences.php
rename to lang/da/preferences.php
diff --git a/resources/lang/da/settings.php b/lang/da/settings.php
similarity index 100%
rename from resources/lang/da/settings.php
rename to lang/da/settings.php
diff --git a/resources/lang/da/validation.php b/lang/da/validation.php
similarity index 100%
rename from resources/lang/da/validation.php
rename to lang/da/validation.php
diff --git a/resources/lang/de/activities.php b/lang/de/activities.php
similarity index 100%
rename from resources/lang/de/activities.php
rename to lang/de/activities.php
diff --git a/resources/lang/de/auth.php b/lang/de/auth.php
similarity index 100%
rename from resources/lang/de/auth.php
rename to lang/de/auth.php
diff --git a/resources/lang/de/common.php b/lang/de/common.php
similarity index 100%
rename from resources/lang/de/common.php
rename to lang/de/common.php
diff --git a/resources/lang/de/components.php b/lang/de/components.php
similarity index 100%
rename from resources/lang/de/components.php
rename to lang/de/components.php
diff --git a/resources/lang/de/editor.php b/lang/de/editor.php
similarity index 100%
rename from resources/lang/de/editor.php
rename to lang/de/editor.php
diff --git a/resources/lang/de/entities.php b/lang/de/entities.php
similarity index 100%
rename from resources/lang/de/entities.php
rename to lang/de/entities.php
diff --git a/resources/lang/de/errors.php b/lang/de/errors.php
similarity index 100%
rename from resources/lang/de/errors.php
rename to lang/de/errors.php
diff --git a/resources/lang/de/pagination.php b/lang/de/pagination.php
similarity index 100%
rename from resources/lang/de/pagination.php
rename to lang/de/pagination.php
diff --git a/resources/lang/de/passwords.php b/lang/de/passwords.php
similarity index 100%
rename from resources/lang/de/passwords.php
rename to lang/de/passwords.php
diff --git a/resources/lang/de/preferences.php b/lang/de/preferences.php
similarity index 100%
rename from resources/lang/de/preferences.php
rename to lang/de/preferences.php
diff --git a/resources/lang/de/settings.php b/lang/de/settings.php
similarity index 100%
rename from resources/lang/de/settings.php
rename to lang/de/settings.php
diff --git a/resources/lang/de/validation.php b/lang/de/validation.php
similarity index 100%
rename from resources/lang/de/validation.php
rename to lang/de/validation.php
diff --git a/resources/lang/de_informal/activities.php b/lang/de_informal/activities.php
similarity index 100%
rename from resources/lang/de_informal/activities.php
rename to lang/de_informal/activities.php
diff --git a/resources/lang/de_informal/auth.php b/lang/de_informal/auth.php
similarity index 100%
rename from resources/lang/de_informal/auth.php
rename to lang/de_informal/auth.php
diff --git a/resources/lang/de_informal/common.php b/lang/de_informal/common.php
similarity index 100%
rename from resources/lang/de_informal/common.php
rename to lang/de_informal/common.php
diff --git a/resources/lang/de_informal/components.php b/lang/de_informal/components.php
similarity index 100%
rename from resources/lang/de_informal/components.php
rename to lang/de_informal/components.php
diff --git a/resources/lang/de_informal/editor.php b/lang/de_informal/editor.php
similarity index 100%
rename from resources/lang/de_informal/editor.php
rename to lang/de_informal/editor.php
diff --git a/resources/lang/de_informal/entities.php b/lang/de_informal/entities.php
similarity index 100%
rename from resources/lang/de_informal/entities.php
rename to lang/de_informal/entities.php
diff --git a/resources/lang/de_informal/errors.php b/lang/de_informal/errors.php
similarity index 100%
rename from resources/lang/de_informal/errors.php
rename to lang/de_informal/errors.php
diff --git a/resources/lang/de_informal/pagination.php b/lang/de_informal/pagination.php
similarity index 100%
rename from resources/lang/de_informal/pagination.php
rename to lang/de_informal/pagination.php
diff --git a/resources/lang/de_informal/passwords.php b/lang/de_informal/passwords.php
similarity index 100%
rename from resources/lang/de_informal/passwords.php
rename to lang/de_informal/passwords.php
diff --git a/resources/lang/de_informal/preferences.php b/lang/de_informal/preferences.php
similarity index 100%
rename from resources/lang/de_informal/preferences.php
rename to lang/de_informal/preferences.php
diff --git a/resources/lang/de_informal/settings.php b/lang/de_informal/settings.php
similarity index 100%
rename from resources/lang/de_informal/settings.php
rename to lang/de_informal/settings.php
diff --git a/resources/lang/de_informal/validation.php b/lang/de_informal/validation.php
similarity index 100%
rename from resources/lang/de_informal/validation.php
rename to lang/de_informal/validation.php
diff --git a/resources/lang/el/activities.php b/lang/el/activities.php
similarity index 100%
rename from resources/lang/el/activities.php
rename to lang/el/activities.php
diff --git a/resources/lang/el/auth.php b/lang/el/auth.php
similarity index 100%
rename from resources/lang/el/auth.php
rename to lang/el/auth.php
diff --git a/resources/lang/el/common.php b/lang/el/common.php
similarity index 100%
rename from resources/lang/el/common.php
rename to lang/el/common.php
diff --git a/resources/lang/el/components.php b/lang/el/components.php
similarity index 100%
rename from resources/lang/el/components.php
rename to lang/el/components.php
diff --git a/resources/lang/el/editor.php b/lang/el/editor.php
similarity index 100%
rename from resources/lang/el/editor.php
rename to lang/el/editor.php
diff --git a/resources/lang/el/entities.php b/lang/el/entities.php
similarity index 100%
rename from resources/lang/el/entities.php
rename to lang/el/entities.php
diff --git a/resources/lang/el/errors.php b/lang/el/errors.php
similarity index 100%
rename from resources/lang/el/errors.php
rename to lang/el/errors.php
diff --git a/resources/lang/el/pagination.php b/lang/el/pagination.php
similarity index 100%
rename from resources/lang/el/pagination.php
rename to lang/el/pagination.php
diff --git a/resources/lang/el/passwords.php b/lang/el/passwords.php
similarity index 100%
rename from resources/lang/el/passwords.php
rename to lang/el/passwords.php
diff --git a/resources/lang/el/preferences.php b/lang/el/preferences.php
similarity index 100%
rename from resources/lang/el/preferences.php
rename to lang/el/preferences.php
diff --git a/resources/lang/el/settings.php b/lang/el/settings.php
similarity index 100%
rename from resources/lang/el/settings.php
rename to lang/el/settings.php
diff --git a/resources/lang/el/validation.php b/lang/el/validation.php
similarity index 100%
rename from resources/lang/el/validation.php
rename to lang/el/validation.php
diff --git a/resources/lang/en/activities.php b/lang/en/activities.php
similarity index 100%
rename from resources/lang/en/activities.php
rename to lang/en/activities.php
diff --git a/resources/lang/en/auth.php b/lang/en/auth.php
similarity index 100%
rename from resources/lang/en/auth.php
rename to lang/en/auth.php
diff --git a/resources/lang/en/common.php b/lang/en/common.php
similarity index 100%
rename from resources/lang/en/common.php
rename to lang/en/common.php
diff --git a/resources/lang/en/components.php b/lang/en/components.php
similarity index 100%
rename from resources/lang/en/components.php
rename to lang/en/components.php
diff --git a/resources/lang/en/editor.php b/lang/en/editor.php
similarity index 100%
rename from resources/lang/en/editor.php
rename to lang/en/editor.php
diff --git a/resources/lang/en/entities.php b/lang/en/entities.php
similarity index 100%
rename from resources/lang/en/entities.php
rename to lang/en/entities.php
diff --git a/resources/lang/en/errors.php b/lang/en/errors.php
similarity index 100%
rename from resources/lang/en/errors.php
rename to lang/en/errors.php
diff --git a/resources/lang/en/pagination.php b/lang/en/pagination.php
similarity index 100%
rename from resources/lang/en/pagination.php
rename to lang/en/pagination.php
diff --git a/resources/lang/en/passwords.php b/lang/en/passwords.php
similarity index 100%
rename from resources/lang/en/passwords.php
rename to lang/en/passwords.php
diff --git a/resources/lang/en/preferences.php b/lang/en/preferences.php
similarity index 100%
rename from resources/lang/en/preferences.php
rename to lang/en/preferences.php
diff --git a/resources/lang/en/settings.php b/lang/en/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/en/settings.php
rename to lang/en/settings.php
diff --git a/resources/lang/en/validation.php b/lang/en/validation.php
similarity index 100%
rename from resources/lang/en/validation.php
rename to lang/en/validation.php
diff --git a/resources/lang/es/activities.php b/lang/es/activities.php
similarity index 100%
rename from resources/lang/es/activities.php
rename to lang/es/activities.php
diff --git a/resources/lang/es/auth.php b/lang/es/auth.php
similarity index 100%
rename from resources/lang/es/auth.php
rename to lang/es/auth.php
diff --git a/resources/lang/es/common.php b/lang/es/common.php
similarity index 100%
rename from resources/lang/es/common.php
rename to lang/es/common.php
diff --git a/resources/lang/es/components.php b/lang/es/components.php
similarity index 100%
rename from resources/lang/es/components.php
rename to lang/es/components.php
diff --git a/resources/lang/es/editor.php b/lang/es/editor.php
similarity index 100%
rename from resources/lang/es/editor.php
rename to lang/es/editor.php
diff --git a/resources/lang/es/entities.php b/lang/es/entities.php
similarity index 100%
rename from resources/lang/es/entities.php
rename to lang/es/entities.php
diff --git a/resources/lang/es/errors.php b/lang/es/errors.php
similarity index 100%
rename from resources/lang/es/errors.php
rename to lang/es/errors.php
diff --git a/resources/lang/es/pagination.php b/lang/es/pagination.php
similarity index 100%
rename from resources/lang/es/pagination.php
rename to lang/es/pagination.php
diff --git a/resources/lang/es/passwords.php b/lang/es/passwords.php
similarity index 100%
rename from resources/lang/es/passwords.php
rename to lang/es/passwords.php
diff --git a/resources/lang/es/preferences.php b/lang/es/preferences.php
similarity index 100%
rename from resources/lang/es/preferences.php
rename to lang/es/preferences.php
diff --git a/resources/lang/es/settings.php b/lang/es/settings.php
similarity index 100%
rename from resources/lang/es/settings.php
rename to lang/es/settings.php
diff --git a/resources/lang/es/validation.php b/lang/es/validation.php
similarity index 100%
rename from resources/lang/es/validation.php
rename to lang/es/validation.php
diff --git a/resources/lang/es_AR/activities.php b/lang/es_AR/activities.php
similarity index 100%
rename from resources/lang/es_AR/activities.php
rename to lang/es_AR/activities.php
diff --git a/resources/lang/es_AR/auth.php b/lang/es_AR/auth.php
similarity index 100%
rename from resources/lang/es_AR/auth.php
rename to lang/es_AR/auth.php
diff --git a/resources/lang/es_AR/common.php b/lang/es_AR/common.php
similarity index 100%
rename from resources/lang/es_AR/common.php
rename to lang/es_AR/common.php
diff --git a/resources/lang/es_AR/components.php b/lang/es_AR/components.php
similarity index 100%
rename from resources/lang/es_AR/components.php
rename to lang/es_AR/components.php
diff --git a/resources/lang/es_AR/editor.php b/lang/es_AR/editor.php
similarity index 100%
rename from resources/lang/es_AR/editor.php
rename to lang/es_AR/editor.php
diff --git a/resources/lang/es_AR/entities.php b/lang/es_AR/entities.php
similarity index 100%
rename from resources/lang/es_AR/entities.php
rename to lang/es_AR/entities.php
diff --git a/resources/lang/es_AR/errors.php b/lang/es_AR/errors.php
similarity index 100%
rename from resources/lang/es_AR/errors.php
rename to lang/es_AR/errors.php
diff --git a/resources/lang/es_AR/pagination.php b/lang/es_AR/pagination.php
similarity index 100%
rename from resources/lang/es_AR/pagination.php
rename to lang/es_AR/pagination.php
diff --git a/resources/lang/es_AR/passwords.php b/lang/es_AR/passwords.php
similarity index 100%
rename from resources/lang/es_AR/passwords.php
rename to lang/es_AR/passwords.php
diff --git a/resources/lang/es_AR/preferences.php b/lang/es_AR/preferences.php
similarity index 100%
rename from resources/lang/es_AR/preferences.php
rename to lang/es_AR/preferences.php
diff --git a/resources/lang/es_AR/settings.php b/lang/es_AR/settings.php
similarity index 100%
rename from resources/lang/es_AR/settings.php
rename to lang/es_AR/settings.php
diff --git a/resources/lang/es_AR/validation.php b/lang/es_AR/validation.php
similarity index 100%
rename from resources/lang/es_AR/validation.php
rename to lang/es_AR/validation.php
diff --git a/resources/lang/et/activities.php b/lang/et/activities.php
similarity index 100%
rename from resources/lang/et/activities.php
rename to lang/et/activities.php
diff --git a/resources/lang/et/auth.php b/lang/et/auth.php
similarity index 100%
rename from resources/lang/et/auth.php
rename to lang/et/auth.php
diff --git a/resources/lang/et/common.php b/lang/et/common.php
similarity index 100%
rename from resources/lang/et/common.php
rename to lang/et/common.php
diff --git a/resources/lang/et/components.php b/lang/et/components.php
similarity index 100%
rename from resources/lang/et/components.php
rename to lang/et/components.php
diff --git a/resources/lang/et/editor.php b/lang/et/editor.php
similarity index 100%
rename from resources/lang/et/editor.php
rename to lang/et/editor.php
diff --git a/resources/lang/et/entities.php b/lang/et/entities.php
similarity index 100%
rename from resources/lang/et/entities.php
rename to lang/et/entities.php
diff --git a/resources/lang/et/errors.php b/lang/et/errors.php
similarity index 100%
rename from resources/lang/et/errors.php
rename to lang/et/errors.php
diff --git a/resources/lang/et/pagination.php b/lang/et/pagination.php
similarity index 100%
rename from resources/lang/et/pagination.php
rename to lang/et/pagination.php
diff --git a/resources/lang/et/passwords.php b/lang/et/passwords.php
similarity index 100%
rename from resources/lang/et/passwords.php
rename to lang/et/passwords.php
diff --git a/resources/lang/et/preferences.php b/lang/et/preferences.php
similarity index 100%
rename from resources/lang/et/preferences.php
rename to lang/et/preferences.php
diff --git a/resources/lang/et/settings.php b/lang/et/settings.php
similarity index 100%
rename from resources/lang/et/settings.php
rename to lang/et/settings.php
diff --git a/resources/lang/et/validation.php b/lang/et/validation.php
similarity index 100%
rename from resources/lang/et/validation.php
rename to lang/et/validation.php
diff --git a/resources/lang/eu/activities.php b/lang/eu/activities.php
similarity index 100%
rename from resources/lang/eu/activities.php
rename to lang/eu/activities.php
diff --git a/resources/lang/eu/auth.php b/lang/eu/auth.php
similarity index 100%
rename from resources/lang/eu/auth.php
rename to lang/eu/auth.php
diff --git a/resources/lang/eu/common.php b/lang/eu/common.php
similarity index 100%
rename from resources/lang/eu/common.php
rename to lang/eu/common.php
diff --git a/resources/lang/eu/components.php b/lang/eu/components.php
similarity index 100%
rename from resources/lang/eu/components.php
rename to lang/eu/components.php
diff --git a/resources/lang/eu/editor.php b/lang/eu/editor.php
similarity index 100%
rename from resources/lang/eu/editor.php
rename to lang/eu/editor.php
diff --git a/resources/lang/eu/entities.php b/lang/eu/entities.php
similarity index 100%
rename from resources/lang/eu/entities.php
rename to lang/eu/entities.php
diff --git a/resources/lang/eu/errors.php b/lang/eu/errors.php
similarity index 100%
rename from resources/lang/eu/errors.php
rename to lang/eu/errors.php
diff --git a/resources/lang/eu/pagination.php b/lang/eu/pagination.php
similarity index 100%
rename from resources/lang/eu/pagination.php
rename to lang/eu/pagination.php
diff --git a/resources/lang/eu/passwords.php b/lang/eu/passwords.php
similarity index 100%
rename from resources/lang/eu/passwords.php
rename to lang/eu/passwords.php
diff --git a/resources/lang/eu/preferences.php b/lang/eu/preferences.php
similarity index 100%
rename from resources/lang/eu/preferences.php
rename to lang/eu/preferences.php
diff --git a/resources/lang/eu/settings.php b/lang/eu/settings.php
similarity index 100%
rename from resources/lang/eu/settings.php
rename to lang/eu/settings.php
diff --git a/resources/lang/eu/validation.php b/lang/eu/validation.php
similarity index 100%
rename from resources/lang/eu/validation.php
rename to lang/eu/validation.php
diff --git a/resources/lang/fa/activities.php b/lang/fa/activities.php
similarity index 100%
rename from resources/lang/fa/activities.php
rename to lang/fa/activities.php
diff --git a/resources/lang/fa/auth.php b/lang/fa/auth.php
similarity index 100%
rename from resources/lang/fa/auth.php
rename to lang/fa/auth.php
diff --git a/resources/lang/fa/common.php b/lang/fa/common.php
similarity index 100%
rename from resources/lang/fa/common.php
rename to lang/fa/common.php
diff --git a/resources/lang/fa/components.php b/lang/fa/components.php
similarity index 100%
rename from resources/lang/fa/components.php
rename to lang/fa/components.php
diff --git a/resources/lang/fa/editor.php b/lang/fa/editor.php
similarity index 100%
rename from resources/lang/fa/editor.php
rename to lang/fa/editor.php
diff --git a/resources/lang/fa/entities.php b/lang/fa/entities.php
similarity index 100%
rename from resources/lang/fa/entities.php
rename to lang/fa/entities.php
diff --git a/resources/lang/fa/errors.php b/lang/fa/errors.php
similarity index 100%
rename from resources/lang/fa/errors.php
rename to lang/fa/errors.php
diff --git a/resources/lang/fa/pagination.php b/lang/fa/pagination.php
similarity index 100%
rename from resources/lang/fa/pagination.php
rename to lang/fa/pagination.php
diff --git a/resources/lang/fa/passwords.php b/lang/fa/passwords.php
similarity index 100%
rename from resources/lang/fa/passwords.php
rename to lang/fa/passwords.php
diff --git a/resources/lang/fa/preferences.php b/lang/fa/preferences.php
similarity index 100%
rename from resources/lang/fa/preferences.php
rename to lang/fa/preferences.php
diff --git a/resources/lang/fa/settings.php b/lang/fa/settings.php
similarity index 100%
rename from resources/lang/fa/settings.php
rename to lang/fa/settings.php
diff --git a/resources/lang/fa/validation.php b/lang/fa/validation.php
similarity index 100%
rename from resources/lang/fa/validation.php
rename to lang/fa/validation.php
diff --git a/resources/lang/fr/activities.php b/lang/fr/activities.php
similarity index 100%
rename from resources/lang/fr/activities.php
rename to lang/fr/activities.php
diff --git a/resources/lang/fr/auth.php b/lang/fr/auth.php
similarity index 100%
rename from resources/lang/fr/auth.php
rename to lang/fr/auth.php
diff --git a/resources/lang/fr/common.php b/lang/fr/common.php
similarity index 100%
rename from resources/lang/fr/common.php
rename to lang/fr/common.php
diff --git a/resources/lang/fr/components.php b/lang/fr/components.php
similarity index 100%
rename from resources/lang/fr/components.php
rename to lang/fr/components.php
diff --git a/resources/lang/fr/editor.php b/lang/fr/editor.php
similarity index 100%
rename from resources/lang/fr/editor.php
rename to lang/fr/editor.php
diff --git a/resources/lang/fr/entities.php b/lang/fr/entities.php
similarity index 100%
rename from resources/lang/fr/entities.php
rename to lang/fr/entities.php
diff --git a/resources/lang/fr/errors.php b/lang/fr/errors.php
similarity index 100%
rename from resources/lang/fr/errors.php
rename to lang/fr/errors.php
diff --git a/resources/lang/fr/pagination.php b/lang/fr/pagination.php
similarity index 100%
rename from resources/lang/fr/pagination.php
rename to lang/fr/pagination.php
diff --git a/resources/lang/fr/passwords.php b/lang/fr/passwords.php
similarity index 100%
rename from resources/lang/fr/passwords.php
rename to lang/fr/passwords.php
diff --git a/resources/lang/fr/preferences.php b/lang/fr/preferences.php
similarity index 100%
rename from resources/lang/fr/preferences.php
rename to lang/fr/preferences.php
diff --git a/resources/lang/fr/settings.php b/lang/fr/settings.php
similarity index 100%
rename from resources/lang/fr/settings.php
rename to lang/fr/settings.php
diff --git a/resources/lang/fr/validation.php b/lang/fr/validation.php
similarity index 100%
rename from resources/lang/fr/validation.php
rename to lang/fr/validation.php
diff --git a/resources/lang/he/activities.php b/lang/he/activities.php
similarity index 100%
rename from resources/lang/he/activities.php
rename to lang/he/activities.php
diff --git a/resources/lang/he/auth.php b/lang/he/auth.php
similarity index 100%
rename from resources/lang/he/auth.php
rename to lang/he/auth.php
diff --git a/resources/lang/he/common.php b/lang/he/common.php
similarity index 100%
rename from resources/lang/he/common.php
rename to lang/he/common.php
diff --git a/resources/lang/he/components.php b/lang/he/components.php
similarity index 100%
rename from resources/lang/he/components.php
rename to lang/he/components.php
diff --git a/resources/lang/he/editor.php b/lang/he/editor.php
similarity index 100%
rename from resources/lang/he/editor.php
rename to lang/he/editor.php
diff --git a/resources/lang/he/entities.php b/lang/he/entities.php
similarity index 100%
rename from resources/lang/he/entities.php
rename to lang/he/entities.php
diff --git a/resources/lang/he/errors.php b/lang/he/errors.php
similarity index 100%
rename from resources/lang/he/errors.php
rename to lang/he/errors.php
diff --git a/resources/lang/he/pagination.php b/lang/he/pagination.php
similarity index 100%
rename from resources/lang/he/pagination.php
rename to lang/he/pagination.php
diff --git a/resources/lang/he/passwords.php b/lang/he/passwords.php
similarity index 100%
rename from resources/lang/he/passwords.php
rename to lang/he/passwords.php
diff --git a/resources/lang/he/preferences.php b/lang/he/preferences.php
similarity index 100%
rename from resources/lang/he/preferences.php
rename to lang/he/preferences.php
diff --git a/resources/lang/he/settings.php b/lang/he/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/he/settings.php
rename to lang/he/settings.php
diff --git a/resources/lang/he/validation.php b/lang/he/validation.php
similarity index 100%
rename from resources/lang/he/validation.php
rename to lang/he/validation.php
diff --git a/resources/lang/hr/activities.php b/lang/hr/activities.php
similarity index 100%
rename from resources/lang/hr/activities.php
rename to lang/hr/activities.php
diff --git a/resources/lang/hr/auth.php b/lang/hr/auth.php
similarity index 100%
rename from resources/lang/hr/auth.php
rename to lang/hr/auth.php
diff --git a/resources/lang/hr/common.php b/lang/hr/common.php
similarity index 100%
rename from resources/lang/hr/common.php
rename to lang/hr/common.php
diff --git a/resources/lang/hr/components.php b/lang/hr/components.php
similarity index 100%
rename from resources/lang/hr/components.php
rename to lang/hr/components.php
diff --git a/resources/lang/hr/editor.php b/lang/hr/editor.php
similarity index 100%
rename from resources/lang/hr/editor.php
rename to lang/hr/editor.php
diff --git a/resources/lang/hr/entities.php b/lang/hr/entities.php
similarity index 100%
rename from resources/lang/hr/entities.php
rename to lang/hr/entities.php
diff --git a/resources/lang/hr/errors.php b/lang/hr/errors.php
similarity index 100%
rename from resources/lang/hr/errors.php
rename to lang/hr/errors.php
diff --git a/resources/lang/hr/pagination.php b/lang/hr/pagination.php
similarity index 100%
rename from resources/lang/hr/pagination.php
rename to lang/hr/pagination.php
diff --git a/resources/lang/hr/passwords.php b/lang/hr/passwords.php
similarity index 100%
rename from resources/lang/hr/passwords.php
rename to lang/hr/passwords.php
diff --git a/resources/lang/hr/preferences.php b/lang/hr/preferences.php
similarity index 100%
rename from resources/lang/hr/preferences.php
rename to lang/hr/preferences.php
diff --git a/resources/lang/hr/settings.php b/lang/hr/settings.php
similarity index 100%
rename from resources/lang/hr/settings.php
rename to lang/hr/settings.php
diff --git a/resources/lang/hr/validation.php b/lang/hr/validation.php
similarity index 100%
rename from resources/lang/hr/validation.php
rename to lang/hr/validation.php
diff --git a/resources/lang/hu/activities.php b/lang/hu/activities.php
similarity index 100%
rename from resources/lang/hu/activities.php
rename to lang/hu/activities.php
diff --git a/resources/lang/hu/auth.php b/lang/hu/auth.php
similarity index 100%
rename from resources/lang/hu/auth.php
rename to lang/hu/auth.php
diff --git a/resources/lang/hu/common.php b/lang/hu/common.php
similarity index 100%
rename from resources/lang/hu/common.php
rename to lang/hu/common.php
diff --git a/resources/lang/hu/components.php b/lang/hu/components.php
similarity index 100%
rename from resources/lang/hu/components.php
rename to lang/hu/components.php
diff --git a/resources/lang/hu/editor.php b/lang/hu/editor.php
similarity index 100%
rename from resources/lang/hu/editor.php
rename to lang/hu/editor.php
diff --git a/resources/lang/hu/entities.php b/lang/hu/entities.php
similarity index 100%
rename from resources/lang/hu/entities.php
rename to lang/hu/entities.php
diff --git a/resources/lang/hu/errors.php b/lang/hu/errors.php
similarity index 100%
rename from resources/lang/hu/errors.php
rename to lang/hu/errors.php
diff --git a/resources/lang/hu/pagination.php b/lang/hu/pagination.php
similarity index 100%
rename from resources/lang/hu/pagination.php
rename to lang/hu/pagination.php
diff --git a/resources/lang/hu/passwords.php b/lang/hu/passwords.php
similarity index 100%
rename from resources/lang/hu/passwords.php
rename to lang/hu/passwords.php
diff --git a/resources/lang/hu/preferences.php b/lang/hu/preferences.php
similarity index 100%
rename from resources/lang/hu/preferences.php
rename to lang/hu/preferences.php
diff --git a/resources/lang/hu/settings.php b/lang/hu/settings.php
similarity index 100%
rename from resources/lang/hu/settings.php
rename to lang/hu/settings.php
diff --git a/resources/lang/hu/validation.php b/lang/hu/validation.php
similarity index 100%
rename from resources/lang/hu/validation.php
rename to lang/hu/validation.php
diff --git a/resources/lang/id/activities.php b/lang/id/activities.php
similarity index 100%
rename from resources/lang/id/activities.php
rename to lang/id/activities.php
diff --git a/resources/lang/id/auth.php b/lang/id/auth.php
similarity index 100%
rename from resources/lang/id/auth.php
rename to lang/id/auth.php
diff --git a/resources/lang/id/common.php b/lang/id/common.php
similarity index 100%
rename from resources/lang/id/common.php
rename to lang/id/common.php
diff --git a/resources/lang/id/components.php b/lang/id/components.php
similarity index 100%
rename from resources/lang/id/components.php
rename to lang/id/components.php
diff --git a/resources/lang/id/editor.php b/lang/id/editor.php
similarity index 100%
rename from resources/lang/id/editor.php
rename to lang/id/editor.php
diff --git a/resources/lang/id/entities.php b/lang/id/entities.php
similarity index 100%
rename from resources/lang/id/entities.php
rename to lang/id/entities.php
diff --git a/resources/lang/id/errors.php b/lang/id/errors.php
similarity index 100%
rename from resources/lang/id/errors.php
rename to lang/id/errors.php
diff --git a/resources/lang/id/pagination.php b/lang/id/pagination.php
similarity index 100%
rename from resources/lang/id/pagination.php
rename to lang/id/pagination.php
diff --git a/resources/lang/id/passwords.php b/lang/id/passwords.php
similarity index 100%
rename from resources/lang/id/passwords.php
rename to lang/id/passwords.php
diff --git a/resources/lang/id/preferences.php b/lang/id/preferences.php
similarity index 100%
rename from resources/lang/id/preferences.php
rename to lang/id/preferences.php
diff --git a/resources/lang/id/settings.php b/lang/id/settings.php
similarity index 100%
rename from resources/lang/id/settings.php
rename to lang/id/settings.php
diff --git a/resources/lang/id/validation.php b/lang/id/validation.php
similarity index 100%
rename from resources/lang/id/validation.php
rename to lang/id/validation.php
diff --git a/resources/lang/it/activities.php b/lang/it/activities.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/activities.php
rename to lang/it/activities.php
diff --git a/resources/lang/it/auth.php b/lang/it/auth.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/auth.php
rename to lang/it/auth.php
diff --git a/resources/lang/it/common.php b/lang/it/common.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/common.php
rename to lang/it/common.php
diff --git a/resources/lang/it/components.php b/lang/it/components.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/components.php
rename to lang/it/components.php
diff --git a/resources/lang/it/editor.php b/lang/it/editor.php
similarity index 100%
rename from resources/lang/it/editor.php
rename to lang/it/editor.php
diff --git a/resources/lang/it/entities.php b/lang/it/entities.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/entities.php
rename to lang/it/entities.php
diff --git a/resources/lang/it/errors.php b/lang/it/errors.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/errors.php
rename to lang/it/errors.php
diff --git a/resources/lang/it/pagination.php b/lang/it/pagination.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/pagination.php
rename to lang/it/pagination.php
diff --git a/resources/lang/it/passwords.php b/lang/it/passwords.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/passwords.php
rename to lang/it/passwords.php
diff --git a/resources/lang/it/preferences.php b/lang/it/preferences.php
similarity index 100%
rename from resources/lang/it/preferences.php
rename to lang/it/preferences.php
diff --git a/resources/lang/it/settings.php b/lang/it/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/settings.php
rename to lang/it/settings.php
diff --git a/resources/lang/it/validation.php b/lang/it/validation.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/it/validation.php
rename to lang/it/validation.php
diff --git a/resources/lang/ja/activities.php b/lang/ja/activities.php
similarity index 100%
rename from resources/lang/ja/activities.php
rename to lang/ja/activities.php
diff --git a/resources/lang/ja/auth.php b/lang/ja/auth.php
similarity index 100%
rename from resources/lang/ja/auth.php
rename to lang/ja/auth.php
diff --git a/resources/lang/ja/common.php b/lang/ja/common.php
similarity index 100%
rename from resources/lang/ja/common.php
rename to lang/ja/common.php
diff --git a/resources/lang/ja/components.php b/lang/ja/components.php
similarity index 100%
rename from resources/lang/ja/components.php
rename to lang/ja/components.php
diff --git a/resources/lang/ja/editor.php b/lang/ja/editor.php
similarity index 100%
rename from resources/lang/ja/editor.php
rename to lang/ja/editor.php
diff --git a/resources/lang/ja/entities.php b/lang/ja/entities.php
similarity index 100%
rename from resources/lang/ja/entities.php
rename to lang/ja/entities.php
diff --git a/resources/lang/ja/errors.php b/lang/ja/errors.php
similarity index 100%
rename from resources/lang/ja/errors.php
rename to lang/ja/errors.php
diff --git a/resources/lang/ja/pagination.php b/lang/ja/pagination.php
similarity index 100%
rename from resources/lang/ja/pagination.php
rename to lang/ja/pagination.php
diff --git a/resources/lang/ja/passwords.php b/lang/ja/passwords.php
similarity index 100%
rename from resources/lang/ja/passwords.php
rename to lang/ja/passwords.php
diff --git a/resources/lang/ja/preferences.php b/lang/ja/preferences.php
similarity index 100%
rename from resources/lang/ja/preferences.php
rename to lang/ja/preferences.php
diff --git a/resources/lang/ja/settings.php b/lang/ja/settings.php
similarity index 100%
rename from resources/lang/ja/settings.php
rename to lang/ja/settings.php
diff --git a/resources/lang/ja/validation.php b/lang/ja/validation.php
similarity index 100%
rename from resources/lang/ja/validation.php
rename to lang/ja/validation.php
diff --git a/resources/lang/ka/activities.php b/lang/ka/activities.php
similarity index 100%
rename from resources/lang/ka/activities.php
rename to lang/ka/activities.php
diff --git a/resources/lang/ka/auth.php b/lang/ka/auth.php
similarity index 100%
rename from resources/lang/ka/auth.php
rename to lang/ka/auth.php
diff --git a/resources/lang/ka/common.php b/lang/ka/common.php
similarity index 100%
rename from resources/lang/ka/common.php
rename to lang/ka/common.php
diff --git a/resources/lang/ka/components.php b/lang/ka/components.php
similarity index 100%
rename from resources/lang/ka/components.php
rename to lang/ka/components.php
diff --git a/resources/lang/ka/editor.php b/lang/ka/editor.php
similarity index 100%
rename from resources/lang/ka/editor.php
rename to lang/ka/editor.php
diff --git a/resources/lang/ka/entities.php b/lang/ka/entities.php
similarity index 100%
rename from resources/lang/ka/entities.php
rename to lang/ka/entities.php
diff --git a/resources/lang/ka/errors.php b/lang/ka/errors.php
similarity index 100%
rename from resources/lang/ka/errors.php
rename to lang/ka/errors.php
diff --git a/resources/lang/ka/pagination.php b/lang/ka/pagination.php
similarity index 100%
rename from resources/lang/ka/pagination.php
rename to lang/ka/pagination.php
diff --git a/resources/lang/ka/passwords.php b/lang/ka/passwords.php
similarity index 100%
rename from resources/lang/ka/passwords.php
rename to lang/ka/passwords.php
diff --git a/resources/lang/ka/preferences.php b/lang/ka/preferences.php
similarity index 100%
rename from resources/lang/ka/preferences.php
rename to lang/ka/preferences.php
diff --git a/resources/lang/ka/settings.php b/lang/ka/settings.php
similarity index 100%
rename from resources/lang/ka/settings.php
rename to lang/ka/settings.php
diff --git a/resources/lang/ka/validation.php b/lang/ka/validation.php
similarity index 100%
rename from resources/lang/ka/validation.php
rename to lang/ka/validation.php
diff --git a/resources/lang/ko/activities.php b/lang/ko/activities.php
similarity index 100%
rename from resources/lang/ko/activities.php
rename to lang/ko/activities.php
diff --git a/resources/lang/ko/auth.php b/lang/ko/auth.php
similarity index 100%
rename from resources/lang/ko/auth.php
rename to lang/ko/auth.php
diff --git a/resources/lang/ko/common.php b/lang/ko/common.php
similarity index 100%
rename from resources/lang/ko/common.php
rename to lang/ko/common.php
diff --git a/resources/lang/ko/components.php b/lang/ko/components.php
similarity index 100%
rename from resources/lang/ko/components.php
rename to lang/ko/components.php
diff --git a/resources/lang/ko/editor.php b/lang/ko/editor.php
similarity index 100%
rename from resources/lang/ko/editor.php
rename to lang/ko/editor.php
diff --git a/resources/lang/ko/entities.php b/lang/ko/entities.php
similarity index 100%
rename from resources/lang/ko/entities.php
rename to lang/ko/entities.php
diff --git a/resources/lang/ko/errors.php b/lang/ko/errors.php
similarity index 100%
rename from resources/lang/ko/errors.php
rename to lang/ko/errors.php
diff --git a/resources/lang/ko/pagination.php b/lang/ko/pagination.php
similarity index 100%
rename from resources/lang/ko/pagination.php
rename to lang/ko/pagination.php
diff --git a/resources/lang/ko/passwords.php b/lang/ko/passwords.php
similarity index 100%
rename from resources/lang/ko/passwords.php
rename to lang/ko/passwords.php
diff --git a/resources/lang/ko/preferences.php b/lang/ko/preferences.php
similarity index 100%
rename from resources/lang/ko/preferences.php
rename to lang/ko/preferences.php
diff --git a/resources/lang/ko/settings.php b/lang/ko/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/ko/settings.php
rename to lang/ko/settings.php
diff --git a/resources/lang/ko/validation.php b/lang/ko/validation.php
similarity index 100%
rename from resources/lang/ko/validation.php
rename to lang/ko/validation.php
diff --git a/resources/lang/lt/activities.php b/lang/lt/activities.php
similarity index 100%
rename from resources/lang/lt/activities.php
rename to lang/lt/activities.php
diff --git a/resources/lang/lt/auth.php b/lang/lt/auth.php
similarity index 100%
rename from resources/lang/lt/auth.php
rename to lang/lt/auth.php
diff --git a/resources/lang/lt/common.php b/lang/lt/common.php
similarity index 100%
rename from resources/lang/lt/common.php
rename to lang/lt/common.php
diff --git a/resources/lang/lt/components.php b/lang/lt/components.php
similarity index 100%
rename from resources/lang/lt/components.php
rename to lang/lt/components.php
diff --git a/resources/lang/lt/editor.php b/lang/lt/editor.php
similarity index 100%
rename from resources/lang/lt/editor.php
rename to lang/lt/editor.php
diff --git a/resources/lang/lt/entities.php b/lang/lt/entities.php
similarity index 100%
rename from resources/lang/lt/entities.php
rename to lang/lt/entities.php
diff --git a/resources/lang/lt/errors.php b/lang/lt/errors.php
similarity index 100%
rename from resources/lang/lt/errors.php
rename to lang/lt/errors.php
diff --git a/resources/lang/lt/pagination.php b/lang/lt/pagination.php
similarity index 100%
rename from resources/lang/lt/pagination.php
rename to lang/lt/pagination.php
diff --git a/resources/lang/lt/passwords.php b/lang/lt/passwords.php
similarity index 100%
rename from resources/lang/lt/passwords.php
rename to lang/lt/passwords.php
diff --git a/resources/lang/lt/preferences.php b/lang/lt/preferences.php
similarity index 100%
rename from resources/lang/lt/preferences.php
rename to lang/lt/preferences.php
diff --git a/resources/lang/lt/settings.php b/lang/lt/settings.php
similarity index 100%
rename from resources/lang/lt/settings.php
rename to lang/lt/settings.php
diff --git a/resources/lang/lt/validation.php b/lang/lt/validation.php
similarity index 100%
rename from resources/lang/lt/validation.php
rename to lang/lt/validation.php
diff --git a/resources/lang/lv/activities.php b/lang/lv/activities.php
similarity index 100%
rename from resources/lang/lv/activities.php
rename to lang/lv/activities.php
diff --git a/resources/lang/lv/auth.php b/lang/lv/auth.php
similarity index 100%
rename from resources/lang/lv/auth.php
rename to lang/lv/auth.php
diff --git a/resources/lang/lv/common.php b/lang/lv/common.php
similarity index 100%
rename from resources/lang/lv/common.php
rename to lang/lv/common.php
diff --git a/resources/lang/lv/components.php b/lang/lv/components.php
similarity index 100%
rename from resources/lang/lv/components.php
rename to lang/lv/components.php
diff --git a/resources/lang/lv/editor.php b/lang/lv/editor.php
similarity index 100%
rename from resources/lang/lv/editor.php
rename to lang/lv/editor.php
diff --git a/resources/lang/lv/entities.php b/lang/lv/entities.php
similarity index 100%
rename from resources/lang/lv/entities.php
rename to lang/lv/entities.php
diff --git a/resources/lang/lv/errors.php b/lang/lv/errors.php
similarity index 100%
rename from resources/lang/lv/errors.php
rename to lang/lv/errors.php
diff --git a/resources/lang/lv/pagination.php b/lang/lv/pagination.php
similarity index 100%
rename from resources/lang/lv/pagination.php
rename to lang/lv/pagination.php
diff --git a/resources/lang/lv/passwords.php b/lang/lv/passwords.php
similarity index 100%
rename from resources/lang/lv/passwords.php
rename to lang/lv/passwords.php
diff --git a/resources/lang/lv/preferences.php b/lang/lv/preferences.php
similarity index 100%
rename from resources/lang/lv/preferences.php
rename to lang/lv/preferences.php
diff --git a/resources/lang/lv/settings.php b/lang/lv/settings.php
similarity index 100%
rename from resources/lang/lv/settings.php
rename to lang/lv/settings.php
diff --git a/resources/lang/lv/validation.php b/lang/lv/validation.php
similarity index 100%
rename from resources/lang/lv/validation.php
rename to lang/lv/validation.php
diff --git a/resources/lang/nb/activities.php b/lang/nb/activities.php
similarity index 100%
rename from resources/lang/nb/activities.php
rename to lang/nb/activities.php
diff --git a/resources/lang/nb/auth.php b/lang/nb/auth.php
similarity index 100%
rename from resources/lang/nb/auth.php
rename to lang/nb/auth.php
diff --git a/resources/lang/nb/common.php b/lang/nb/common.php
similarity index 100%
rename from resources/lang/nb/common.php
rename to lang/nb/common.php
diff --git a/resources/lang/nb/components.php b/lang/nb/components.php
similarity index 100%
rename from resources/lang/nb/components.php
rename to lang/nb/components.php
diff --git a/resources/lang/nb/editor.php b/lang/nb/editor.php
similarity index 100%
rename from resources/lang/nb/editor.php
rename to lang/nb/editor.php
diff --git a/resources/lang/nb/entities.php b/lang/nb/entities.php
similarity index 100%
rename from resources/lang/nb/entities.php
rename to lang/nb/entities.php
diff --git a/resources/lang/nb/errors.php b/lang/nb/errors.php
similarity index 100%
rename from resources/lang/nb/errors.php
rename to lang/nb/errors.php
diff --git a/resources/lang/nb/pagination.php b/lang/nb/pagination.php
similarity index 100%
rename from resources/lang/nb/pagination.php
rename to lang/nb/pagination.php
diff --git a/resources/lang/nb/passwords.php b/lang/nb/passwords.php
similarity index 100%
rename from resources/lang/nb/passwords.php
rename to lang/nb/passwords.php
diff --git a/resources/lang/nb/preferences.php b/lang/nb/preferences.php
similarity index 100%
rename from resources/lang/nb/preferences.php
rename to lang/nb/preferences.php
diff --git a/resources/lang/nb/settings.php b/lang/nb/settings.php
similarity index 100%
rename from resources/lang/nb/settings.php
rename to lang/nb/settings.php
diff --git a/resources/lang/nb/validation.php b/lang/nb/validation.php
similarity index 100%
rename from resources/lang/nb/validation.php
rename to lang/nb/validation.php
diff --git a/resources/lang/nl/activities.php b/lang/nl/activities.php
similarity index 100%
rename from resources/lang/nl/activities.php
rename to lang/nl/activities.php
diff --git a/resources/lang/nl/auth.php b/lang/nl/auth.php
similarity index 100%
rename from resources/lang/nl/auth.php
rename to lang/nl/auth.php
diff --git a/resources/lang/nl/common.php b/lang/nl/common.php
similarity index 100%
rename from resources/lang/nl/common.php
rename to lang/nl/common.php
diff --git a/resources/lang/nl/components.php b/lang/nl/components.php
similarity index 100%
rename from resources/lang/nl/components.php
rename to lang/nl/components.php
diff --git a/resources/lang/nl/editor.php b/lang/nl/editor.php
similarity index 100%
rename from resources/lang/nl/editor.php
rename to lang/nl/editor.php
diff --git a/resources/lang/nl/entities.php b/lang/nl/entities.php
similarity index 100%
rename from resources/lang/nl/entities.php
rename to lang/nl/entities.php
diff --git a/resources/lang/nl/errors.php b/lang/nl/errors.php
similarity index 100%
rename from resources/lang/nl/errors.php
rename to lang/nl/errors.php
diff --git a/resources/lang/nl/pagination.php b/lang/nl/pagination.php
similarity index 100%
rename from resources/lang/nl/pagination.php
rename to lang/nl/pagination.php
diff --git a/resources/lang/nl/passwords.php b/lang/nl/passwords.php
similarity index 100%
rename from resources/lang/nl/passwords.php
rename to lang/nl/passwords.php
diff --git a/resources/lang/nl/preferences.php b/lang/nl/preferences.php
similarity index 100%
rename from resources/lang/nl/preferences.php
rename to lang/nl/preferences.php
diff --git a/resources/lang/nl/settings.php b/lang/nl/settings.php
similarity index 100%
rename from resources/lang/nl/settings.php
rename to lang/nl/settings.php
diff --git a/resources/lang/nl/validation.php b/lang/nl/validation.php
similarity index 100%
rename from resources/lang/nl/validation.php
rename to lang/nl/validation.php
diff --git a/resources/lang/pl/activities.php b/lang/pl/activities.php
similarity index 100%
rename from resources/lang/pl/activities.php
rename to lang/pl/activities.php
diff --git a/resources/lang/pl/auth.php b/lang/pl/auth.php
similarity index 100%
rename from resources/lang/pl/auth.php
rename to lang/pl/auth.php
diff --git a/resources/lang/pl/common.php b/lang/pl/common.php
similarity index 100%
rename from resources/lang/pl/common.php
rename to lang/pl/common.php
diff --git a/resources/lang/pl/components.php b/lang/pl/components.php
similarity index 100%
rename from resources/lang/pl/components.php
rename to lang/pl/components.php
diff --git a/resources/lang/pl/editor.php b/lang/pl/editor.php
similarity index 100%
rename from resources/lang/pl/editor.php
rename to lang/pl/editor.php
diff --git a/resources/lang/pl/entities.php b/lang/pl/entities.php
similarity index 100%
rename from resources/lang/pl/entities.php
rename to lang/pl/entities.php
diff --git a/resources/lang/pl/errors.php b/lang/pl/errors.php
similarity index 100%
rename from resources/lang/pl/errors.php
rename to lang/pl/errors.php
diff --git a/resources/lang/pl/pagination.php b/lang/pl/pagination.php
similarity index 100%
rename from resources/lang/pl/pagination.php
rename to lang/pl/pagination.php
diff --git a/resources/lang/pl/passwords.php b/lang/pl/passwords.php
similarity index 100%
rename from resources/lang/pl/passwords.php
rename to lang/pl/passwords.php
diff --git a/resources/lang/pl/preferences.php b/lang/pl/preferences.php
similarity index 100%
rename from resources/lang/pl/preferences.php
rename to lang/pl/preferences.php
diff --git a/resources/lang/pl/settings.php b/lang/pl/settings.php
similarity index 100%
rename from resources/lang/pl/settings.php
rename to lang/pl/settings.php
diff --git a/resources/lang/pl/validation.php b/lang/pl/validation.php
similarity index 100%
rename from resources/lang/pl/validation.php
rename to lang/pl/validation.php
diff --git a/resources/lang/pt/activities.php b/lang/pt/activities.php
similarity index 100%
rename from resources/lang/pt/activities.php
rename to lang/pt/activities.php
diff --git a/resources/lang/pt/auth.php b/lang/pt/auth.php
similarity index 100%
rename from resources/lang/pt/auth.php
rename to lang/pt/auth.php
diff --git a/resources/lang/pt/common.php b/lang/pt/common.php
similarity index 100%
rename from resources/lang/pt/common.php
rename to lang/pt/common.php
diff --git a/resources/lang/pt/components.php b/lang/pt/components.php
similarity index 100%
rename from resources/lang/pt/components.php
rename to lang/pt/components.php
diff --git a/resources/lang/pt/editor.php b/lang/pt/editor.php
similarity index 100%
rename from resources/lang/pt/editor.php
rename to lang/pt/editor.php
diff --git a/resources/lang/pt/entities.php b/lang/pt/entities.php
similarity index 100%
rename from resources/lang/pt/entities.php
rename to lang/pt/entities.php
diff --git a/resources/lang/pt/errors.php b/lang/pt/errors.php
similarity index 100%
rename from resources/lang/pt/errors.php
rename to lang/pt/errors.php
diff --git a/resources/lang/pt/pagination.php b/lang/pt/pagination.php
similarity index 100%
rename from resources/lang/pt/pagination.php
rename to lang/pt/pagination.php
diff --git a/resources/lang/pt/passwords.php b/lang/pt/passwords.php
similarity index 100%
rename from resources/lang/pt/passwords.php
rename to lang/pt/passwords.php
diff --git a/resources/lang/pt/preferences.php b/lang/pt/preferences.php
similarity index 100%
rename from resources/lang/pt/preferences.php
rename to lang/pt/preferences.php
diff --git a/resources/lang/pt/settings.php b/lang/pt/settings.php
similarity index 100%
rename from resources/lang/pt/settings.php
rename to lang/pt/settings.php
diff --git a/resources/lang/pt/validation.php b/lang/pt/validation.php
similarity index 100%
rename from resources/lang/pt/validation.php
rename to lang/pt/validation.php
diff --git a/resources/lang/pt_BR/activities.php b/lang/pt_BR/activities.php
similarity index 100%
rename from resources/lang/pt_BR/activities.php
rename to lang/pt_BR/activities.php
diff --git a/resources/lang/pt_BR/auth.php b/lang/pt_BR/auth.php
similarity index 100%
rename from resources/lang/pt_BR/auth.php
rename to lang/pt_BR/auth.php
diff --git a/resources/lang/pt_BR/common.php b/lang/pt_BR/common.php
similarity index 100%
rename from resources/lang/pt_BR/common.php
rename to lang/pt_BR/common.php
diff --git a/resources/lang/pt_BR/components.php b/lang/pt_BR/components.php
similarity index 100%
rename from resources/lang/pt_BR/components.php
rename to lang/pt_BR/components.php
diff --git a/resources/lang/pt_BR/editor.php b/lang/pt_BR/editor.php
similarity index 100%
rename from resources/lang/pt_BR/editor.php
rename to lang/pt_BR/editor.php
diff --git a/resources/lang/pt_BR/entities.php b/lang/pt_BR/entities.php
similarity index 100%
rename from resources/lang/pt_BR/entities.php
rename to lang/pt_BR/entities.php
diff --git a/resources/lang/pt_BR/errors.php b/lang/pt_BR/errors.php
similarity index 100%
rename from resources/lang/pt_BR/errors.php
rename to lang/pt_BR/errors.php
diff --git a/resources/lang/pt_BR/pagination.php b/lang/pt_BR/pagination.php
similarity index 100%
rename from resources/lang/pt_BR/pagination.php
rename to lang/pt_BR/pagination.php
diff --git a/resources/lang/pt_BR/passwords.php b/lang/pt_BR/passwords.php
similarity index 100%
rename from resources/lang/pt_BR/passwords.php
rename to lang/pt_BR/passwords.php
diff --git a/resources/lang/pt_BR/preferences.php b/lang/pt_BR/preferences.php
similarity index 100%
rename from resources/lang/pt_BR/preferences.php
rename to lang/pt_BR/preferences.php
diff --git a/resources/lang/pt_BR/settings.php b/lang/pt_BR/settings.php
similarity index 100%
rename from resources/lang/pt_BR/settings.php
rename to lang/pt_BR/settings.php
diff --git a/resources/lang/pt_BR/validation.php b/lang/pt_BR/validation.php
similarity index 100%
rename from resources/lang/pt_BR/validation.php
rename to lang/pt_BR/validation.php
diff --git a/resources/lang/ro/activities.php b/lang/ro/activities.php
similarity index 100%
rename from resources/lang/ro/activities.php
rename to lang/ro/activities.php
diff --git a/resources/lang/ro/auth.php b/lang/ro/auth.php
similarity index 100%
rename from resources/lang/ro/auth.php
rename to lang/ro/auth.php
diff --git a/resources/lang/ro/common.php b/lang/ro/common.php
similarity index 100%
rename from resources/lang/ro/common.php
rename to lang/ro/common.php
diff --git a/resources/lang/ro/components.php b/lang/ro/components.php
similarity index 100%
rename from resources/lang/ro/components.php
rename to lang/ro/components.php
diff --git a/resources/lang/ro/editor.php b/lang/ro/editor.php
similarity index 100%
rename from resources/lang/ro/editor.php
rename to lang/ro/editor.php
diff --git a/resources/lang/ro/entities.php b/lang/ro/entities.php
similarity index 100%
rename from resources/lang/ro/entities.php
rename to lang/ro/entities.php
diff --git a/resources/lang/ro/errors.php b/lang/ro/errors.php
similarity index 100%
rename from resources/lang/ro/errors.php
rename to lang/ro/errors.php
diff --git a/resources/lang/ro/pagination.php b/lang/ro/pagination.php
similarity index 100%
rename from resources/lang/ro/pagination.php
rename to lang/ro/pagination.php
diff --git a/resources/lang/ro/passwords.php b/lang/ro/passwords.php
similarity index 100%
rename from resources/lang/ro/passwords.php
rename to lang/ro/passwords.php
diff --git a/resources/lang/ro/preferences.php b/lang/ro/preferences.php
similarity index 100%
rename from resources/lang/ro/preferences.php
rename to lang/ro/preferences.php
diff --git a/resources/lang/ro/settings.php b/lang/ro/settings.php
similarity index 100%
rename from resources/lang/ro/settings.php
rename to lang/ro/settings.php
diff --git a/resources/lang/ro/validation.php b/lang/ro/validation.php
similarity index 100%
rename from resources/lang/ro/validation.php
rename to lang/ro/validation.php
diff --git a/resources/lang/ru/activities.php b/lang/ru/activities.php
similarity index 100%
rename from resources/lang/ru/activities.php
rename to lang/ru/activities.php
diff --git a/resources/lang/ru/auth.php b/lang/ru/auth.php
similarity index 100%
rename from resources/lang/ru/auth.php
rename to lang/ru/auth.php
diff --git a/resources/lang/ru/common.php b/lang/ru/common.php
similarity index 100%
rename from resources/lang/ru/common.php
rename to lang/ru/common.php
diff --git a/resources/lang/ru/components.php b/lang/ru/components.php
similarity index 100%
rename from resources/lang/ru/components.php
rename to lang/ru/components.php
diff --git a/resources/lang/ru/editor.php b/lang/ru/editor.php
similarity index 100%
rename from resources/lang/ru/editor.php
rename to lang/ru/editor.php
diff --git a/resources/lang/ru/entities.php b/lang/ru/entities.php
similarity index 100%
rename from resources/lang/ru/entities.php
rename to lang/ru/entities.php
diff --git a/resources/lang/ru/errors.php b/lang/ru/errors.php
similarity index 100%
rename from resources/lang/ru/errors.php
rename to lang/ru/errors.php
diff --git a/resources/lang/ru/pagination.php b/lang/ru/pagination.php
similarity index 100%
rename from resources/lang/ru/pagination.php
rename to lang/ru/pagination.php
diff --git a/resources/lang/ru/passwords.php b/lang/ru/passwords.php
similarity index 100%
rename from resources/lang/ru/passwords.php
rename to lang/ru/passwords.php
diff --git a/resources/lang/ru/preferences.php b/lang/ru/preferences.php
similarity index 100%
rename from resources/lang/ru/preferences.php
rename to lang/ru/preferences.php
diff --git a/resources/lang/ru/settings.php b/lang/ru/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/ru/settings.php
rename to lang/ru/settings.php
diff --git a/resources/lang/ru/validation.php b/lang/ru/validation.php
similarity index 100%
rename from resources/lang/ru/validation.php
rename to lang/ru/validation.php
diff --git a/resources/lang/sk/activities.php b/lang/sk/activities.php
similarity index 100%
rename from resources/lang/sk/activities.php
rename to lang/sk/activities.php
diff --git a/resources/lang/sk/auth.php b/lang/sk/auth.php
similarity index 100%
rename from resources/lang/sk/auth.php
rename to lang/sk/auth.php
diff --git a/resources/lang/sk/common.php b/lang/sk/common.php
similarity index 100%
rename from resources/lang/sk/common.php
rename to lang/sk/common.php
diff --git a/resources/lang/sk/components.php b/lang/sk/components.php
similarity index 100%
rename from resources/lang/sk/components.php
rename to lang/sk/components.php
diff --git a/resources/lang/sk/editor.php b/lang/sk/editor.php
similarity index 100%
rename from resources/lang/sk/editor.php
rename to lang/sk/editor.php
diff --git a/resources/lang/sk/entities.php b/lang/sk/entities.php
similarity index 100%
rename from resources/lang/sk/entities.php
rename to lang/sk/entities.php
diff --git a/resources/lang/sk/errors.php b/lang/sk/errors.php
similarity index 100%
rename from resources/lang/sk/errors.php
rename to lang/sk/errors.php
diff --git a/resources/lang/sk/pagination.php b/lang/sk/pagination.php
similarity index 100%
rename from resources/lang/sk/pagination.php
rename to lang/sk/pagination.php
diff --git a/resources/lang/sk/passwords.php b/lang/sk/passwords.php
similarity index 100%
rename from resources/lang/sk/passwords.php
rename to lang/sk/passwords.php
diff --git a/resources/lang/sk/preferences.php b/lang/sk/preferences.php
similarity index 100%
rename from resources/lang/sk/preferences.php
rename to lang/sk/preferences.php
diff --git a/resources/lang/sk/settings.php b/lang/sk/settings.php
similarity index 100%
rename from resources/lang/sk/settings.php
rename to lang/sk/settings.php
diff --git a/resources/lang/sk/validation.php b/lang/sk/validation.php
similarity index 100%
rename from resources/lang/sk/validation.php
rename to lang/sk/validation.php
diff --git a/resources/lang/sl/activities.php b/lang/sl/activities.php
similarity index 100%
rename from resources/lang/sl/activities.php
rename to lang/sl/activities.php
diff --git a/resources/lang/sl/auth.php b/lang/sl/auth.php
similarity index 100%
rename from resources/lang/sl/auth.php
rename to lang/sl/auth.php
diff --git a/resources/lang/sl/common.php b/lang/sl/common.php
similarity index 100%
rename from resources/lang/sl/common.php
rename to lang/sl/common.php
diff --git a/resources/lang/sl/components.php b/lang/sl/components.php
similarity index 100%
rename from resources/lang/sl/components.php
rename to lang/sl/components.php
diff --git a/resources/lang/sl/editor.php b/lang/sl/editor.php
similarity index 100%
rename from resources/lang/sl/editor.php
rename to lang/sl/editor.php
diff --git a/resources/lang/sl/entities.php b/lang/sl/entities.php
similarity index 100%
rename from resources/lang/sl/entities.php
rename to lang/sl/entities.php
diff --git a/resources/lang/sl/errors.php b/lang/sl/errors.php
similarity index 100%
rename from resources/lang/sl/errors.php
rename to lang/sl/errors.php
diff --git a/resources/lang/sl/pagination.php b/lang/sl/pagination.php
similarity index 100%
rename from resources/lang/sl/pagination.php
rename to lang/sl/pagination.php
diff --git a/resources/lang/sl/passwords.php b/lang/sl/passwords.php
similarity index 100%
rename from resources/lang/sl/passwords.php
rename to lang/sl/passwords.php
diff --git a/resources/lang/sl/preferences.php b/lang/sl/preferences.php
similarity index 100%
rename from resources/lang/sl/preferences.php
rename to lang/sl/preferences.php
diff --git a/resources/lang/sl/settings.php b/lang/sl/settings.php
similarity index 100%
rename from resources/lang/sl/settings.php
rename to lang/sl/settings.php
diff --git a/resources/lang/sl/validation.php b/lang/sl/validation.php
similarity index 100%
rename from resources/lang/sl/validation.php
rename to lang/sl/validation.php
diff --git a/resources/lang/sv/activities.php b/lang/sv/activities.php
similarity index 100%
rename from resources/lang/sv/activities.php
rename to lang/sv/activities.php
diff --git a/resources/lang/sv/auth.php b/lang/sv/auth.php
similarity index 100%
rename from resources/lang/sv/auth.php
rename to lang/sv/auth.php
diff --git a/resources/lang/sv/common.php b/lang/sv/common.php
similarity index 100%
rename from resources/lang/sv/common.php
rename to lang/sv/common.php
diff --git a/resources/lang/sv/components.php b/lang/sv/components.php
similarity index 100%
rename from resources/lang/sv/components.php
rename to lang/sv/components.php
diff --git a/resources/lang/sv/editor.php b/lang/sv/editor.php
similarity index 100%
rename from resources/lang/sv/editor.php
rename to lang/sv/editor.php
diff --git a/resources/lang/sv/entities.php b/lang/sv/entities.php
similarity index 100%
rename from resources/lang/sv/entities.php
rename to lang/sv/entities.php
diff --git a/resources/lang/sv/errors.php b/lang/sv/errors.php
similarity index 100%
rename from resources/lang/sv/errors.php
rename to lang/sv/errors.php
diff --git a/resources/lang/sv/pagination.php b/lang/sv/pagination.php
similarity index 100%
rename from resources/lang/sv/pagination.php
rename to lang/sv/pagination.php
diff --git a/resources/lang/sv/passwords.php b/lang/sv/passwords.php
similarity index 100%
rename from resources/lang/sv/passwords.php
rename to lang/sv/passwords.php
diff --git a/resources/lang/sv/preferences.php b/lang/sv/preferences.php
similarity index 100%
rename from resources/lang/sv/preferences.php
rename to lang/sv/preferences.php
diff --git a/resources/lang/sv/settings.php b/lang/sv/settings.php
similarity index 100%
rename from resources/lang/sv/settings.php
rename to lang/sv/settings.php
diff --git a/resources/lang/sv/validation.php b/lang/sv/validation.php
similarity index 100%
rename from resources/lang/sv/validation.php
rename to lang/sv/validation.php
diff --git a/resources/lang/tr/activities.php b/lang/tr/activities.php
similarity index 100%
rename from resources/lang/tr/activities.php
rename to lang/tr/activities.php
diff --git a/resources/lang/tr/auth.php b/lang/tr/auth.php
similarity index 100%
rename from resources/lang/tr/auth.php
rename to lang/tr/auth.php
diff --git a/resources/lang/tr/common.php b/lang/tr/common.php
similarity index 100%
rename from resources/lang/tr/common.php
rename to lang/tr/common.php
diff --git a/resources/lang/tr/components.php b/lang/tr/components.php
similarity index 100%
rename from resources/lang/tr/components.php
rename to lang/tr/components.php
diff --git a/resources/lang/tr/editor.php b/lang/tr/editor.php
similarity index 100%
rename from resources/lang/tr/editor.php
rename to lang/tr/editor.php
diff --git a/resources/lang/tr/entities.php b/lang/tr/entities.php
similarity index 100%
rename from resources/lang/tr/entities.php
rename to lang/tr/entities.php
diff --git a/resources/lang/tr/errors.php b/lang/tr/errors.php
similarity index 100%
rename from resources/lang/tr/errors.php
rename to lang/tr/errors.php
diff --git a/resources/lang/tr/pagination.php b/lang/tr/pagination.php
similarity index 100%
rename from resources/lang/tr/pagination.php
rename to lang/tr/pagination.php
diff --git a/resources/lang/tr/passwords.php b/lang/tr/passwords.php
similarity index 100%
rename from resources/lang/tr/passwords.php
rename to lang/tr/passwords.php
diff --git a/resources/lang/tr/preferences.php b/lang/tr/preferences.php
similarity index 100%
rename from resources/lang/tr/preferences.php
rename to lang/tr/preferences.php
diff --git a/resources/lang/tr/settings.php b/lang/tr/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/tr/settings.php
rename to lang/tr/settings.php
diff --git a/resources/lang/tr/validation.php b/lang/tr/validation.php
similarity index 100%
rename from resources/lang/tr/validation.php
rename to lang/tr/validation.php
diff --git a/resources/lang/uk/activities.php b/lang/uk/activities.php
similarity index 100%
rename from resources/lang/uk/activities.php
rename to lang/uk/activities.php
diff --git a/resources/lang/uk/auth.php b/lang/uk/auth.php
similarity index 100%
rename from resources/lang/uk/auth.php
rename to lang/uk/auth.php
diff --git a/resources/lang/uk/common.php b/lang/uk/common.php
similarity index 100%
rename from resources/lang/uk/common.php
rename to lang/uk/common.php
diff --git a/resources/lang/uk/components.php b/lang/uk/components.php
similarity index 100%
rename from resources/lang/uk/components.php
rename to lang/uk/components.php
diff --git a/resources/lang/uk/editor.php b/lang/uk/editor.php
similarity index 100%
rename from resources/lang/uk/editor.php
rename to lang/uk/editor.php
diff --git a/resources/lang/uk/entities.php b/lang/uk/entities.php
similarity index 100%
rename from resources/lang/uk/entities.php
rename to lang/uk/entities.php
diff --git a/resources/lang/uk/errors.php b/lang/uk/errors.php
similarity index 100%
rename from resources/lang/uk/errors.php
rename to lang/uk/errors.php
diff --git a/resources/lang/uk/pagination.php b/lang/uk/pagination.php
similarity index 100%
rename from resources/lang/uk/pagination.php
rename to lang/uk/pagination.php
diff --git a/resources/lang/uk/passwords.php b/lang/uk/passwords.php
similarity index 100%
rename from resources/lang/uk/passwords.php
rename to lang/uk/passwords.php
diff --git a/resources/lang/uk/preferences.php b/lang/uk/preferences.php
similarity index 100%
rename from resources/lang/uk/preferences.php
rename to lang/uk/preferences.php
diff --git a/resources/lang/uk/settings.php b/lang/uk/settings.php
similarity index 100%
rename from resources/lang/uk/settings.php
rename to lang/uk/settings.php
diff --git a/resources/lang/uk/validation.php b/lang/uk/validation.php
similarity index 100%
rename from resources/lang/uk/validation.php
rename to lang/uk/validation.php
diff --git a/resources/lang/uz/activities.php b/lang/uz/activities.php
similarity index 100%
rename from resources/lang/uz/activities.php
rename to lang/uz/activities.php
diff --git a/resources/lang/uz/auth.php b/lang/uz/auth.php
similarity index 100%
rename from resources/lang/uz/auth.php
rename to lang/uz/auth.php
diff --git a/resources/lang/uz/common.php b/lang/uz/common.php
similarity index 100%
rename from resources/lang/uz/common.php
rename to lang/uz/common.php
diff --git a/resources/lang/uz/components.php b/lang/uz/components.php
similarity index 100%
rename from resources/lang/uz/components.php
rename to lang/uz/components.php
diff --git a/resources/lang/uz/editor.php b/lang/uz/editor.php
similarity index 100%
rename from resources/lang/uz/editor.php
rename to lang/uz/editor.php
diff --git a/resources/lang/uz/entities.php b/lang/uz/entities.php
similarity index 100%
rename from resources/lang/uz/entities.php
rename to lang/uz/entities.php
diff --git a/resources/lang/uz/errors.php b/lang/uz/errors.php
similarity index 100%
rename from resources/lang/uz/errors.php
rename to lang/uz/errors.php
diff --git a/resources/lang/uz/pagination.php b/lang/uz/pagination.php
similarity index 100%
rename from resources/lang/uz/pagination.php
rename to lang/uz/pagination.php
diff --git a/resources/lang/uz/passwords.php b/lang/uz/passwords.php
similarity index 100%
rename from resources/lang/uz/passwords.php
rename to lang/uz/passwords.php
diff --git a/resources/lang/uz/preferences.php b/lang/uz/preferences.php
similarity index 100%
rename from resources/lang/uz/preferences.php
rename to lang/uz/preferences.php
diff --git a/resources/lang/uz/settings.php b/lang/uz/settings.php
similarity index 100%
rename from resources/lang/uz/settings.php
rename to lang/uz/settings.php
diff --git a/resources/lang/uz/validation.php b/lang/uz/validation.php
similarity index 100%
rename from resources/lang/uz/validation.php
rename to lang/uz/validation.php
diff --git a/resources/lang/vi/activities.php b/lang/vi/activities.php
similarity index 100%
rename from resources/lang/vi/activities.php
rename to lang/vi/activities.php
diff --git a/resources/lang/vi/auth.php b/lang/vi/auth.php
similarity index 100%
rename from resources/lang/vi/auth.php
rename to lang/vi/auth.php
diff --git a/resources/lang/vi/common.php b/lang/vi/common.php
similarity index 100%
rename from resources/lang/vi/common.php
rename to lang/vi/common.php
diff --git a/resources/lang/vi/components.php b/lang/vi/components.php
similarity index 100%
rename from resources/lang/vi/components.php
rename to lang/vi/components.php
diff --git a/resources/lang/vi/editor.php b/lang/vi/editor.php
similarity index 100%
rename from resources/lang/vi/editor.php
rename to lang/vi/editor.php
diff --git a/resources/lang/vi/entities.php b/lang/vi/entities.php
similarity index 100%
rename from resources/lang/vi/entities.php
rename to lang/vi/entities.php
diff --git a/resources/lang/vi/errors.php b/lang/vi/errors.php
similarity index 100%
rename from resources/lang/vi/errors.php
rename to lang/vi/errors.php
diff --git a/resources/lang/vi/pagination.php b/lang/vi/pagination.php
similarity index 100%
rename from resources/lang/vi/pagination.php
rename to lang/vi/pagination.php
diff --git a/resources/lang/vi/passwords.php b/lang/vi/passwords.php
similarity index 100%
rename from resources/lang/vi/passwords.php
rename to lang/vi/passwords.php
diff --git a/resources/lang/vi/preferences.php b/lang/vi/preferences.php
similarity index 100%
rename from resources/lang/vi/preferences.php
rename to lang/vi/preferences.php
diff --git a/resources/lang/vi/settings.php b/lang/vi/settings.php
similarity index 100%
rename from resources/lang/vi/settings.php
rename to lang/vi/settings.php
diff --git a/resources/lang/vi/validation.php b/lang/vi/validation.php
similarity index 100%
rename from resources/lang/vi/validation.php
rename to lang/vi/validation.php
diff --git a/resources/lang/zh_CN/activities.php b/lang/zh_CN/activities.php
similarity index 100%
rename from resources/lang/zh_CN/activities.php
rename to lang/zh_CN/activities.php
diff --git a/resources/lang/zh_CN/auth.php b/lang/zh_CN/auth.php
similarity index 100%
rename from resources/lang/zh_CN/auth.php
rename to lang/zh_CN/auth.php
diff --git a/resources/lang/zh_CN/common.php b/lang/zh_CN/common.php
similarity index 100%
rename from resources/lang/zh_CN/common.php
rename to lang/zh_CN/common.php
diff --git a/resources/lang/zh_CN/components.php b/lang/zh_CN/components.php
similarity index 100%
rename from resources/lang/zh_CN/components.php
rename to lang/zh_CN/components.php
diff --git a/resources/lang/zh_CN/editor.php b/lang/zh_CN/editor.php
similarity index 100%
rename from resources/lang/zh_CN/editor.php
rename to lang/zh_CN/editor.php
diff --git a/resources/lang/zh_CN/entities.php b/lang/zh_CN/entities.php
similarity index 100%
rename from resources/lang/zh_CN/entities.php
rename to lang/zh_CN/entities.php
diff --git a/resources/lang/zh_CN/errors.php b/lang/zh_CN/errors.php
similarity index 100%
rename from resources/lang/zh_CN/errors.php
rename to lang/zh_CN/errors.php
diff --git a/resources/lang/zh_CN/pagination.php b/lang/zh_CN/pagination.php
similarity index 100%
rename from resources/lang/zh_CN/pagination.php
rename to lang/zh_CN/pagination.php
diff --git a/resources/lang/zh_CN/passwords.php b/lang/zh_CN/passwords.php
similarity index 100%
rename from resources/lang/zh_CN/passwords.php
rename to lang/zh_CN/passwords.php
diff --git a/resources/lang/zh_CN/preferences.php b/lang/zh_CN/preferences.php
similarity index 100%
rename from resources/lang/zh_CN/preferences.php
rename to lang/zh_CN/preferences.php
diff --git a/resources/lang/zh_CN/settings.php b/lang/zh_CN/settings.php
old mode 100755
new mode 100644
similarity index 100%
rename from resources/lang/zh_CN/settings.php
rename to lang/zh_CN/settings.php
diff --git a/resources/lang/zh_CN/validation.php b/lang/zh_CN/validation.php
similarity index 100%
rename from resources/lang/zh_CN/validation.php
rename to lang/zh_CN/validation.php
diff --git a/resources/lang/zh_TW/activities.php b/lang/zh_TW/activities.php
similarity index 100%
rename from resources/lang/zh_TW/activities.php
rename to lang/zh_TW/activities.php
diff --git a/resources/lang/zh_TW/auth.php b/lang/zh_TW/auth.php
similarity index 100%
rename from resources/lang/zh_TW/auth.php
rename to lang/zh_TW/auth.php
diff --git a/resources/lang/zh_TW/common.php b/lang/zh_TW/common.php
similarity index 100%
rename from resources/lang/zh_TW/common.php
rename to lang/zh_TW/common.php
diff --git a/resources/lang/zh_TW/components.php b/lang/zh_TW/components.php
similarity index 100%
rename from resources/lang/zh_TW/components.php
rename to lang/zh_TW/components.php
diff --git a/resources/lang/zh_TW/editor.php b/lang/zh_TW/editor.php
similarity index 100%
rename from resources/lang/zh_TW/editor.php
rename to lang/zh_TW/editor.php
diff --git a/resources/lang/zh_TW/entities.php b/lang/zh_TW/entities.php
similarity index 100%
rename from resources/lang/zh_TW/entities.php
rename to lang/zh_TW/entities.php
diff --git a/resources/lang/zh_TW/errors.php b/lang/zh_TW/errors.php
similarity index 100%
rename from resources/lang/zh_TW/errors.php
rename to lang/zh_TW/errors.php
diff --git a/resources/lang/zh_TW/pagination.php b/lang/zh_TW/pagination.php
similarity index 100%
rename from resources/lang/zh_TW/pagination.php
rename to lang/zh_TW/pagination.php
diff --git a/resources/lang/zh_TW/passwords.php b/lang/zh_TW/passwords.php
similarity index 100%
rename from resources/lang/zh_TW/passwords.php
rename to lang/zh_TW/passwords.php
diff --git a/resources/lang/zh_TW/preferences.php b/lang/zh_TW/preferences.php
similarity index 100%
rename from resources/lang/zh_TW/preferences.php
rename to lang/zh_TW/preferences.php
diff --git a/resources/lang/zh_TW/settings.php b/lang/zh_TW/settings.php
similarity index 100%
rename from resources/lang/zh_TW/settings.php
rename to lang/zh_TW/settings.php
diff --git a/resources/lang/zh_TW/validation.php b/lang/zh_TW/validation.php
similarity index 100%
rename from resources/lang/zh_TW/validation.php
rename to lang/zh_TW/validation.php
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
index ff184f7cd..936d5a91a 100644
--- a/phpstan.neon.dist
+++ b/phpstan.neon.dist
@@ -9,7 +9,7 @@ parameters:
     # The level 8 is the highest level
     level: 1
 
-    phpVersion: 70400
+    phpVersion: 80002
 
     bootstrapFiles:
       - bootstrap/phpstan.php
diff --git a/phpunit.xml b/phpunit.xml
index cba6e40a9..8a526a704 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -32,6 +32,7 @@
     <server name="AUTH_AUTO_INITIATE" value="false"/>
     <server name="DISABLE_EXTERNAL_SERVICES" value="true"/>
     <server name="ALLOW_UNTRUSTED_SERVER_FETCHING" value="false"/>
+    <server name="ALLOW_CONTENT_SCRIPTS" value="false"/>
     <server name="AVATAR_URL" value=""/>
     <server name="LDAP_START_TLS" value="false"/>
     <server name="LDAP_VERSION" value="3"/>
diff --git a/server.php b/server.php
deleted file mode 100644
index de038652f..000000000
--- a/server.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-/**
- * Laravel - A PHP Framework For Web Artisans.
- *
- * @author   Taylor Otwell <taylorotwell@gmail.com>
- */
-$uri = urldecode(
-    parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
-);
-
-// This file allows us to emulate Apache's "mod_rewrite" functionality from the
-// built-in PHP web server. This provides a convenient way to test a Laravel
-// application without having installed a "real" web server software here.
-if ($uri !== '/' && file_exists(__DIR__ . '/public' . $uri)) {
-    return false;
-}
-
-require_once __DIR__ . '/public/index.php';
diff --git a/tests/Entity/BookTest.php b/tests/Entity/BookTest.php
index 8435c534f..f124a1690 100644
--- a/tests/Entity/BookTest.php
+++ b/tests/Entity/BookTest.php
@@ -247,7 +247,7 @@ class BookTest extends TestCase
             'name' => 'информация',
         ]);
 
-        $this->assertEquals('informaciya', $book->slug);
+        $this->assertEquals('informaciia', $book->slug);
 
         $book = $this->entities->newBook([
             'name' => '¿Qué?',
diff --git a/tests/LanguageTest.php b/tests/LanguageTest.php
index ba522a74e..e5c3c0bff 100644
--- a/tests/LanguageTest.php
+++ b/tests/LanguageTest.php
@@ -12,7 +12,7 @@ class LanguageTest extends TestCase
     protected function setUp(): void
     {
         parent::setUp();
-        $this->langs = array_diff(scandir(resource_path('lang')), ['..', '.']);
+        $this->langs = array_diff(scandir(lang_path('')), ['..', '.']);
     }
 
     public function test_locales_config_key_set_properly()
@@ -58,7 +58,7 @@ class LanguageTest extends TestCase
 
     public function test_all_lang_files_loadable()
     {
-        $files = array_diff(scandir(resource_path('lang/en')), ['..', '.']);
+        $files = array_diff(scandir(lang_path('en')), ['..', '.']);
         foreach ($this->langs as $lang) {
             foreach ($files as $file) {
                 $loadError = false;
diff --git a/tests/ThemeTest.php b/tests/ThemeTest.php
index ee4f20f30..03ae7b307 100644
--- a/tests/ThemeTest.php
+++ b/tests/ThemeTest.php
@@ -19,6 +19,7 @@ use Illuminate\Support\Facades\Artisan;
 use Illuminate\Support\Facades\File;
 use Illuminate\Support\Facades\Http;
 use League\CommonMark\ConfigurableEnvironmentInterface;
+use League\CommonMark\Environment\Environment;
 
 class ThemeTest extends TestCase
 {
@@ -57,7 +58,7 @@ class ThemeTest extends TestCase
     {
         $callbackCalled = false;
         $callback = function ($environment) use (&$callbackCalled) {
-            $this->assertInstanceOf(ConfigurableEnvironmentInterface::class, $environment);
+            $this->assertInstanceOf(Environment::class, $environment);
             $callbackCalled = true;
 
             return $environment;