From e08763c5263a607def90a5eb4539da0204fff429 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 26 Jul 2026 09:12:01 +0100 Subject: [PATCH 01/33] Migrate outbound HTTP calls from Guzzle to the Http facade Replaces every raw GuzzleHttp\Client usage (Nominatim, web.archive.org, webmention fetch/discover/send, Bridgy syndication, IndieAuth client_id lookup, contact avatar/h-card fetch, profile image download, and the CloudConvert screenshot pipeline) with Illuminate\Support\Facades\Http, and enables Http::preventStrayRequests() globally in tests so any un-faked outbound call now fails loudly instead of silently hitting the network. The CloudConvert retry-until-finished middleware in AppServiceProvider is replaced by a plain polling loop in SaveScreenshot, which also fixes a latent bug where the old middleware decoded a response object instead of its body. Bridgy syndication jobs keep their tries=1/no-retry semantics unchanged to avoid duplicate publishes. Guzzle's PSR-7 helpers (Header, UriResolver, Utils) stay in SendWebMentions since Http has no equivalent for them. Every affected test file's Guzzle MockHandler/HandlerStack boilerplate is replaced with Http::fake()/Http::sequence(). Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01P8j7cJhCiYDsGUgB7obKNQ --- .../Controllers/Admin/ContactsController.php | 17 +- app/Http/Controllers/IndieAuthController.php | 11 +- app/Jobs/DownloadWebMention.php | 18 +- app/Jobs/ProcessLike.php | 11 +- app/Jobs/ProcessWebMention.php | 19 +- app/Jobs/SaveProfileImage.php | 13 +- app/Jobs/SaveScreenshot.php | 94 +++++---- app/Jobs/SendWebMentions.php | 23 +-- app/Jobs/SyndicateNoteToBluesky.php | 32 +--- app/Jobs/SyndicateNoteToMastodon.php | 32 +--- app/Models/Note.php | 13 +- app/Providers/AppServiceProvider.php | 36 ---- app/Services/BookmarkService.php | 20 +- tests/Feature/Admin/ContactsTest.php | 34 ++-- tests/Feature/IndieAuthTest.php | 19 +- tests/Feature/LikesTest.php | 41 +--- tests/TestCase.php | 8 + tests/Unit/BookmarksTest.php | 26 +-- tests/Unit/Jobs/DownloadWebMentionJobTest.php | 37 ++-- tests/Unit/Jobs/ProcessWebMentionJobTest.php | 61 +++--- tests/Unit/Jobs/SaveProfileImageJobTest.php | 33 +--- tests/Unit/Jobs/SaveScreenshotJobTest.php | 180 +++++++----------- tests/Unit/Jobs/SendWebMentionJobTest.php | 42 ++-- .../Jobs/SyndicateNoteToBlueskyJobTest.php | 51 ++--- .../Jobs/SyndicateNoteToMastodonJobTest.php | 51 ++--- tests/Unit/NotesTest.php | 45 ++--- 26 files changed, 337 insertions(+), 630 deletions(-) diff --git a/app/Http/Controllers/Admin/ContactsController.php b/app/Http/Controllers/Admin/ContactsController.php index 17e4a8a7..211f9fa8 100644 --- a/app/Http/Controllers/Admin/ContactsController.php +++ b/app/Http/Controllers/Admin/ContactsController.php @@ -6,11 +6,11 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Contact; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\BadResponseException; use Illuminate\Filesystem\Filesystem; +use Illuminate\Http\Client\RequestException; use Illuminate\Http\RedirectResponse; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Http; use Illuminate\View\View; class ContactsController extends Controller @@ -113,14 +113,13 @@ class ContactsController extends Controller $avatar = null; $contact = Contact::findOrFail($contactId); if ($contact->homepage !== null && mb_strlen($contact->homepage) !== 0) { - $client = resolve(Client::class); try { - $response = $client->get($contact->homepage); - } catch (BadResponseException $e) { + $response = Http::throw()->get($contact->homepage); + } catch (RequestException $e) { return redirect('/admin/contacts/'.$contactId.'/edit') ->with('error', 'Bad resposne from contact’s homepage'); } - $mf2 = \Mf2\parse((string) $response->getBody(), $contact->homepage); + $mf2 = \Mf2\parse($response->body(), $contact->homepage); foreach ($mf2['items'] as $microformat) { if (Arr::get($microformat, 'type.0') === 'h-card') { $avatarURL = Arr::get($microformat, 'properties.photo.0.value'); @@ -129,8 +128,8 @@ class ContactsController extends Controller } if ($avatarURL !== null) { try { - $avatar = $client->get($avatarURL); - } catch (BadResponseException $e) { + $avatar = Http::throw()->get($avatarURL); + } catch (RequestException $e) { return redirect('/admin/contacts/'.$contactId.'/edit') ->with('error', 'Unable to download avatar'); } @@ -141,7 +140,7 @@ class ContactsController extends Controller if ($filesystem->isDirectory($directory) === false) { $filesystem->makeDirectory($directory); } - $filesystem->put($directory.'/image', $avatar->getBody()); + $filesystem->put($directory.'/image', $avatar->body()); return view('admin.contacts.getavatarsuccess', [ 'homepage' => parse_url($contact->homepage, PHP_URL_HOST), diff --git a/app/Http/Controllers/IndieAuthController.php b/app/Http/Controllers/IndieAuthController.php index 45b488da..eeb59770 100644 --- a/app/Http/Controllers/IndieAuthController.php +++ b/app/Http/Controllers/IndieAuthController.php @@ -5,13 +5,12 @@ declare(strict_types=1); namespace App\Http\Controllers; use App\Services\TokenService; -use Exception; -use GuzzleHttp\Client; use GuzzleHttp\Psr7\Uri; use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Validator; use Illuminate\View\View; use Random\RandomException; @@ -199,15 +198,13 @@ class IndieAuthController extends Controller } // Otherwise we need to check the redirect_uri is in the client_id's redirect_uris - $guzzle = resolve(Client::class); - try { - $clientInfo = $guzzle->get($clientId); - } catch (Exception) { + $clientInfo = Http::throw()->get($clientId); + } catch (\Throwable) { return false; } - $clientInfoParsed = \Mf2\parse($clientInfo->getBody()->getContents(), $clientId); + $clientInfoParsed = \Mf2\parse($clientInfo->body(), $clientId); $redirectUris = $clientInfoParsed['rels']['redirect_uri'] ?? []; diff --git a/app/Jobs/DownloadWebMention.php b/app/Jobs/DownloadWebMention.php index 341c35c8..0cb073d5 100644 --- a/app/Jobs/DownloadWebMention.php +++ b/app/Jobs/DownloadWebMention.php @@ -4,14 +4,14 @@ declare(strict_types=1); namespace App\Jobs; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\GuzzleException; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Filesystem\FileNotFoundException; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\FileSystem\FileSystem; +use Illuminate\Http\Client\RequestException; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Http; class DownloadWebMention implements ShouldQueue { @@ -29,15 +29,15 @@ class DownloadWebMention implements ShouldQueue /** * Execute the job. * - * @throws GuzzleException + * @throws RequestException * @throws FileNotFoundException */ - public function handle(Client $guzzle): void + public function handle(): void { - $response = $guzzle->request('GET', $this->source); - // 4XX and 5XX responses should get Guzzle to throw an exception, - // Laravel should catch and retry these automatically. - if ($response->getStatusCode() === 200) { + // 4XX and 5XX responses should throw so Laravel can catch and + // retry these automatically. + $response = Http::throw()->get($this->source); + if ($response->status() === 200) { $filesystem = new FileSystem; $filename = storage_path('HTML').'/'.$this->createFilenameFromURL($this->source); // backup file first @@ -56,7 +56,7 @@ class DownloadWebMention implements ShouldQueue // save new HTML $filesystem->put( $filename, - (string) $response->getBody() + $response->body() ); // remove backup if the same if ($filesystem->exists($filenameBackup)) { diff --git a/app/Jobs/ProcessLike.php b/app/Jobs/ProcessLike.php index 49302885..3ed065c1 100644 --- a/app/Jobs/ProcessLike.php +++ b/app/Jobs/ProcessLike.php @@ -5,14 +5,13 @@ declare(strict_types=1); namespace App\Jobs; use App\Models\Like; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\GuzzleException; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Http; use Jonnybarnes\WebmentionsParser\Authorship; use Jonnybarnes\WebmentionsParser\Exceptions\AuthorshipParserException; @@ -32,13 +31,11 @@ class ProcessLike implements ShouldQueue /** * Execute the job. - * - * @throws GuzzleException */ - public function handle(Client $client, Authorship $authorship): int + public function handle(Authorship $authorship): int { - $response = $client->request('GET', $this->like->url); - $mf2 = \Mf2\parse((string) $response->getBody(), $this->like->url); + $response = Http::throw()->get($this->like->url); + $mf2 = \Mf2\parse($response->body(), $this->like->url); if (Arr::has($mf2, 'items.0.properties.content')) { $this->like->content = $mf2['items'][0]['properties']['content'][0]['html']; } diff --git a/app/Jobs/ProcessWebMention.php b/app/Jobs/ProcessWebMention.php index 6677b285..6cb276f8 100644 --- a/app/Jobs/ProcessWebMention.php +++ b/app/Jobs/ProcessWebMention.php @@ -7,13 +7,12 @@ namespace App\Jobs; use App\Exceptions\RemoteContentNotFoundException; use App\Models\Note; use App\Models\WebMention; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\GuzzleException; -use GuzzleHttp\Exception\RequestException; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Http\Client\ConnectionException; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Http; use Jonnybarnes\WebmentionsParser\Exceptions\InvalidMentionException; use Jonnybarnes\WebmentionsParser\Parser; use Mf2; @@ -36,18 +35,20 @@ class ProcessWebMention implements ShouldQueue * Execute the job. * * @throws RemoteContentNotFoundException - * @throws GuzzleException * @throws InvalidMentionException */ - public function handle(Parser $parser, Client $guzzle): void + public function handle(Parser $parser): void { try { - $response = $guzzle->request('GET', $this->source); - } catch (RequestException $e) { + $response = Http::get($this->source); + } catch (ConnectionException) { throw new RemoteContentNotFoundException; } - $this->saveRemoteContent((string) $response->getBody(), $this->source); - $microformats = Mf2\parse((string) $response->getBody(), $this->source); + if ($response->failed()) { + throw new RemoteContentNotFoundException; + } + $this->saveRemoteContent($response->body(), $this->source); + $microformats = Mf2\parse($response->body(), $this->source); $webmentions = WebMention::where('source', $this->source)->get(); foreach ($webmentions as $webmention) { // check webmention still references target diff --git a/app/Jobs/SaveProfileImage.php b/app/Jobs/SaveProfileImage.php index 0bcbd4e7..aa7d8af7 100644 --- a/app/Jobs/SaveProfileImage.php +++ b/app/Jobs/SaveProfileImage.php @@ -4,13 +4,14 @@ declare(strict_types=1); namespace App\Jobs; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\RequestException; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; +use Illuminate\Http\Client\ConnectionException; +use Illuminate\Http\Client\RequestException; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Http; use Jonnybarnes\WebmentionsParser\Authorship; use Jonnybarnes\WebmentionsParser\Exceptions\AuthorshipParserException; @@ -55,12 +56,10 @@ class SaveProfileImage implements ShouldQueue && parse_url($photo, PHP_URL_HOST) !== 'pbs.twimg.com' && parse_url($photo, PHP_URL_HOST) !== 'twitter.com' ) { - $client = resolve(Client::class); - try { - $response = $client->get($photo); - $image = $response->getBody(); - } catch (RequestException) { + $response = Http::throw()->get($photo); + $image = $response->body(); + } catch (ConnectionException|RequestException) { // we are opening and reading the default image so that $default = public_path().'/assets/profile-images/default-image'; $handle = fopen($default, 'rb'); diff --git a/app/Jobs/SaveScreenshot.php b/app/Jobs/SaveScreenshot.php index 4661ccfe..b72da7b0 100755 --- a/app/Jobs/SaveScreenshot.php +++ b/app/Jobs/SaveScreenshot.php @@ -5,14 +5,15 @@ declare(strict_types=1); namespace App\Jobs; use App\Models\Bookmark; -use GuzzleHttp\Client; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; +use Illuminate\Http\Client\PendingRequest; +use Illuminate\Http\Client\Response; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Storage; -use JsonException; class SaveScreenshot implements ShouldQueue { @@ -27,77 +28,68 @@ class SaveScreenshot implements ShouldQueue /** * Execute the job. - * - * - * @throws JsonException */ public function handle(): void { - // A normal Guzzle client - $client = resolve(Client::class); - // A Guzzle client with a custom Middleware to retry the CloudConvert API requests - $retryClient = resolve('RetryGuzzle'); + $cloudConvert = Http::baseUrl('https://api.cloudconvert.com/v2') + ->withToken(config('services.cloudconvert.token')) + ->throw(); // First request that CloudConvert takes a screenshot of the URL - $takeScreenshotJobResponse = $client->request('POST', 'https://api.cloudconvert.com/v2/capture-website', [ - 'headers' => [ - 'Authorization' => 'Bearer '.config('services.cloudconvert.token'), - ], - 'json' => [ - 'url' => $this->bookmark->url, - 'output_format' => 'png', - 'screen_width' => 1440, - 'screen_height' => 900, - 'wait_until' => 'networkidle0', - 'wait_time' => 100, - ], + $takeScreenshotJobResponse = $cloudConvert->post('/capture-website', [ + 'url' => $this->bookmark->url, + 'output_format' => 'png', + 'screen_width' => 1440, + 'screen_height' => 900, + 'wait_until' => 'networkidle0', + 'wait_time' => 100, ]); - $taskId = json_decode($takeScreenshotJobResponse->getBody()->getContents(), false, 512, JSON_THROW_ON_ERROR)->data->id; + $taskId = $takeScreenshotJobResponse->json('data.id'); // Now wait till the status job is finished - $screenshotJobStatusResponse = $retryClient->request('GET', 'https://api.cloudconvert.com/v2/tasks/'.$taskId, [ - 'headers' => [ - 'Authorization' => 'Bearer '.config('services.cloudconvert.token'), - ], - 'query' => [ - 'include' => 'payload', - ], - ]); + $screenshotJobStatusResponse = $this->pollUntilFinished($cloudConvert, $taskId); - $finishedCaptureId = json_decode($screenshotJobStatusResponse->getBody()->getContents(), false, 512, JSON_THROW_ON_ERROR)->data->id; + $finishedCaptureId = $screenshotJobStatusResponse->json('data.id'); // Now we can create a new job to request thst the screenshot is exported to a temporary URL we can download the screenshot from - $exportImageJob = $client->request('POST', 'https://api.cloudconvert.com/v2/export/url', [ - 'headers' => [ - 'Authorization' => 'Bearer '.config('services.cloudconvert.token'), - ], - 'json' => [ - 'input' => $finishedCaptureId, - 'archive_multiple_files' => false, - ], + $exportImageJob = $cloudConvert->post('/export/url', [ + 'input' => $finishedCaptureId, + 'archive_multiple_files' => false, ]); - $exportImageJobId = json_decode($exportImageJob->getBody()->getContents(), false, 512, JSON_THROW_ON_ERROR)->data->id; + $exportImageJobId = $exportImageJob->json('data.id'); // Again, wait till the status of this export job is finished - $finalImageUrlResponse = $retryClient->request('GET', 'https://api.cloudconvert.com/v2/tasks/'.$exportImageJobId, [ - 'headers' => [ - 'Authorization' => 'Bearer '.config('services.cloudconvert.token'), - ], - 'query' => [ - 'include' => 'payload', - ], - ]); + $finalImageUrlResponse = $this->pollUntilFinished($cloudConvert, $exportImageJobId); // Now we can download the screenshot and save it to the storage - $finalImageUrl = json_decode($finalImageUrlResponse->getBody()->getContents(), false, 512, JSON_THROW_ON_ERROR)->data->result->files[0]->url; + $finalImageUrl = $finalImageUrlResponse->json('data.result.files.0.url'); - $finalImageUrlContent = $client->request('GET', $finalImageUrl); + $finalImageUrlContent = Http::throw()->get($finalImageUrl); - Storage::disk('public')->put('/assets/img/bookmarks/'.$taskId.'.png', $finalImageUrlContent->getBody()->getContents()); + Storage::disk('public')->put('/assets/img/bookmarks/'.$taskId.'.png', $finalImageUrlContent->body()); $this->bookmark->screenshot = $taskId; $this->bookmark->save(); } + + /** + * Poll a CloudConvert task until it reports a "finished" status. + */ + private function pollUntilFinished(PendingRequest $client, string $taskId): Response + { + $attempts = 0; + + do { + $response = $client->get('/tasks/'.$taskId, ['include' => 'payload']); + $finished = $response->json('data.status') === 'finished'; + if (! $finished) { + $attempts++; + usleep(1_000_000); // 1 second, matches CloudConvert's own polling guidance + } + } while (! $finished && $attempts < 5); + + return $response; + } } diff --git a/app/Jobs/SendWebMentions.php b/app/Jobs/SendWebMentions.php index 827aaf0a..d8e962e3 100644 --- a/app/Jobs/SendWebMentions.php +++ b/app/Jobs/SendWebMentions.php @@ -5,8 +5,6 @@ declare(strict_types=1); namespace App\Jobs; use App\Models\Note; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\GuzzleException; use GuzzleHttp\Psr7\Header; use GuzzleHttp\Psr7\UriResolver; use GuzzleHttp\Psr7\Utils; @@ -14,6 +12,7 @@ use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Str; use Mf2\Parser; @@ -32,8 +31,6 @@ class SendWebMentions implements ShouldQueue /** * Execute the job. - * - * @throws GuzzleException */ public function handle(): void { @@ -43,12 +40,9 @@ class SendWebMentions implements ShouldQueue foreach ($urls as $url) { $endpoint = $this->discoverWebmentionEndpoint($url); if ($endpoint !== null) { - $guzzle = resolve(Client::class); - $guzzle->post($endpoint, [ - 'form_params' => [ - 'source' => $this->note->uri, - 'target' => $url, - ], + Http::asForm()->post($endpoint, [ + 'source' => $this->note->uri, + 'target' => $url, ]); } } @@ -56,8 +50,6 @@ class SendWebMentions implements ShouldQueue /** * Discover if a URL has a webmention endpoint. - * - * @throws GuzzleException */ public function discoverWebmentionEndpoint(string $url): ?string { @@ -71,10 +63,9 @@ class SendWebMentions implements ShouldQueue $endpoint = null; - $guzzle = resolve(Client::class); - $response = $guzzle->get($url); + $response = Http::get($url); // check HTTP Headers for webmention endpoint - $links = Header::parse($response->getHeader('Link')); + $links = Header::parse($response->header('Link')); foreach ($links as $link) { if (array_key_exists('rel', $link) && mb_stristr($link['rel'], 'webmention')) { return $this->resolveUri(trim($link[0], '<>'), $url); @@ -82,7 +73,7 @@ class SendWebMentions implements ShouldQueue } // failed to find a header so parse HTML - $html = (string) $response->getBody(); + $html = $response->body(); if ($html === '') { return null; diff --git a/app/Jobs/SyndicateNoteToBluesky.php b/app/Jobs/SyndicateNoteToBluesky.php index a306801b..582ef760 100644 --- a/app/Jobs/SyndicateNoteToBluesky.php +++ b/app/Jobs/SyndicateNoteToBluesky.php @@ -5,13 +5,12 @@ declare(strict_types=1); namespace App\Jobs; use App\Models\Note; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\GuzzleException; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Http; class SyndicateNoteToBluesky implements ShouldQueue { @@ -31,29 +30,18 @@ class SyndicateNoteToBluesky implements ShouldQueue /** * Execute the job. - * - * @throws GuzzleException */ - public function handle(Client $guzzle): void + public function handle(): void { - $response = $guzzle->request( - 'POST', - 'https://brid.gy/publish/webmention', - [ - 'headers' => [ - 'Accept' => 'application/json', - ], - 'form_params' => [ - 'source' => $this->note->uri, - 'target' => 'https://brid.gy/publish/bluesky', - ], - 'http_errors' => false, - ] - ); + // no ->throw()/->retry() here — Bridgy would duplicate-publish on retry, see $tries above + $response = Http::acceptJson()->asForm()->post('https://brid.gy/publish/webmention', [ + 'source' => $this->note->uri, + 'target' => 'https://brid.gy/publish/bluesky', + ]); - $body = json_decode((string) $response->getBody(), true); + $body = $response->json(); - if ($response->getStatusCode() === 201) { + if ($response->status() === 201) { $this->note->bluesky_url = $body['url']; $this->note->save(); @@ -61,7 +49,7 @@ class SyndicateNoteToBluesky implements ShouldQueue } throw new \RuntimeException( - 'Bridgy publish to Bluesky failed: '.($body['error'] ?? (string) $response->getBody()) + 'Bridgy publish to Bluesky failed: '.($body['error'] ?? $response->body()) ); } } diff --git a/app/Jobs/SyndicateNoteToMastodon.php b/app/Jobs/SyndicateNoteToMastodon.php index 456680e2..3f5cfcd4 100644 --- a/app/Jobs/SyndicateNoteToMastodon.php +++ b/app/Jobs/SyndicateNoteToMastodon.php @@ -5,13 +5,12 @@ declare(strict_types=1); namespace App\Jobs; use App\Models\Note; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\GuzzleException; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Http; class SyndicateNoteToMastodon implements ShouldQueue { @@ -31,29 +30,18 @@ class SyndicateNoteToMastodon implements ShouldQueue /** * Execute the job. - * - * @throws GuzzleException */ - public function handle(Client $guzzle): void + public function handle(): void { - $response = $guzzle->request( - 'POST', - 'https://brid.gy/publish/webmention', - [ - 'headers' => [ - 'Accept' => 'application/json', - ], - 'form_params' => [ - 'source' => $this->note->uri, - 'target' => 'https://brid.gy/publish/mastodon', - ], - 'http_errors' => false, - ] - ); + // no ->throw()/->retry() here — Bridgy would duplicate-publish on retry, see $tries above + $response = Http::acceptJson()->asForm()->post('https://brid.gy/publish/webmention', [ + 'source' => $this->note->uri, + 'target' => 'https://brid.gy/publish/mastodon', + ]); - $body = json_decode((string) $response->getBody(), true); + $body = $response->json(); - if ($response->getStatusCode() === 201) { + if ($response->status() === 201) { $this->note->mastodon_url = $body['url']; $this->note->save(); @@ -61,7 +49,7 @@ class SyndicateNoteToMastodon implements ShouldQueue } throw new \RuntimeException( - 'Bridgy publish to Mastodon failed: '.($body['error'] ?? (string) $response->getBody()) + 'Bridgy publish to Mastodon failed: '.($body['error'] ?? $response->body()) ); } } diff --git a/app/Models/Note.php b/app/Models/Note.php index af7d2c3d..89ce6b63 100644 --- a/app/Models/Note.php +++ b/app/Models/Note.php @@ -7,7 +7,6 @@ namespace App\Models; use App\CommonMark\Generators\MentionGenerator; use App\CommonMark\Renderers\MentionRenderer; use App\Observers\NoteObserver; -use GuzzleHttp\Client; use Illuminate\Database\Eloquent\Attributes\Fillable; use Illuminate\Database\Eloquent\Attributes\Hidden; use Illuminate\Database\Eloquent\Attributes\ObservedBy; @@ -20,6 +19,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Http; use Jonnybarnes\IndieWeb\Numbers; use Laravel\Scout\Searchable; use League\CommonMark\Environment\Environment; @@ -363,18 +363,15 @@ class Note extends Model $latLng = $latitude.','.$longitude; return Cache::get($latLng, function () use ($latLng, $latitude, $longitude) { - $guzzle = resolve(Client::class); - $response = $guzzle->request('GET', 'https://nominatim.openstreetmap.org/reverse', [ - 'query' => [ + $response = Http::withHeaders(['User-Agent' => 'jonnybarnes.uk, email jonny@jonnybarnes.uk']) + ->get('https://nominatim.openstreetmap.org/reverse', [ 'format' => 'json', 'lat' => $latitude, 'lon' => $longitude, 'zoom' => 18, 'addressdetails' => 1, - ], - 'headers' => ['User-Agent' => 'jonnybarnes.uk via Guzzle, email jonny@jonnybarnes.uk'], - ]); - $json = json_decode((string) $response->getBody()); + ]); + $json = $response->object(); if (isset($json->address->suburb)) { $locality = $json->address->suburb; if (isset($json->address->city)) { diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index ba42853e..d1e28bcf 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,10 +2,6 @@ namespace App\Providers; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\ConnectException; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Middleware; use Illuminate\Database\Eloquent\Model; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; @@ -82,38 +78,6 @@ class AppServiceProvider extends ServiceProvider ); }); - // Configure Guzzle - $this->app->bind('RetryGuzzle', function () { - $handlerStack = HandlerStack::create(); - $handlerStack->push(Middleware::retry( - function ($retries, $request, $response, $exception) { - // Limit the number of retries to 5 - if ($retries >= 5) { - return false; - } - - // Retry connection exceptions - if ($exception instanceof ConnectException) { - return true; - } - - // Retry on server errors - if ($response && $response->getStatusCode() >= 500) { - return true; - } - - // Finally for CloudConvert, retry if status is not final - return json_decode($response, false, 512, JSON_THROW_ON_ERROR)->data->status !== 'finished'; - }, - function () { - // Retry after 1 second - return 1000; - } - )); - - return new Client(['handler' => $handlerStack]); - }); - // Turn on Eloquent strict mode when developing Model::shouldBeStrict(! $this->app->isProduction()); } diff --git a/app/Services/BookmarkService.php b/app/Services/BookmarkService.php index 25017e16..b873610f 100644 --- a/app/Services/BookmarkService.php +++ b/app/Services/BookmarkService.php @@ -8,10 +8,8 @@ use App\Exceptions\InternetArchiveException; use App\Jobs\ProcessBookmark; use App\Models\Bookmark; use App\Models\Tag; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\ClientException; -use GuzzleHttp\Exception\GuzzleException; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Str; class BookmarkService @@ -55,21 +53,19 @@ class BookmarkService * Given a URL, attempt to save it to the Internet Archive. * * @throws InternetArchiveException - * @throws GuzzleException */ public function getArchiveLink(string $url): string { - $client = resolve(Client::class); - try { - $response = $client->request('GET', 'https://web.archive.org/save/'.$url); - } catch (ClientException $e) { + $response = Http::get('https://web.archive.org/save/'.$url); + + if ($response->clientError()) { // throw an exception to be caught throw new InternetArchiveException; } - if ($response->hasHeader('Content-Location')) { - if (Str::startsWith(Arr::get($response->getHeader('Content-Location'), 0), '/web')) { - return $response->getHeader('Content-Location')[0]; - } + + $contentLocation = $response->header('Content-Location'); + if ($contentLocation !== '' && Str::startsWith($contentLocation, '/web')) { + return $contentLocation; } // throw an exception to be caught diff --git a/tests/Feature/Admin/ContactsTest.php b/tests/Feature/Admin/ContactsTest.php index 9fc338eb..44320b9d 100644 --- a/tests/Feature/Admin/ContactsTest.php +++ b/tests/Feature/Admin/ContactsTest.php @@ -6,12 +6,9 @@ namespace Tests\Feature\Admin; use App\Models\Contact; use App\Models\User; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -141,14 +138,12 @@ class ContactsTest extends TestCase HTML; - $file = fopen(__DIR__.'/../../aaron.png', 'rb'); - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'text/html'], $html), - new Response(200, ['Content-Type' => 'image/png'], $file), + $file = file_get_contents(__DIR__.'/../../aaron.png'); + Http::fake([ + '*' => Http::sequence() + ->push($html, 200, ['Content-Type' => 'text/html']) + ->push($file, 200, ['Content-Type' => 'image/png']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $user = User::factory()->make(); $contact = Contact::factory()->create([ 'homepage' => 'https://tantek.com', @@ -165,12 +160,9 @@ class ContactsTest extends TestCase #[Test] public function getting_remote_avatar_fails_gracefully_with_remote_not_found(): void { - $mock = new MockHandler([ - new Response(404), + Http::fake([ + '*' => Http::response('', 404), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $user = User::factory()->make(); $contact = Contact::factory()->create(); @@ -187,13 +179,11 @@ class ContactsTest extends TestCase HTML; - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'text/html'], $html), - new Response(404), + Http::fake([ + '*' => Http::sequence() + ->push($html, 200, ['Content-Type' => 'text/html']) + ->push('', 404), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $user = User::factory()->make(); $contact = Contact::factory()->create(); diff --git a/tests/Feature/IndieAuthTest.php b/tests/Feature/IndieAuthTest.php index 534fe452..b32f4420 100644 --- a/tests/Feature/IndieAuthTest.php +++ b/tests/Feature/IndieAuthTest.php @@ -5,14 +5,11 @@ declare(strict_types=1); namespace Tests\Feature; use App\Models\User; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; use GuzzleHttp\Psr7\Uri; use GuzzleHttp\Psr7\UriResolver; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -269,12 +266,9 @@ class IndieAuthTest extends TestCase HTML; - $mockHandler = new MockHandler([ - new Response(200, [], $appPageHtml), + Http::fake([ + '*' => Http::response($appPageHtml, 200), ]); - $handlerStack = HandlerStack::create($mockHandler); - $mockGuzzleClient = new Client(['handler' => $handlerStack]); - $this->app->instance(Client::class, $mockGuzzleClient); $user = User::factory()->make(); $url = url()->query('/auth', [ @@ -313,12 +307,9 @@ class IndieAuthTest extends TestCase HTML; - $mockHandler = new MockHandler([ - new Response(200, [], $appPageHtml), + Http::fake([ + '*' => Http::response($appPageHtml, 200), ]); - $handlerStack = HandlerStack::create($mockHandler); - $mockGuzzleClient = new Client(['handler' => $handlerStack]); - $this->app->instance(Client::class, $mockGuzzleClient); $user = User::factory()->make(); $url = url()->query('/auth', [ diff --git a/tests/Feature/LikesTest.php b/tests/Feature/LikesTest.php index 6101536c..2bda91f3 100644 --- a/tests/Feature/LikesTest.php +++ b/tests/Feature/LikesTest.php @@ -6,11 +6,8 @@ namespace Tests\Feature; use App\Jobs\ProcessLike; use App\Models\Like; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Queue; use Jonnybarnes\WebmentionsParser\Authorship; use PHPUnit\Framework\Attributes\Test; @@ -98,18 +95,12 @@ class LikesTest extends TestCase END; - $mock = new MockHandler([ - new Response(200, [], $content), - new Response(200, [], $content), + Http::fake([ + '*' => Http::response($content, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->bind(Client::class, function () use ($client) { - return $client; - }); $authorship = new Authorship; - $job->handle($client, $authorship); + $job->handle($authorship); $this->assertEquals('Fred Bloggs', Like::find($id)->author_name); } @@ -141,18 +132,12 @@ class LikesTest extends TestCase END; - $mock = new MockHandler([ - new Response(200, [], $content), - new Response(200, [], $content), + Http::fake([ + '*' => Http::response($content, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->bind(Client::class, function () use ($client) { - return $client; - }); $authorship = new Authorship; - $job->handle($client, $authorship); + $job->handle($authorship); $this->assertEquals('Fred Bloggs', Like::find($id)->author_name); } @@ -177,18 +162,12 @@ class LikesTest extends TestCase END; - $mock = new MockHandler([ - new Response(200, [], $content), - new Response(200, [], $content), + Http::fake([ + '*' => Http::response($content, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->bind(Client::class, function () use ($client) { - return $client; - }); $authorship = new Authorship; - $job->handle($client, $authorship); + $job->handle($authorship); $this->assertNull(Like::find($id)->author_name); } diff --git a/tests/TestCase.php b/tests/TestCase.php index cade29d9..c3307f1f 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -3,11 +3,19 @@ namespace Tests; use Illuminate\Foundation\Testing\TestCase as BaseTestCase; +use Illuminate\Support\Facades\Http; abstract class TestCase extends BaseTestCase { use CreatesApplication; + protected function setUp(): void + { + parent::setUp(); + + Http::preventStrayRequests(); + } + public function removeDirIfEmpty(string $dir): void { // scandir() will always return `.` and `..` so even an “empty” diff --git a/tests/Unit/BookmarksTest.php b/tests/Unit/BookmarksTest.php index ce64848c..159e9c0e 100644 --- a/tests/Unit/BookmarksTest.php +++ b/tests/Unit/BookmarksTest.php @@ -6,10 +6,7 @@ namespace Tests\Unit; use App\Exceptions\InternetArchiveException; use App\Services\BookmarkService; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -29,12 +26,9 @@ class BookmarksTest extends TestCase #[Test] public function archive_link_method_calls_archive_service(): void { - $mock = new MockHandler([ - new Response(200, ['Content-Location' => '/web/1234/example.org']), + Http::fake([ + 'web.archive.org/*' => Http::response('', 200, ['Content-Location' => '/web/1234/example.org']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $url = (new BookmarkService)->getArchiveLink('https://example.org'); $this->assertEquals('/web/1234/example.org', $url); } @@ -44,12 +38,9 @@ class BookmarksTest extends TestCase { $this->expectException(InternetArchiveException::class); - $mock = new MockHandler([ - new Response(403), + Http::fake([ + 'web.archive.org/*' => Http::response('', 403), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); (new BookmarkService)->getArchiveLink('https://example.org'); } @@ -58,12 +49,9 @@ class BookmarksTest extends TestCase { $this->expectException(InternetArchiveException::class); - $mock = new MockHandler([ - new Response(200), + Http::fake([ + 'web.archive.org/*' => Http::response('', 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); (new BookmarkService)->getArchiveLink('https://example.org'); } } diff --git a/tests/Unit/Jobs/DownloadWebMentionJobTest.php b/tests/Unit/Jobs/DownloadWebMentionJobTest.php index 6ea6e068..530f1590 100644 --- a/tests/Unit/Jobs/DownloadWebMentionJobTest.php +++ b/tests/Unit/Jobs/DownloadWebMentionJobTest.php @@ -5,11 +5,8 @@ declare(strict_types=1); namespace Tests\Unit\Jobs; use App\Jobs\DownloadWebMention; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; use Illuminate\FileSystem\FileSystem; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -35,19 +32,16 @@ class DownloadWebMentionJobTest extends TestCase HTML; $html = str_replace('href=""', 'href="'.config('app.url').'/notes/A"', $html); - $mock = new MockHandler([ - new Response(200, ['X-Foo' => 'Bar'], $html), - new Response(200, ['X-Foo' => 'Bar'], $html), + Http::fake([ + 'example.org/*' => Http::response($html, 200, ['X-Foo' => 'Bar']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $job = new DownloadWebMention($source); - $job->handle($client); + $job->handle(); $this->assertFileExists(storage_path('HTML/https')); - $job->handle($client); + $job->handle(); $this->assertFileDoesNotExist(storage_path('HTML/https/example.org/reply').'/1.'.date('Y-m-d').'.backup'); } @@ -70,19 +64,18 @@ class DownloadWebMentionJobTest extends TestCase HTML; $html = str_replace('href=""', 'href="'.config('app.url').'/notes/A"', $html); $html2 = str_replace('href=""', 'href="'.config('app.url').'/notes/A"', $html2); - $mock = new MockHandler([ - new Response(200, ['X-Foo' => 'Bar'], $html), - new Response(200, ['X-Foo' => 'Bar'], $html2), + Http::fake([ + 'example.org/*' => Http::sequence() + ->push($html, 200, ['X-Foo' => 'Bar']) + ->push($html2, 200, ['X-Foo' => 'Bar']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $job = new DownloadWebMention($source); - $job->handle($client); + $job->handle(); $this->assertFileExists(storage_path('HTML/https')); - $job->handle($client); + $job->handle(); $this->assertFileExists(storage_path('HTML/https/example.org/reply').'/1.'.date('Y-m-d').'.backup'); } @@ -98,14 +91,12 @@ class DownloadWebMentionJobTest extends TestCase HTML; $html = str_replace('href=""', 'href="'.config('app.url').'/notes/A"', $html); - $mock = new MockHandler([ - new Response(200, ['X-Foo' => 'Bar'], $html), + Http::fake([ + 'example.org/*' => Http::response($html, 200, ['X-Foo' => 'Bar']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $job = new DownloadWebMention($source); - $job->handle($client); + $job->handle(); $this->assertFileExists(storage_path('HTML/https/example.org/reply-one/index.html')); } diff --git a/tests/Unit/Jobs/ProcessWebMentionJobTest.php b/tests/Unit/Jobs/ProcessWebMentionJobTest.php index 5eb98d9e..001d8f3d 100644 --- a/tests/Unit/Jobs/ProcessWebMentionJobTest.php +++ b/tests/Unit/Jobs/ProcessWebMentionJobTest.php @@ -9,12 +9,9 @@ use App\Jobs\ProcessWebMention; use App\Jobs\SaveProfileImage; use App\Models\Note; use App\Models\WebMention; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; use Illuminate\FileSystem\FileSystem; use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Queue; use Jonnybarnes\WebmentionsParser\Parser; use PHPUnit\Framework\Attributes\Test; @@ -39,17 +36,15 @@ class ProcessWebMentionJobTest extends TestCase $this->expectException(RemoteContentNotFoundException::class); $parser = new Parser; - $mock = new MockHandler([ - new Response(404), + Http::fake([ + '*' => Http::response('', 404), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); $source = 'https://example.org/mention/1/'; $job = new ProcessWebMention($note, $source); - $job->handle($parser, $client); + $job->handle($parser); } #[Test] @@ -65,17 +60,15 @@ class ProcessWebMentionJobTest extends TestCase HTML; $html = str_replace('href="', 'href="'.config('app.url'), $html); - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); $source = 'https://example.org/mention/1/'; $job = new ProcessWebMention($note, $source); - $job->handle($parser, $client); + $job->handle($parser); Queue::assertPushed(SaveProfileImage::class); $this->assertDatabaseHas('webmentions', [ @@ -103,14 +96,12 @@ class ProcessWebMentionJobTest extends TestCase
Updated reply
HTML; - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $job = new ProcessWebMention($note, $source); - $job->handle($parser, $client); + $job->handle($parser); Queue::assertPushed(SaveProfileImage::class); $this->assertDatabaseHas('webmentions', [ @@ -132,11 +123,9 @@ class ProcessWebMentionJobTest extends TestCase
Replying to someone else
HTML; - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); $source = 'https://example.org/reply/1'; @@ -151,7 +140,7 @@ class ProcessWebMentionJobTest extends TestCase ]); $job = new ProcessWebMention($note, $source); - $job->handle($parser, $client); + $job->handle($parser); $this->assertDatabaseMissing('webmentions', [ 'source' => $source, @@ -169,11 +158,9 @@ class ProcessWebMentionJobTest extends TestCase
I like someone else now
HTML; - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); $source = 'https://example.org/reply/1'; @@ -188,7 +175,7 @@ class ProcessWebMentionJobTest extends TestCase ]); $job = new ProcessWebMention($note, $source); - $job->handle($parser, $client); + $job->handle($parser); $this->assertDatabaseMissing('webmentions', [ 'source' => $source, @@ -208,18 +195,16 @@ class ProcessWebMentionJobTest extends TestCase HTML; $html = str_replace('href="', 'href="'.config('app.url'), $html); - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); // Simulate a long brid.gy Bluesky source URL (well over 255 characters) $source = 'https://brid.gy/comment/bluesky/did:plc:n3jhgiq2ykctnpgzlm6p6b25/at%253A%252F%252Fdid%253Aplc%253An3jhgiq2ykctnpgzlm6p6b25%252Fapp.bsky.feed.post%252F3mfekjuhykb2k/at%253A%252F%252Fdid%253Aplc%253Afsfuwigo5juzdwp23hyianzg%252Fapp.bsky.feed.post%252F3mfemw4rrvs2t'; $job = new ProcessWebMention($note, $source); - $job->handle($parser, $client); + $job->handle($parser); $this->assertGreaterThan(255, strlen($source)); $this->assertDatabaseHas('webmentions', [ @@ -238,11 +223,9 @@ class ProcessWebMentionJobTest extends TestCase
Reposting someone else
HTML; - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); $source = 'https://example.org/reply/1'; @@ -257,7 +240,7 @@ class ProcessWebMentionJobTest extends TestCase ]); $job = new ProcessWebMention($note, $source); - $job->handle($parser, $client); + $job->handle($parser); $this->assertDatabaseMissing('webmentions', [ 'source' => $source, diff --git a/tests/Unit/Jobs/SaveProfileImageJobTest.php b/tests/Unit/Jobs/SaveProfileImageJobTest.php index f9b92bb3..8e0edbb4 100644 --- a/tests/Unit/Jobs/SaveProfileImageJobTest.php +++ b/tests/Unit/Jobs/SaveProfileImageJobTest.php @@ -5,10 +5,7 @@ declare(strict_types=1); namespace Tests\Unit\Jobs; use App\Jobs\SaveProfileImage; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; +use Illuminate\Support\Facades\Http; use Jonnybarnes\WebmentionsParser\Authorship; use Jonnybarnes\WebmentionsParser\Exceptions\AuthorshipParserException; use PHPUnit\Framework\Attributes\Test; @@ -58,12 +55,9 @@ class SaveProfileImageJobTest extends TestCase #[Test] public function remote_author_images_are_saved_locally(): void { - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'image/jpeg'], 'fake jpeg image'), + Http::fake([ + '*' => Http::response('fake jpeg image', 200, ['Content-Type' => 'image/jpeg']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $mf = ['items' => []]; $author = [ 'properties' => [ @@ -83,12 +77,9 @@ class SaveProfileImageJobTest extends TestCase #[Test] public function local_default_author_image_is_used_as_fallback(): void { - $mock = new MockHandler([ - new Response(404), + Http::fake([ + '*' => Http::response('', 404), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $mf = ['items' => []]; $author = [ 'properties' => [ @@ -111,12 +102,9 @@ class SaveProfileImageJobTest extends TestCase #[Test] public function we_get_url_from_photo_object_if_alt_text_is_provided(): void { - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'image/jpeg'], 'fake jpeg image'), + Http::fake([ + '*' => Http::response('fake jpeg image', 200, ['Content-Type' => 'image/jpeg']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $mf = ['items' => []]; $author = [ 'properties' => [ @@ -139,12 +127,9 @@ class SaveProfileImageJobTest extends TestCase #[Test] public function use_first_url_if_multiple_homepages_are_provided(): void { - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'image/jpeg'], 'fake jpeg image'), + Http::fake([ + '*' => Http::response('fake jpeg image', 200, ['Content-Type' => 'image/jpeg']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $mf = ['items' => []]; $author = [ 'properties' => [ diff --git a/tests/Unit/Jobs/SaveScreenshotJobTest.php b/tests/Unit/Jobs/SaveScreenshotJobTest.php index a407e3d3..f7f68f89 100644 --- a/tests/Unit/Jobs/SaveScreenshotJobTest.php +++ b/tests/Unit/Jobs/SaveScreenshotJobTest.php @@ -6,13 +6,8 @@ namespace Tests\Unit\Jobs; use App\Jobs\SaveScreenshot; use App\Models\Bookmark; -use GuzzleHttp\Client; -use GuzzleHttp\Exception\ConnectException; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Middleware; -use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Storage; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -25,57 +20,34 @@ class SaveScreenshotJobTest extends TestCase public function screenshot_is_saved_by_job(): void { Storage::fake('public'); - $guzzleMock = new MockHandler([ - new Response(201, ['Content-Type' => 'application/json'], '{"data":{"id":"68d52633-e170-465e-b13e-746c97d01ffb","job_id":null,"status":"finished","credits":null,"code":null,"message":null,"percent":100,"operation":"capture-website","engine":"chrome","engine_version":"107","result":null,"created_at":"2023-01-07T21:05:48+00:00","started_at":null,"ended_at":null,"retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":null,"storage":"ceph-fra","depends_on_task_ids":[],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/68d52633-e170-465e-b13e-746c97d01ffb"}}}'), - new Response(201, ['Content-Type' => 'application/json'], '{"data":{"id":"27f33137-cc03-4468-aba4-1e1aa8c096fb","job_id":null,"status":"finished","credits":null,"code":null,"message":null,"percent":100,"operation":"export\/url","result":null,"created_at":"2023-01-07T21:10:02+00:00","started_at":null,"ended_at":null,"retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":null,"storage":"ceph-fra","depends_on_task_ids":["68d52633-e170-465e-b13e-746c97d01ffb"],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/27f33137-cc03-4468-aba4-1e1aa8c096fb"}}}'), - new Response(200, ['Content-Type' => 'image/png'], fopen(__DIR__.'/../../theverge.com.png', 'rb')), + + Http::fake([ + 'api.cloudconvert.com/v2/capture-website' => Http::response([ + 'data' => ['id' => '68d52633-e170-465e-b13e-746c97d01ffb', 'status' => 'finished'], + ], 201), + 'api.cloudconvert.com/v2/tasks/68d52633-e170-465e-b13e-746c97d01ffb*' => Http::response([ + 'data' => ['id' => '68d52633-e170-465e-b13e-746c97d01ffb', 'status' => 'finished'], + ], 200), + 'api.cloudconvert.com/v2/export/url' => Http::response([ + 'data' => ['id' => '27f33137-cc03-4468-aba4-1e1aa8c096fb', 'status' => 'finished'], + ], 201), + 'api.cloudconvert.com/v2/tasks/27f33137-cc03-4468-aba4-1e1aa8c096fb*' => Http::response([ + 'data' => [ + 'id' => '27f33137-cc03-4468-aba4-1e1aa8c096fb', + 'status' => 'finished', + 'result' => [ + 'files' => [[ + 'url' => 'https://storage.cloudconvert.com/tasks/27f33137-cc03-4468-aba4-1e1aa8c096fb/theverge.com.png', + ]], + ], + ], + ], 200), + 'storage.cloudconvert.com/*' => Http::response( + file_get_contents(__DIR__.'/../../theverge.com.png'), + 200, + ['Content-Type' => 'image/png'] + ), ]); - $guzzleHandler = HandlerStack::create($guzzleMock); - $guzzleClient = new Client(['handler' => $guzzleHandler]); - $this->app->instance(Client::class, $guzzleClient); - $retryMock = new MockHandler([ - new Response(200, ['Content-Type' => 'application/json'], '{"data":{"id":"68d52633-e170-465e-b13e-746c97d01ffb","job_id":null,"status":"finished","credits":1,"code":null,"message":null,"percent":100,"operation":"capture-website","engine":"chrome","engine_version":"107","payload":{"url":"https:\/\/theverge.com","output_format":"png","screen_width":1440,"screen_height":900,"wait_until":"networkidle0","wait_time":"100"},"result":{"files":[{"filename":"theverge.com.png","size":811819}]},"created_at":"2023-01-07T21:05:48+00:00","started_at":"2023-01-07T21:05:48+00:00","ended_at":"2023-01-07T21:05:55+00:00","retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":"virgie","storage":"ceph-fra","depends_on_task_ids":[],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/68d52633-e170-465e-b13e-746c97d01ffb"}}}'), - new Response(200, ['Content-Type' => 'application/json'], '{"data":{"id":"27f33137-cc03-4468-aba4-1e1aa8c096fb","job_id":null,"status":"finished","credits":0,"code":null,"message":null,"percent":100,"operation":"export\/url","payload":{"input":"68d52633-e170-465e-b13e-746c97d01ffb","archive_multiple_files":false},"result":{"files":[{"filename":"theverge.com.png","size":811819,"url":"https:\/\/storage.cloudconvert.com\/tasks\/27f33137-cc03-4468-aba4-1e1aa8c096fb\/theverge.com.png?AWSAccessKeyId=cloudconvert-production&Expires=1673212203&Signature=xyz&response-content-disposition=attachment%3B%20filename%3D%22theverge.com.png%22&response-content-type=image%2Fpng"}]},"created_at":"2023-01-07T21:10:02+00:00","started_at":"2023-01-07T21:10:03+00:00","ended_at":"2023-01-07T21:10:03+00:00","retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":"virgie","storage":"ceph-fra","depends_on_task_ids":["68d52633-e170-465e-b13e-746c97d01ffb"],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/27f33137-cc03-4468-aba4-1e1aa8c096fb"}}}'), - ]); - $retryHandler = HandlerStack::create($retryMock); - $retryHandler->push(Middleware::retry( - function ($retries, $request, $response, $exception) { - // Limit the number of retries to 5 - if ($retries >= 5) { - return false; - } - - // Retry connection exceptions - if ($exception instanceof ConnectException) { - return true; - } - - // Retry on server errors - if ($response && $response->getStatusCode() >= 500) { - return true; - } - - $responseBody = ''; - - if (is_string($response)) { - $responseBody = $response; - } - - if ($response instanceof Response) { - $responseBody = $response->getBody()->getContents(); - $response->getBody()->rewind(); - } - - // Finally for CloudConvert, retry if status is not final - return json_decode($responseBody, false, 512, JSON_THROW_ON_ERROR)?->data?->status !== 'finished'; - }, - function () { - // Retry after 1 second - return 1000; - } - )); - $retryClient = new Client(['handler' => $retryHandler]); - $this->app->instance('RetryGuzzle', $retryClient); $bookmark = Bookmark::factory()->create(); $job = new SaveScreenshot($bookmark); @@ -84,68 +56,45 @@ class SaveScreenshotJobTest extends TestCase $this->assertEquals('68d52633-e170-465e-b13e-746c97d01ffb', $bookmark->screenshot); Storage::disk('public')->assertExists('/assets/img/bookmarks/'.$bookmark->screenshot.'.png'); + + // capture-website, 1x poll (finished immediately), export/url, 1x poll (finished immediately), download + Http::assertSentCount(5); } #[Test] public function screenshot_job_handles_unfinished_tasks(): void { Storage::fake('public'); - $guzzleMock = new MockHandler([ - new Response(201, ['Content-Type' => 'application/json'], '{"id":1,"data":{"id":"68d52633-e170-465e-b13e-746c97d01ffb","job_id":null,"status":"waiting","credits":null,"code":null,"message":null,"percent":100,"operation":"capture-website","engine":"chrome","engine_version":"107","result":null,"created_at":"2023-01-07T21:05:48+00:00","started_at":null,"ended_at":null,"retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":null,"storage":"ceph-fra","depends_on_task_ids":[],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/68d52633-e170-465e-b13e-746c97d01ffb"}}}'), - new Response(201, ['Content-Type' => 'application/json'], '{"id":2,"data":{"id":"27f33137-cc03-4468-aba4-1e1aa8c096fb","job_id":null,"status":"waiting","credits":null,"code":null,"message":null,"percent":100,"operation":"export\/url","result":null,"created_at":"2023-01-07T21:10:02+00:00","started_at":null,"ended_at":null,"retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":null,"storage":"ceph-fra","depends_on_task_ids":["68d52633-e170-465e-b13e-746c97d01ffb"],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/27f33137-cc03-4468-aba4-1e1aa8c096fb"}}}'), - new Response(200, ['Content-Type' => 'image/png'], fopen(__DIR__.'/../../theverge.com.png', 'rb')), + + Http::fake([ + 'api.cloudconvert.com/v2/capture-website' => Http::response([ + 'data' => ['id' => '68d52633-e170-465e-b13e-746c97d01ffb', 'status' => 'waiting'], + ], 201), + 'api.cloudconvert.com/v2/tasks/68d52633-e170-465e-b13e-746c97d01ffb*' => Http::sequence() + ->push(['data' => ['id' => '68d52633-e170-465e-b13e-746c97d01ffb', 'status' => 'waiting']], 200) + ->push(['data' => ['id' => '68d52633-e170-465e-b13e-746c97d01ffb', 'status' => 'finished']], 200), + 'api.cloudconvert.com/v2/export/url' => Http::response([ + 'data' => ['id' => '27f33137-cc03-4468-aba4-1e1aa8c096fb', 'status' => 'waiting'], + ], 201), + 'api.cloudconvert.com/v2/tasks/27f33137-cc03-4468-aba4-1e1aa8c096fb*' => Http::sequence() + ->push(['data' => ['id' => '27f33137-cc03-4468-aba4-1e1aa8c096fb', 'status' => 'waiting']], 200) + ->push([ + 'data' => [ + 'id' => '27f33137-cc03-4468-aba4-1e1aa8c096fb', + 'status' => 'finished', + 'result' => [ + 'files' => [[ + 'url' => 'https://storage.cloudconvert.com/tasks/27f33137-cc03-4468-aba4-1e1aa8c096fb/theverge.com.png', + ]], + ], + ], + ], 200), + 'storage.cloudconvert.com/*' => Http::response( + file_get_contents(__DIR__.'/../../theverge.com.png'), + 200, + ['Content-Type' => 'image/png'] + ), ]); - $guzzleHandler = HandlerStack::create($guzzleMock); - $guzzleClient = new Client(['handler' => $guzzleHandler]); - $this->app->instance(Client::class, $guzzleClient); - $container = []; - $history = Middleware::history($container); - $retryMock = new MockHandler([ - new Response(200, ['Content-Type' => 'application/json'], '{"id":3,"data":{"id":"68d52633-e170-465e-b13e-746c97d01ffb","job_id":null,"status":"waiting","credits":1,"code":null,"message":null,"percent":50,"operation":"capture-website","engine":"chrome","engine_version":"107","payload":{"url":"https:\/\/theverge.com","output_format":"png","screen_width":1440,"screen_height":900,"wait_until":"networkidle0","wait_time":"100"},"result":{"files":[{"filename":"theverge.com.png","size":811819}]},"created_at":"2023-01-07T21:05:48+00:00","started_at":"2023-01-07T21:05:48+00:00","ended_at":"2023-01-07T21:05:55+00:00","retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":"virgie","storage":"ceph-fra","depends_on_task_ids":[],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/68d52633-e170-465e-b13e-746c97d01ffb"}}}'), - new Response(200, ['Content-Type' => 'application/json'], '{"id":4,"data":{"id":"68d52633-e170-465e-b13e-746c97d01ffb","job_id":null,"status":"finished","credits":1,"code":null,"message":null,"percent":100,"operation":"capture-website","engine":"chrome","engine_version":"107","payload":{"url":"https:\/\/theverge.com","output_format":"png","screen_width":1440,"screen_height":900,"wait_until":"networkidle0","wait_time":"100"},"result":{"files":[{"filename":"theverge.com.png","size":811819}]},"created_at":"2023-01-07T21:05:48+00:00","started_at":"2023-01-07T21:05:48+00:00","ended_at":"2023-01-07T21:05:55+00:00","retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":"virgie","storage":"ceph-fra","depends_on_task_ids":[],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/68d52633-e170-465e-b13e-746c97d01ffb"}}}'), - new Response(200, ['Content-Type' => 'application/json'], '{"id":5,"data":{"id":"27f33137-cc03-4468-aba4-1e1aa8c096fb","job_id":null,"status":"waiting","credits":0,"code":null,"message":null,"percent":50,"operation":"export\/url","payload":{"input":"68d52633-e170-465e-b13e-746c97d01ffb","archive_multiple_files":false},"created_at":"2023-01-07T21:10:02+00:00","started_at":"2023-01-07T21:10:03+00:00","ended_at":null,"retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":"virgie","storage":"ceph-fra","depends_on_task_ids":["68d52633-e170-465e-b13e-746c97d01ffb"],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/27f33137-cc03-4468-aba4-1e1aa8c096fb"}}}'), - new Response(200, ['Content-Type' => 'application/json'], '{"id":6,"data":{"id":"27f33137-cc03-4468-aba4-1e1aa8c096fb","job_id":null,"status":"finished","credits":0,"code":null,"message":null,"percent":100,"operation":"export\/url","payload":{"input":"68d52633-e170-465e-b13e-746c97d01ffb","archive_multiple_files":false},"result":{"files":[{"filename":"theverge.com.png","size":811819,"url":"https:\/\/storage.cloudconvert.com\/tasks\/27f33137-cc03-4468-aba4-1e1aa8c096fb\/theverge.com.png?AWSAccessKeyId=cloudconvert-production&Expires=1673212203&Signature=xyz&response-content-disposition=attachment%3B%20filename%3D%22theverge.com.png%22&response-content-type=image%2Fpng"}]},"created_at":"2023-01-07T21:10:02+00:00","started_at":"2023-01-07T21:10:03+00:00","ended_at":"2023-01-07T21:10:03+00:00","retry_of_task_id":null,"copy_of_task_id":null,"user_id":61485254,"priority":-10,"host_name":"virgie","storage":"ceph-fra","depends_on_task_ids":["68d52633-e170-465e-b13e-746c97d01ffb"],"links":{"self":"https:\/\/api.cloudconvert.com\/v2\/tasks\/27f33137-cc03-4468-aba4-1e1aa8c096fb"}}}'), - ]); - $retryHandler = HandlerStack::create($retryMock); - $retryHandler->push($history); - $retryHandler->push(Middleware::retry( - function ($retries, $request, $response, $exception) { - // Limit the number of retries to 5 - if ($retries >= 5) { - return false; - } - - // Retry connection exceptions - if ($exception instanceof ConnectException) { - return true; - } - - // Retry on server errors - if ($response && $response->getStatusCode() >= 500) { - return true; - } - - $responseBody = ''; - - if (is_string($response)) { - $responseBody = $response; - } - - if ($response instanceof Response) { - $responseBody = $response->getBody()->getContents(); - $response->getBody()->rewind(); - } - - // Finally for CloudConvert, retry if status is not final - return json_decode($responseBody, false, 512, JSON_THROW_ON_ERROR)?->data?->status !== 'finished'; - }, - function () { - // Retry after 1 second - return 1000; - } - )); - $retryClient = new Client(['handler' => $retryHandler]); - $this->app->instance('RetryGuzzle', $retryClient); $bookmark = Bookmark::factory()->create(); $job = new SaveScreenshot($bookmark); @@ -154,9 +103,10 @@ class SaveScreenshotJobTest extends TestCase $this->assertEquals('68d52633-e170-465e-b13e-746c97d01ffb', $bookmark->screenshot); Storage::disk('public')->assertExists('/assets/img/bookmarks/'.$bookmark->screenshot.'.png'); - // Also assert we made the correct number of requests - $this->assertCount(2, $container); - // However with retries there should be more than 4 responses for the 2 requests - $this->assertEquals(0, $retryMock->count()); + + // capture-website, 2x poll (waiting then finished), export/url, 2x poll (waiting then finished), download + Http::assertSentCount(7); + // Also assert every queued response in each sequence was consumed, no more no less + Http::assertSequencesAreEmpty(); } } diff --git a/tests/Unit/Jobs/SendWebMentionJobTest.php b/tests/Unit/Jobs/SendWebMentionJobTest.php index 29973328..1c26460a 100644 --- a/tests/Unit/Jobs/SendWebMentionJobTest.php +++ b/tests/Unit/Jobs/SendWebMentionJobTest.php @@ -6,10 +6,7 @@ namespace Tests\Unit\Jobs; use App\Jobs\SendWebMentions; use App\Models\Note; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -28,12 +25,9 @@ class SendWebMentionJobTest extends TestCase public function discover_webmention_endpoint_from_header_links(): void { $url = 'https://example.org/webmention'; - $mock = new MockHandler([ - new Response(200, ['Link' => '<'.$url.'>; rel="webmention"']), + Http::fake([ + '*' => Http::response('', 200, ['Link' => '<'.$url.'>; rel="webmention"']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $job = new SendWebMentions(new Note); $this->assertEquals($url, $job->discoverWebmentionEndpoint('https://example.org')); @@ -43,12 +37,9 @@ class SendWebMentionJobTest extends TestCase public function discover_webmention_endpoint_from_html_link_tags(): void { $html = ''; - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $job = new SendWebMentions(new Note); $this->assertEquals( @@ -61,12 +52,9 @@ class SendWebMentionJobTest extends TestCase public function discover_webmention_endpoint_from_legacy_html_markup(): void { $html = ''; - $mock = new MockHandler([ - new Response(200, [], $html), + Http::fake([ + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $job = new SendWebMentions(new Note); $this->assertEquals( @@ -95,13 +83,10 @@ class SendWebMentionJobTest extends TestCase public function we_send_a_webmention_for_a_note(): void { $html = ''; - $mock = new MockHandler([ - new Response(200, [], $html), - new Response(202), + Http::fake([ + 'example.org/webmention' => Http::response('', 202), + '*' => Http::response($html, 200), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $note = new Note; $note->note = 'Hi [Aaron](https://aaronparecki.com)'; @@ -114,13 +99,10 @@ class SendWebMentionJobTest extends TestCase #[Test] public function links_in_notes_can_not_support_webmentions(): void { - $mock = new MockHandler([ + Http::fake([ // URLs with commas currently break the parse function I’m using - new Response(200, ['Link' => '; rel="preconnect"']), + '*' => Http::response('', 200, ['Link' => '; rel="preconnect"']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - $this->app->instance(Client::class, $client); $job = new SendWebMentions(new Note); $this->assertNull($job->discoverWebmentionEndpoint('https://example.org')); diff --git a/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php b/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php index 23ab2dcd..29935011 100644 --- a/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php +++ b/tests/Unit/Jobs/SyndicateNoteToBlueskyJobTest.php @@ -5,12 +5,9 @@ namespace Tests\Unit\Jobs; use App\Jobs\SyndicateNoteToBluesky; use App\Models\Note; use Faker\Factory; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Middleware; -use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Http\Client\Request; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -24,19 +21,17 @@ class SyndicateNoteToBlueskyJobTest extends TestCase $faker = Factory::create(); $randomNumber = $faker->randomNumber(); $blueskyUrl = 'https://bsky.app/profile/jonnybarnes.uk/'.$randomNumber; - $mock = new MockHandler([ - new Response(201, ['Content-Type' => 'application/json'], json_encode([ + Http::fake([ + 'brid.gy/*' => Http::response([ 'url' => $blueskyUrl, 'id' => (string) $randomNumber, 'type' => ['h-entry'], - ])), + ], 201), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); $job = new SyndicateNoteToBluesky($note); - $job->handle($client); + $job->handle(); $this->assertDatabaseHas('notes', [ 'bluesky_url' => $blueskyUrl, @@ -46,39 +41,31 @@ class SyndicateNoteToBlueskyJobTest extends TestCase #[Test] public function we_post_the_correct_source_and_target(): void { - $container = []; - $history = Middleware::history($container); - $mock = new MockHandler([ - new Response(201, ['Content-Type' => 'application/json'], json_encode([ + Http::fake([ + 'brid.gy/*' => Http::response([ 'url' => 'https://bsky.app/profile/jonnybarnes.uk/1', - ])), + ], 201), ]); - $handler = HandlerStack::create($mock); - $handler->push($history); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(['note' => 'This is a **test**']); $job = new SyndicateNoteToBluesky($note); - $job->handle($client); + $job->handle(); - $request = $container[0]['request']; - $body = []; - parse_str((string) $request->getBody(), $body); - - $this->assertSame('https://brid.gy/publish/webmention', (string) $request->getUri()); - $this->assertSame($note->uri, $body['source']); - $this->assertSame('https://brid.gy/publish/bluesky', $body['target']); + Http::assertSent(function (Request $request) use ($note) { + return $request->url() === 'https://brid.gy/publish/webmention' + && $request['source'] === $note->uri + && $request['target'] === 'https://brid.gy/publish/bluesky'; + }); } #[Test] public function a_bridgy_failure_throws_and_does_not_set_bluesky_url(): void { - $mock = new MockHandler([ - new Response(400, ['Content-Type' => 'application/json'], json_encode([ + Http::fake([ + 'brid.gy/*' => Http::response([ 'error' => 'Could not find target link', - ])), + ], 400), ]); - $client = new Client(['handler' => HandlerStack::create($mock)]); $note = Note::factory()->create(); $job = new SyndicateNoteToBluesky($note); @@ -86,7 +73,7 @@ class SyndicateNoteToBlueskyJobTest extends TestCase $this->expectException(\RuntimeException::class); try { - $job->handle($client); + $job->handle(); } finally { $this->assertDatabaseHas('notes', [ 'id' => $note->id, diff --git a/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php b/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php index bdc780e6..be0a04c2 100644 --- a/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php +++ b/tests/Unit/Jobs/SyndicateNoteToMastodonJobTest.php @@ -5,12 +5,9 @@ namespace Tests\Unit\Jobs; use App\Jobs\SyndicateNoteToMastodon; use App\Models\Note; use Faker\Factory; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Middleware; -use GuzzleHttp\Psr7\Response; use Illuminate\Foundation\Testing\RefreshDatabase; +use Illuminate\Http\Client\Request; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -24,19 +21,17 @@ class SyndicateNoteToMastodonJobTest extends TestCase $faker = Factory::create(); $randomNumber = $faker->randomNumber(); $mastodonUrl = 'https://mastodon.example/@jonny/'.$randomNumber; - $mock = new MockHandler([ - new Response(201, ['Content-Type' => 'application/json'], json_encode([ + Http::fake([ + 'brid.gy/*' => Http::response([ 'url' => $mastodonUrl, 'id' => (string) $randomNumber, 'type' => ['h-entry'], - ])), + ], 201), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(); $job = new SyndicateNoteToMastodon($note); - $job->handle($client); + $job->handle(); $this->assertDatabaseHas('notes', [ 'mastodon_url' => $mastodonUrl, @@ -46,39 +41,31 @@ class SyndicateNoteToMastodonJobTest extends TestCase #[Test] public function we_post_the_correct_source_and_target(): void { - $container = []; - $history = Middleware::history($container); - $mock = new MockHandler([ - new Response(201, ['Content-Type' => 'application/json'], json_encode([ + Http::fake([ + 'brid.gy/*' => Http::response([ 'url' => 'https://mastodon.example/@jonny/1', - ])), + ], 201), ]); - $handler = HandlerStack::create($mock); - $handler->push($history); - $client = new Client(['handler' => $handler]); $note = Note::factory()->create(['note' => 'This is a **test**']); $job = new SyndicateNoteToMastodon($note); - $job->handle($client); + $job->handle(); - $request = $container[0]['request']; - $body = []; - parse_str((string) $request->getBody(), $body); - - $this->assertSame('https://brid.gy/publish/webmention', (string) $request->getUri()); - $this->assertSame($note->uri, $body['source']); - $this->assertSame('https://brid.gy/publish/mastodon', $body['target']); + Http::assertSent(function (Request $request) use ($note) { + return $request->url() === 'https://brid.gy/publish/webmention' + && $request['source'] === $note->uri + && $request['target'] === 'https://brid.gy/publish/mastodon'; + }); } #[Test] public function a_bridgy_failure_throws_and_does_not_set_mastodon_url(): void { - $mock = new MockHandler([ - new Response(400, ['Content-Type' => 'application/json'], json_encode([ + Http::fake([ + 'brid.gy/*' => Http::response([ 'error' => 'Could not find target link', - ])), + ], 400), ]); - $client = new Client(['handler' => HandlerStack::create($mock)]); $note = Note::factory()->create(); $job = new SyndicateNoteToMastodon($note); @@ -86,7 +73,7 @@ class SyndicateNoteToMastodonJobTest extends TestCase $this->expectException(\RuntimeException::class); try { - $job->handle($client); + $job->handle(); } finally { $this->assertDatabaseHas('notes', [ 'id' => $note->id, diff --git a/tests/Unit/NotesTest.php b/tests/Unit/NotesTest.php index 0778ce2a..afd669ab 100644 --- a/tests/Unit/NotesTest.php +++ b/tests/Unit/NotesTest.php @@ -9,13 +9,10 @@ use App\Models\Media; use App\Models\Note; use App\Models\Place; use App\Models\Tag; -use GuzzleHttp\Client; -use GuzzleHttp\Handler\MockHandler; -use GuzzleHttp\HandlerStack; -use GuzzleHttp\Psr7\Response; use Illuminate\Filesystem\Filesystem; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Http; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -182,13 +179,9 @@ class NotesTest extends TestCase {"place_id":"198791063","licence":"Data © OpenStreetMap contributors, ODbL 1.0. https:\/\/osm.org\/copyright","osm_type":"relation","osm_id":"5208404","lat":"51.50084125","lon":"-0.142990166340849","display_name":"Buckingham Palace, Ambassador's Court, St. James's, Victoria, Westminster, London, Greater London, England, SW1E 6LA, United Kingdom","address":{"attraction":"Buckingham Palace","road":"Ambassador's Court","neighbourhood":"St. James's","suburb":"Victoria","city":"London","state_district":"Greater London","state":"England","postcode":"SW1E 6LA","country":"UK","country_code":"gb"},"boundingbox":["51.4997342","51.5019473","-0.143984","-0.1413002"]} JSON; // phpcs:enable Generic.Files.LineLength.TooLong - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'application/json'], $json), + Http::fake([ + 'nominatim.openstreetmap.org/*' => Http::response($json, 200, ['Content-Type' => 'application/json']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - - $this->app->instance(Client::class, $client); $note = new Note; $address = $note->reverseGeoCode(51.50084, -0.14264); @@ -207,13 +200,9 @@ class NotesTest extends TestCase {"place_id":"96518506","licence":"Data © OpenStreetMap contributors, ODbL 1.0. https:\/\/osm.org\/copyright","osm_type":"way","osm_id":"94107885","lat":"51.0225764535969","lon":"0.906664040464189","display_name":"Melon Lane, Newchurch, Shepway, Kent, South East, England, TN29 0AS, United Kingdom","address":{"road":"Melon Lane","suburb":"Newchurch","city":"Shepway","county":"Kent","state_district":"South East","state":"England","postcode":"TN29 0AS","country":"UK","country_code":"gb"},"boundingbox":["51.0140377","51.0371494","0.8873312","0.9109506"]} JSON; // phpcs:enable Generic.Files.LineLength.TooLong - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'application/json'], $json), + Http::fake([ + 'nominatim.openstreetmap.org/*' => Http::response($json, 200, ['Content-Type' => 'application/json']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - - $this->app->instance(Client::class, $client); $note = new Note; $address = $note->reverseGeoCode(51.02, 0.91); @@ -234,13 +223,9 @@ class NotesTest extends TestCase {"place_id":"198561071","licence":"Data © OpenStreetMap contributors, ODbL 1.0. https:\/\/osm.org\/copyright","osm_type":"relation","osm_id":"1839026","lat":"53.46600455","lon":"-2.23300880782987","display_name":"University of Manchester - Main Campus, Brunswick Street, Curry Mile, Ardwick, Manchester, Greater Manchester, North West England, England, M13 9NR, United Kingdom","address":{"university":"University of Manchester - Main Campus","city":"Manchester","county":"Greater Manchester","state_district":"North West England","state":"England","postcode":"M13 9NR","country":"UK","country_code":"gb"},"boundingbox":["53.4598667","53.4716848","-2.2390346","-2.2262754"]} JSON; // phpcs:enable Generic.Files.LineLength.TooLong - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'application/json'], $json), + Http::fake([ + 'nominatim.openstreetmap.org/*' => Http::response($json, 200, ['Content-Type' => 'application/json']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - - $this->app->instance(Client::class, $client); $note = new Note; $address = $note->reverseGeoCode(53.466277988406, -2.2304474827445); @@ -261,13 +246,9 @@ class NotesTest extends TestCase {"place_id":"98085404","licence":"Data © OpenStreetMap contributors, ODbL 1.0. https:\/\/osm.org\/copyright","osm_type":"way","osm_id":"103703318","lat":"51.0997470194065","lon":"0.609897771085209","display_name":"Biddenden, Ashford, Kent, South East, England, TN27 8ET, United Kingdom","address":{"county":"Kent","state_district":"South East","state":"England","postcode":"TN27 8ET","country":"UK","country_code":"gb"},"boundingbox":["51.0986632","51.104459","0.5954434","0.6167775"]} JSON; // phpcs:enable Generic.Files.LineLength.TooLong - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'application/json'], $json), + Http::fake([ + 'nominatim.openstreetmap.org/*' => Http::response($json, 200, ['Content-Type' => 'application/json']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - - $this->app->instance(Client::class, $client); $note = new Note; $address = $note->reverseGeoCode(51.1, 0.61); @@ -285,13 +266,9 @@ class NotesTest extends TestCase {"place_id":"120553244","licence":"Data © OpenStreetMap contributors, ODbL 1.0. https:\/\/osm.org\/copyright","osm_type":"way","osm_id":"191508282","lat":"54.3004150140189","lon":"-9.39993720828084","display_name":"R314, Doonfeeny Lower, Ballycastle ED, Ballina, County Mayo, Connacht, Ireland","address":{"country":"Ireland","country_code":"ie"},"boundingbox":["54.2964027","54.3045856","-9.4337961","-9.3960403"]} JSON; // phpcs:enable Generic.Files.LineLength.TooLong - $mock = new MockHandler([ - new Response(200, ['Content-Type' => 'application/json'], $json), + Http::fake([ + 'nominatim.openstreetmap.org/*' => Http::response($json, 200, ['Content-Type' => 'application/json']), ]); - $handler = HandlerStack::create($mock); - $client = new Client(['handler' => $handler]); - - $this->app->instance(Client::class, $client); $note = new Note; $address = $note->reverseGeoCode(54.3, 9.4); From 2eab5749ea8b2f84a689e2a19a4d6a63c74b0b1a Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 26 Jul 2026 10:57:20 +0100 Subject: [PATCH 02/33] Update dependencies --- composer.json | 7 +- composer.lock | 1238 ++++++++++++++++++++------------- config/flare.php | 159 ++--- package-lock.json | 314 ++++----- public/assets/css/app.css.map | 2 +- 5 files changed, 972 insertions(+), 748 deletions(-) diff --git a/composer.json b/composer.json index 1b94abe8..7e55bbd3 100644 --- a/composer.json +++ b/composer.json @@ -14,7 +14,6 @@ "ext-pgsql": "*", "ext-sodium": "*", "cviebrock/eloquent-sluggable": "^13.0", - "guzzlehttp/guzzle": "^7.2", "indieauth/client": "^1.1", "intervention/image": "^3", "jonnybarnes/indieweb": "~0.2", @@ -27,7 +26,7 @@ "league/commonmark": "^2.0", "league/flysystem-aws-s3-v3": "^3.0", "mf2/mf2": "~0.3", - "spatie/laravel-flare": "^2.2", + "spatie/laravel-flare": "^3.0", "symfony/html-sanitizer": "^8.0", "tempest/highlight": "^2.27", "web-auth/webauthn-lib": "^5.0" @@ -42,8 +41,8 @@ "laravel/sail": "^1.41", "mockery/mockery": "^1.6", "nunomaduro/collision": "^8.6", - "phpunit/php-code-coverage": "^12.0", - "phpunit/phpunit": "^12.5.12", + "phpunit/php-code-coverage": "^14.0", + "phpunit/phpunit": "^13.0", "spatie/laravel-ray": "^1.12", "spatie/x-ray": "^1.2" }, diff --git a/composer.lock b/composer.lock index 65ec1857..be951f93 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "30db4db4dcfdc487f28e738f0d22d68c", + "content-hash": "01ba04ab77c167a38ed826d7193ba5ef", "packages": [ { "name": "aws/aws-crt-php", @@ -62,16 +62,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.386.1", + "version": "3.389.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "e36bc0e97e82d68acc92b9e06f5dc544913d819a" + "reference": "e6e6649e58826c7edaa9f546f444461a25a22719" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e36bc0e97e82d68acc92b9e06f5dc544913d819a", - "reference": "e36bc0e97e82d68acc92b9e06f5dc544913d819a", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e6e6649e58826c7edaa9f546f444461a25a22719", + "reference": "e6e6649e58826c7edaa9f546f444461a25a22719", "shasum": "" }, "require": { @@ -79,9 +79,9 @@ "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/promises": "^2.0", - "guzzlehttp/psr7": "^2.4.5", + "guzzlehttp/guzzle": "^7.8.2 || ^8.0", + "guzzlehttp/promises": "^2.0.3 || ^3.0", + "guzzlehttp/psr7": "^2.6.3 || ^3.0", "mtdowling/jmespath.php": "^2.9.1", "php": ">=8.1", "psr/http-message": "^1.0 || ^2.0", @@ -153,22 +153,22 @@ "support": { "forum": "https://github.com/aws/aws-sdk-php/discussions", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.386.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.389.0" }, - "time": "2026-06-23T01:24:07+00:00" + "time": "2026-07-24T18:05:53+00:00" }, { "name": "brick/math", - "version": "0.17.2", + "version": "0.18.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "8189e751995f9e15729c1aa2f89fa8f166ffe818" + "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/8189e751995f9e15729c1aa2f89fa8f166ffe818", - "reference": "8189e751995f9e15729c1aa2f89fa8f166ffe818", + "url": "https://api.github.com/repos/brick/math/zipball/82944324d1c1bdb2c2618e89978d4e2ad78d69ad", + "reference": "82944324d1c1bdb2c2618e89978d4e2ad78d69ad", "shasum": "" }, "require": { @@ -206,7 +206,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.17.2" + "source": "https://github.com/brick/math/tree/0.18.0" }, "funding": [ { @@ -214,7 +214,7 @@ "type": "github" } ], - "time": "2026-05-25T20:34:43+00:00" + "time": "2026-06-14T18:21:03+00:00" }, { "name": "carbonphp/carbon-doctrine-types", @@ -361,16 +361,16 @@ }, { "name": "cviebrock/eloquent-sluggable", - "version": "13.0.0", + "version": "13.0.1", "source": { "type": "git", "url": "https://github.com/cviebrock/eloquent-sluggable.git", - "reference": "0a023eed5bdc7da3aa9107cb2299757ce4a656e3" + "reference": "a0e2e342461ac04f5c41eb1c52f9bc77eafa6a03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/0a023eed5bdc7da3aa9107cb2299757ce4a656e3", - "reference": "0a023eed5bdc7da3aa9107cb2299757ce4a656e3", + "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/a0e2e342461ac04f5c41eb1c52f9bc77eafa6a03", + "reference": "a0e2e342461ac04f5c41eb1c52f9bc77eafa6a03", "shasum": "" }, "require": { @@ -422,7 +422,7 @@ ], "support": { "issues": "https://github.com/cviebrock/eloquent-sluggable/issues", - "source": "https://github.com/cviebrock/eloquent-sluggable/tree/13.0.0" + "source": "https://github.com/cviebrock/eloquent-sluggable/tree/13.0.1" }, "funding": [ { @@ -430,7 +430,7 @@ "type": "github" } ], - "time": "2026-03-19T14:42:10+00:00" + "time": "2026-07-20T13:44:42+00:00" }, { "name": "dflydev/dot-access-data", @@ -988,22 +988,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.13.0", + "version": "7.15.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "a4decaa9745dc567467970e43f183e260cfa51fd" + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a4decaa9745dc567467970e43f183e260cfa51fd", - "reference": "a4decaa9745dc567467970e43f183e260cfa51fd", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", + "reference": "61443dfb33c62f308ee8add20f45b4d6e4bf8d2f", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^2.5", - "guzzlehttp/psr7": "^2.12.3", + "guzzlehttp/promises": "^2.5.1", + "guzzlehttp/psr7": "^2.13", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.5 || ^3.0", @@ -1015,8 +1015,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.2", - "guzzlehttp/test-server": "^0.6", + "guzzle/client-integration-tests": "3.0.3", + "guzzlehttp/test-server": "^0.7", "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.52 || ^9.6.34", "psr/log": "^1.1 || ^2.0 || ^3.0" @@ -1096,7 +1096,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.13.0" + "source": "https://github.com/guzzle/guzzle/tree/7.15.1" }, "funding": [ { @@ -1112,20 +1112,20 @@ "type": "tidelift" } ], - "time": "2026-06-29T13:31:06+00:00" + "time": "2026-07-18T11:23:11+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.5.0", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "4360e982f87f5f258bf872d094647791db2f4c8e" + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/4360e982f87f5f258bf872d094647791db2f4c8e", - "reference": "4360e982f87f5f258bf872d094647791db2f4c8e", + "url": "https://api.github.com/repos/guzzle/promises/zipball/9ad1e4fc607446a055b95870c7f668e93b5cff29", + "reference": "9ad1e4fc607446a055b95870c7f668e93b5cff29", "shasum": "" }, "require": { @@ -1180,7 +1180,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.5.0" + "source": "https://github.com/guzzle/promises/tree/2.5.1" }, "funding": [ { @@ -1196,20 +1196,20 @@ "type": "tidelift" } ], - "time": "2026-06-02T12:23:43+00:00" + "time": "2026-07-08T15:48:39+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.12.3", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "7ec62dc3f44aa218487dbed81a9bf9bc647be55d" + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/7ec62dc3f44aa218487dbed81a9bf9bc647be55d", - "reference": "7ec62dc3f44aa218487dbed81a9bf9bc647be55d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dad89620b7a6edb60c15858442eb2e408b45d8f4", + "reference": "dad89620b7a6edb60c15858442eb2e408b45d8f4", "shasum": "" }, "require": { @@ -1299,7 +1299,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.12.3" + "source": "https://github.com/guzzle/psr7/tree/2.13.0" }, "funding": [ { @@ -1315,20 +1315,20 @@ "type": "tidelift" } ], - "time": "2026-06-23T15:21:08+00:00" + "time": "2026-07-16T22:23:49+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.8", + "version": "v1.0.10", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "9c19128923b05a5d7355e5d2318d7808b7e33bbd" + "reference": "f6c24c21f42b990e9a58912b332d0874df6ba839" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/9c19128923b05a5d7355e5d2318d7808b7e33bbd", - "reference": "9c19128923b05a5d7355e5d2318d7808b7e33bbd", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/f6c24c21f42b990e9a58912b332d0874df6ba839", + "reference": "f6c24c21f42b990e9a58912b332d0874df6ba839", "shasum": "" }, "require": { @@ -1385,7 +1385,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.8" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.10" }, "funding": [ { @@ -1401,7 +1401,7 @@ "type": "tidelift" } ], - "time": "2026-06-23T13:02:23+00:00" + "time": "2026-07-17T13:53:03+00:00" }, { "name": "indieauth/client", @@ -1801,16 +1801,16 @@ }, { "name": "laravel/framework", - "version": "v13.17.0", + "version": "v13.22.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "0802b7a81f3252d78200b8037ac183a686a529f0" + "reference": "d354afa45334cdac523fbc015f203a78d7e2f5c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/0802b7a81f3252d78200b8037ac183a686a529f0", - "reference": "0802b7a81f3252d78200b8037ac183a686a529f0", + "url": "https://api.github.com/repos/laravel/framework/zipball/d354afa45334cdac523fbc015f203a78d7e2f5c6", + "reference": "d354afa45334cdac523fbc015f203a78d7e2f5c6", "shasum": "" }, "require": { @@ -1889,6 +1889,7 @@ "illuminate/filesystem": "self.version", "illuminate/hashing": "self.version", "illuminate/http": "self.version", + "illuminate/image": "self.version", "illuminate/json-schema": "self.version", "illuminate/log": "self.version", "illuminate/macroable": "self.version", @@ -1915,6 +1916,7 @@ "ext-gmp": "*", "fakerphp/faker": "^1.24", "guzzlehttp/psr7": "^2.9", + "intervention/image": "^4.0", "laravel/pint": "^1.18", "league/flysystem-aws-s3-v3": "^3.25.1", "league/flysystem-ftp": "^3.25.1", @@ -1951,6 +1953,7 @@ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0 || ^5.0 || ^6.0).", "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "intervention/image": "Required to use the image processing features (^4.0).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", @@ -2021,20 +2024,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-06-23T19:42:45+00:00" + "time": "2026-07-24T20:38:48+00:00" }, { "name": "laravel/horizon", - "version": "v5.47.2", + "version": "v5.48.1", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "a6ac142293ad02db4d7cccb961dd32f56ef1462d" + "reference": "7953b21becabb83974ab93111ffa4d9439dcac07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/a6ac142293ad02db4d7cccb961dd32f56ef1462d", - "reference": "a6ac142293ad02db4d7cccb961dd32f56ef1462d", + "url": "https://api.github.com/repos/laravel/horizon/zipball/7953b21becabb83974ab93111ffa4d9439dcac07", + "reference": "7953b21becabb83974ab93111ffa4d9439dcac07", "shasum": "" }, "require": { @@ -2099,9 +2102,9 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.47.2" + "source": "https://github.com/laravel/horizon/tree/v5.48.1" }, - "time": "2026-06-03T15:11:37+00:00" + "time": "2026-07-20T15:53:58+00:00" }, { "name": "laravel/prompts", @@ -2300,16 +2303,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v2.0.13", + "version": "v2.0.15", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce" + "reference": "dccd8bcb851bb03fcc005df650b708b57cc52661" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b566ee0dd251f3c4078bed003a7ce015f5ea6dce", - "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/dccd8bcb851bb03fcc005df650b708b57cc52661", + "reference": "dccd8bcb851bb03fcc005df650b708b57cc52661", "shasum": "" }, "require": { @@ -2357,7 +2360,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2026-04-16T14:03:50+00:00" + "time": "2026-07-21T16:49:22+00:00" }, { "name": "laravel/tinker", @@ -2503,16 +2506,16 @@ }, { "name": "league/commonmark", - "version": "2.8.2", + "version": "2.8.3", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b" + "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/1902f60f984235023acbe03db6ad614a37b3c3e7", + "reference": "1902f60f984235023acbe03db6ad614a37b3c3e7", "shasum": "" }, "require": { @@ -2534,8 +2537,8 @@ "github/gfm": "0.29.0", "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "phpstan/phpstan": "^2.0.0", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0 || ^12.0.0 || ^13.0.0", "scrutinizer/ocular": "^1.8.1", "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0", "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0", @@ -2606,7 +2609,7 @@ "type": "tidelift" } ], - "time": "2026-03-19T13:16:38+00:00" + "time": "2026-07-12T15:29:16+00:00" }, { "name": "league/config", @@ -2692,16 +2695,16 @@ }, { "name": "league/flysystem", - "version": "3.35.1", + "version": "3.35.2", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "f23af6c5aafd958a7593029a271d77baf5ed793c" + "reference": "b277b5dc3d56650b68904117124e79c851e12376" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f23af6c5aafd958a7593029a271d77baf5ed793c", - "reference": "f23af6c5aafd958a7593029a271d77baf5ed793c", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b277b5dc3d56650b68904117124e79c851e12376", + "reference": "b277b5dc3d56650b68904117124e79c851e12376", "shasum": "" }, "require": { @@ -2769,22 +2772,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.35.1" + "source": "https://github.com/thephpleague/flysystem/tree/3.35.2" }, - "time": "2026-06-25T06:52:23+00:00" + "time": "2026-07-06T14:42:07+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.35.1", + "version": "3.35.2", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "3f93d3f4bd5c12a5dfb34a7267c40b1bc4587b94" + "reference": "8475ef9adfc6498b85469e2abec6fe3118cd08c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/3f93d3f4bd5c12a5dfb34a7267c40b1bc4587b94", - "reference": "3f93d3f4bd5c12a5dfb34a7267c40b1bc4587b94", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/8475ef9adfc6498b85469e2abec6fe3118cd08c4", + "reference": "8475ef9adfc6498b85469e2abec6fe3118cd08c4", "shasum": "" }, "require": { @@ -2824,9 +2827,9 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.35.1" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.35.2" }, - "time": "2026-06-25T06:51:08+00:00" + "time": "2026-07-01T23:25:49+00:00" }, { "name": "league/flysystem-local", @@ -2879,16 +2882,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.16.0", + "version": "1.17.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" + "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", - "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/f5f47eff7c48ed1003069a2ca67f316fb4021c76", + "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76", "shasum": "" }, "require": { @@ -2898,7 +2901,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0 || ^11.0 || ^12.0" }, "type": "library", "autoload": { @@ -2919,7 +2922,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.17.0" }, "funding": [ { @@ -2931,7 +2934,7 @@ "type": "tidelift" } ], - "time": "2024-09-21T08:32:55+00:00" + "time": "2026-07-09T11:49:27+00:00" }, { "name": "league/uri", @@ -3282,16 +3285,16 @@ }, { "name": "mtdowling/jmespath.php", - "version": "2.9.1", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "9c208ba27ae7d90853c288b3795d6702eb251d34" + "reference": "2157c5e50e813ec6a96c1eed3be7f64a20fb32a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9c208ba27ae7d90853c288b3795d6702eb251d34", - "reference": "9c208ba27ae7d90853c288b3795d6702eb251d34", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/2157c5e50e813ec6a96c1eed3be7f64a20fb32a8", + "reference": "2157c5e50e813ec6a96c1eed3be7f64a20fb32a8", "shasum": "" }, "require": { @@ -3342,22 +3345,22 @@ ], "support": { "issues": "https://github.com/jmespath/jmespath.php/issues", - "source": "https://github.com/jmespath/jmespath.php/tree/2.9.1" + "source": "https://github.com/jmespath/jmespath.php/tree/2.9.2" }, - "time": "2026-06-11T10:43:56+00:00" + "time": "2026-07-06T18:56:19+00:00" }, { "name": "nesbot/carbon", - "version": "3.13.0", + "version": "3.13.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "40f6618f052df16b545f626fbf9a878e6497d16a" + "reference": "2937ad3d1d2c506fd2bc97d571438a95641f44e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/40f6618f052df16b545f626fbf9a878e6497d16a", - "reference": "40f6618f052df16b545f626fbf9a878e6497d16a", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/2937ad3d1d2c506fd2bc97d571438a95641f44e2", + "reference": "2937ad3d1d2c506fd2bc97d571438a95641f44e2", "shasum": "" }, "require": { @@ -3449,7 +3452,7 @@ "type": "tidelift" } ], - "time": "2026-06-18T13:49:15+00:00" + "time": "2026-07-09T18:23:49+00:00" }, { "name": "nette/schema", @@ -3520,16 +3523,16 @@ }, { "name": "nette/utils", - "version": "v4.1.4", + "version": "v4.1.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7" + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/7da6c396d7ebe142bc857c20479d5e70a5e1aac7", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7", + "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", "shasum": "" }, "require": { @@ -3549,7 +3552,7 @@ }, "suggest": { "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-iconv": "to use Strings::chr(), ord() 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...", @@ -3605,26 +3608,25 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.4" + "source": "https://github.com/nette/utils/tree/v4.1.5" }, - "time": "2026-05-11T20:49:54+00:00" + "time": "2026-07-17T23:02:45+00:00" }, { "name": "nikic/php-parser", - "version": "v5.7.0", + "version": "v5.8.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f", + "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-json": "*", "ext-tokenizer": "*", "php": ">=7.4" @@ -3663,9 +3665,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0" }, - "time": "2025-12-06T11:56:16+00:00" + "time": "2026-07-04T14:30:18+00:00" }, { "name": "nunomaduro/termwind", @@ -4118,16 +4120,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.2", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", + "reference": "fb19eedd2bb67ff8cf7a5502ad329e701d6398a3", "shasum": "" }, "require": { @@ -4159,9 +4161,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.3" }, - "time": "2026-01-25T14:56:51+00:00" + "time": "2026-07-08T07:01:06+00:00" }, { "name": "psr/clock", @@ -4916,99 +4918,29 @@ ], "time": "2026-03-11T13:48:28+00:00" }, - { - "name": "spatie/error-solutions", - "version": "2.0.5", - "source": { - "type": "git", - "url": "https://github.com/spatie/error-solutions.git", - "reference": "0392eff7f36f01249a6e9f8eb22a7d54651881bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/error-solutions/zipball/0392eff7f36f01249a6e9f8eb22a7d54651881bc", - "reference": "0392eff7f36f01249a6e9f8eb22a7d54651881bc", - "shasum": "" - }, - "require": { - "php": "^8.2" - }, - "require-dev": { - "illuminate/broadcasting": "^10.0|^11.0|^12.0|^13.0", - "illuminate/cache": "^10.0|^11.0|^12.0|^13.0", - "illuminate/support": "^10.0|^11.0|^12.0|^13.0", - "livewire/livewire": "^2.11|^3.5.20|^4.0", - "openai-php/client": "^0.13.0", - "orchestra/testbench": "8.22.3|^9.0|^10.0|^11.0", - "pestphp/pest": "^2.20|^3.0", - "phpstan/phpstan": "^2.1", - "psr/simple-cache": "^3.0", - "psr/simple-cache-implementation": "^3.0", - "spatie/ray": "^1.28", - "symfony/cache": "^5.4|^6.0|^7.0|^8.0", - "symfony/process": "^5.4|^6.0|^7.0|^8.0", - "vlucas/phpdotenv": "^5.5" - }, - "suggest": { - "openai-php/client": "Require get solutions from OpenAI", - "simple-cache-implementation": "To cache solutions from OpenAI" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\ErrorSolutions\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ruben Van Assche", - "email": "ruben@spatie.be", - "role": "Developer" - } - ], - "description": "This is my package error-solutions", - "homepage": "https://github.com/spatie/error-solutions", - "keywords": [ - "error-solutions", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/error-solutions/issues", - "source": "https://github.com/spatie/error-solutions/tree/2.0.5" - }, - "funding": [ - { - "url": "https://github.com/Spatie", - "type": "github" - } - ], - "time": "2026-02-27T15:32:49+00:00" - }, { "name": "spatie/flare-client-php", - "version": "2.10.2", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "056aa9cb10e41d7490d51d2f15875143e6d12ce2" + "reference": "e045814eefd9f5862ec69aec6fc53b03838e2c92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/056aa9cb10e41d7490d51d2f15875143e6d12ce2", - "reference": "056aa9cb10e41d7490d51d2f15875143e6d12ce2", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/e045814eefd9f5862ec69aec6fc53b03838e2c92", + "reference": "e045814eefd9f5862ec69aec6fc53b03838e2c92", "shasum": "" }, "require": { "ext-curl": "*", - "guzzlehttp/guzzle": "^7.9", - "php": "^8.2", + "guzzlehttp/guzzle": "^7.9|^8.0", + "monolog/monolog": "^3.0", + "php": "^8.1", "psr/container": "^2.0", "spatie/backtrace": "^1.8.0", - "spatie/error-solutions": "^2.0", + "spatie/flare-daemon": "^0.3", + "symfony/console": "^5.2|^6.0|^7.0|^8.0", "symfony/http-foundation": "^5.2|^6.0|^7.0|^8.0", "symfony/mime": "^5.2|^6.0|^7.0|^8.0", "symfony/process": "^5.2|^6.0|^7.0|^8.0", @@ -5018,14 +4950,16 @@ "friendsofphp/php-cs-fixer": "^3.89", "pestphp/pest": "^2.36.0|^3.0|^4.0", "phpstan/extension-installer": "^1.4", - "phpstan/phpstan-deprecation-rules": "^1.2", - "phpstan/phpstan-phpunit": "^1.4", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "spatie/invade": "^2.1", "spatie/pest-plugin-snapshots": "^2.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.3.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -5047,7 +4981,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/2.10.2" + "source": "https://github.com/spatie/flare-client-php/tree/3.3.1" }, "funding": [ { @@ -5055,25 +4989,94 @@ "type": "github" } ], - "time": "2026-02-23T14:14:53+00:00" + "time": "2026-07-22T06:40:58+00:00" }, { - "name": "spatie/laravel-error-share", - "version": "1.0.9", + "name": "spatie/flare-daemon", + "version": "0.3.0", "source": { "type": "git", - "url": "https://github.com/spatie/laravel-error-share.git", - "reference": "52e65ee35a7f782e27460cb307cc97cec8332793" + "url": "https://github.com/spatie/flare-daemon.git", + "reference": "dfa1d156aac231a619f78974c983a78391e1e034" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-error-share/zipball/52e65ee35a7f782e27460cb307cc97cec8332793", - "reference": "52e65ee35a7f782e27460cb307cc97cec8332793", + "url": "https://api.github.com/repos/spatie/flare-daemon/zipball/dfa1d156aac231a619f78974c983a78391e1e034", + "reference": "dfa1d156aac231a619f78974c983a78391e1e034", "shasum": "" }, "require": { - "illuminate/contracts": "^12.50|^13.0", - "php": "^8.2", + "composer-runtime-api": "^2.2", + "ext-zlib": "*", + "php": "^8.1" + }, + "require-dev": { + "laravel/pint": "^1.0", + "pestphp/pest": "^3.0 || ^4.0", + "phpstan/phpstan": "^2.1", + "react/async": "^4.3", + "spatie/flare-daemon-runtime": "*", + "spatie/ray": "^1.28", + "symfony/process": "^7.2" + }, + "bin": [ + "bin/flare-daemon" + ], + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\FlareDaemon\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "role": "Developer" + } + ], + "description": "Local HTTP daemon for asynchronous Flare delivery", + "homepage": "https://github.com/spatie/flare-daemon", + "keywords": [ + "error-tracking", + "flare", + "flare-daemon", + "performance-monitoring", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/flare-daemon/issues", + "source": "https://github.com/spatie/flare-daemon/tree/0.3.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2026-07-02T15:29:10+00:00" + }, + { + "name": "spatie/laravel-error-share", + "version": "1.0.10", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-error-share.git", + "reference": "f13247bff7d7849e5279cf78777191f53cb12568" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-error-share/zipball/f13247bff7d7849e5279cf78777191f53cb12568", + "reference": "f13247bff7d7849e5279cf78777191f53cb12568", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^10.0|^11.0|^12.50|^13.0", + "php": "^8.1", "spatie/laravel-package-tools": "^1.16" }, "require-dev": { @@ -5129,7 +5132,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-error-share/issues", - "source": "https://github.com/spatie/laravel-error-share/tree/1.0.9" + "source": "https://github.com/spatie/laravel-error-share/tree/1.0.10" }, "funding": [ { @@ -5137,51 +5140,46 @@ "type": "github" } ], - "time": "2026-05-11T08:16:59+00:00" + "time": "2026-07-03T07:49:45+00:00" }, { "name": "spatie/laravel-flare", - "version": "2.8.0", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-flare.git", - "reference": "c2722a270ba2653baef2c9e29b893e28955717ce" + "reference": "6ef59eeba3bdf7561be849919f6058ad484ed151" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-flare/zipball/c2722a270ba2653baef2c9e29b893e28955717ce", - "reference": "c2722a270ba2653baef2c9e29b893e28955717ce", + "url": "https://api.github.com/repos/spatie/laravel-flare/zipball/6ef59eeba3bdf7561be849919f6058ad484ed151", + "reference": "6ef59eeba3bdf7561be849919f6058ad484ed151", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^11.46|^12.0|^13.0", + "illuminate/support": "^10.0|^11.47|^12.42|^13.0", "php": "^8.2", - "spatie/error-solutions": "^2.0", - "spatie/flare-client-php": "^2.10.2", + "spatie/flare-client-php": "^3.3.0", "spatie/laravel-error-share": "^1.0.3", - "symfony/console": "^7.2.1|^8.0", - "symfony/var-dumper": "^7.2.3|^8.0" + "symfony/console": "^6.4|^7.2.1|^8.0", + "symfony/var-dumper": "^6.4|^7.2.3|^8.0" }, "require-dev": { - "laravel/serializable-closure": "^2.0", - "livewire/livewire": "^3.6.0|^4.0", + "laravel/serializable-closure": "^1.3|^2.0", + "livewire/livewire": "^3.6.0|^4.2", "mockery/mockery": "^1.6.12", - "openai-php/client": "^0.8.5", - "orchestra/testbench": "^9.14|^10.8|^11.0", + "orchestra/testbench": "^8.31|^9.14|^10.8|^11.0", "pestphp/pest": "^2.34|^3.7.4|^4.1", "pestphp/pest-plugin-laravel": "^2.4|^3.0|^4.0", "phpstan/extension-installer": "^1.4.3", "phpstan/phpstan-deprecation-rules": "^1.1.1|^2.0.1", "phpstan/phpstan-phpunit": "^1.3.16|^2.0.4", + "spatie/ray": "^1.45", "vlucas/phpdotenv": "^5.6.1" }, - "suggest": { - "openai-php/client": "Required to get solutions from OpenAI", - "psr/simple-cache-implementation": "Used to cache solutions from OpenAI" - }, "type": "library", "extra": { "laravel": { @@ -5228,7 +5226,7 @@ "type": "github" } ], - "time": "2026-04-08T13:26:20+00:00" + "time": "2026-07-15T08:06:53+00:00" }, { "name": "spatie/laravel-package-tools", @@ -5293,20 +5291,20 @@ }, { "name": "spomky-labs/cbor-php", - "version": "3.2.3", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/cbor-php.git", - "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32" + "reference": "013d13da69cf28b1ae501887daceccc850ca1c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32", - "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32", + "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/013d13da69cf28b1ae501887daceccc850ca1c76", + "reference": "013d13da69cf28b1ae501887daceccc850ca1c76", "shasum": "" }, "require": { - "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18", "ext-mbstring": "*", "php": ">=8.0" }, @@ -5348,7 +5346,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/cbor-php/issues", - "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.2.3" + "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.3.0" }, "funding": [ { @@ -5360,45 +5358,44 @@ "type": "patreon" } ], - "time": "2026-04-01T12:15:20+00:00" + "time": "2026-07-15T18:56:27+00:00" }, { "name": "spomky-labs/pki-framework", - "version": "1.4.2", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/pki-framework.git", - "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8" + "reference": "e0d61661962560c1cedfef02b51b431e720aae78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/aa576cbd07128075bef97ac2f8af9854e67513d8", - "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8", + "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/e0d61661962560c1cedfef02b51b431e720aae78", + "reference": "e0d61661962560c1cedfef02b51b431e720aae78", "shasum": "" }, "require": { - "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18", "ext-mbstring": "*", - "php": ">=8.1", - "psr/clock": "^1.0" + "php": ">=8.1" }, "require-dev": { "ekino/phpstan-banned-code": "^1.0|^2.0|^3.0", "ext-gmp": "*", "ext-openssl": "*", - "infection/infection": "^0.28|^0.29|^0.31|^0.32", + "infection/infection": "^0.28|^0.29|^0.31", "php-parallel-lint/php-parallel-lint": "^1.3", "phpstan/extension-installer": "^1.3|^2.0", "phpstan/phpstan": "^1.8|^2.0", "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", "phpstan/phpstan-phpunit": "^1.1|^2.0", "phpstan/phpstan-strict-rules": "^1.3|^2.0", - "phpunit/phpunit": "^10.1|^11.0|^12.0|^13.0", + "phpunit/phpunit": "^10.1|^11.0|^12.0", "rector/rector": "^1.0|^2.0", "roave/security-advisories": "dev-latest", "symfony/string": "^6.4|^7.0|^8.0", "symfony/var-dumper": "^6.4|^7.0|^8.0", - "symplify/easy-coding-standard": "^12.0|^13.0" + "symplify/easy-coding-standard": "^12.0 || ^13.0" }, "suggest": { "ext-bcmath": "For better performance (or GMP)", @@ -5458,7 +5455,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/pki-framework/issues", - "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.4.2" + "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.5.0" }, "funding": [ { @@ -5470,7 +5467,7 @@ "type": "patreon" } ], - "time": "2026-03-23T22:56:56+00:00" + "time": "2026-07-16T10:28:45+00:00" }, { "name": "symfony/clock", @@ -8638,16 +8635,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v5.6.3", + "version": "v5.6.4", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "955e7815d677a3eaa7075231212f2110983adecc" + "reference": "416df702837983f8d5ff48c9c3fee4f5f57b980b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc", - "reference": "955e7815d677a3eaa7075231212f2110983adecc", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/416df702837983f8d5ff48c9c3fee4f5f57b980b", + "reference": "416df702837983f8d5ff48c9c3fee4f5f57b980b", "shasum": "" }, "require": { @@ -8706,7 +8703,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.3" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.4" }, "funding": [ { @@ -8718,7 +8715,7 @@ "type": "tidelift" } ], - "time": "2025-12-27T19:49:13+00:00" + "time": "2026-07-06T19:11:50+00:00" }, { "name": "voku/portable-ascii", @@ -8796,20 +8793,20 @@ }, { "name": "web-auth/cose-lib", - "version": "4.5.2", + "version": "4.6.0", "source": { "type": "git", "url": "https://github.com/web-auth/cose-lib.git", - "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d" + "reference": "3afe04df137baf97c5c3e28c5ee6f05536405148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/5b38660f90070a8e45f3dbc9528ade3b608dd77d", - "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d", + "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/3afe04df137baf97c5c3e28c5ee6f05536405148", + "reference": "3afe04df137baf97c5c3e28c5ee6f05536405148", "shasum": "" }, "require": { - "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18", "ext-json": "*", "ext-openssl": "*", "php": ">=8.1", @@ -8851,7 +8848,7 @@ ], "support": { "issues": "https://github.com/web-auth/cose-lib/issues", - "source": "https://github.com/web-auth/cose-lib/tree/4.5.2" + "source": "https://github.com/web-auth/cose-lib/tree/4.6.0" }, "funding": [ { @@ -8863,7 +8860,7 @@ "type": "patreon" } ], - "time": "2026-05-03T09:49:50+00:00" + "time": "2026-07-16T10:19:49+00:00" }, { "name": "web-auth/webauthn-lib", @@ -9021,16 +9018,16 @@ "packages-dev": [ { "name": "barryvdh/laravel-debugbar", - "version": "v4.3.0", + "version": "v4.4.0", "source": { "type": "git", "url": "https://github.com/fruitcake/laravel-debugbar.git", - "reference": "3d76ea8d78b82225b92789de65fc630c1cd8e80c" + "reference": "80ef956bda9e1a5824037d6f2cd06e73092e5634" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/3d76ea8d78b82225b92789de65fc630c1cd8e80c", - "reference": "3d76ea8d78b82225b92789de65fc630c1cd8e80c", + "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/80ef956bda9e1a5824037d6f2cd06e73092e5634", + "reference": "80ef956bda9e1a5824037d6f2cd06e73092e5634", "shasum": "" }, "require": { @@ -9038,11 +9035,12 @@ "illuminate/session": "^11|^12|^13.0", "illuminate/support": "^11|^12|^13.0", "php": "^8.2", - "php-debugbar/php-debugbar": "^3.7.2", + "php-debugbar/php-debugbar": "^3.8.0", "php-debugbar/symfony-bridge": "^1.1" }, "require-dev": { "larastan/larastan": "^3", + "laravel/ai": "^0.8", "laravel/octane": "^2", "laravel/pennant": "^1", "laravel/pint": "^1", @@ -9104,7 +9102,7 @@ ], "support": { "issues": "https://github.com/fruitcake/laravel-debugbar/issues", - "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.3.0" + "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.4.0" }, "funding": [ { @@ -9116,7 +9114,7 @@ "type": "github" } ], - "time": "2026-06-04T07:54:01+00:00" + "time": "2026-07-04T08:30:57+00:00" }, { "name": "barryvdh/laravel-ide-helper", @@ -9819,16 +9817,16 @@ }, { "name": "laravel/sail", - "version": "v1.63.0", + "version": "v1.64.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "51bbce3f803c1d386cabbb44e618c955a12ff5fc" + "reference": "08cacd3e72d6798df3fa8bd4b5d55d0f7f920625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/51bbce3f803c1d386cabbb44e618c955a12ff5fc", - "reference": "51bbce3f803c1d386cabbb44e618c955a12ff5fc", + "url": "https://api.github.com/repos/laravel/sail/zipball/08cacd3e72d6798df3fa8bd4b5d55d0f7f920625", + "reference": "08cacd3e72d6798df3fa8bd4b5d55d0f7f920625", "shasum": "" }, "require": { @@ -9878,7 +9876,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2026-06-18T08:54:14+00:00" + "time": "2026-07-17T15:09:35+00:00" }, { "name": "mockery/mockery", @@ -10025,23 +10023,23 @@ }, { "name": "nunomaduro/collision", - "version": "v8.9.4", + "version": "v8.9.5", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "716af8f95a470e9094cfca09ed897b023be191a5" + "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/716af8f95a470e9094cfca09ed897b023be191a5", - "reference": "716af8f95a470e9094cfca09ed897b023be191a5", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/fb53eacd509a1d303858e2d20cfebf2d630254ec", + "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec", "shasum": "" }, "require": { "filp/whoops": "^2.18.4", "nunomaduro/termwind": "^2.4.0", "php": "^8.2.0", - "symfony/console": "^7.4.8 || ^8.0.8" + "symfony/console": "^7.4.14 || ^8.1.1" }, "conflict": { "laravel/framework": "<11.48.0 || >=14.0.0", @@ -10049,12 +10047,12 @@ }, "require-dev": { "brianium/paratest": "^7.8.5", - "larastan/larastan": "^3.9.6", - "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.5.0", - "laravel/pint": "^1.29.1", - "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.2.1", - "pestphp/pest": "^3.8.5 || ^4.4.3 || ^5.0.0", - "sebastian/environment": "^7.2.1 || ^8.0.4 || ^9.3.0" + "larastan/larastan": "^3.10.0", + "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.20.0", + "laravel/pint": "^1.29.3", + "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.3.5", + "pestphp/pest": "^3.8.5 || ^4.7.5 || ^5.0.0", + "sebastian/environment": "^7.2.1 || ^8.1.2 || ^9.3.2" }, "type": "library", "extra": { @@ -10117,7 +10115,7 @@ "type": "patreon" } ], - "time": "2026-04-21T14:04:20+00:00" + "time": "2026-07-15T19:09:14+00:00" }, { "name": "permafrost-dev/code-snippets", @@ -10366,16 +10364,16 @@ }, { "name": "php-debugbar/php-debugbar", - "version": "v3.7.6", + "version": "v3.8.0", "source": { "type": "git", "url": "https://github.com/php-debugbar/php-debugbar.git", - "reference": "1690ee1728827f9deb4b60457fa387cf44672c56" + "reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/1690ee1728827f9deb4b60457fa387cf44672c56", - "reference": "1690ee1728827f9deb4b60457fa387cf44672c56", + "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/18ced90d4b882ed449b2278fea8692f8f7d1c13c", + "reference": "18ced90d4b882ed449b2278fea8692f8f7d1c13c", "shasum": "" }, "require": { @@ -10417,7 +10415,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.8-dev" } }, "autoload": { @@ -10452,7 +10450,7 @@ ], "support": { "issues": "https://github.com/php-debugbar/php-debugbar/issues", - "source": "https://github.com/php-debugbar/php-debugbar/tree/v3.7.6" + "source": "https://github.com/php-debugbar/php-debugbar/tree/v3.8.0" }, "funding": [ { @@ -10464,7 +10462,7 @@ "type": "github" } ], - "time": "2026-04-30T07:31:44+00:00" + "time": "2026-07-02T12:38:20+00:00" }, { "name": "php-debugbar/symfony-bridge", @@ -10728,33 +10726,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "12.5.7", + "version": "14.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "186dab580576598076de6818596d12b61801880e" + "reference": "82f6e49ff224e2cde923d74425e583a883910783" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/186dab580576598076de6818596d12b61801880e", - "reference": "186dab580576598076de6818596d12b61801880e", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/82f6e49ff224e2cde923d74425e583a883910783", + "reference": "82f6e49ff224e2cde923d74425e583a883910783", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", + "ext-mbstring": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.7.0", - "php": ">=8.3", - "phpunit/php-text-template": "^5.0", - "sebastian/complexity": "^5.0", - "sebastian/environment": "^8.1.2", - "sebastian/lines-of-code": "^4.0.1", - "sebastian/version": "^6.0", + "nikic/php-parser": "^5.8.0", + "php": ">=8.4", + "phpunit/php-text-template": "^6.0", + "sebastian/complexity": "^6.0", + "sebastian/environment": "^9.3.2", + "sebastian/git-state": "^1.0", + "sebastian/lines-of-code": "^5.0.1", + "sebastian/version": "^7.0", "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^12.5.28" + "phpunit/phpunit": "^13.2.2" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -10763,7 +10763,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "12.5.x-dev" + "dev-main": "14.2.x-dev" } }, "autoload": { @@ -10792,7 +10792,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.7" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/14.2.3" }, "funding": [ { @@ -10812,32 +10812,32 @@ "type": "tidelift" } ], - "time": "2026-06-01T13:24:19+00:00" + "time": "2026-07-06T15:04:02+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "6.0.1", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5" + "reference": "6e5aa1fb0a95b1703d83e721299ee18bb4e2de50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", - "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6e5aa1fb0a95b1703d83e721299ee18bb4e2de50", + "reference": "6e5aa1fb0a95b1703d83e721299ee18bb4e2de50", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -10865,7 +10865,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/7.0.0" }, "funding": [ { @@ -10885,28 +10885,28 @@ "type": "tidelift" } ], - "time": "2026-02-02T14:04:18+00:00" + "time": "2026-02-06T04:33:26+00:00" }, { "name": "phpunit/php-invoker", - "version": "6.0.0", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406" + "reference": "42e5c5cae0c65df12d1b1a3ab52bf3f50f244d88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/12b54e689b07a25a9b41e57736dfab6ec9ae5406", - "reference": "12b54e689b07a25a9b41e57736dfab6ec9ae5406", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/42e5c5cae0c65df12d1b1a3ab52bf3f50f244d88", + "reference": "42e5c5cae0c65df12d1b1a3ab52bf3f50f244d88", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "suggest": { "ext-pcntl": "*" @@ -10914,7 +10914,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -10941,40 +10941,52 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/6.0.0" + "source": "https://github.com/sebastianbergmann/php-invoker/tree/7.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-invoker", + "type": "tidelift" } ], - "time": "2025-02-07T04:58:58+00:00" + "time": "2026-02-06T04:34:47+00:00" }, { "name": "phpunit/php-text-template", - "version": "5.0.0", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53" + "reference": "a47af19f93f76aa3368303d752aa5272ca3299f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53", - "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/a47af19f93f76aa3368303d752aa5272ca3299f4", + "reference": "a47af19f93f76aa3368303d752aa5272ca3299f4", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -11001,40 +11013,52 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0" + "source": "https://github.com/sebastianbergmann/php-text-template/tree/6.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-text-template", + "type": "tidelift" } ], - "time": "2025-02-07T04:59:16+00:00" + "time": "2026-02-06T04:36:37+00:00" }, { "name": "phpunit/php-timer", - "version": "8.0.0", + "version": "9.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc" + "reference": "a0e12065831f6ab0d83120dc61513eb8d9a966f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", - "reference": "f258ce36aa457f3aa3339f9ed4c81fc66dc8c2cc", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a0e12065831f6ab0d83120dc61513eb8d9a966f6", + "reference": "a0e12065831f6ab0d83120dc61513eb8d9a966f6", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "8.0-dev" + "dev-main": "9.0-dev" } }, "autoload": { @@ -11061,56 +11085,70 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", "security": "https://github.com/sebastianbergmann/php-timer/security/policy", - "source": "https://github.com/sebastianbergmann/php-timer/tree/8.0.0" + "source": "https://github.com/sebastianbergmann/php-timer/tree/9.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-timer", + "type": "tidelift" } ], - "time": "2025-02-07T04:59:38+00:00" + "time": "2026-02-06T04:37:53+00:00" }, { "name": "phpunit/phpunit", - "version": "12.5.30", + "version": "13.2.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "900400a5b616d6fb306f9549f6da33ba615d3fbb" + "reference": "2beef9f448c9e04914a273c89ff6d039f8b97bc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/900400a5b616d6fb306f9549f6da33ba615d3fbb", - "reference": "900400a5b616d6fb306f9549f6da33ba615d3fbb", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2beef9f448c9e04914a273c89ff6d039f8b97bc8", + "reference": "2beef9f448c9e04914a273c89ff6d039f8b97bc8", "shasum": "" }, "require": { "ext-dom": "*", + "ext-filter": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", - "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", - "php": ">=8.3", - "phpunit/php-code-coverage": "^12.5.7", - "phpunit/php-file-iterator": "^6.0.1", - "phpunit/php-invoker": "^6.0.0", - "phpunit/php-text-template": "^5.0.0", - "phpunit/php-timer": "^8.0.0", - "sebastian/cli-parser": "^4.2.1", - "sebastian/comparator": "^7.1.8", - "sebastian/diff": "^7.0.0", - "sebastian/environment": "^8.1.2", - "sebastian/exporter": "^7.0.3", - "sebastian/global-state": "^8.0.3", - "sebastian/object-enumerator": "^7.0.0", - "sebastian/recursion-context": "^7.0.1", - "sebastian/type": "^6.0.4", - "sebastian/version": "^6.0.0", + "php": ">=8.4.1", + "phpunit/php-code-coverage": "^14.2.3", + "phpunit/php-file-iterator": "^7.0.0", + "phpunit/php-invoker": "^7.0.0", + "phpunit/php-text-template": "^6.0.0", + "phpunit/php-timer": "^9.0.0", + "sebastian/cli-parser": "^5.0.0", + "sebastian/comparator": "^8.3.0", + "sebastian/diff": "^9.0", + "sebastian/environment": "^9.3.2", + "sebastian/exporter": "^8.1.1", + "sebastian/file-filter": "^1.0", + "sebastian/git-state": "^1.0", + "sebastian/global-state": "^9.0.1", + "sebastian/object-enumerator": "^8.0.0", + "sebastian/recursion-context": "^8.0.0", + "sebastian/type": "^7.0.1", + "sebastian/version": "^7.0.0", "staabm/side-effects-detector": "^1.0.5" }, "bin": [ @@ -11119,7 +11157,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "12.5-dev" + "dev-main": "13.2-dev" } }, "autoload": { @@ -11151,7 +11189,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.30" + "source": "https://github.com/sebastianbergmann/phpunit/tree/13.2.5" }, "funding": [ { @@ -11159,32 +11197,32 @@ "type": "other" } ], - "time": "2026-06-15T13:12:30+00:00" + "time": "2026-07-25T06:59:14+00:00" }, { "name": "sebastian/cli-parser", - "version": "4.2.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "7d05781b13f7dec9043a629a21d086ed74582a15" + "reference": "48a4654fa5e48c1c81214e9930048a572d4b23ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/7d05781b13f7dec9043a629a21d086ed74582a15", - "reference": "7d05781b13f7dec9043a629a21d086ed74582a15", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/48a4654fa5e48c1c81214e9930048a572d4b23ca", + "reference": "48a4654fa5e48c1c81214e9930048a572d4b23ca", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.5.25" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.2-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -11208,7 +11246,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/5.0.0" }, "funding": [ { @@ -11228,31 +11266,31 @@ "type": "tidelift" } ], - "time": "2026-05-17T05:29:34+00:00" + "time": "2026-02-06T04:39:44+00:00" }, { "name": "sebastian/comparator", - "version": "7.1.8", + "version": "8.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "7c65c1e79836812819705b473a90c12399542485" + "reference": "c025fc7604afab3f195fab7cdaf72327331af241" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7c65c1e79836812819705b473a90c12399542485", - "reference": "7c65c1e79836812819705b473a90c12399542485", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/c025fc7604afab3f195fab7cdaf72327331af241", + "reference": "c025fc7604afab3f195fab7cdaf72327331af241", "shasum": "" }, "require": { "ext-dom": "*", "ext-mbstring": "*", - "php": ">=8.3", - "sebastian/diff": "^7.0", - "sebastian/exporter": "^7.0.3" + "php": ">=8.4", + "sebastian/diff": "^9.0", + "sebastian/exporter": "^8.1.0" }, "require-dev": { - "phpunit/phpunit": "^12.5.25" + "phpunit/phpunit": "^13.2" }, "suggest": { "ext-bcmath": "For comparing BcMath\\Number objects" @@ -11260,7 +11298,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "7.1-dev" + "dev-main": "8.3-dev" } }, "autoload": { @@ -11300,7 +11338,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/8.3.0" }, "funding": [ { @@ -11320,33 +11358,33 @@ "type": "tidelift" } ], - "time": "2026-05-21T04:45:25+00:00" + "time": "2026-06-05T03:06:45+00:00" }, { "name": "sebastian/complexity", - "version": "5.0.0", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb" + "reference": "c5651c795c98093480df79350cb050813fc7a2f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/bad4316aba5303d0221f43f8cee37eb58d384bbb", - "reference": "bad4316aba5303d0221f43f8cee37eb58d384bbb", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/c5651c795c98093480df79350cb050813fc7a2f3", + "reference": "c5651c795c98093480df79350cb050813fc7a2f3", "shasum": "" }, "require": { "nikic/php-parser": "^5.0", - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -11370,41 +11408,53 @@ "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", "security": "https://github.com/sebastianbergmann/complexity/security/policy", - "source": "https://github.com/sebastianbergmann/complexity/tree/5.0.0" + "source": "https://github.com/sebastianbergmann/complexity/tree/6.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/complexity", + "type": "tidelift" } ], - "time": "2025-02-07T04:55:25+00:00" + "time": "2026-02-06T04:41:32+00:00" }, { "name": "sebastian/diff", - "version": "7.0.0", + "version": "9.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f" + "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/a3fb6a298a265ff487a91bbea46e03cd01dbb226", + "reference": "a3fb6a298a265ff487a91bbea46e03cd01dbb226", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0", - "symfony/process": "^7.2" + "phpunit/phpunit": "^13.2", + "symfony/process": "^7.4.13" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "9.0-dev" } }, "autoload": { @@ -11437,35 +11487,47 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" + "source": "https://github.com/sebastianbergmann/diff/tree/9.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/diff", + "type": "tidelift" } ], - "time": "2025-02-07T04:55:46+00:00" + "time": "2026-06-05T03:04:51+00:00" }, { "name": "sebastian/environment", - "version": "8.1.2", + "version": "9.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439" + "reference": "6c9e487c9eb706a8d258102a1c0b0a3e53e86c2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439", - "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6c9e487c9eb706a8d258102a1c0b0a3e53e86c2e", + "reference": "6c9e487c9eb706a8d258102a1c0b0a3e53e86c2e", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.5.26" + "phpunit/phpunit": "^13.1.11" }, "suggest": { "ext-posix": "*" @@ -11473,7 +11535,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "8.1-dev" + "dev-main": "9.3-dev" } }, "autoload": { @@ -11501,7 +11563,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2" + "source": "https://github.com/sebastianbergmann/environment/tree/9.3.2" }, "funding": [ { @@ -11521,34 +11583,34 @@ "type": "tidelift" } ], - "time": "2026-05-25T13:40:20+00:00" + "time": "2026-05-25T13:41:38+00:00" }, { "name": "sebastian/exporter", - "version": "7.0.3", + "version": "8.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23" + "reference": "cfaa77c750dcad6f44c9bac8f62ac486e1c82c26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", - "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/cfaa77c750dcad6f44c9bac8f62ac486e1c82c26", + "reference": "cfaa77c750dcad6f44c9bac8f62ac486e1c82c26", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": ">=8.3", - "sebastian/recursion-context": "^7.0.1" + "php": ">=8.4", + "sebastian/recursion-context": "^8.0" }, "require-dev": { - "phpunit/phpunit": "^12.5.25" + "phpunit/phpunit": "^13.2.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.1-dev" } }, "autoload": { @@ -11591,7 +11653,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.3" + "source": "https://github.com/sebastianbergmann/exporter/tree/8.1.1" }, "funding": [ { @@ -11611,35 +11673,173 @@ "type": "tidelift" } ], - "time": "2026-05-20T04:37:17+00:00" + "time": "2026-07-13T11:35:11+00:00" }, { - "name": "sebastian/global-state", - "version": "8.0.3", + "name": "sebastian/file-filter", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9" + "url": "https://github.com/sebastianbergmann/file-filter.git", + "reference": "33a26f394330f6faa7684bb9cc73afb7727aae93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9", - "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9", + "url": "https://api.github.com/repos/sebastianbergmann/file-filter/zipball/33a26f394330f6faa7684bb9cc73afb7727aae93", + "reference": "33a26f394330f6faa7684bb9cc73afb7727aae93", "shasum": "" }, "require": { - "php": ">=8.3", - "sebastian/object-reflector": "^5.0", - "sebastian/recursion-context": "^7.0.1" + "php": ">=8.4" }, "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^12.5.28" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "8.0-dev" + "dev-main": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for filtering files", + "homepage": "https://github.com/sebastianbergmann/file-filter", + "support": { + "issues": "https://github.com/sebastianbergmann/file-filter/issues", + "security": "https://github.com/sebastianbergmann/file-filter/security/policy", + "source": "https://github.com/sebastianbergmann/file-filter/tree/1.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/file-filter", + "type": "tidelift" + } + ], + "time": "2026-04-22T07:20:04+00:00" + }, + { + "name": "sebastian/git-state", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/git-state.git", + "reference": "792a952e0eba55b6960a48aeceb9f371aad1f76b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/git-state/zipball/792a952e0eba55b6960a48aeceb9f371aad1f76b", + "reference": "792a952e0eba55b6960a48aeceb9f371aad1f76b", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "require-dev": { + "phpunit/phpunit": "^13.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for describing the state of a Git checkout", + "homepage": "https://github.com/sebastianbergmann/git-state", + "support": { + "issues": "https://github.com/sebastianbergmann/git-state/issues", + "security": "https://github.com/sebastianbergmann/git-state/security/policy", + "source": "https://github.com/sebastianbergmann/git-state/tree/1.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/git-state", + "type": "tidelift" + } + ], + "time": "2026-03-21T12:54:28+00:00" + }, + { + "name": "sebastian/global-state", + "version": "9.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "ba68ba79da690cf7eddefd3ce5b78b20b9ba9945" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ba68ba79da690cf7eddefd3ce5b78b20b9ba9945", + "reference": "ba68ba79da690cf7eddefd3ce5b78b20b9ba9945", + "shasum": "" + }, + "require": { + "php": ">=8.4", + "sebastian/object-reflector": "^6.0", + "sebastian/recursion-context": "^8.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^13.1.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "9.0-dev" } }, "autoload": { @@ -11665,7 +11865,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3" + "source": "https://github.com/sebastianbergmann/global-state/tree/9.0.1" }, "funding": [ { @@ -11685,33 +11885,33 @@ "type": "tidelift" } ], - "time": "2026-06-01T15:10:33+00:00" + "time": "2026-06-01T15:11:33+00:00" }, { "name": "sebastian/lines-of-code", - "version": "4.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e" + "reference": "d1b6f8fce682505dbd048977f1abedf1b8ad3ff8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d543b8ef219dcd8da262cbb958639a96bedba10e", - "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d1b6f8fce682505dbd048977f1abedf1b8ad3ff8", + "reference": "d1b6f8fce682505dbd048977f1abedf1b8ad3ff8", "shasum": "" }, "require": { - "nikic/php-parser": "^5.7.0", - "php": ">=8.3" + "nikic/php-parser": "^5.8.0", + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.5.25" + "phpunit/phpunit": "^13.2.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -11735,7 +11935,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.1" + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/5.0.2" }, "funding": [ { @@ -11755,34 +11955,34 @@ "type": "tidelift" } ], - "time": "2026-05-19T16:22:07+00:00" + "time": "2026-07-09T08:42:34+00:00" }, { "name": "sebastian/object-enumerator", - "version": "7.0.0", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894" + "reference": "b39ab125fd9a7434b0ecbc4202eebce11a98cfc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1effe8e9b8e068e9ae228e542d5d11b5d16db894", - "reference": "1effe8e9b8e068e9ae228e542d5d11b5d16db894", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/b39ab125fd9a7434b0ecbc4202eebce11a98cfc5", + "reference": "b39ab125fd9a7434b0ecbc4202eebce11a98cfc5", "shasum": "" }, "require": { - "php": ">=8.3", - "sebastian/object-reflector": "^5.0", - "sebastian/recursion-context": "^7.0" + "php": ">=8.4", + "sebastian/object-reflector": "^6.0", + "sebastian/recursion-context": "^8.0" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -11805,40 +12005,52 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/7.0.0" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/8.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/object-enumerator", + "type": "tidelift" } ], - "time": "2025-02-07T04:57:48+00:00" + "time": "2026-02-06T04:46:36+00:00" }, { "name": "sebastian/object-reflector", - "version": "5.0.0", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "4bfa827c969c98be1e527abd576533293c634f6a" + "reference": "3ca042c2c60b0eab094f8a1b6a7093f4d4c72200" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/4bfa827c969c98be1e527abd576533293c634f6a", - "reference": "4bfa827c969c98be1e527abd576533293c634f6a", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/3ca042c2c60b0eab094f8a1b6a7093f4d4c72200", + "reference": "3ca042c2c60b0eab094f8a1b6a7093f4d4c72200", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "5.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -11861,40 +12073,52 @@ "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/5.0.0" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/6.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/object-reflector", + "type": "tidelift" } ], - "time": "2025-02-07T04:58:17+00:00" + "time": "2026-02-06T04:47:13+00:00" }, { "name": "sebastian/recursion-context", - "version": "7.0.1", + "version": "8.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c" + "reference": "74c5af21f6a5833e91767ca068c4d3dfec15317e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", - "reference": "0b01998a7d5b1f122911a66bebcb8d46f0c82d8c", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/74c5af21f6a5833e91767ca068c4d3dfec15317e", + "reference": "74c5af21f6a5833e91767ca068c4d3dfec15317e", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^13.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "8.0-dev" } }, "autoload": { @@ -11925,7 +12149,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/7.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/8.0.0" }, "funding": [ { @@ -11945,32 +12169,32 @@ "type": "tidelift" } ], - "time": "2025-08-13T04:44:59+00:00" + "time": "2026-02-06T04:51:28+00:00" }, { "name": "sebastian/type", - "version": "6.0.4", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "82ff822c2edc46724be9f7411d3163021f602773" + "reference": "fee0309275847fefd7636167085e379c1dbf6990" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/82ff822c2edc46724be9f7411d3163021f602773", - "reference": "82ff822c2edc46724be9f7411d3163021f602773", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fee0309275847fefd7636167085e379c1dbf6990", + "reference": "fee0309275847fefd7636167085e379c1dbf6990", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "require-dev": { - "phpunit/phpunit": "^12.5.25" + "phpunit/phpunit": "^13.1.10" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -11994,7 +12218,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/type/issues", "security": "https://github.com/sebastianbergmann/type/security/policy", - "source": "https://github.com/sebastianbergmann/type/tree/6.0.4" + "source": "https://github.com/sebastianbergmann/type/tree/7.0.1" }, "funding": [ { @@ -12014,29 +12238,29 @@ "type": "tidelift" } ], - "time": "2026-05-20T06:45:45+00:00" + "time": "2026-05-20T06:49:11+00:00" }, { "name": "sebastian/version", - "version": "6.0.0", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c" + "reference": "ad37a5552c8e2b88572249fdc19b6da7792e021b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c", - "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ad37a5552c8e2b88572249fdc19b6da7792e021b", + "reference": "ad37a5552c8e2b88572249fdc19b6da7792e021b", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -12060,15 +12284,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/6.0.0" + "source": "https://github.com/sebastianbergmann/version/tree/7.0.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/version", + "type": "tidelift" } ], - "time": "2025-02-07T05:00:38+00:00" + "time": "2026-02-06T04:52:52+00:00" }, { "name": "spatie/laravel-ray", diff --git a/config/flare.php b/config/flare.php index 9edd19f5..bb9cbd4e 100644 --- a/config/flare.php +++ b/config/flare.php @@ -1,11 +1,5 @@ env('FLARE_KEY'), - /* - | - |-------------------------------------------------------------------------- - | Flare Base URL - |-------------------------------------------------------------------------- - | - | Which server should be used to send the reports/traces to. - | - */ - 'base_url' => env('FLARE_BASE_URL', Api::BASE_URL), - /* |-------------------------------------------------------------------------- | Collects @@ -42,27 +25,11 @@ return [ | */ - 'collects' => FlareConfig::defaultCollects( + 'collects' => \Spatie\LaravelFlare\FlareConfig::defaultCollects( ignore: [], extra: [] ), - /* - |-------------------------------------------------------------------------- - | Attribute providers - |-------------------------------------------------------------------------- - | - | When sending an error report or trace to Flare attributes can be added to - | the report or trace for common entries. An example of such an entry is - | the currently authenticated user. In an attribute provider you can - | specify which attributes should be sent. - | - */ - - 'attribute_providers' => [ - 'user' => LaravelUserAttributesProvider::class, - ], - /* |-------------------------------------------------------------------------- | Censor data @@ -88,19 +55,49 @@ return [ 'X-XSRF-TOKEN', ], 'client_ips' => false, + 'cookies' => false, + 'session' => false, ], /* |-------------------------------------------------------------------------- - | Reporting log statements + | Sender |-------------------------------------------------------------------------- | - | If this setting is `false` log statements won't be sent as events to Flare, - | no matter which error level you specified in the Flare log channel. + | The sender is responsible for sending the error reports and traces to + | Flare. By default, Laravel Flare sends them over HTTP. To use the local + | Flare daemon, switch the sender class to + | `Spatie\FlareClient\Senders\DaemonSender::class` and set `daemon_url`. + | The daemon sender defaults to localhost on port 8787 and uses its own + | default timeouts and fallback sender config unless you override them. | */ - 'send_logs_as_events' => true, + 'sender' => [ + 'class' => \Spatie\LaravelFlare\Senders\LaravelHttpSender::class, + 'config' => [ + 'timeout' => 10, + ], + ], + + // Daemon sender example + // 'sender' => [ + // 'class' => \Spatie\FlareClient\Senders\DaemonSender::class, + // 'config' => [ + // 'daemon_url' => env('FLARE_DAEMON_URL', 'http://127.0.0.1:8787'), + // ], + // ], + + /* + |-------------------------------------------------------------------------- + | Report + |-------------------------------------------------------------------------- + | + | Flare reports errors and exceptions happening within your application. + | + */ + + 'report' => env('FLARE_REPORT', true), /* |-------------------------------------------------------------------------- @@ -109,10 +106,27 @@ return [ | When reporting errors, you can specify which error levels should be | reported. By default, all error levels are reported by setting | this value to `null`. - */ + */ 'report_error_levels' => null, + /* + |-------------------------------------------------------------------------- + | Override grouping + |-------------------------------------------------------------------------- + | + | Flare will try to group errors and exceptions as best as possible, that + | being said, sometimes you might want to override the grouping. You can + | do this by adding exception classes to this array which should always + | be grouped by exception class, exception message or exception class + | and message. + | + */ + + 'overridden_groupings' => [ + // Illuminate\Http\Client\ConnectionException::class => Spatie\FlareClient\Enums\OverriddenGrouping::ExceptionMessageAndClass, + ], + /* |-------------------------------------------------------------------------- | Share button @@ -126,40 +140,6 @@ return [ 'enable_share_button' => true, - /* - |-------------------------------------------------------------------------- - | Override grouping - |-------------------------------------------------------------------------- - | - | Flare will try to group errors and exceptions as best as possible, that - | being said, sometimes you might want to override the grouping. You can - | do this by adding exception classes to this array which should always - | be grouped by exception class, exception message or exception class - | and message. - | - */ - - 'overridden_groupings' => [ - // Illuminate\Http\Client\ConnectionException::class => Spatie\FlareClient\Enums\OverriddenGrouping::ExceptionMessageAndClass, - ], - - /* - |-------------------------------------------------------------------------- - | Sender - |-------------------------------------------------------------------------- - | - | The sender is responsible for sending the error reports and traces to - | Flare it can be configured if needed. - | - */ - - 'sender' => [ - 'class' => LaravelHttpSender::class, - 'config' => [ - 'timeout' => 10, - ], - ], - /* |-------------------------------------------------------------------------- | Trace @@ -170,7 +150,7 @@ return [ | */ - 'trace' => env('FLARE_TRACE', false), + 'trace' => env('FLARE_TRACE', true), /* |-------------------------------------------------------------------------- @@ -183,26 +163,35 @@ return [ | which means that 10% of the traces will be recorded. | */ + 'sampler' => [ - 'class' => RateSampler::class, + 'class' => \Spatie\FlareClient\Sampling\RateSampler::class, 'config' => [ - 'rate' => 0.1, + 'rate' => env('FLARE_SAMPLER_RATE', 0.1), ], ], /* |-------------------------------------------------------------------------- - | Trace limits + | Log |-------------------------------------------------------------------------- | - | Limits for the tracing data. These limits are used to prevent - | the tracing data from growing too large. + | Logging show you an overview of log entries within your application. | */ - 'trace_limits' => [ - 'max_spans' => 512, - 'max_attributes_per_span' => 128, - 'max_span_events_per_span' => 128, - 'max_attributes_per_span_event' => 128, - ], + + 'log' => env('FLARE_LOG', false), + + /* + |-------------------------------------------------------------------------- + | Minimal log level + |-------------------------------------------------------------------------- + | + | You can specify the minimal (Monolog) log level that should be sent to Flare. + | Log levels lower than the specified level will be ignored. + | If null all log levels will be sent to Flare. + | + */ + + 'minimal_log_level' => null, ]; diff --git a/package-lock.json b/package-lock.json index 55d97494..05c9ad3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -121,9 +121,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", - "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", + "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", "dev": true, "funding": [ { @@ -168,9 +168,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.6.tgz", - "integrity": "sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.7.tgz", + "integrity": "sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==", "dev": true, "funding": [ { @@ -237,9 +237,9 @@ } }, "node_modules/@csstools/selector-resolve-nested": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.0.tgz", - "integrity": "sha512-9vAPxmp+Dx3wQBIUwc1v7Mdisw1kbbaGqXUM8QLTgWg7SoPGYtXBsMXvsFs/0Bn5yoFhcktzxNZGNaUt0VjgjA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-4.0.1.tgz", + "integrity": "sha512-j3vdQu0XwLME5qOTWxm8cnmvsf423R2YL6DbKklCHZwkDm7UdKNu6RPlw4REIJhSlKBICY3B70/7QZdicLqZgg==", "dev": true, "funding": [ { @@ -725,9 +725,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", "dev": true, "license": "MIT", "dependencies": { @@ -782,9 +782,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", - "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1019,9 +1019,9 @@ "license": "MIT" }, "node_modules/@typescript-eslint/types": { - "version": "8.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.62.0.tgz", - "integrity": "sha512-KvAclkktORPvM54TgLgA4z9HIV1M8zOgw9ZVNXl9f/8dLYfXYX1wkMXP7qmabpijQRV5bHJLOmoyGQbLMaUYeg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", + "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", "dev": true, "license": "MIT", "engines": { @@ -1135,16 +1135,16 @@ } }, "node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", + "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/braces": { @@ -1418,9 +1418,9 @@ } }, "node_modules/eslint": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.6.0.tgz", - "integrity": "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==", + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.8.0.tgz", + "integrity": "sha512-nuKKvN+oIBO0koN7Tm7dlkmnkc21mtt0QJLwAKzjLq14y6lRTdVG36MZHJ8eQHwdJMwZbQNMlPOYedMq/oVJvQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -1430,7 +1430,7 @@ "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", "@eslint/config-array": "^0.23.5", - "@eslint/config-helpers": "^0.6.0", + "@eslint/config-helpers": "^0.7.0", "@eslint/core": "^1.2.1", "@eslint/plugin-kit": "^0.7.2", "@humanfs/node": "^0.16.6", @@ -1454,7 +1454,7 @@ "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "minimatch": "^10.2.4", + "minimatch": "^10.2.5", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, @@ -1655,9 +1655,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", - "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", + "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", "dev": true, "funding": [ { @@ -1749,9 +1749,9 @@ } }, "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.3.tgz", + "integrity": "sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==", "dev": true, "license": "ISC" }, @@ -1836,9 +1836,9 @@ } }, "node_modules/globby": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.0.tgz", - "integrity": "sha512-QrJia2qDf5BB/V6HYlDTs0I0lBahyjLzpGQg3KT7FnCdTonAyPy2RtY802m2k4ALx6Dp752f82WsOczEVr3l6Q==", + "version": "16.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.2.tgz", + "integrity": "sha512-NLvV9ubZ6NDsJaOpKPy3cQeJpKi9DcWiyCiFUpJPA0YihRqiE6RWaLUmgNNPr8MgPpLZjnBjSmou7uZBRJv9wA==", "dev": true, "license": "MIT", "dependencies": { @@ -1857,9 +1857,9 @@ } }, "node_modules/globby/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { @@ -2137,9 +2137,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -2153,23 +2153,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -2188,9 +2188,9 @@ } }, "node_modules/lightningcss-cli": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli/-/lightningcss-cli-1.32.0.tgz", - "integrity": "sha512-IFb/ChmSEbeWU3xeRybR6WFlJXCvfDS84//PUzLrRACgvoWrwRJBmcPS9azSo7LMh5QqEuyKanPBByhKM5z01Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli/-/lightningcss-cli-1.33.0.tgz", + "integrity": "sha512-/tBcBZlBFFxy1iYKDC/HSH/NEjv7Frq6dmDVKRbhGJQI/gFJIJ1/4ZXclxJkd0eEjBjDc5MY0YugHcvJVVGJVg==", "dev": true, "hasInstallScript": true, "license": "MPL-2.0", @@ -2208,23 +2208,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-cli-android-arm64": "1.32.0", - "lightningcss-cli-darwin-arm64": "1.32.0", - "lightningcss-cli-darwin-x64": "1.32.0", - "lightningcss-cli-freebsd-x64": "1.32.0", - "lightningcss-cli-linux-arm-gnueabihf": "1.32.0", - "lightningcss-cli-linux-arm64-gnu": "1.32.0", - "lightningcss-cli-linux-arm64-musl": "1.32.0", - "lightningcss-cli-linux-x64-gnu": "1.32.0", - "lightningcss-cli-linux-x64-musl": "1.32.0", - "lightningcss-cli-win32-arm64-msvc": "1.32.0", - "lightningcss-cli-win32-x64-msvc": "1.32.0" + "lightningcss-cli-android-arm64": "1.33.0", + "lightningcss-cli-darwin-arm64": "1.33.0", + "lightningcss-cli-darwin-x64": "1.33.0", + "lightningcss-cli-freebsd-x64": "1.33.0", + "lightningcss-cli-linux-arm-gnueabihf": "1.33.0", + "lightningcss-cli-linux-arm64-gnu": "1.33.0", + "lightningcss-cli-linux-arm64-musl": "1.33.0", + "lightningcss-cli-linux-x64-gnu": "1.33.0", + "lightningcss-cli-linux-x64-musl": "1.33.0", + "lightningcss-cli-win32-arm64-msvc": "1.33.0", + "lightningcss-cli-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-cli-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-android-arm64/-/lightningcss-cli-android-arm64-1.32.0.tgz", - "integrity": "sha512-4O3QY+VdgpBZLIq4crcKOEPVAXX0p7zDoykuTVstRtyolg9XU8CntdtbxcMPSC4SkzAuM/W4KsnPAzmv6Jb5LA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-android-arm64/-/lightningcss-cli-android-arm64-1.33.0.tgz", + "integrity": "sha512-c0Xd7Gxaw3mNOyrb9ET1JH3JjuB69GY/6pHO4vgwEbIoHCXAt6DBg6kxr5t/oZL9LRxdnZCXF+o0Evz6kuR/xA==", "cpu": [ "arm64" ], @@ -2243,9 +2243,9 @@ } }, "node_modules/lightningcss-cli-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-darwin-arm64/-/lightningcss-cli-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-Xx+zeD7bDKJZwbd1N63TJfIUHEtYspf+tqObdnQEJEvZAwmGfA4iEGrkCRT8R57tDRBDSXg3XHMDDvo/cq7gBQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-darwin-arm64/-/lightningcss-cli-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-sso5hSFPis7ldw2FcBopsZviSVAXWRGX8ybUwMhQHssTlERenQJ88WihZs08tCdSnQULo2kunnrGhh4VjRw8Fg==", "cpu": [ "arm64" ], @@ -2264,9 +2264,9 @@ } }, "node_modules/lightningcss-cli-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-darwin-x64/-/lightningcss-cli-darwin-x64-1.32.0.tgz", - "integrity": "sha512-fYWANZ8RJDpI0tBcPQ7oBOYihfXmgDBHR4lZ6d4z7rcRLlZAOeI00mTO0IXAKfSm/UgnatjM4aBuNlLh8L9noA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-darwin-x64/-/lightningcss-cli-darwin-x64-1.33.0.tgz", + "integrity": "sha512-/aDYpMv2QKpJoSIwvwpIs4tIX9SCU894eospSm55FR5MxDZkJDy4fEX6elsXkHCBDqbAknb4qd2h/oDMLTC4Ew==", "cpu": [ "x64" ], @@ -2285,9 +2285,9 @@ } }, "node_modules/lightningcss-cli-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-freebsd-x64/-/lightningcss-cli-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-TJm7z1Ghvo9FKAza2KvfkFgH/9rcV1xAhCYQZlLrV0CiuTZ17uzLobBWb9oelGWUG+wTnEs6XEl4h/ve61YySg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-freebsd-x64/-/lightningcss-cli-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-kK9u4IEAvt3+1m7lkloyfZNfXykXq2vCH7lgZ5aEqa8VuBZYqvcAIQ4Qt1593QJxbko9HEKUP0erdSxw7k7eFw==", "cpu": [ "x64" ], @@ -2306,9 +2306,9 @@ } }, "node_modules/lightningcss-cli-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm-gnueabihf/-/lightningcss-cli-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-/jS9L5p3eexs5QJvARiDGxibz1umKJmmtff86fWXl3r7RbEUFrMAD4q1WhAR7DurRFgc1YWld6r0mX1YHEYttA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm-gnueabihf/-/lightningcss-cli-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-4bHmUlYCb8WKdPKx2yhk8y/kD034JVuUatDMWav0uU/hEIYJrxPimWBJJ4w2lgpcWchVnk/Kuihs4vaLjO/ozw==", "cpu": [ "arm" ], @@ -2327,9 +2327,9 @@ } }, "node_modules/lightningcss-cli-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm64-gnu/-/lightningcss-cli-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-PSdjwcRtSrJpsaqnY3ebnCfDOJ5ePi8s/0ItL3CX1b1Eu0iy44xo7MjgES1ZOQ2ntOthPRqaGsbAiVBLbgFLYQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm64-gnu/-/lightningcss-cli-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-DkYmkBix3icAZKZsxGsjBAj59CIV0zflZtsT66lCPd2z3OqBLJlhKRrw4TlAW7mIkYeOEYWKVz/G00ZGXNse4A==", "cpu": [ "arm64" ], @@ -2351,9 +2351,9 @@ } }, "node_modules/lightningcss-cli-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm64-musl/-/lightningcss-cli-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-t6DdpXFtEdonZHzRgH8cmqhC2o4tl0KrD33cDBBniJz5TmWS20MJxb4YEr4WqBLksqW8GE399HJo+g8/YVuKcA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-arm64-musl/-/lightningcss-cli-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-euNOhzo1ysRl719HfFzRe9r9usWO2Z/Nb8RnmqXxb/kvzOgAv2BcflpoTu6tWhSrbHX6YS/WP6mMFrmII6T7Hw==", "cpu": [ "arm64" ], @@ -2375,9 +2375,9 @@ } }, "node_modules/lightningcss-cli-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-x64-gnu/-/lightningcss-cli-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-QMQllbHYkbkQ4N+v8OGExQlGHBc3YZIcKlVkYucQQj66thkFQsRjmv8p5q3iCB0inNsCoSZ8lBspugkU1iPlPg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-x64-gnu/-/lightningcss-cli-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-9Q4DAglm17bLhA+HZPB+vxjrHXdhR/8U44zyc8MQNA5Rw+tisvcoR/lv4iuBUFn2qreYVRWQq0wP0rgdhTSxyQ==", "cpu": [ "x64" ], @@ -2399,9 +2399,9 @@ } }, "node_modules/lightningcss-cli-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-x64-musl/-/lightningcss-cli-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-dMSWdk4kMAi5f+J1xetxRCDQOvPix2whT0UdjuwP8r/5Xcdl2SQU/c80MQzu1S82kVDEANs1vHVEHp/+26LUnA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-linux-x64-musl/-/lightningcss-cli-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-+EobHdqxQ21SUMF8OU0qcizNIrLpPDaPTKQCaGbra9gL3NrW3ELG+exZl5y+WzJsEjLZ0hhjbCFjHUL/03H2JA==", "cpu": [ "x64" ], @@ -2423,9 +2423,9 @@ } }, "node_modules/lightningcss-cli-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-win32-arm64-msvc/-/lightningcss-cli-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-MJo22OqSp9FLV10nTRDJQhP6zkEBFqBFQe9mnjfCs+G1Ft+QimIPmC+gBqZHFXveOBOsjFLzU72q0FPvRWFmZQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-win32-arm64-msvc/-/lightningcss-cli-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-iwQ+8rHQy3ewC4c43Ik3UZ8TCC/rjShP3r/8TOPw4fT8wQmW7dS3BNNHPK+LWz9qNrObATJ4MZEEZVRneckOBw==", "cpu": [ "arm64" ], @@ -2444,9 +2444,9 @@ } }, "node_modules/lightningcss-cli-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-cli-win32-x64-msvc/-/lightningcss-cli-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-nOBHLPeePXZpGR4Ptp+gkOIkr9pxlq2dFmO954ol5zBi/iOKxuD1hUTIQ7aG+ldKIx4eH9jwoTfZ6owUkm1paA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-cli-win32-x64-msvc/-/lightningcss-cli-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-sgtNPw2gxnY8OzCCMTKCkHSIiBYb/wfXLpLMmDIJFzcX2OETY+VOnQd7OBHx+hVSlrMU7iWL6oJ5rc+nQwteVA==", "cpu": [ "x64" ], @@ -2465,9 +2465,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -2486,9 +2486,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -2507,9 +2507,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -2528,9 +2528,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -2549,9 +2549,9 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], @@ -2573,9 +2573,9 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], @@ -2597,9 +2597,9 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], @@ -2621,9 +2621,9 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], @@ -2645,9 +2645,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -2666,9 +2666,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -2808,9 +2808,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", "dev": true, "funding": [ { @@ -2953,9 +2953,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { @@ -2966,9 +2966,9 @@ } }, "node_modules/postcss": { - "version": "8.5.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", - "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", "dev": true, "funding": [ { @@ -2986,7 +2986,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -3236,9 +3236,9 @@ } }, "node_modules/string-width": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.1.tgz", - "integrity": "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", "dev": true, "license": "MIT", "dependencies": { @@ -3269,9 +3269,9 @@ } }, "node_modules/stylelint": { - "version": "17.14.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.0.tgz", - "integrity": "sha512-8xkHPpdqYryeIsOgfsYTmr6cIeC4nLYWk5S8BPxpodq8mIuepggkMljsHewWfuAjj/+qpRKou2QerhjMH3iasg==", + "version": "17.14.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.1.tgz", + "integrity": "sha512-xVQwyiuxALUBNB2fBe0tmNemg9KqLtdj3T64mioFDar79B2cU8LIyz+3KL6LdiHs9NkeNfwxpKSaIVOY8f112g==", "dev": true, "funding": [ { @@ -3287,7 +3287,7 @@ "dependencies": { "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.1.5", + "@csstools/css-syntax-patches-for-csstree": "^1.1.6", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", "@csstools/selector-resolve-nested": "^4.0.0", @@ -3299,9 +3299,9 @@ "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.3", + "file-entry-cache": "^11.1.5", "global-modules": "^2.0.0", - "globby": "^16.2.0", + "globby": "^16.2.1", "globjoin": "^0.1.4", "html-tags": "^5.1.0", "ignore": "^7.0.5", @@ -3311,12 +3311,12 @@ "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.15", + "postcss": "^8.5.16", "postcss-safe-parser": "^7.0.1", "postcss-selector-parser": "^7.1.4", "postcss-value-parser": "^4.2.0", "string-width": "^8.2.1", - "supports-hyperlinks": "^4.4.0", + "supports-hyperlinks": "^4.5.0", "svg-tags": "^1.0.0", "table": "^6.9.0", "write-file-atomic": "^7.0.1" @@ -3400,9 +3400,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", "dev": true, "license": "MIT", "engines": { diff --git a/public/assets/css/app.css.map b/public/assets/css/app.css.map index b817d58d..ca57ea2f 100644 --- a/public/assets/css/app.css.map +++ b/public/assets/css/app.css.map @@ -1 +1 @@ -{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YEAE,oaAwBA,kECxBA,0BAIA,oBAIA,iIAME,0BAIA,uBAIA,iDAIE,yEAME,uBAON,oDHvCF,kBG+CE,SACE,oBChDF,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CCrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MC/BA,sFAME,+CCNF,gBACE,oDAKE,wBAMF,gMAQE,4DAME,uBAUJ,8CACE,2BACE,yDAQE,gBAAiB,8CAST,0KAahB,iEAIA,kGAKA,4DAIA,qDAIA","sources":["resources/css/app.css","resources/css/layout.css","resources/css/colours.css","resources/css/reset.css","resources/css/theme-selector.css","resources/css/header.css","resources/css/pagination.css","resources/css/notes.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 2/3;\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n #theme-selector {\n button {\n appearance: none;\n border: none;\n background: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n /* This is the element with the [popover] attribute */\n #theme-selector-dropdown {\n position: absolute;\n position-area: block-end span-inline-start;\n margin: 0;\n border: 2px solid var(--clr-border);\n background-color: var(--clr-background);\n color: var(--clr-text);\n\n fieldset {\n border: 0;\n display: flex;\n flex-direction: row;\n gap: 1ch;\n\n input {\n display: none;\n }\n }\n }\n\n /*\n * This is the element with the [popover] attribute\n * Here we are styling the open and closing animations\n */\n @media (prefers-reduced-motion: no-preference) {\n #theme-selector-dropdown {\n &:popover-open {\n transform: translateY(0) scale(1);\n opacity: 1;\n\n /*\n * Start styles for the opening transition.\n * Added to :popover-open, but after the opened styles.\n */\n @starting-style {\n transform: translateY(30px) scale(0);\n opacity: 0;\n }\n }\n\n /*\n * End styles for the closing transition.\n */\n transform: translateY(0) scale(0);\n opacity: 0;\n\n /*\n * Enumerate transitioning properties, including display and overlay.\n */\n transition: transform, opacity, display allow-discrete, overlay allow-discrete;\n transition-duration: 0.5s;\n transform-origin: top right;\n }\n }\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n"],"names":[]} \ No newline at end of file +{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YGAE,oaAwBA,kEIxBA,0BAIA,oBAIA,iIAME,0BAIA,uBAIA,iDAIE,yEAME,uBAON,oDPvCF,kBO+CE,SACE,oBLhDF,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CGrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MD/BA,sFAME,+CENF,gBACE,oDAKE,wBAMF,gMAQE,4DAME,uBAUJ,8CACE,2BACE,yDAQE,gBAAiB,8CAST,0KAahB,iEAIA,kGAKA,4DAIA,qDAIA","sources":["resources/css/app.css","resources/css/reset.css","resources/css/header.css","resources/css/notes.css","resources/css/colours.css","resources/css/layout.css","resources/css/pagination.css","resources/css/theme-selector.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 2/3;\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n #theme-selector {\n button {\n appearance: none;\n border: none;\n background: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n /* This is the element with the [popover] attribute */\n #theme-selector-dropdown {\n position: absolute;\n position-area: block-end span-inline-start;\n margin: 0;\n border: 2px solid var(--clr-border);\n background-color: var(--clr-background);\n color: var(--clr-text);\n\n fieldset {\n border: 0;\n display: flex;\n flex-direction: row;\n gap: 1ch;\n\n input {\n display: none;\n }\n }\n }\n\n /*\n * This is the element with the [popover] attribute\n * Here we are styling the open and closing animations\n */\n @media (prefers-reduced-motion: no-preference) {\n #theme-selector-dropdown {\n &:popover-open {\n transform: translateY(0) scale(1);\n opacity: 1;\n\n /*\n * Start styles for the opening transition.\n * Added to :popover-open, but after the opened styles.\n */\n @starting-style {\n transform: translateY(30px) scale(0);\n opacity: 0;\n }\n }\n\n /*\n * End styles for the closing transition.\n */\n transform: translateY(0) scale(0);\n opacity: 0;\n\n /*\n * Enumerate transitioning properties, including display and overlay.\n */\n transition: transform, opacity, display allow-discrete, overlay allow-discrete;\n transition-duration: 0.5s;\n transform-origin: top right;\n }\n }\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n"],"names":[]} \ No newline at end of file From 287520ad7bb2b88b2237c25492f1f82d64431845 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Tue, 28 Jul 2026 19:20:18 +0100 Subject: [PATCH 03/33] Force HTTPS URL generation in production Uses Laravel's built-in URL::forceHttps() so route(), url(), and asset() always generate https:// links in production, without affecting local dev. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01RP5TeZbk9KS754xuJMobjE --- app/Providers/AppServiceProvider.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index d1e28bcf..7718d7ec 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -5,6 +5,7 @@ namespace App\Providers; use Illuminate\Database\Eloquent\Model; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; +use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; use Intervention\Image\ImageManager; use Lcobucci\JWT\Configuration; @@ -80,5 +81,8 @@ class AppServiceProvider extends ServiceProvider // Turn on Eloquent strict mode when developing Model::shouldBeStrict(! $this->app->isProduction()); + + // Force HTTPS URL generation in production + URL::forceHttps($this->app->isProduction()); } } From 31c49ac3fc7c9576f6cd51ed07da85d7e25e0140 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 1 Aug 2026 17:07:38 +0100 Subject: [PATCH 04/33] Adopt Laravel's Image facade for media processing, upgrade Intervention to v4 Laravel 13's Image facade wraps Intervention Image v4 internally, so switching our upload width probe and resize job/command to it required bumping intervention/image ^3 -> ^4 (and its intervention/gif ^5 dependency). Removes our own ImageManager container binding and config/image.php in favour of Laravel's built-in driver resolution. Also fixes a latent filename mismatch in ProcessMediaJobTest that Pint's stricter typing on the new Image API turned into a hard TypeError, and tidies config/flare.php to use imported class names instead of FQCNs. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_018Sorsgn85nw7uQyRMNvzyD --- app/Console/Commands/ReprocessMediaImages.php | 19 ++++----- .../Controllers/MicropubMediaController.php | 10 ++--- app/Jobs/ProcessMedia.php | 20 +++++----- app/Providers/AppServiceProvider.php | 6 --- composer.json | 2 +- composer.lock | 40 +++++++++---------- config/flare.php | 10 +++-- config/image.php | 22 ---------- tests/Unit/Jobs/ProcessMediaJobTest.php | 14 +++---- 9 files changed, 54 insertions(+), 89 deletions(-) delete mode 100644 config/image.php diff --git a/app/Console/Commands/ReprocessMediaImages.php b/app/Console/Commands/ReprocessMediaImages.php index c5e22d1b..b6c86c47 100644 --- a/app/Console/Commands/ReprocessMediaImages.php +++ b/app/Console/Commands/ReprocessMediaImages.php @@ -6,9 +6,9 @@ namespace App\Console\Commands; use App\Models\Media; use Illuminate\Console\Command; +use Illuminate\Image\ImageException; +use Illuminate\Support\Facades\Image; use Illuminate\Support\Facades\Storage; -use Intervention\Image\Exceptions\DecoderException; -use Intervention\Image\ImageManager; class ReprocessMediaImages extends Command { @@ -16,7 +16,7 @@ class ReprocessMediaImages extends Command protected $description = 'Regenerate medium and small image variants using correct aspect-ratio scaling'; - public function handle(ImageManager $manager): void + public function handle(): void { $media = Media::where('type', 'image') ->whereNotNull('image_widths') @@ -44,10 +44,10 @@ class ReprocessMediaImages extends Command $this->info("Processing: {$path}"); + $image = Image::fromStorage($path, 'public'); try { - $file = Storage::disk('public')->get($path); - $image = $manager->read($file); - } catch (DecoderException) { + $image->width(); + } catch (ImageException) { $this->warn(' Could not decode image, skipping.'); continue; @@ -57,11 +57,8 @@ class ReprocessMediaImages extends Command $extension = array_pop($filenameParts); $basename = trim(implode('.', $filenameParts), '.'); - $medium = $image->scale(width: 1000); - Storage::disk('public')->put($basename.'-medium.'.$extension, (string) $medium->encode()); - - $small = $image->scale(width: 500); - Storage::disk('public')->put($basename.'-small.'.$extension, (string) $small->encode()); + Storage::disk('public')->put($basename.'-medium.'.$extension, $image->scale(width: 1000)->toBytes()); + Storage::disk('public')->put($basename.'-small.'.$extension, $image->scale(width: 500)->toBytes()); $this->info(' Done.'); } diff --git a/app/Http/Controllers/MicropubMediaController.php b/app/Http/Controllers/MicropubMediaController.php index 1cca74b3..da7c7dc2 100644 --- a/app/Http/Controllers/MicropubMediaController.php +++ b/app/Http/Controllers/MicropubMediaController.php @@ -13,9 +13,10 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Http\UploadedFile; +use Illuminate\Image\ImageException; use Illuminate\Support\Carbon; +use Illuminate\Support\Facades\Image; use Illuminate\Support\Facades\Storage; -use Intervention\Image\ImageManager; use Ramsey\Uuid\Uuid; class MicropubMediaController extends Controller @@ -111,12 +112,9 @@ class MicropubMediaController extends Controller $filename = Storage::disk('local')->putFile('media', $file); - /** @var ImageManager $manager */ - $manager = resolve(ImageManager::class); try { - $image = $manager->read($request->file('file')); - $width = $image->width(); - } catch (Exception) { + $width = Image::fromUpload($request->file('file'))->width(); + } catch (ImageException) { // not an image $width = null; } diff --git a/app/Jobs/ProcessMedia.php b/app/Jobs/ProcessMedia.php index f9d8af50..78aeba3e 100644 --- a/app/Jobs/ProcessMedia.php +++ b/app/Jobs/ProcessMedia.php @@ -7,11 +7,11 @@ namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; +use Illuminate\Image\ImageException; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use Illuminate\Support\Facades\Image; use Illuminate\Support\Facades\Storage; -use Intervention\Image\Exceptions\DecoderException; -use Intervention\Image\ImageManager; class ProcessMedia implements ShouldQueue { @@ -30,15 +30,16 @@ class ProcessMedia implements ShouldQueue /** * Execute the job. */ - public function handle(ImageManager $manager): void + public function handle(): void { // Load file $file = Storage::disk('local')->get($this->filename); // Open file + $image = Image::fromStorage($this->filename, 'local'); try { - $image = $manager->read($file); - } catch (DecoderException) { + $width = $image->width(); + } catch (ImageException) { // not an image; delete file and end job Storage::disk('local')->delete($this->filename); @@ -49,18 +50,15 @@ class ProcessMedia implements ShouldQueue Storage::disk('public')->put($this->filename, $file); // Create smaller versions if necessary - if ($image->width() > 1000) { + if ($width > 1000) { $filenameParts = explode('.', $this->filename); $extension = array_pop($filenameParts); // the following achieves this data flow // foo.bar.png => ['foo', 'bar', 'png'] => ['foo', 'bar'] => foo.bar $basename = trim(implode('.', $filenameParts), '.'); - $medium = $image->scale(width: 1000); - Storage::disk('public')->put($basename.'-medium.'.$extension, (string) $medium->encode()); - - $small = $image->scale(width: 500); - Storage::disk('public')->put($basename.'-small.'.$extension, (string) $small->encode()); + Storage::disk('public')->put($basename.'-medium.'.$extension, $image->scale(width: 1000)->toBytes()); + Storage::disk('public')->put($basename.'-small.'.$extension, $image->scale(width: 500)->toBytes()); } // Now we can delete the locally saved image diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 7718d7ec..224472d1 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -7,7 +7,6 @@ use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; -use Intervention\Image\ImageManager; use Lcobucci\JWT\Configuration; use Lcobucci\JWT\Signer\Hmac\Sha256; use Lcobucci\JWT\Signer\Key\InMemory; @@ -30,11 +29,6 @@ class AppServiceProvider extends ServiceProvider */ public function boot(): void { - // configure Intervention/Image - $this->app->bind('Intervention\Image\ImageManager', function () { - return ImageManager::withDriver(config('image.driver')); - }); - /** * Paginate a standard Laravel Collection. * diff --git a/composer.json b/composer.json index 7e55bbd3..520d12e1 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "ext-sodium": "*", "cviebrock/eloquent-sluggable": "^13.0", "indieauth/client": "^1.1", - "intervention/image": "^3", + "intervention/image": "^4.0", "jonnybarnes/indieweb": "~0.2", "jonnybarnes/webmentions-parser": "~0.5", "laravel/framework": "^13.0", diff --git a/composer.lock b/composer.lock index be951f93..6af58a17 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "01ba04ab77c167a38ed826d7193ba5ef", + "content-hash": "23983a4e6a8e79cb9636fe8f0e604eb7", "packages": [ { "name": "aws/aws-crt-php", @@ -1556,26 +1556,26 @@ }, { "name": "intervention/gif", - "version": "4.2.4", + "version": "5.0.1", "source": { "type": "git", "url": "https://github.com/Intervention/gif.git", - "reference": "c3598a16ebe7690cd55640c44144a9df383ea73c" + "reference": "bb395af960deffe64d70c976b4df9283f68e762d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/gif/zipball/c3598a16ebe7690cd55640c44144a9df383ea73c", - "reference": "c3598a16ebe7690cd55640c44144a9df383ea73c", + "url": "https://api.github.com/repos/Intervention/gif/zipball/bb395af960deffe64d70c976b4df9283f68e762d", + "reference": "bb395af960deffe64d70c976b4df9283f68e762d", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.3" }, "require-dev": { "phpstan/phpstan": "^2.1", - "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "phpunit/phpunit": "^12.0", "slevomat/coding-standard": "~8.0", - "squizlabs/php_codesniffer": "^3.8" + "squizlabs/php_codesniffer": "^4" }, "type": "library", "autoload": { @@ -1594,7 +1594,7 @@ "homepage": "https://intervention.io/" } ], - "description": "Native PHP GIF Encoder/Decoder", + "description": "PHP GIF Encoder/Decoder", "homepage": "https://github.com/intervention/gif", "keywords": [ "animation", @@ -1604,7 +1604,7 @@ ], "support": { "issues": "https://github.com/Intervention/gif/issues", - "source": "https://github.com/Intervention/gif/tree/4.2.4" + "source": "https://github.com/Intervention/gif/tree/5.0.1" }, "funding": [ { @@ -1620,31 +1620,31 @@ "type": "ko_fi" } ], - "time": "2026-01-04T09:27:23+00:00" + "time": "2026-05-03T06:04:47+00:00" }, { "name": "intervention/image", - "version": "3.11.8", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/Intervention/image.git", - "reference": "cf04c8dd245697f701057c13d4bfe140d584e738" + "reference": "830907fc5397dfc2a51a4e90322d586989fc8364" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Intervention/image/zipball/cf04c8dd245697f701057c13d4bfe140d584e738", - "reference": "cf04c8dd245697f701057c13d4bfe140d584e738", + "url": "https://api.github.com/repos/Intervention/image/zipball/830907fc5397dfc2a51a4e90322d586989fc8364", + "reference": "830907fc5397dfc2a51a4e90322d586989fc8364", "shasum": "" }, "require": { "ext-mbstring": "*", - "intervention/gif": "^4.2", - "php": "^8.1" + "intervention/gif": "^5", + "php": "^8.3" }, "require-dev": { "mockery/mockery": "^1.6", "phpstan/phpstan": "^2.1", - "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0", + "phpunit/phpunit": "^12.0", "slevomat/coding-standard": "~8.0", "squizlabs/php_codesniffer": "^4" }, @@ -1680,7 +1680,7 @@ ], "support": { "issues": "https://github.com/Intervention/image/issues", - "source": "https://github.com/Intervention/image/tree/3.11.8" + "source": "https://github.com/Intervention/image/tree/4.2.0" }, "funding": [ { @@ -1696,7 +1696,7 @@ "type": "ko_fi" } ], - "time": "2026-05-01T08:20:10+00:00" + "time": "2026-07-09T13:07:14+00:00" }, { "name": "jonnybarnes/indieweb", diff --git a/config/flare.php b/config/flare.php index bb9cbd4e..0b8c6187 100644 --- a/config/flare.php +++ b/config/flare.php @@ -1,5 +1,9 @@ \Spatie\LaravelFlare\FlareConfig::defaultCollects( + 'collects' => FlareConfig::defaultCollects( ignore: [], extra: [] ), @@ -74,7 +78,7 @@ return [ */ 'sender' => [ - 'class' => \Spatie\LaravelFlare\Senders\LaravelHttpSender::class, + 'class' => LaravelHttpSender::class, 'config' => [ 'timeout' => 10, ], @@ -165,7 +169,7 @@ return [ */ 'sampler' => [ - 'class' => \Spatie\FlareClient\Sampling\RateSampler::class, + 'class' => RateSampler::class, 'config' => [ 'rate' => env('FLARE_SAMPLER_RATE', 0.1), ], diff --git a/config/image.php b/config/image.php deleted file mode 100644 index b984a0f0..00000000 --- a/config/image.php +++ /dev/null @@ -1,22 +0,0 @@ - Driver::class, - -]; diff --git a/tests/Unit/Jobs/ProcessMediaJobTest.php b/tests/Unit/Jobs/ProcessMediaJobTest.php index da9f070c..9ffa2eee 100644 --- a/tests/Unit/Jobs/ProcessMediaJobTest.php +++ b/tests/Unit/Jobs/ProcessMediaJobTest.php @@ -6,7 +6,6 @@ namespace Tests\Unit\Jobs; use App\Jobs\ProcessMedia; use Illuminate\Support\Facades\Storage; -use Intervention\Image\ImageManager; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; @@ -15,10 +14,9 @@ class ProcessMediaJobTest extends TestCase #[Test] public function non_media_files_are_not_saved(): void { - $manager = app()->make(ImageManager::class); Storage::disk('local')->put('media/file.txt', 'This is not an image'); - $job = new ProcessMedia('file.txt'); - $job->handle($manager); + $job = new ProcessMedia('media/file.txt'); + $job->handle(); $this->assertFileDoesNotExist(storage_path('app/media/').'file.txt'); } @@ -26,10 +24,9 @@ class ProcessMediaJobTest extends TestCase #[Test] public function small_images_are_not_resized(): void { - $manager = app()->make(ImageManager::class); Storage::disk('local')->put('media/aaron.png', file_get_contents(__DIR__.'/../../aaron.png')); - $job = new ProcessMedia('aaron.png'); - $job->handle($manager); + $job = new ProcessMedia('media/aaron.png'); + $job->handle(); $this->assertFileDoesNotExist(storage_path('app/media/').'aaron.png'); @@ -41,10 +38,9 @@ class ProcessMediaJobTest extends TestCase #[Test] public function large_images_have_smaller_images_created(): void { - $manager = app()->make(ImageManager::class); Storage::disk('local')->put('media/test-image.jpg', file_get_contents(__DIR__.'/../../test-image.jpg')); $job = new ProcessMedia('media/test-image.jpg'); - $job->handle($manager); + $job->handle(); // These need to look in public disk Storage::disk('public')->assertExists('media/test-image.jpg'); From f9f2744fad1fdf5ab4d8f98bbbd7ac186d114642 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 2 Aug 2026 18:07:39 +0100 Subject: [PATCH 05/33] Send Brrr push notifications for new webmentions Dispatches a queued job to POST to a configured Brrr webhook whenever a brand-new webmention is saved, so replies/likes/reposts show up as push notifications instead of requiring a manual check of the site. --- .env.example | 2 + app/Jobs/NotifyBrrrOfWebMention.php | 56 +++++++++++++++ app/Jobs/ProcessWebMention.php | 1 + config/services.php | 4 ++ .../Jobs/NotifyBrrrOfWebMentionJobTest.php | 71 +++++++++++++++++++ tests/Unit/Jobs/ProcessWebMentionJobTest.php | 4 ++ 6 files changed, 138 insertions(+) create mode 100644 app/Jobs/NotifyBrrrOfWebMention.php create mode 100644 tests/Unit/Jobs/NotifyBrrrOfWebMentionJobTest.php diff --git a/.env.example b/.env.example index eb423aaa..a1c38110 100644 --- a/.env.example +++ b/.env.example @@ -78,6 +78,8 @@ SESSION_SAME_SITE=strict LOG_SLACK_WEBHOOK_URL= +BRRR_WEBHOOK_URL= + FLARE_KEY= IGNITION_OPEN_AI_KEY= diff --git a/app/Jobs/NotifyBrrrOfWebMention.php b/app/Jobs/NotifyBrrrOfWebMention.php new file mode 100644 index 00000000..3273b7d6 --- /dev/null +++ b/app/Jobs/NotifyBrrrOfWebMention.php @@ -0,0 +1,56 @@ + $this->title(), + 'message' => "From {$this->webMention->source}", + 'open_url' => $this->webMention->target, + ]); + } + + /** + * Build a notification title based on the webmention type. + */ + private function title(): string + { + return match ($this->webMention->type) { + 'in-reply-to' => 'New reply', + 'like-of' => 'New like', + 'repost-of' => 'New repost', + default => 'New webmention', + }; + } +} diff --git a/app/Jobs/ProcessWebMention.php b/app/Jobs/ProcessWebMention.php index 6cb276f8..4ac6f5fd 100644 --- a/app/Jobs/ProcessWebMention.php +++ b/app/Jobs/ProcessWebMention.php @@ -96,6 +96,7 @@ class ProcessWebMention implements ShouldQueue $webmention->type = $type; $webmention->mf2 = json_encode($microformats); $webmention->save(); + dispatch(new NotifyBrrrOfWebMention($webmention)); } /** diff --git a/config/services.php b/config/services.php index b784e544..7a5cdfa5 100644 --- a/config/services.php +++ b/config/services.php @@ -39,4 +39,8 @@ return [ 'token' => env('CLOUDCONVERT_API_TOKEN'), ], + 'brrr' => [ + 'webhook_url' => env('BRRR_WEBHOOK_URL'), + ], + ]; diff --git a/tests/Unit/Jobs/NotifyBrrrOfWebMentionJobTest.php b/tests/Unit/Jobs/NotifyBrrrOfWebMentionJobTest.php new file mode 100644 index 00000000..f28bc4eb --- /dev/null +++ b/tests/Unit/Jobs/NotifyBrrrOfWebMentionJobTest.php @@ -0,0 +1,71 @@ + 'https://api.brrr.now/v1/br_usr_test']); + Http::fake(); + + $webMention = WebMention::factory()->make([ + 'source' => 'https://example.org/reply/1', + 'target' => 'https://jonnybarnes.uk/notes/1', + 'type' => 'in-reply-to', + ]); + + $job = new NotifyBrrrOfWebMention($webMention); + $job->handle(); + + Http::assertSent(function (Request $request) { + return $request->url() === 'https://api.brrr.now/v1/br_usr_test' + && $request['title'] === 'New reply' + && $request['message'] === 'From https://example.org/reply/1' + && $request['open_url'] === 'https://jonnybarnes.uk/notes/1'; + }); + } + + #[Test] + public function it_titles_notifications_by_webmention_type(): void + { + config(['services.brrr.webhook_url' => 'https://api.brrr.now/v1/br_usr_test']); + Http::fake(); + + foreach ([ + 'in-reply-to' => 'New reply', + 'like-of' => 'New like', + 'repost-of' => 'New repost', + 'something-else' => 'New webmention', + ] as $type => $expectedTitle) { + $webMention = WebMention::factory()->make(['type' => $type]); + + (new NotifyBrrrOfWebMention($webMention))->handle(); + + Http::assertSent(fn (Request $request) => $request['title'] === $expectedTitle); + } + } + + #[Test] + public function it_does_nothing_when_no_webhook_url_is_configured(): void + { + config(['services.brrr.webhook_url' => null]); + Http::fake(); + + $webMention = WebMention::factory()->make(); + + (new NotifyBrrrOfWebMention($webMention))->handle(); + + Http::assertNothingSent(); + } +} diff --git a/tests/Unit/Jobs/ProcessWebMentionJobTest.php b/tests/Unit/Jobs/ProcessWebMentionJobTest.php index 001d8f3d..f7c9329e 100644 --- a/tests/Unit/Jobs/ProcessWebMentionJobTest.php +++ b/tests/Unit/Jobs/ProcessWebMentionJobTest.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace Tests\Unit\Jobs; use App\Exceptions\RemoteContentNotFoundException; +use App\Jobs\NotifyBrrrOfWebMention; use App\Jobs\ProcessWebMention; use App\Jobs\SaveProfileImage; use App\Models\Note; @@ -71,6 +72,7 @@ class ProcessWebMentionJobTest extends TestCase $job->handle($parser); Queue::assertPushed(SaveProfileImage::class); + Queue::assertPushed(NotifyBrrrOfWebMention::class); $this->assertDatabaseHas('webmentions', [ 'source' => $source, 'type' => 'like-of', @@ -104,6 +106,7 @@ class ProcessWebMentionJobTest extends TestCase $job->handle($parser); Queue::assertPushed(SaveProfileImage::class); + Queue::assertNotPushed(NotifyBrrrOfWebMention::class); $this->assertDatabaseHas('webmentions', [ 'source' => $source, 'type' => 'in-reply-to', @@ -206,6 +209,7 @@ class ProcessWebMentionJobTest extends TestCase $job = new ProcessWebMention($note, $source); $job->handle($parser); + Queue::assertPushed(NotifyBrrrOfWebMention::class); $this->assertGreaterThan(255, strlen($source)); $this->assertDatabaseHas('webmentions', [ 'source' => $source, From d5706b5f8f049c05cb216a460196e32cfc5b2e90 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Thu, 13 Aug 2026 16:07:07 +0100 Subject: [PATCH 06/33] Replace JWT Micropub tokens with revocable opaque tokens Tokens now store a hashed row in micropub_tokens instead of being self-contained signed JWTs, so a leaked or unwanted token can actually be revoked. Since revocation already requires a DB lookup on every request, JWT's stateless-verification benefit was gone anyway, so this also drops the lcobucci/jwt dependency entirely. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014625MfkGZ7GVdbqKme4a8L --- app/Http/Controllers/MicropubController.php | 3 +- app/Http/Middleware/VerifyMicropubToken.php | 38 +++------- app/Models/MicropubToken.php | 34 +++++++++ app/Providers/AppServiceProvider.php | 15 ---- app/Services/TokenService.php | 22 +++--- composer.json | 1 - composer.lock | 75 +------------------ ...13_120924_create_micropub_tokens_table.php | 30 ++++++++ tests/Feature/TokenServiceTest.php | 35 +++++---- tests/TestToken.php | 52 +++++-------- 10 files changed, 124 insertions(+), 181 deletions(-) create mode 100644 app/Models/MicropubToken.php create mode 100644 database/migrations/2026_08_13_120924_create_micropub_tokens_table.php diff --git a/app/Http/Controllers/MicropubController.php b/app/Http/Controllers/MicropubController.php index c6008a9c..2df5d432 100644 --- a/app/Http/Controllers/MicropubController.php +++ b/app/Http/Controllers/MicropubController.php @@ -15,7 +15,6 @@ use App\Services\Micropub\MicropubHandlerRegistry; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Lcobucci\JWT\Token; class MicropubController extends Controller { @@ -135,7 +134,7 @@ class MicropubController extends Controller } // the default response is just to return the token data - /** @var Token $tokenData */ + /** @var array $tokenData */ $tokenData = $request->input('token_data'); return response()->json([ diff --git a/app/Http/Middleware/VerifyMicropubToken.php b/app/Http/Middleware/VerifyMicropubToken.php index 33d2cb12..e61cc67a 100644 --- a/app/Http/Middleware/VerifyMicropubToken.php +++ b/app/Http/Middleware/VerifyMicropubToken.php @@ -5,13 +5,9 @@ declare(strict_types=1); namespace App\Http\Middleware; use App\Http\Responses\MicropubResponses; +use App\Models\MicropubToken; use Closure; use Illuminate\Http\Request; -use Lcobucci\JWT\Configuration; -use Lcobucci\JWT\Encoding\CannotDecodeContent; -use Lcobucci\JWT\Token; -use Lcobucci\JWT\Token\InvalidTokenStructure; -use Lcobucci\JWT\Validation\RequiredConstraintsViolated; use Symfony\Component\HttpFoundation\Response; class VerifyMicropubToken @@ -39,15 +35,17 @@ class VerifyMicropubToken ], 401); } - try { - $tokenData = $this->validateToken($rawToken); - } catch (RequiredConstraintsViolated|InvalidTokenStructure|CannotDecodeContent) { + $token = MicropubToken::where('token_hash', hash('sha256', $rawToken)) + ->whereNull('revoked_at') + ->first(); + + if (! $token) { $micropubResponses = new MicropubResponses; return $micropubResponses->invalidTokenResponse(); } - if ($tokenData->claims()->has('scope') === false) { + if ($token->scope === '') { $micropubResponses = new MicropubResponses; return $micropubResponses->tokenHasNoScopeResponse(); @@ -56,26 +54,10 @@ class VerifyMicropubToken return $next($request->merge([ 'access_token' => $rawToken, 'token_data' => [ - 'me' => $tokenData->claims()->get('me'), - 'scope' => $tokenData->claims()->get('scope'), - 'client_id' => $tokenData->claims()->get('client_id'), + 'me' => $token->me, + 'scope' => $token->scope, + 'client_id' => $token->client_id, ], ])); } - - /** - * Check the token signature is valid. - */ - private function validateToken(string $bearerToken): Token - { - $config = resolve(Configuration::class); - - $token = $config->parser()->parse($bearerToken); - - $constraints = $config->validationConstraints(); - - $config->validator()->assert($token, ...$constraints); - - return $token; - } } diff --git a/app/Models/MicropubToken.php b/app/Models/MicropubToken.php new file mode 100644 index 00000000..231237f6 --- /dev/null +++ b/app/Models/MicropubToken.php @@ -0,0 +1,34 @@ + 'datetime', + ]; + } + + public function revoke(): void + { + $this->forceFill(['revoked_at' => now()])->save(); + } + + protected function isRevoked(): Attribute + { + return Attribute::make( + get: fn () => $this->revoked_at !== null, + ); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 224472d1..68367a97 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -7,10 +7,6 @@ use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; use Illuminate\Support\Facades\URL; use Illuminate\Support\ServiceProvider; -use Lcobucci\JWT\Configuration; -use Lcobucci\JWT\Signer\Hmac\Sha256; -use Lcobucci\JWT\Signer\Key\InMemory; -use Lcobucci\JWT\Validation\Constraint\SignedWith; use Symfony\Component\HtmlSanitizer\HtmlSanitizer; use Symfony\Component\HtmlSanitizer\HtmlSanitizerConfig; @@ -53,17 +49,6 @@ class AppServiceProvider extends ServiceProvider ); }); - // Configure JWT builder - $this->app->bind('Lcobucci\JWT\Configuration', function () { - $key = InMemory::plainText(config('app.key')); - - $config = Configuration::forSymmetricSigner(new Sha256, $key); - - $config->setValidationConstraints(new SignedWith(new Sha256, $key)); - - return $config; - }); - // Configure HtmlSanitizer $this->app->bind(HtmlSanitizer::class, function () { return new HtmlSanitizer( diff --git a/app/Services/TokenService.php b/app/Services/TokenService.php index 68a9293b..2941c28b 100644 --- a/app/Services/TokenService.php +++ b/app/Services/TokenService.php @@ -5,28 +5,26 @@ declare(strict_types=1); namespace App\Services; use App\Jobs\AddClientToDatabase; -use DateTimeImmutable; -use Lcobucci\JWT\Configuration; +use App\Models\MicropubToken; class TokenService { /** - * Generate a JWT token. + * Generate a new bearer token. */ public function getNewToken(array $data): string { - $config = resolve(Configuration::class); + $token = rtrim(strtr(base64_encode(random_bytes(32)), '+/', '-_'), '='); - $token = $config->builder() - ->issuedAt(new DateTimeImmutable) - ->withClaim('client_id', $data['client_id']) - ->withClaim('me', $data['me']) - ->withClaim('scope', $data['scope']) - ->withClaim('nonce', bin2hex(random_bytes(8))) - ->getToken($config->signer(), $config->signingKey()); + MicropubToken::create([ + 'token_hash' => hash('sha256', $token), + 'client_id' => $data['client_id'], + 'me' => $data['me'], + 'scope' => $data['scope'], + ]); dispatch(new AddClientToDatabase($data['client_id'])); - return $token->toString(); + return $token; } } diff --git a/composer.json b/composer.json index 520d12e1..5871ee02 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,6 @@ "laravel/horizon": "^5.0", "laravel/scout": "^10.1", "laravel/tinker": "^3.0", - "lcobucci/jwt": "^5.0", "league/commonmark": "^2.0", "league/flysystem-aws-s3-v3": "^3.0", "mf2/mf2": "~0.3", diff --git a/composer.lock b/composer.lock index 6af58a17..4c98c2cf 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "23983a4e6a8e79cb9636fe8f0e604eb7", + "content-hash": "a2842cf95580a08ad759a92d74fae3b4", "packages": [ { "name": "aws/aws-crt-php", @@ -2431,79 +2431,6 @@ }, "time": "2026-03-17T14:54:13+00:00" }, - { - "name": "lcobucci/jwt", - "version": "5.6.0", - "source": { - "type": "git", - "url": "https://github.com/lcobucci/jwt.git", - "reference": "bb3e9f21e4196e8afc41def81ef649c164bca25e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/bb3e9f21e4196e8afc41def81ef649c164bca25e", - "reference": "bb3e9f21e4196e8afc41def81ef649c164bca25e", - "shasum": "" - }, - "require": { - "ext-openssl": "*", - "ext-sodium": "*", - "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", - "psr/clock": "^1.0" - }, - "require-dev": { - "infection/infection": "^0.29", - "lcobucci/clock": "^3.2", - "lcobucci/coding-standard": "^11.0", - "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.10.7", - "phpstan/phpstan-deprecation-rules": "^1.1.3", - "phpstan/phpstan-phpunit": "^1.3.10", - "phpstan/phpstan-strict-rules": "^1.5.0", - "phpunit/phpunit": "^11.1" - }, - "suggest": { - "lcobucci/clock": ">= 3.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lcobucci\\JWT\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Luís Cobucci", - "email": "lcobucci@gmail.com", - "role": "Developer" - } - ], - "description": "A simple library to work with JSON Web Token and JSON Web Signature", - "keywords": [ - "JWS", - "jwt" - ], - "support": { - "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/5.6.0" - }, - "funding": [ - { - "url": "https://github.com/lcobucci", - "type": "github" - }, - { - "url": "https://www.patreon.com/lcobucci", - "type": "patreon" - } - ], - "time": "2025-10-17T11:30:53+00:00" - }, { "name": "league/commonmark", "version": "2.8.3", diff --git a/database/migrations/2026_08_13_120924_create_micropub_tokens_table.php b/database/migrations/2026_08_13_120924_create_micropub_tokens_table.php new file mode 100644 index 00000000..cb37f28b --- /dev/null +++ b/database/migrations/2026_08_13_120924_create_micropub_tokens_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('token_hash')->unique(); + $table->string('client_id'); + $table->string('me'); + $table->string('scope'); + $table->timestamp('revoked_at')->nullable(); + $table->timestamps(); + + $table->index('client_id'); + }); + } + + public function down(): void + { + Schema::dropIfExists('micropub_tokens'); + } +}; diff --git a/tests/Feature/TokenServiceTest.php b/tests/Feature/TokenServiceTest.php index 7fe9e854..6643452d 100644 --- a/tests/Feature/TokenServiceTest.php +++ b/tests/Feature/TokenServiceTest.php @@ -4,18 +4,16 @@ declare(strict_types=1); namespace Tests\Feature; +use App\Models\MicropubToken; use App\Services\TokenService; -use DateTimeImmutable; -use Lcobucci\JWT\Configuration; -use Lcobucci\JWT\Signer\Key\InMemory; use PHPUnit\Framework\Attributes\Test; use Tests\TestCase; class TokenServiceTest extends TestCase { /** - * Given the token is dependent on a random nonce, the time of creation and - * the APP_KEY, to test, we shall create a token, and then verify it. + * Given the token is dependent on a random value and stored only as a + * hash, to test, we shall create a token, and then verify it. */ #[Test] public function tokenservice_creates_valid_tokens(): void @@ -41,24 +39,29 @@ class TokenServiceTest extends TestCase } #[Test] - public function tokens_with_different_signing_key_are_not_valid(): void + public function unknown_tokens_are_not_valid(): void { + $response = $this->get('/api/post', ['HTTP_Authorization' => 'Bearer '.bin2hex(random_bytes(32))]); + + $response->assertJson([ + 'response' => 'error', + 'error' => 'invalid_token', + 'error_description' => 'The provided token did not pass validation', + ]); + } + + #[Test] + public function revoked_tokens_are_not_valid(): void + { + $tokenService = new TokenService; $data = [ 'me' => 'https://example.org', 'client_id' => 'https://quill.p3k.io', 'scope' => 'post', ]; + $token = $tokenService->getNewToken($data); - $config = resolve(Configuration::class); - - $token = $config->builder() - ->issuedAt(new DateTimeImmutable) - ->withClaim('client_id', $data['client_id']) - ->withClaim('me', $data['me']) - ->withClaim('scope', $data['scope']) - ->withClaim('nonce', bin2hex(random_bytes(8))) - ->getToken($config->signer(), InMemory::plainText(random_bytes(32))) - ->toString(); + MicropubToken::where('token_hash', hash('sha256', $token))->firstOrFail()->revoke(); $response = $this->get('/api/post', ['HTTP_Authorization' => 'Bearer '.$token]); diff --git a/tests/TestToken.php b/tests/TestToken.php index 287e2757..21e0b753 100644 --- a/tests/TestToken.php +++ b/tests/TestToken.php @@ -2,53 +2,39 @@ namespace Tests; -use DateTimeImmutable; -use Lcobucci\JWT\Configuration; +use App\Services\TokenService; trait TestToken { public function getToken(): string { - $config = $this->app->make(Configuration::class); - - return $config->builder() - ->issuedAt(new DateTimeImmutable) - ->withClaim('client_id', 'https://quill.p3k.io') - ->withClaim('me', 'http://jonnybarnes.localhost') - ->withClaim('scope', ['create', 'update']) - ->getToken($config->signer(), $config->signingKey()) - ->toString(); + return $this->app->make(TokenService::class)->getNewToken([ + 'client_id' => 'https://quill.p3k.io', + 'me' => 'http://jonnybarnes.localhost', + 'scope' => 'create update', + ]); } public function getTokenWithIncorrectScope(): string { - $config = $this->app->make(Configuration::class); - - return $config->builder() - ->issuedAt(new DateTimeImmutable) - ->withClaim('client_id', 'https://quill.p3k.io') - ->withClaim('me', 'https://jonnybarnes.localhost') - ->withClaim('scope', 'view') - ->getToken($config->signer(), $config->signingKey()) - ->toString(); + return $this->app->make(TokenService::class)->getNewToken([ + 'client_id' => 'https://quill.p3k.io', + 'me' => 'https://jonnybarnes.localhost', + 'scope' => 'view', + ]); } - public function getTokenWithNoScope() + public function getTokenWithNoScope(): string { - $config = $this->app->make(Configuration::class); - - return $config->builder() - ->issuedAt(new DateTimeImmutable) - ->withClaim('client_id', 'https://quill.p3k.io') - ->withClaim('me', 'https://jonnybarnes.localhost') - ->getToken($config->signer(), $config->signingKey()) - ->toString(); + return $this->app->make(TokenService::class)->getNewToken([ + 'client_id' => 'https://quill.p3k.io', + 'me' => 'https://jonnybarnes.localhost', + 'scope' => '', + ]); } - public function getInvalidToken() + public function getInvalidToken(): string { - $token = $this->getToken(); - - return substr($token, 0, -5); + return bin2hex(random_bytes(32)); } } From 9c9a6392c8220fd44fdee4de6a616fd12c7bf57b Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Thu, 13 Aug 2026 16:13:11 +0100 Subject: [PATCH 07/33] Add IndieAuth token revocation endpoint (RFC 7009) Implements the current IndieAuth spec's dedicated /revocation endpoint so clients can self-revoke a token (e.g. on user sign-out), rather than only supporting revocation via the admin side. Always responds 200 per spec, whether the token was found or not, so callers can't use it to probe token validity. Skips the legacy action=revoke-on-/token fallback the spec mentions for older clients, since the only real client here is already being updated to use the current endpoint. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014625MfkGZ7GVdbqKme4a8L --- app/Http/Controllers/IndieAuthController.php | 22 +++++++++++++++ app/Http/Middleware/LinkHeadersMiddleware.php | 1 + routes/web.php | 1 + tests/Feature/HeaderLinkTest.php | 5 ++-- tests/Feature/IndieAuthTest.php | 27 +++++++++++++++++++ 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/IndieAuthController.php b/app/Http/Controllers/IndieAuthController.php index eeb59770..db62aa98 100644 --- a/app/Http/Controllers/IndieAuthController.php +++ b/app/Http/Controllers/IndieAuthController.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Http\Controllers; +use App\Models\MicropubToken; use App\Services\TokenService; use GuzzleHttp\Psr7\Uri; use Illuminate\Http\JsonResponse; @@ -24,6 +25,7 @@ class IndieAuthController extends Controller 'issuer' => config('app.url'), 'authorization_endpoint' => route('indieauth.start'), 'token_endpoint' => route('indieauth.token'), + 'revocation_endpoint' => route('indieauth.revocation'), 'code_challenge_methods_supported' => ['S256'], // 'introspection_endpoint' => route('indieauth.introspection'), // 'introspection_endpoint_auth_methods_supported' => ['none'], @@ -178,6 +180,26 @@ class IndieAuthController extends Controller ]); } + /** + * Process a POST request to the IndieAuth revocation endpoint (RFC 7009). + * + * Per spec this always returns HTTP 200, whether the token was revoked, + * unknown, or already revoked, so callers can't probe token validity. + */ + public function processRevocationRequest(Request $request): JsonResponse + { + $token = $request->get('token', ''); + + if ($token !== '') { + MicropubToken::where('token_hash', hash('sha256', $token)) + ->whereNull('revoked_at') + ->first() + ?->revoke(); + } + + return response()->json([], 200); + } + protected function isValidRedirectUri(string $clientId, string $redirectUri): bool { // If client_id is not a valid URL, then it's not valid diff --git a/app/Http/Middleware/LinkHeadersMiddleware.php b/app/Http/Middleware/LinkHeadersMiddleware.php index b9e55139..0a280d44 100644 --- a/app/Http/Middleware/LinkHeadersMiddleware.php +++ b/app/Http/Middleware/LinkHeadersMiddleware.php @@ -17,6 +17,7 @@ class LinkHeadersMiddleware $response->header('Link', '<'.route('indieauth.metadata').'>; rel="indieauth-metadata"', false); $response->header('Link', '<'.route('indieauth.start').'>; rel="authorization_endpoint"', false); $response->header('Link', '<'.route('indieauth.token').'>; rel="token_endpoint"', false); + $response->header('Link', '<'.route('indieauth.revocation').'>; rel="revocation_endpoint"', false); $response->header('Link', '<'.route('micropub-endpoint').'>; rel="micropub"', false); $response->header('Link', '<'.route('webmention-endpoint').'>; rel="webmention"', false); diff --git a/routes/web.php b/routes/web.php index 953b51ac..fbba6329 100644 --- a/routes/web.php +++ b/routes/web.php @@ -205,6 +205,7 @@ Route::get('auth', [IndieAuthController::class, 'start'])->middleware(MyAuthMidd Route::post('auth/confirm', [IndieAuthController::class, 'confirm'])->middleware(MyAuthMiddleware::class); Route::post('auth', [IndieAuthController::class, 'processCodeExchange']); Route::post('token', [IndieAuthController::class, 'processTokenRequest'])->name('indieauth.token'); +Route::post('revocation', [IndieAuthController::class, 'processRevocationRequest'])->name('indieauth.revocation'); // Micropub Endpoints Route::get('api/post', [MicropubController::class, 'get'])->middleware(VerifyMicropubToken::class); diff --git a/tests/Feature/HeaderLinkTest.php b/tests/Feature/HeaderLinkTest.php index 874731a5..8a68d88f 100644 --- a/tests/Feature/HeaderLinkTest.php +++ b/tests/Feature/HeaderLinkTest.php @@ -19,7 +19,8 @@ class HeaderLinkTest extends TestCase $this->assertSame('<'.config('app.url').'/.well-known/indieauth-server>; rel="indieauth-metadata"', $linkHeaders[0]); $this->assertSame('<'.config('app.url').'/auth>; rel="authorization_endpoint"', $linkHeaders[1]); $this->assertSame('<'.config('app.url').'/token>; rel="token_endpoint"', $linkHeaders[2]); - $this->assertSame('<'.config('app.url').'/api/post>; rel="micropub"', $linkHeaders[3]); - $this->assertSame('<'.config('app.url').'/webmention>; rel="webmention"', $linkHeaders[4]); + $this->assertSame('<'.config('app.url').'/revocation>; rel="revocation_endpoint"', $linkHeaders[3]); + $this->assertSame('<'.config('app.url').'/api/post>; rel="micropub"', $linkHeaders[4]); + $this->assertSame('<'.config('app.url').'/webmention>; rel="webmention"', $linkHeaders[5]); } } diff --git a/tests/Feature/IndieAuthTest.php b/tests/Feature/IndieAuthTest.php index b32f4420..c7420e6d 100644 --- a/tests/Feature/IndieAuthTest.php +++ b/tests/Feature/IndieAuthTest.php @@ -4,7 +4,9 @@ declare(strict_types=1); namespace Tests\Feature; +use App\Models\MicropubToken; use App\Models\User; +use App\Services\TokenService; use GuzzleHttp\Psr7\Uri; use GuzzleHttp\Psr7\UriResolver; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -692,4 +694,29 @@ class IndieAuthTest extends TestCase 'me' => config('app.url'), ]); } + + #[Test] + public function it_should_revoke_a_known_token(): void + { + $token = resolve(TokenService::class)->getNewToken([ + 'me' => config('app.url'), + 'client_id' => 'https://app.example.com', + 'scope' => 'create', + ]); + + $response = $this->post('/revocation', ['token' => $token]); + $response->assertStatus(200); + + $this->assertTrue( + MicropubToken::where('token_hash', hash('sha256', $token))->firstOrFail()->isRevoked + ); + } + + #[Test] + public function it_should_return200_for_an_unknown_token(): void + { + $response = $this->post('/revocation', ['token' => bin2hex(random_bytes(32))]); + + $response->assertStatus(200); + } } From 9d6cf6c815e5fd1f4eb0e41c7dff0c89e04cf47f Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Thu, 13 Aug 2026 16:18:52 +0100 Subject: [PATCH 08/33] Add admin page to list and revoke Micropub tokens Gives a way to actually use the revocation capability built up over the last few commits from the admin side, not just self-service via the client. Lists client_id/scope/issue time per token (never the raw token itself, since only its hash is stored) with a revoke button for active ones. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014625MfkGZ7GVdbqKme4a8L --- .../Controllers/Admin/TokensController.php | 33 +++++++ resources/views/admin/tokens/index.blade.php | 27 ++++++ resources/views/admin/welcome.blade.php | 5 ++ routes/web.php | 7 ++ tests/Feature/Admin/TokensTest.php | 87 +++++++++++++++++++ 5 files changed, 159 insertions(+) create mode 100644 app/Http/Controllers/Admin/TokensController.php create mode 100644 resources/views/admin/tokens/index.blade.php create mode 100644 tests/Feature/Admin/TokensTest.php diff --git a/app/Http/Controllers/Admin/TokensController.php b/app/Http/Controllers/Admin/TokensController.php new file mode 100644 index 00000000..1b5348f9 --- /dev/null +++ b/app/Http/Controllers/Admin/TokensController.php @@ -0,0 +1,33 @@ +get(); + + return view('admin.tokens.index', compact('tokens')); + } + + /** + * Revoke a Micropub token. + */ + public function revoke(MicropubToken $token): RedirectResponse + { + $token->revoke(); + + return redirect('/admin/tokens'); + } +} diff --git a/resources/views/admin/tokens/index.blade.php b/resources/views/admin/tokens/index.blade.php new file mode 100644 index 00000000..cb7edda9 --- /dev/null +++ b/resources/views/admin/tokens/index.blade.php @@ -0,0 +1,27 @@ +@extends('master') + +@section('title')List Tokens « Admin CP « @stop + +@section('content') +

Micropub Tokens

+ @if($tokens->isEmpty()) +

No tokens have been issued.

+ @else +
    + @foreach($tokens as $token) +
  • + {{ $token->client_id }} — scope: {{ $token->scope }} — issued {{ $token->created_at->diffForHumans() }} + @if($token->isRevoked) + — revoked {{ $token->revoked_at->diffForHumans() }} + @else +
    + {{ csrf_field() }} + {{ method_field('PUT') }} + +
    + @endif +
  • + @endforeach +
+ @endif +@stop diff --git a/resources/views/admin/welcome.blade.php b/resources/views/admin/welcome.blade.php index 269ccdc5..663cfdc4 100644 --- a/resources/views/admin/welcome.blade.php +++ b/resources/views/admin/welcome.blade.php @@ -47,6 +47,11 @@ or edit them.

+

Tokens

+

+ View and revoke issued Micropub tokens. +

+

Bio

Edit your bio. diff --git a/routes/web.php b/routes/web.php index fbba6329..e8924f32 100644 --- a/routes/web.php +++ b/routes/web.php @@ -10,6 +10,7 @@ use App\Http\Controllers\Admin\NotesController as AdminNotesController; use App\Http\Controllers\Admin\PasskeysController; use App\Http\Controllers\Admin\PlacesController as AdminPlacesController; use App\Http\Controllers\Admin\SyndicationTargetsController; +use App\Http\Controllers\Admin\TokensController; use App\Http\Controllers\ArticlesController; use App\Http\Controllers\AuthController; use App\Http\Controllers\BookmarksController; @@ -147,6 +148,12 @@ Route::middleware(MyAuthMiddleware::class)->prefix('admin')->group(function () { Route::delete('/{clientId}', [ClientsController::class, 'destroy']); }); + // Micropub Tokens + Route::prefix('tokens')->group(function () { + Route::get('/', [TokensController::class, 'index']); + Route::put('/{token}/revoke', [TokensController::class, 'revoke']); + }); + // Bio Route::prefix('bio')->group(function () { Route::get('/', [BioController::class, 'show'])->name('admin.bio.show'); diff --git a/tests/Feature/Admin/TokensTest.php b/tests/Feature/Admin/TokensTest.php new file mode 100644 index 00000000..0c415296 --- /dev/null +++ b/tests/Feature/Admin/TokensTest.php @@ -0,0 +1,87 @@ +get('/admin/tokens'); + $response->assertRedirect(); + } + + #[Test] + public function index_lists_issued_tokens(): void + { + $user = User::factory()->make(); + $token = MicropubToken::create([ + 'token_hash' => hash('sha256', 'a-token'), + 'client_id' => 'https://quill.p3k.io', + 'me' => 'https://jonnybarnes.uk', + 'scope' => 'create update', + ]); + + $response = $this->actingAs($user)->get('/admin/tokens'); + $response->assertOk(); + $response->assertSeeText($token->client_id); + } + + #[Test] + public function revoke_requires_authentication(): void + { + $token = MicropubToken::create([ + 'token_hash' => hash('sha256', 'a-token'), + 'client_id' => 'https://quill.p3k.io', + 'me' => 'https://jonnybarnes.uk', + 'scope' => 'create', + ]); + + $response = $this->put("/admin/tokens/{$token->id}/revoke"); + $response->assertRedirect(); + + $this->assertFalse($token->fresh()->isRevoked); + } + + #[Test] + public function revoke_marks_the_token_as_revoked(): void + { + $user = User::factory()->make(); + $token = MicropubToken::create([ + 'token_hash' => hash('sha256', 'a-token'), + 'client_id' => 'https://quill.p3k.io', + 'me' => 'https://jonnybarnes.uk', + 'scope' => 'create', + ]); + + $this->actingAs($user)->put("/admin/tokens/{$token->id}/revoke"); + + $this->assertTrue($token->fresh()->isRevoked); + } + + #[Test] + public function revoke_redirects_to_index(): void + { + $user = User::factory()->make(); + $token = MicropubToken::create([ + 'token_hash' => hash('sha256', 'a-token'), + 'client_id' => 'https://quill.p3k.io', + 'me' => 'https://jonnybarnes.uk', + 'scope' => 'create', + ]); + + $response = $this->actingAs($user)->put("/admin/tokens/{$token->id}/revoke"); + + $response->assertRedirect('/admin/tokens'); + } +} From 24da24a677d49c8b189ccf340251ab79ddf2da44 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Thu, 13 Aug 2026 16:44:31 +0100 Subject: [PATCH 09/33] Add IndieAuth token introspection endpoint (RFC 7662) Lets a resource server (or a client checking its own token, via self-introspection) verify a token's active/me/client_id/scope without needing to be tightly coupled to this token endpoint. Requires the caller to present their own currently-active token as authorization, per spec's requirement that the endpoint MUST require some form of authorization. Inactive tokens get back only {"active": false}, no detail on why, matching the privacy stance already used for revocation. Pulled the hash-and-lookup-active-token logic (now needed a third time) into MicropubToken::findActive(), used by this, the revocation endpoint, and VerifyMicropubToken. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014625MfkGZ7GVdbqKme4a8L --- app/Http/Controllers/IndieAuthController.php | 44 +++++++++--- app/Http/Middleware/VerifyMicropubToken.php | 4 +- app/Models/MicropubToken.php | 14 ++++ routes/web.php | 1 + tests/Feature/IndieAuthTest.php | 76 ++++++++++++++++++++ 5 files changed, 126 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/IndieAuthController.php b/app/Http/Controllers/IndieAuthController.php index db62aa98..bff8ebee 100644 --- a/app/Http/Controllers/IndieAuthController.php +++ b/app/Http/Controllers/IndieAuthController.php @@ -26,9 +26,9 @@ class IndieAuthController extends Controller 'authorization_endpoint' => route('indieauth.start'), 'token_endpoint' => route('indieauth.token'), 'revocation_endpoint' => route('indieauth.revocation'), + 'introspection_endpoint' => route('indieauth.introspection'), + 'introspection_endpoint_auth_methods_supported' => ['Bearer'], 'code_challenge_methods_supported' => ['S256'], - // 'introspection_endpoint' => route('indieauth.introspection'), - // 'introspection_endpoint_auth_methods_supported' => ['none'], ]); } @@ -188,18 +188,42 @@ class IndieAuthController extends Controller */ public function processRevocationRequest(Request $request): JsonResponse { - $token = $request->get('token', ''); - - if ($token !== '') { - MicropubToken::where('token_hash', hash('sha256', $token)) - ->whereNull('revoked_at') - ->first() - ?->revoke(); - } + MicropubToken::findActive($request->get('token', ''))?->revoke(); return response()->json([], 200); } + /** + * Process a POST request to the IndieAuth token introspection endpoint + * (RFC 7662, extended by IndieAuth to require the `me` property). + * + * The caller must itself present a currently-active token as a Bearer + * credential to use this endpoint, per spec ("MUST also require some + * form of authorization"). Per spec, an inactive token being introspected + * still gets a 200 response containing only `active: false` - no other + * information about why it's inactive is given. + */ + public function processIntrospectionRequest(Request $request): JsonResponse + { + if (! MicropubToken::findActive((string) $request->bearerToken())) { + return response()->json([], 401); + } + + $token = MicropubToken::findActive((string) $request->get('token', '')); + + if (! $token) { + return response()->json(['active' => false]); + } + + return response()->json([ + 'active' => true, + 'me' => $token->me, + 'client_id' => $token->client_id, + 'scope' => $token->scope, + 'iat' => $token->created_at->timestamp, + ]); + } + protected function isValidRedirectUri(string $clientId, string $redirectUri): bool { // If client_id is not a valid URL, then it's not valid diff --git a/app/Http/Middleware/VerifyMicropubToken.php b/app/Http/Middleware/VerifyMicropubToken.php index e61cc67a..530995ae 100644 --- a/app/Http/Middleware/VerifyMicropubToken.php +++ b/app/Http/Middleware/VerifyMicropubToken.php @@ -35,9 +35,7 @@ class VerifyMicropubToken ], 401); } - $token = MicropubToken::where('token_hash', hash('sha256', $rawToken)) - ->whereNull('revoked_at') - ->first(); + $token = MicropubToken::findActive($rawToken); if (! $token) { $micropubResponses = new MicropubResponses; diff --git a/app/Models/MicropubToken.php b/app/Models/MicropubToken.php index 231237f6..e85cb206 100644 --- a/app/Models/MicropubToken.php +++ b/app/Models/MicropubToken.php @@ -25,6 +25,20 @@ class MicropubToken extends Model $this->forceFill(['revoked_at' => now()])->save(); } + /** + * Find the active (non-revoked) token matching a raw bearer token string. + */ + public static function findActive(string $rawToken): ?self + { + if ($rawToken === '') { + return null; + } + + return self::where('token_hash', hash('sha256', $rawToken)) + ->whereNull('revoked_at') + ->first(); + } + protected function isRevoked(): Attribute { return Attribute::make( diff --git a/routes/web.php b/routes/web.php index e8924f32..dd594480 100644 --- a/routes/web.php +++ b/routes/web.php @@ -213,6 +213,7 @@ Route::post('auth/confirm', [IndieAuthController::class, 'confirm'])->middleware Route::post('auth', [IndieAuthController::class, 'processCodeExchange']); Route::post('token', [IndieAuthController::class, 'processTokenRequest'])->name('indieauth.token'); Route::post('revocation', [IndieAuthController::class, 'processRevocationRequest'])->name('indieauth.revocation'); +Route::post('introspect', [IndieAuthController::class, 'processIntrospectionRequest'])->name('indieauth.introspection'); // Micropub Endpoints Route::get('api/post', [MicropubController::class, 'get'])->middleware(VerifyMicropubToken::class); diff --git a/tests/Feature/IndieAuthTest.php b/tests/Feature/IndieAuthTest.php index c7420e6d..ba456748 100644 --- a/tests/Feature/IndieAuthTest.php +++ b/tests/Feature/IndieAuthTest.php @@ -719,4 +719,80 @@ class IndieAuthTest extends TestCase $response->assertStatus(200); } + + #[Test] + public function introspection_requires_a_bearer_token(): void + { + $response = $this->post('/introspect', ['token' => 'irrelevant']); + + $response->assertStatus(401); + } + + #[Test] + public function introspection_rejects_a_revoked_bearer_token(): void + { + $callerToken = resolve(TokenService::class)->getNewToken([ + 'me' => config('app.url'), + 'client_id' => 'https://app.example.com', + 'scope' => 'create', + ]); + MicropubToken::where('token_hash', hash('sha256', $callerToken))->firstOrFail()->revoke(); + + $response = $this->post( + '/introspect', + ['token' => 'irrelevant'], + ['HTTP_Authorization' => 'Bearer '.$callerToken] + ); + + $response->assertStatus(401); + } + + #[Test] + public function introspection_returns_active_details_for_a_valid_token(): void + { + $callerToken = resolve(TokenService::class)->getNewToken([ + 'me' => config('app.url'), + 'client_id' => 'https://app.example.com', + 'scope' => 'create', + ]); + $subjectToken = resolve(TokenService::class)->getNewToken([ + 'me' => 'https://someone-else.example.com', + 'client_id' => 'https://quill.p3k.io', + 'scope' => 'create update', + ]); + + $response = $this->post( + '/introspect', + ['token' => $subjectToken], + ['HTTP_Authorization' => 'Bearer '.$callerToken] + ); + + $response->assertStatus(200); + $response->assertJson([ + 'active' => true, + 'me' => 'https://someone-else.example.com', + 'client_id' => 'https://quill.p3k.io', + 'scope' => 'create update', + ]); + $response->assertJsonStructure(['iat']); + } + + #[Test] + public function introspection_returns_only_active_false_for_an_unknown_token(): void + { + $callerToken = resolve(TokenService::class)->getNewToken([ + 'me' => config('app.url'), + 'client_id' => 'https://app.example.com', + 'scope' => 'create', + ]); + + $response = $this->post( + '/introspect', + ['token' => bin2hex(random_bytes(32))], + ['HTTP_Authorization' => 'Bearer '.$callerToken] + ); + + $response->assertStatus(200); + $response->assertExactJson(['active' => false]); + } } From faf8e5c1ec6e1875fc27c840a87e5a08e14f31bd Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Thu, 13 Aug 2026 17:03:43 +0100 Subject: [PATCH 10/33] Fix CSRF exemption and array-input crash on revocation/introspection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An Opus code review of the branch caught two real bugs the test suite structurally couldn't see: - /revocation and /introspect were never added to bootstrap/app.php's CSRF except list, so both were fully broken (403) for any real external client, despite every feature test passing — CSRF verification is short-circuited entirely while running tests. Verified live against the running app before and after the fix, and added a regression test that asserts against the actual configured exemptions rather than relying on request-time behavior that tests can't exercise. - An array-shaped `token` param (e.g. token[]=a&token[]=b) crashed both endpoints with a 500, since this app promotes PHP warnings ("Array to string conversion") to exceptions. Fixed at the shared root, MicropubToken::findActive(), which also closes the same latent hole in VerifyMicropubToken's access_token param that predates this branch. Verified live and covered with regression tests. Also applied the review's lower-severity findings: added the missing introspection_endpoint Link header and metadata test assertions, removed the now-dead is_string($scopes) array branch in the Micropub handlers and media controller (scope is unconditionally a string from the DB now, this guarded against a JWT-array-claim shape that can no longer occur), dropped a redundant #[Table] model attribute, sized token_hash to its actual 64-char length, and removed a one-off inline style in the admin view. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014625MfkGZ7GVdbqKme4a8L --- app/Http/Controllers/IndieAuthController.php | 6 ++-- .../Controllers/MicropubMediaController.php | 8 ++--- app/Http/Middleware/LinkHeadersMiddleware.php | 1 + app/Models/MicropubToken.php | 12 ++++--- .../Micropub/Handlers/CardHandler.php | 4 +-- .../Micropub/Handlers/EntryHandler.php | 4 +-- .../Micropub/Handlers/UpdateHandler.php | 4 +-- bootstrap/app.php | 6 ++-- ...13_120924_create_micropub_tokens_table.php | 2 +- resources/views/admin/tokens/index.blade.php | 2 +- tests/Feature/CsrfExemptionsTest.php | 29 +++++++++++++++++ tests/Feature/HeaderLinkTest.php | 5 +-- tests/Feature/IndieAuthTest.php | 32 +++++++++++++++++-- tests/Feature/TokenServiceTest.php | 14 ++++++++ 14 files changed, 98 insertions(+), 31 deletions(-) create mode 100644 tests/Feature/CsrfExemptionsTest.php diff --git a/app/Http/Controllers/IndieAuthController.php b/app/Http/Controllers/IndieAuthController.php index bff8ebee..a795bce8 100644 --- a/app/Http/Controllers/IndieAuthController.php +++ b/app/Http/Controllers/IndieAuthController.php @@ -188,7 +188,7 @@ class IndieAuthController extends Controller */ public function processRevocationRequest(Request $request): JsonResponse { - MicropubToken::findActive($request->get('token', ''))?->revoke(); + MicropubToken::findActive($request->get('token'))?->revoke(); return response()->json([], 200); } @@ -205,11 +205,11 @@ class IndieAuthController extends Controller */ public function processIntrospectionRequest(Request $request): JsonResponse { - if (! MicropubToken::findActive((string) $request->bearerToken())) { + if (! MicropubToken::findActive($request->bearerToken())) { return response()->json([], 401); } - $token = MicropubToken::findActive((string) $request->get('token', '')); + $token = MicropubToken::findActive($request->get('token')); if (! $token) { return response()->json(['active' => false]); diff --git a/app/Http/Controllers/MicropubMediaController.php b/app/Http/Controllers/MicropubMediaController.php index da7c7dc2..d9f8ea32 100644 --- a/app/Http/Controllers/MicropubMediaController.php +++ b/app/Http/Controllers/MicropubMediaController.php @@ -26,9 +26,7 @@ class MicropubMediaController extends Controller $tokenData = $request->input('token_data'); $scopes = $tokenData['scope']; - if (is_string($scopes)) { - $scopes = explode(' ', $scopes); - } + $scopes = explode(' ', $scopes); if (! in_array('create', $scopes, true)) { return (new MicropubResponses)->insufficientScopeResponse(); } @@ -84,9 +82,7 @@ class MicropubMediaController extends Controller $tokenData = $request->input('token_data'); $scopes = $tokenData['scope']; - if (is_string($scopes)) { - $scopes = explode(' ', $scopes); - } + $scopes = explode(' ', $scopes); if (! in_array('create', $scopes, true)) { return (new MicropubResponses)->insufficientScopeResponse(); } diff --git a/app/Http/Middleware/LinkHeadersMiddleware.php b/app/Http/Middleware/LinkHeadersMiddleware.php index 0a280d44..e2810f87 100644 --- a/app/Http/Middleware/LinkHeadersMiddleware.php +++ b/app/Http/Middleware/LinkHeadersMiddleware.php @@ -18,6 +18,7 @@ class LinkHeadersMiddleware $response->header('Link', '<'.route('indieauth.start').'>; rel="authorization_endpoint"', false); $response->header('Link', '<'.route('indieauth.token').'>; rel="token_endpoint"', false); $response->header('Link', '<'.route('indieauth.revocation').'>; rel="revocation_endpoint"', false); + $response->header('Link', '<'.route('indieauth.introspection').'>; rel="introspection_endpoint"', false); $response->header('Link', '<'.route('micropub-endpoint').'>; rel="micropub"', false); $response->header('Link', '<'.route('webmention-endpoint').'>; rel="webmention"', false); diff --git a/app/Models/MicropubToken.php b/app/Models/MicropubToken.php index e85cb206..c4df41bc 100644 --- a/app/Models/MicropubToken.php +++ b/app/Models/MicropubToken.php @@ -5,11 +5,9 @@ declare(strict_types=1); namespace App\Models; use Illuminate\Database\Eloquent\Attributes\Fillable; -use Illuminate\Database\Eloquent\Attributes\Table; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Model; -#[Table('micropub_tokens')] #[Fillable(['token_hash', 'client_id', 'me', 'scope'])] class MicropubToken extends Model { @@ -26,11 +24,15 @@ class MicropubToken extends Model } /** - * Find the active (non-revoked) token matching a raw bearer token string. + * Find the active (non-revoked) token matching a raw bearer token value. + * + * Accepts mixed because callers pass request input directly, which PHP + * lets be an array (e.g. a client sending token[]=a) - casting that to + * string would throw, so anything non-string is just treated as absent. */ - public static function findActive(string $rawToken): ?self + public static function findActive(mixed $rawToken): ?self { - if ($rawToken === '') { + if (! is_string($rawToken) || $rawToken === '') { return null; } diff --git a/app/Services/Micropub/Handlers/CardHandler.php b/app/Services/Micropub/Handlers/CardHandler.php index 02e3a066..6b24f21b 100644 --- a/app/Services/Micropub/Handlers/CardHandler.php +++ b/app/Services/Micropub/Handlers/CardHandler.php @@ -24,9 +24,7 @@ class CardHandler implements MicropubHandlerInterface assert($data instanceof CardData); $scopes = $data->tokenData['scope']; - if (is_string($scopes)) { - $scopes = explode(' ', $scopes); - } + $scopes = explode(' ', $scopes); if (! in_array('create', $scopes, true)) { throw new InvalidTokenScopeException; diff --git a/app/Services/Micropub/Handlers/EntryHandler.php b/app/Services/Micropub/Handlers/EntryHandler.php index ef9740f2..48bbb550 100644 --- a/app/Services/Micropub/Handlers/EntryHandler.php +++ b/app/Services/Micropub/Handlers/EntryHandler.php @@ -27,9 +27,7 @@ class EntryHandler implements MicropubHandlerInterface assert($data instanceof EntryData); $scopes = $data->tokenData['scope']; - if (is_string($scopes)) { - $scopes = explode(' ', $scopes); - } + $scopes = explode(' ', $scopes); if (! in_array('create', $scopes, true)) { throw new InvalidTokenScopeException; diff --git a/app/Services/Micropub/Handlers/UpdateHandler.php b/app/Services/Micropub/Handlers/UpdateHandler.php index 49f86063..136a0840 100644 --- a/app/Services/Micropub/Handlers/UpdateHandler.php +++ b/app/Services/Micropub/Handlers/UpdateHandler.php @@ -30,9 +30,7 @@ class UpdateHandler implements MicropubHandlerInterface assert($data instanceof UpdateData); $scopes = $data->tokenData['scope']; - if (is_string($scopes)) { - $scopes = explode(' ', $scopes); - } + $scopes = explode(' ', $scopes); if (! in_array('update', $scopes, true)) { throw new InvalidTokenScopeException; diff --git a/bootstrap/app.php b/bootstrap/app.php index 9c73bdb9..e29a3598 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -17,8 +17,10 @@ return Application::configure(basePath: dirname(__DIR__)) ->append(LinkHeadersMiddleware::class) ->preventRequestForgery( except: [ - 'auth', // This is the IndieAuth auth endpoint - 'token', // This is the IndieAuth token endpoint + 'auth', // This is the IndieAuth auth endpoint + 'token', // This is the IndieAuth token endpoint + 'revocation', // This is the IndieAuth revocation endpoint + 'introspect', // This is the IndieAuth introspection endpoint 'api/post', 'api/media', 'micropub/places', diff --git a/database/migrations/2026_08_13_120924_create_micropub_tokens_table.php b/database/migrations/2026_08_13_120924_create_micropub_tokens_table.php index cb37f28b..e336912f 100644 --- a/database/migrations/2026_08_13_120924_create_micropub_tokens_table.php +++ b/database/migrations/2026_08_13_120924_create_micropub_tokens_table.php @@ -12,7 +12,7 @@ return new class extends Migration { Schema::create('micropub_tokens', function (Blueprint $table) { $table->id(); - $table->string('token_hash')->unique(); + $table->string('token_hash', 64)->unique(); $table->string('client_id'); $table->string('me'); $table->string('scope'); diff --git a/resources/views/admin/tokens/index.blade.php b/resources/views/admin/tokens/index.blade.php index cb7edda9..8836ab07 100644 --- a/resources/views/admin/tokens/index.blade.php +++ b/resources/views/admin/tokens/index.blade.php @@ -14,7 +14,7 @@ @if($token->isRevoked) — revoked {{ $token->revoked_at->diffForHumans() }} @else -

+ {{ csrf_field() }} {{ method_field('PUT') }} diff --git a/tests/Feature/CsrfExemptionsTest.php b/tests/Feature/CsrfExemptionsTest.php new file mode 100644 index 00000000..c03a3c2c --- /dev/null +++ b/tests/Feature/CsrfExemptionsTest.php @@ -0,0 +1,29 @@ +app->make(PreventRequestForgery::class)->getExcludedPaths(); + + foreach (['auth', 'token', 'revocation', 'introspect', 'api/post', 'api/media', 'micropub/places', 'webmention'] as $path) { + $this->assertContains($path, $exemptions); + } + } +} diff --git a/tests/Feature/HeaderLinkTest.php b/tests/Feature/HeaderLinkTest.php index 8a68d88f..3983b02c 100644 --- a/tests/Feature/HeaderLinkTest.php +++ b/tests/Feature/HeaderLinkTest.php @@ -20,7 +20,8 @@ class HeaderLinkTest extends TestCase $this->assertSame('<'.config('app.url').'/auth>; rel="authorization_endpoint"', $linkHeaders[1]); $this->assertSame('<'.config('app.url').'/token>; rel="token_endpoint"', $linkHeaders[2]); $this->assertSame('<'.config('app.url').'/revocation>; rel="revocation_endpoint"', $linkHeaders[3]); - $this->assertSame('<'.config('app.url').'/api/post>; rel="micropub"', $linkHeaders[4]); - $this->assertSame('<'.config('app.url').'/webmention>; rel="webmention"', $linkHeaders[5]); + $this->assertSame('<'.config('app.url').'/introspect>; rel="introspection_endpoint"', $linkHeaders[4]); + $this->assertSame('<'.config('app.url').'/api/post>; rel="micropub"', $linkHeaders[5]); + $this->assertSame('<'.config('app.url').'/webmention>; rel="webmention"', $linkHeaders[6]); } } diff --git a/tests/Feature/IndieAuthTest.php b/tests/Feature/IndieAuthTest.php index ba456748..08282228 100644 --- a/tests/Feature/IndieAuthTest.php +++ b/tests/Feature/IndieAuthTest.php @@ -29,9 +29,10 @@ class IndieAuthTest extends TestCase 'issuer' => config('app.url'), 'authorization_endpoint' => route('indieauth.start'), 'token_endpoint' => route('indieauth.token'), + 'revocation_endpoint' => route('indieauth.revocation'), + 'introspection_endpoint' => route('indieauth.introspection'), + 'introspection_endpoint_auth_methods_supported' => ['Bearer'], 'code_challenge_methods_supported' => ['S256'], - // 'introspection_endpoint' => 'introspection_endpoint', - // 'introspection_endpoint_auth_methods_supported' => ['none'], ]); } @@ -795,4 +796,31 @@ class IndieAuthTest extends TestCase $response->assertStatus(200); $response->assertExactJson(['active' => false]); } + + #[Test] + public function revocation_does_not_error_on_an_array_shaped_token_param(): void + { + $response = $this->post('/revocation', ['token' => ['a', 'b']]); + + $response->assertStatus(200); + } + + #[Test] + public function introspection_does_not_error_on_an_array_shaped_token_param(): void + { + $callerToken = resolve(TokenService::class)->getNewToken([ + 'me' => config('app.url'), + 'client_id' => 'https://app.example.com', + 'scope' => 'create', + ]); + + $response = $this->post( + '/introspect', + ['token' => ['a', 'b']], + ['HTTP_Authorization' => 'Bearer '.$callerToken] + ); + + $response->assertStatus(200); + $response->assertExactJson(['active' => false]); + } } diff --git a/tests/Feature/TokenServiceTest.php b/tests/Feature/TokenServiceTest.php index 6643452d..91b9e81d 100644 --- a/tests/Feature/TokenServiceTest.php +++ b/tests/Feature/TokenServiceTest.php @@ -71,4 +71,18 @@ class TokenServiceTest extends TestCase 'error_description' => 'The provided token did not pass validation', ]); } + + /** + * Request input for a "string" field can be sent as an array + * (e.g. token[]=a&token[]=b). Casting that to string throws in this app + * (warnings are promoted to exceptions), so findActive() must guard + * against it rather than assume its caller already validated the type. + */ + #[Test] + public function find_active_treats_non_string_input_as_absent(): void + { + $this->assertNull(MicropubToken::findActive(['a', 'b'])); + $this->assertNull(MicropubToken::findActive(null)); + $this->assertNull(MicropubToken::findActive(123)); + } } From 4ed98c30b2182fc6003c5ff6f16c049db118f0af Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Fri, 21 Aug 2026 15:32:09 +0100 Subject: [PATCH 11/33] Fix undefined property error on passkey login Webauthn\PublicKeyCredential has no $id property (only $rawId, inherited from Credential). Every passkey login attempt was throwing Undefined property: Webauthn\PublicKeyCredential::$id and failing with a 500. Encode $rawId the same way it's stored during registration to look up the matching Passkey record. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01LHN7V9kyZxrsxaspMSqoGJ --- app/Http/Controllers/Admin/PasskeysController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/PasskeysController.php b/app/Http/Controllers/Admin/PasskeysController.php index 8012f9b8..d9c18f5b 100644 --- a/app/Http/Controllers/Admin/PasskeysController.php +++ b/app/Http/Controllers/Admin/PasskeysController.php @@ -254,7 +254,7 @@ class PasskeysController extends Controller ], 400); } - $passkey = Passkey::firstWhere('passkey_id', $publicKeyCredential->id); + $passkey = Passkey::firstWhere('passkey_id', Base64UrlSafe::encodeUnpadded($publicKeyCredential->rawId)); if (! $passkey) { return response()->json([ 'success' => false, From 30ec2ec0e83977232e2ee4b1ab07123f82780452 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Fri, 21 Aug 2026 15:26:01 +0100 Subject: [PATCH 12/33] Initial work on better admin page styling --- public/assets/css/app.css | 2 +- public/assets/css/app.css.br | Bin 1233 -> 1477 bytes public/assets/css/app.css.map | 2 +- public/assets/css/app.css.zst | Bin 1479 -> 1762 bytes resources/css/admin-tokens.css | 65 +++++++++++++++++++ resources/css/app.css | 1 + resources/views/admin/tokens/index.blade.php | 52 ++++++++++----- 7 files changed, 104 insertions(+), 18 deletions(-) create mode 100644 resources/css/admin-tokens.css diff --git a/public/assets/css/app.css b/public/assets/css/app.css index 4e2ebd32..1d99e7bc 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -1,2 +1,2 @@ -@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:2/3}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{& button{appearance:none;background:0 0;border:none;&:hover{cursor:pointer}}& #theme-selector-dropdown{position-area:block-end span-inline-start;border:2px solid var(--clr-border);background-color:var(--clr-background);color:var(--clr-text);margin:0;position:absolute;& fieldset{border:0;flex-direction:row;gap:1ch;display:flex;& input{display:none}}}@media (prefers-reduced-motion:no-preference){& #theme-selector-dropdown{&:popover-open{opacity:1;transform:translateY(0)scale(1);@starting-style{opacity:0;transform:translateY(30px)scale(0)}}opacity:0;transition:transform, opacity, display allow-discrete, overlay allow-discrete;transform-origin:100% 0;transition-duration:.5s;transform:translateY(0)scale(0)}}}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}} +@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:2/3}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{& button{appearance:none;background:0 0;border:none;&:hover{cursor:pointer}}& #theme-selector-dropdown{position-area:block-end span-inline-start;border:2px solid var(--clr-border);background-color:var(--clr-background);color:var(--clr-text);margin:0;position:absolute;& fieldset{border:0;flex-direction:row;gap:1ch;display:flex;& input{display:none}}}@media (prefers-reduced-motion:no-preference){& #theme-selector-dropdown{&:popover-open{opacity:1;transform:translateY(0)scale(1);@starting-style{opacity:0;transform:translateY(30px)scale(0)}}opacity:0;transition:transform, opacity, display allow-discrete, overlay allow-discrete;transform-origin:100% 0;transition-duration:.5s;transform:translateY(0)scale(0)}}}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list{border-collapse:collapse;width:100%;margin-block-start:1em;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.6em .8em}& th{text-transform:uppercase;letter-spacing:.03em;opacity:.7;font-size:.85em}& tr.is-revoked{opacity:.6}& a{word-break:break-all}}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;line-height:1.5;display:inline-block}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145))}.badge-revoked{color:var(--clr-text)}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}} /*# sourceMappingURL=/assets/css/app.css.map */ diff --git a/public/assets/css/app.css.br b/public/assets/css/app.css.br index eeec79a35027043c8a76e16f3f60ad4ad6679731..e2d1ff369d415fd1742a121226c0afdf863f2167 100644 GIT binary patch literal 1477 zcmca8Fohw(@WGU`E4|sGmy5&&Z4o%kecyiiQnS~WL+b3j=Ot|CGd)`@`a!VGeYU<< zkawQh+Sq_La9j^j$mS#WZ#Lrqs;*2WH;q3p^V|CPZ;HX)jcH zn3V0CD_;2O-*VZBo?;WYE5BS*Teu}e(sJgPF6~5-H+OuSRz=P|ks!3xtM%}t{alNk zb}KEg?OW%Xu`eZRr+euhx0ip+?l$e0o&LDcwD2v9=UV~iXH)NNh?G6S(feI;!!M05 zmec>|1g_qz+OuPs%SZL3Wz1_^chnzQApgRp`Yp!_*|W~EdWpVs_ejqwSb23`57P?YZL%S!rGB@kggiMJ&=+-J!f}_id9kN6F1(v_$Vr&T zWYGo@!82+nmb4YrsdcScUB?_QcfQzq_qpP7zJQK5rTMcrFJEI$zTMY$nH^X)r97Lx z+{A#VsokUgcx1`?`ha+4hLDZ1Yv)XQ!n+i@K1W*J1u=`x$FOgruDPhBSR)ssiyn&+dYZQKXvPe-kXbS zx6BcJdS$uZ^4C|(w%OGfeJCkc*%`N0?AWcZ_im*>a;Z2F-Xgg9{O?6>>`-g(cbhW>>?euiro@igC%uIt#` zeoH}pgBe98UaiuY*;)8-#)u9TNc^^Mz}t^dR=KzhOQIlFQU z?;c*}sw93o?U>`LZI1uO-`(Qc(Cu4_lq2X&XC#j?!AqgEiqMS z(z@tB9d041yvMv-Zx!y8TB6L7D98B8Mmai2Oi)Mb^QjPJ%QKCo+I#Y5#0wo;=q#Ee z{r=j4*AG<+g9BafX#TpQQGN6B#w$O%dn1H{x-)e5HFQfFXGOp?f z-Yb?LcsH5oPMpS`$$$9hrTv;OID_ZqgiD=#R=JF=)Y5~O;b$`2#mQ}37b*rVdStL5 zeAQFlyJ}a?+_Po#{5Hw{(d3q7&&PKazpdHOEck=@u2`A>#Bg@w5XWDSFLgS7vhx16 zZjZXJtgrZ&`Sbs9DC%xd`Tdq9)iplj>yuye=EW8+`)bd&WWu+tsrzRCf3)ny#Rr*v zXRlR0tdp=d=>GP$cvm;a(;HiK6z06(@#t;5qhZ7J)I&~B%E2$cW>fygHNVy{96h%B zltD__ejatH!rvC>w(Kv->|!;Wp855$ZvHy^M++W*SYGcQJ#E$Fb+&2;1t<7!mE>Q# zGp0d!CV!y+fsNC;^>6NW_^?Fgd{c1F^WgXAt}4m+ujJmv>R6VSwc$b|XPnOKodU0o z=k!@zbXj7ly{$~eadXQXrB18P1^$;B`%-pCbWFNbcy0Y2m1iw?uFJoDHsjDnF8P1G z`A*GxJZ^73wTN2Zd6F4>VrAsE?#_9q<_E~We5$AZqwl~`eKq}% GiyHvv%jWq2 literal 1233 zcmX^3qnzP^&4ygj*WJubJl%;JoPT|5ZiPg5y;vBobhN?ZzN1IrMX&2gQ>X4<`TK6_ zs~Z{p9j$Zpe($$mxYj=Mvq@wHoYqop^ggR=ziV(Ye~X`0bBp`=%cD+9$Pl zQCyVH$!c+}v)(sO*LNLOl{$W1GW>s+v{~cLn-X)Vco1{UuUWN^~)VvDYM^NVRnJb z_BD|wz8UR47PoD#`8Lk^JW6+G+}twv>Z0}cRF=>1WPZqJF37^HqW*oJ?&}~WD}_z1 zQg8eBDpmeDzv7K&+d=*BS9UIL|35$J|AJ5)Uv4bzg z<*QL}TYf{1LCB)#!WXt4b}{^<>~~muM=dM=D`7d;&~>Grr}HMfdhko4c)IN}?%62^ zpOn}!HH3WpCt_=LG3I38a<7INv&2^R^`$UrB<|-su(x)8wtGlTry6_dY%GFu&24AmPzPhIVW$Rnz zgKw)$-+39Oy%XKEI`~|Qzw7OT@%%4rymi;@5)uBd^6c^9-D`#Hrc6HnnT_M4yv(yZ zM=E}te_~`mEB1gkp^;YHse{_F-Xe>Dmpi zG>czIr(`-UnY!>w`<{Ud&aawV=^-@SH0lKn#8 zJljj@mWkh=rB2$byT6^iGv?B)rvm+Vx9sJp;kwTM+izm@>WiUTmX{;drA}rmvi<)v z|Ngm%BmaN>5St*T)LExB@#6Zp7ZJa=Jq^&+ahB=0`sCZYn)RnI&sIJsv!K{@k&w=z MfY header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 2/3;\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n #theme-selector {\n button {\n appearance: none;\n border: none;\n background: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n /* This is the element with the [popover] attribute */\n #theme-selector-dropdown {\n position: absolute;\n position-area: block-end span-inline-start;\n margin: 0;\n border: 2px solid var(--clr-border);\n background-color: var(--clr-background);\n color: var(--clr-text);\n\n fieldset {\n border: 0;\n display: flex;\n flex-direction: row;\n gap: 1ch;\n\n input {\n display: none;\n }\n }\n }\n\n /*\n * This is the element with the [popover] attribute\n * Here we are styling the open and closing animations\n */\n @media (prefers-reduced-motion: no-preference) {\n #theme-selector-dropdown {\n &:popover-open {\n transform: translateY(0) scale(1);\n opacity: 1;\n\n /*\n * Start styles for the opening transition.\n * Added to :popover-open, but after the opened styles.\n */\n @starting-style {\n transform: translateY(30px) scale(0);\n opacity: 0;\n }\n }\n\n /*\n * End styles for the closing transition.\n */\n transform: translateY(0) scale(0);\n opacity: 0;\n\n /*\n * Enumerate transitioning properties, including display and overlay.\n */\n transition: transform, opacity, display allow-discrete, overlay allow-discrete;\n transition-duration: 0.5s;\n transform-origin: top right;\n }\n }\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n"],"names":[]} \ No newline at end of file +{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YEAE,oaAwBA,kECxBA,0BAIA,oBAIA,iIAME,0BAIA,uBAIA,iDAIE,yEAME,uBAON,oDHvCF,kBG+CE,SACE,oBKhDF,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CHrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MD/BA,sFAME,+CENF,gBACE,oDAKE,wBAMF,gMAQE,4DAME,uBAUJ,8CACE,2BACE,yDAQE,gBAAiB,8CAST,0KAahB,iEAIA,kGAKA,4DAIA,qDAIA,mICrFA,uEAKE,4GAQA,8EAOA,2BAIA,0BAKF,+IAUA,uCAKA,sEAIA,qCAIA,kNAQA","sources":["resources/css/app.css","resources/css/colours.css","resources/css/layout.css","resources/css/reset.css","resources/css/pagination.css","resources/css/theme-selector.css","resources/css/admin-tokens.css","resources/css/notes.css","resources/css/header.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 2/3;\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n #theme-selector {\n button {\n appearance: none;\n border: none;\n background: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n /* This is the element with the [popover] attribute */\n #theme-selector-dropdown {\n position: absolute;\n position-area: block-end span-inline-start;\n margin: 0;\n border: 2px solid var(--clr-border);\n background-color: var(--clr-background);\n color: var(--clr-text);\n\n fieldset {\n border: 0;\n display: flex;\n flex-direction: row;\n gap: 1ch;\n\n input {\n display: none;\n }\n }\n }\n\n /*\n * This is the element with the [popover] attribute\n * Here we are styling the open and closing animations\n */\n @media (prefers-reduced-motion: no-preference) {\n #theme-selector-dropdown {\n &:popover-open {\n transform: translateY(0) scale(1);\n opacity: 1;\n\n /*\n * Start styles for the opening transition.\n * Added to :popover-open, but after the opened styles.\n */\n @starting-style {\n transform: translateY(30px) scale(0);\n opacity: 0;\n }\n }\n\n /*\n * End styles for the closing transition.\n */\n transform: translateY(0) scale(0);\n opacity: 0;\n\n /*\n * Enumerate transitioning properties, including display and overlay.\n */\n transition: transform, opacity, display allow-discrete, overlay allow-discrete;\n transition-duration: 0.5s;\n transform-origin: top right;\n }\n }\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n .token-list {\n width: 100%;\n border-collapse: collapse;\n margin-block-start: 1em;\n\n th,\n td {\n text-align: left;\n padding: 0.6em 0.8em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.85em;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n font-size: 0.85em;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n }\n\n .badge-revoked {\n color: var(--clr-text);\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n"],"names":[]} \ No newline at end of file diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst index d258af4911e60e0e789b20b7c9b38a6b5d8fb617..72d74415073995b6a8e3de562975b98edab3f986 100644 GIT binary patch literal 1762 zcmdPcs{c2oS#YTtgOuM9UJU_X7yb=Q7v^{9YchQg+#GF|Vr1C(;?u#R6dktTkG9{L zv2)F;EDj6N^9&amPBZ8iZHYT~qAvSJ>BF*pJ=dNuVDx=#@bYfAj_2<$Z!aDdyzl#A z)7|CAY7X68@KbnmdrkK~_t>I+>GRjlWm*{4_LlL{&$7upI}d79AF-nWJEdDai$vZsf&DJNy7VfX_Fx|amug=+TmYAG5 zUq(Ob#U=$^uFT3MM<-6}oZV}kc#L)HoJqBFl`P`^PWt!t{lyn2HW}=%m zYI}C6Y);&3pR{eu`4!SRfgA2`jji;TP~wQa$~fuE;d?)|MKp!_Yh?Ik)@>Hz`&@SC zQX{iSqmIGPY0h@fXE=GWTrv<_Y0AU0+Q@IhrxSttyEk4vKf&$$oreKzt1lP7$&O_W zx^_6i;l#x*pUC;k6CXZVT<9Dr!upUWkZ&=YjzCaze`f@rwDaNwThHuIbJnri&Y9b^ zCfR$f-tS_o&9OTR-`AdeKlzxrg5628OP3Dr)ZpT<@-5$^b+g{}m!rhyQ$43kXUF_r zbuZA`Rikd5a+CH;)@T90{Ht}=bLQW@(OY9^^w;VC9@U>WSlBL~T2_3qIkYNvWowkDxaCs z&-d3~DY*Fa^L3U>Wt>(MTJ$2=mt1qN_VatS_49I<>qjEk=U=%NUN5+qop0MrcTcGx zg`>6>t0x5<|K`6kU{a>9%A6yMJys+yU~sZL=~Y&}nw#y=ro>>YNmd(z%(q#e*%n;7 zL3sPu)YG1ibNXNRO*?YO?GoSOHw}B@%aTpM?N^n|dV5~i^Y96``4cD2DrOMk>MBZ^ z;j&gYaDVpG7DiScDT^nIr-+w)_H1xsIB3}g}Et-N0m zsbO|lc_A+^@7@1PI#Q>VS>!o8oa;Fu&{uz_?vOdpMt!2%XMboN9d6_&41$cLc zE_Jj>m~dF_ztrW%$`yqhgFM_)TvR-{CLMF+IFumKdh0Et&_xHnNv9N=JB)&qoE9l) ztqf^16`rtp!2~Jo)m&?w^iJmA7UC}tTM;K%(c&xV#Q7rh%BGLL;4T635X77D* z@fFJ*-H7F}{4bTGw4a7nODcSxbFa+p2-C{l)oJ-3oSN1D+V-$LsO1h_;7>s6 zzLTOg(VQr0?l?zB56m;dd3(_!|ojcdc-aGrHPy4%#0IbJeMIK$bvwYqax zpk?NaX}s%xWKZ5yYjDQeKcIJeCtLOA?3hlazpXcgFIx0WDQ!8eeo*UCK!H(G5v{)R&w2m$9wfyTh2VLV$$Qv;80<8 zS>n26Qo&10zP8x@s-6>N%5{8ZXDZjdmEc~jxwx?Mw5AW+-;-Ze_&+|F=yh$!!IzV& zZ!%^ST?*Qwd8O&v{tY#%6|eFVOj5ojcilPqbk&OLjnSn{YKf;kH-Edz?&)5Z%$fDi zD&*C(lxFECTYh-#t1z%Jd{D2L9U-sHy2QwCZm4>j3&X63wpTw`pV*$~?8wgfiqR#} zfv4Svx!|VFz2?iT7hS?#joepGObz{ic9HXq#tnK7!MA%HWh(AHy6n92OwjCnu{(z= z*ROs)B_WsX_NJtJ1xs6_8ysIQS=;=5THy-WIlWIxBr@1S#142|VY=niQ6YQpfw}x@ zg*(}k4L3F^Oju^nm6T{xamP*EAyjU0b+LWhhI#65GM>&j-4%ZMp4pM&-+Ok7XS;5b z%TLJv#_7ba@UMN&w|%XS0*Xr`mq&>&mgdW9{_AtHKw=xuyw_X5E$}ROZ{wp?sXXnq p$dNX;6PxSKbDhuEE?+nE=)7~^vXw-h9WMW8CnCI>DZs$g3IOtVP!0e9 literal 1479 zcmdPcs{c2If$yv?!zot}9(4uZIqVyle#{oz_K<6P@2tD$G`AdM5Z-wzrLKh6_(2(0 zwJ-~Zpp)wkhHVUc81Bcoc-~l??x)B1;#E`s8@Y{7|IV`fdvTq6iPx^>WLpN+p_$* zrMzc_(Q4N)Evt6@C2Mup>;91qtk_W3+iF|1BYh$_V@6`bG}bL97mPCRt`L>dYEM4? z)p*v0u#et9uI_ekR_?O<5fFOr?Cy;+7efnzJ$E_I{eN@ohVO@ax9VJYesbO%_1_{a zf^L4FmV3(2)IGZ2|Io8L7f-aADqp`gbye5m6|T&W_tu6ic^sp|V-QudAy=b&kwT5) zO3x*XJS<1Ll5;Vy_cOn+0MGAKJeI*3sa%SN;9_>J!hh7p8qKLJRm# z%;A3)HRp`iZ|O-|UKhT}9J%6Oetr@s-xT3)l|=W#DbM20t4!p5`u@a(N2gW>m~^!& zP2_E2?zr-3*@-tfMnV&M&txqqxiLj6C0{Ic`b!6Ozvu3Kx`~@zlj}sLtmtW(t$O{T zMSaRPwI}6T>ki+D4Hl~7Z@uT=G(-P zi$_jt{M?kXPF1en@?rNfrN8%1Br$6m*tHPA<<$y?kQRRGWa- z$dpjUZ#K7+zkhJ=jXjt2)F*G-62nWr+svOv>Aim`xcJuIlmze4Qm5 zoAD=nO=rQHY~9|J?Mtd&YdJY6%v@7+ZTgZ%y}i>ezsSs-lk)9+e){H*jRnq@4pO#aS0mn?xWctm_EOKYrSH=p=y!Aa z{Zlzwe%4)0@c!Yqm3(y(rHhzEnH=n9C&o9;d|0$0FZ!BPv&^0N_Xbb)6{<^Fsrk-3 zDz(8NZQjAxB7uv&Cxi&b3M#lZ`_8doD7(0QqM!dXTom@%bm0mukE97A^l)5W&Gd`;eDPQ0wyI^#5M(F6R8$ z=(cV$*Sj9=H4`lC6}Xt^WTtnBho5__U?D4TRwcA$`NEW})zu#rEfmbUpI`jlu8&?Ziq|K7fnxVShAZ|5}-oc2} z1Zn+8-zpyKgmwFH@^k6`ZgFAf_~WcqF@H}&(Zgkxi+731_84#Rt~-&sMk0f)yL6Xz zhUyOse!ZyyljoMqN|w#|bo2e~hu<@n&hzfPap|U-Ur6-6AAOhF5AlSaGRmF-0EE@J ASpWb4 diff --git a/resources/css/admin-tokens.css b/resources/css/admin-tokens.css new file mode 100644 index 00000000..42d83b13 --- /dev/null +++ b/resources/css/admin-tokens.css @@ -0,0 +1,65 @@ +@layer components { + .token-list { + width: 100%; + border-collapse: collapse; + margin-block-start: 1em; + + th, + td { + text-align: left; + padding: 0.6em 0.8em; + border-bottom: 1px solid var(--clr-border); + vertical-align: middle; + } + + th { + font-size: 0.85em; + text-transform: uppercase; + letter-spacing: 0.03em; + opacity: 0.7; + } + + tr.is-revoked { + opacity: 0.6; + } + + a { + word-break: break-all; + } + } + + .badge, + .token-list button.revoke { + display: inline-block; + padding: 0.2em 0.7em; + border-radius: 999px; + font-size: 0.85em; + line-height: 1.5; + white-space: nowrap; + } + + .badge { + background: transparent; + border: 1px solid currentcolor; + } + + .badge-active { + color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg)); + } + + .badge-revoked { + color: var(--clr-text); + } + + .token-list button.revoke { + background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg)); + color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg)); + border: 1px solid transparent; + cursor: pointer; + transition: background-color 150ms ease; + } + + .token-list button.revoke:hover { + background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg)); + } +} diff --git a/resources/css/app.css b/resources/css/app.css index f25e47e3..1f787028 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -8,3 +8,4 @@ @import url('notes.css'); @import url('pagination.css'); @import url('theme-selector.css'); +@import url('admin-tokens.css'); diff --git a/resources/views/admin/tokens/index.blade.php b/resources/views/admin/tokens/index.blade.php index 8836ab07..fe787ad9 100644 --- a/resources/views/admin/tokens/index.blade.php +++ b/resources/views/admin/tokens/index.blade.php @@ -7,21 +7,41 @@ @if($tokens->isEmpty())

No tokens have been issued.

@else -
    - @foreach($tokens as $token) -
  • - {{ $token->client_id }} — scope: {{ $token->scope }} — issued {{ $token->created_at->diffForHumans() }} - @if($token->isRevoked) - — revoked {{ $token->revoked_at->diffForHumans() }} - @else - - {{ csrf_field() }} - {{ method_field('PUT') }} - -
  • - @endif - - @endforeach -
+ + + + + + + + + + + + @foreach($tokens as $token) + + + + + + + + @endforeach + +
ClientScopeIssuedStatusAction
{{ $token->client_id }}{{ $token->scope }} + @if($token->isRevoked) + Revoked {{ $token->revoked_at->diffForHumans() }} + @else + Active + @endif + + @unless($token->isRevoked) +
+ {{ csrf_field() }} + {{ method_field('PUT') }} + +
+ @endunless +
@endif @stop From 6a0bb623fc79e389a0ab5cb5660e241a7322ed69 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Fri, 21 Aug 2026 16:05:48 +0100 Subject: [PATCH 13/33] Restyle the Micropub tokens admin table Breaks the table out of the centred content column to full page width via a subgrid on
(adds a reusable .full-bleed utility), and reworks the table itself to match a Claude Design mockup: a rounded card wrapper, scope values as pill chips, a dotted status pill, and proportional column widths. Colours use the site's existing --primary-hue/light-dark() tokens so it stays correct in both themes. The card scrolls horizontally on narrow viewports instead of clipping content. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01LHN7V9kyZxrsxaspMSqoGJ --- public/assets/css/app.css | 2 +- public/assets/css/app.css.br | Bin 1477 -> 1690 bytes public/assets/css/app.css.map | 2 +- public/assets/css/app.css.zst | Bin 1762 -> 2010 bytes resources/css/admin-tokens.css | 84 +++++++++++++++++-- resources/css/layout.css | 12 ++- resources/views/admin/tokens/index.blade.php | 80 ++++++++++-------- 7 files changed, 135 insertions(+), 45 deletions(-) diff --git a/public/assets/css/app.css b/public/assets/css/app.css index 1d99e7bc..2d06d701 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -1,2 +1,2 @@ -@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:2/3}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{& button{appearance:none;background:0 0;border:none;&:hover{cursor:pointer}}& #theme-selector-dropdown{position-area:block-end span-inline-start;border:2px solid var(--clr-border);background-color:var(--clr-background);color:var(--clr-text);margin:0;position:absolute;& fieldset{border:0;flex-direction:row;gap:1ch;display:flex;& input{display:none}}}@media (prefers-reduced-motion:no-preference){& #theme-selector-dropdown{&:popover-open{opacity:1;transform:translateY(0)scale(1);@starting-style{opacity:0;transform:translateY(30px)scale(0)}}opacity:0;transition:transform, opacity, display allow-discrete, overlay allow-discrete;transform-origin:100% 0;transition-duration:.5s;transform:translateY(0)scale(0)}}}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list{border-collapse:collapse;width:100%;margin-block-start:1em;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.6em .8em}& th{text-transform:uppercase;letter-spacing:.03em;opacity:.7;font-size:.85em}& tr.is-revoked{opacity:.6}& a{word-break:break-all}}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;line-height:1.5;display:inline-block}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145))}.badge-revoked{color:var(--clr-text)}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}} +@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:1/-1;grid-template-columns:subgrid;display:grid;&>*{grid-column:2/3}&>.full-bleed{grid-column:1/-1}}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{& button{appearance:none;background:0 0;border:none;&:hover{cursor:pointer}}& #theme-selector-dropdown{position-area:block-end span-inline-start;border:2px solid var(--clr-border);background-color:var(--clr-background);color:var(--clr-text);margin:0;position:absolute;& fieldset{border:0;flex-direction:row;gap:1ch;display:flex;& input{display:none}}}@media (prefers-reduced-motion:no-preference){& #theme-selector-dropdown{&:popover-open{opacity:1;transform:translateY(0)scale(1);@starting-style{opacity:0;transform:translateY(30px)scale(0)}}opacity:0;transition:transform, opacity, display allow-discrete, overlay allow-discrete;transform-origin:100% 0;transition-duration:.5s;transform:translateY(0)scale(0)}}}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list-wrapper{border:1px solid var(--clr-border);background:light-dark(oklch(99% .02 var(--primary-hue)),oklch(22% .05 var(--primary-hue)));border-radius:16px;margin-block-start:1em;overflow:auto hidden}.token-list{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.9em 1.2em}& th{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:.8em;font-weight:700}& tr.is-revoked{opacity:.6}& a{word-break:break-all}& th:first-child,& td:first-child{width:31%}& th:nth-child(2),& td:nth-child(2){width:24%}& th:nth-child(3),& td:nth-child(3){width:15%}& th:nth-child(4),& td:nth-child(4){width:16%}& th:nth-child(5),& td:nth-child(5){text-align:right;width:14%}& tr:last-child td{border-bottom:none}}.scope-chips{flex-wrap:wrap;gap:.4em;display:flex}.scope-chip{background:light-dark(oklch(92% .05 var(--primary-hue)),oklch(35% .08 var(--primary-hue)));white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;display:inline-block}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;align-items:center;gap:.4em;padding:.3em .8em;font-size:.85em;font-weight:600;line-height:1.5;display:inline-flex}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145));& .dot{background:currentColor;border-radius:50%;width:6px;height:6px}}.badge-revoked{color:var(--clr-text);opacity:.7}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}} /*# sourceMappingURL=/assets/css/app.css.map */ diff --git a/public/assets/css/app.css.br b/public/assets/css/app.css.br index e2d1ff369d415fd1742a121226c0afdf863f2167..9ca789b9af38df7f5e3f37fefbeae7419e9b5312 100644 GIT binary patch literal 1690 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 GiyHvv%jWq2 diff --git a/public/assets/css/app.css.map b/public/assets/css/app.css.map index e224fe5b..88c58430 100644 --- a/public/assets/css/app.css.map +++ b/public/assets/css/app.css.map @@ -1 +1 @@ -{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YEAE,oaAwBA,kECxBA,0BAIA,oBAIA,iIAME,0BAIA,uBAIA,iDAIE,yEAME,uBAON,oDHvCF,kBG+CE,SACE,oBKhDF,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CHrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MD/BA,sFAME,+CENF,gBACE,oDAKE,wBAMF,gMAQE,4DAME,uBAUJ,8CACE,2BACE,yDAQE,gBAAiB,8CAST,0KAahB,iEAIA,kGAKA,4DAIA,qDAIA,mICrFA,uEAKE,4GAQA,8EAOA,2BAIA,0BAKF,+IAUA,uCAKA,sEAIA,qCAIA,kNAQA","sources":["resources/css/app.css","resources/css/colours.css","resources/css/layout.css","resources/css/reset.css","resources/css/pagination.css","resources/css/theme-selector.css","resources/css/admin-tokens.css","resources/css/notes.css","resources/css/header.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 2/3;\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n #theme-selector {\n button {\n appearance: none;\n border: none;\n background: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n /* This is the element with the [popover] attribute */\n #theme-selector-dropdown {\n position: absolute;\n position-area: block-end span-inline-start;\n margin: 0;\n border: 2px solid var(--clr-border);\n background-color: var(--clr-background);\n color: var(--clr-text);\n\n fieldset {\n border: 0;\n display: flex;\n flex-direction: row;\n gap: 1ch;\n\n input {\n display: none;\n }\n }\n }\n\n /*\n * This is the element with the [popover] attribute\n * Here we are styling the open and closing animations\n */\n @media (prefers-reduced-motion: no-preference) {\n #theme-selector-dropdown {\n &:popover-open {\n transform: translateY(0) scale(1);\n opacity: 1;\n\n /*\n * Start styles for the opening transition.\n * Added to :popover-open, but after the opened styles.\n */\n @starting-style {\n transform: translateY(30px) scale(0);\n opacity: 0;\n }\n }\n\n /*\n * End styles for the closing transition.\n */\n transform: translateY(0) scale(0);\n opacity: 0;\n\n /*\n * Enumerate transitioning properties, including display and overlay.\n */\n transition: transform, opacity, display allow-discrete, overlay allow-discrete;\n transition-duration: 0.5s;\n transform-origin: top right;\n }\n }\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n .token-list {\n width: 100%;\n border-collapse: collapse;\n margin-block-start: 1em;\n\n th,\n td {\n text-align: left;\n padding: 0.6em 0.8em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.85em;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n font-size: 0.85em;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n }\n\n .badge-revoked {\n color: var(--clr-text);\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n"],"names":[]} \ No newline at end of file +{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YEAE,oaAwBA,kECxBA,0BAIA,oBAIA,iIAME,0BAIA,mEAKE,oBAIA,gCAKF,iDAIE,yEAME,uBAON,oDHjDF,kBGyDE,SACE,oBC1DF,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CGrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MD/BA,sFAME,+CENF,gBACE,oDAKE,wBAMF,gMAQE,4DAME,uBAUJ,8CACE,2BACE,yDAQE,gBAAiB,8CAST,0KAahB,iEAIA,kGAKA,4DAIA,qDAIA,mIHrFA,iNAWA,mFAME,6GAQA,6FAQA,2BAIA,yBAIA,4CAKA,8CAKA,8CAKA,8CAKA,+DAMA,uCAKF,kDAMA,qMAYA,0LAaA,uCAKA,sEAGE,uEAQF,gDAKA,kNAQA","sources":["resources/css/app.css","resources/css/colours.css","resources/css/reset.css","resources/css/layout.css","resources/css/admin-tokens.css","resources/css/header.css","resources/css/pagination.css","resources/css/notes.css","resources/css/theme-selector.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: subgrid;\n\n > * {\n grid-column: 2/3;\n }\n\n > .full-bleed {\n grid-column: 1/-1;\n }\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer components {\n .token-list-wrapper {\n margin-block-start: 1em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n overflow: auto hidden;\n background: light-dark(\n oklch(99% 0.02 var(--primary-hue)),\n oklch(22% 0.05 var(--primary-hue))\n );\n }\n\n .token-list {\n width: 100%;\n min-width: 640px;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n text-align: left;\n padding: 0.9em 1.2em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.8em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n\n th:nth-child(1),\n td:nth-child(1) {\n width: 31%;\n }\n\n th:nth-child(2),\n td:nth-child(2) {\n width: 24%;\n }\n\n th:nth-child(3),\n td:nth-child(3) {\n width: 15%;\n }\n\n th:nth-child(4),\n td:nth-child(4) {\n width: 16%;\n }\n\n th:nth-child(5),\n td:nth-child(5) {\n width: 14%;\n text-align: right;\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n }\n\n .scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4em;\n }\n\n .scope-chip {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n background: light-dark(\n oklch(92% 0.05 var(--primary-hue)),\n oklch(35% 0.08 var(--primary-hue))\n );\n font-size: 0.85em;\n white-space: nowrap;\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n padding: 0.3em 0.8em;\n border-radius: 999px;\n font-size: 0.85em;\n font-weight: 600;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentcolor;\n }\n }\n\n .badge-revoked {\n color: var(--clr-text);\n opacity: 0.7;\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n","@layer components {\n #theme-selector {\n button {\n appearance: none;\n border: none;\n background: none;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n /* This is the element with the [popover] attribute */\n #theme-selector-dropdown {\n position: absolute;\n position-area: block-end span-inline-start;\n margin: 0;\n border: 2px solid var(--clr-border);\n background-color: var(--clr-background);\n color: var(--clr-text);\n\n fieldset {\n border: 0;\n display: flex;\n flex-direction: row;\n gap: 1ch;\n\n input {\n display: none;\n }\n }\n }\n\n /*\n * This is the element with the [popover] attribute\n * Here we are styling the open and closing animations\n */\n @media (prefers-reduced-motion: no-preference) {\n #theme-selector-dropdown {\n &:popover-open {\n transform: translateY(0) scale(1);\n opacity: 1;\n\n /*\n * Start styles for the opening transition.\n * Added to :popover-open, but after the opened styles.\n */\n @starting-style {\n transform: translateY(30px) scale(0);\n opacity: 0;\n }\n }\n\n /*\n * End styles for the closing transition.\n */\n transform: translateY(0) scale(0);\n opacity: 0;\n\n /*\n * Enumerate transitioning properties, including display and overlay.\n */\n transition: transform, opacity, display allow-discrete, overlay allow-discrete;\n transition-duration: 0.5s;\n transform-origin: top right;\n }\n }\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n"],"names":[]} \ No newline at end of file diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst index 72d74415073995b6a8e3de562975b98edab3f986..d7479672cf281dfbba69bb5d09034c9262bf0692 100644 GIT binary patch delta 2008 zcmaFFdyAh>W2^q(lz7opJBF-~4}25(r0S2HW%}#>|4ziUO{-QZF9^BE@QC37!=E?D z%ARyjd>Q`hx$nv2Y9CzZT{~@gGoN?2(VcVCFaDY{<$(qN;(L2fOxhBDUoKVV<6UO` z+k3OlsL%186>nI5V*88gE2__{zumm0%a@gULrP&@zWK=s(mk8p-!Sh!IN@j4spBVp z#+&9{v3XOkc|1F7YmUXwU2jrkYHBAq9Dd20P%8T@WxeYB!lUH(NgG z{_twjnYOS0IwddLEzdJ>J6LzU>}d6&3l1Cq>%Od*u=Lu$JCo{7=Hz^_)C?(pw@OCE z)A`NZ{Z;;~eAi14A8Xn$OUjigC?h1)u8)=Pdt_&OrFGt_1CCt|Vm|wxPB?G5?2=HU z1y5TRAM?RgJyVzb_@be|d*jvf6WqSv`53^q`fBl;?7OZ}Vn;d@dVC@kS11;Jy0~Mb z!Re-gHVyy9DlQzW4jy;Wsc-K+7`S2G3e&>A^Dm<=9lohKp)_aJ)zo^w^ljSa@Am5d ztiAMu>4^GGwlJ>7$O&F9C^$fH^6yW!0+#nG;`b(3JPG z+_31*jeiEW{iZh0-LY0b+D|IId6}!}^@(2&YgntipME!jmqCb&>*)=X&Zy``b=OaE zGI5CLESMr(@;NKawZVz$z}}t=M#EK)Etpg?8x>TG-uV_RnxB{0A=ba?!;Q8*`Fqwp zvEb%utN z?ZLNWT@i5`_&!OM%d~kMzF;ut*Zm36rODbGrDwGX7FC~@akecL;}&}DCAn+bp3YiR zb)N9UZ2PCay|Y+N^PBQQZhsa_Ufz3Kz9rWc&;MCoC~>sj>BP$!2RtRe`iR$VxXE%{ zYpe2alb7v{ZCf_?=_tCF2Yq_9R`7}q-$};C(<>S`26?%-xTtt?O*)pyVc6xFp?L4n z0h4nwSKb^|;o_<@GY@%nNtcwB{|FlNtA@;fvMBhi|h5-nRuF`ugF(f_APwM`wh! zZalKwQH(q8634}vTn1rh)^qW>iv-Ag+4SJ*SJgFK%NTYP@!UBOe2&w6RddsW`QB_R z6}azAlfG8TpvHK9qDPef=LOrMx2~7|x>951g6*QFoWDG>!@qL9{=2~=vEHAr_!^t9 z0PmguTW0LFS;4Pi#k}{Ta`vLl^J~sCW|!uKXBNa?sWfEXf7bHvtlks$OQkysorJu$ zrs`Q7IPfXvrgczHpt_p?>)SRJXXDDPrvxgJ7T*4_W&adAo79UopRc~JQhU?!%D|LG zuASBU!|R}V&jjq6yK2|>`=$mcANW_#XnrSW!Ik4$Ik}gF+l*_o1oT)+-~PEiyT6y? zPTsU>OG^{v(M?62Vk)^t!MR&!+0PF;$HTLmQQ@n{m9=? zZ+x@Gc*^~6D$=)~$x1QzW^))jn6bxR{%*g@ykJ#)l#9 z9gEcl3Esf(vm0lY&1Rg*)?|>jZ%)Y>&cC8{8=~u5kBO>qedyeL_T39R<>v_p^P>3- z18x7!IC$fC)~-ipZtFkQyqzx0+;&-ul( zzCFokH2mxo9P>EBdr1W&m(uk`F~2Up5;?Z<_3Adv^;uO%rX4*#^z}8 zyC0Z^Q!OjIP2G5SSd1DqwF0W|)}BySm~wjSm9{wwe)Cp;S{Yq06vgzlx7zRB9+{Qj z9Sf|ib5721e~_Ulq7YcMPjus6#=dm+n#WURBWC5#zQ4tl`+$j)xOtM2M{S9-STFl|y5qCM4h{xQcHHb6Sk%uo`>Q_cP_=5k nXXAA5N3DrT=GKkNij_9K)Oq+kCf@G%x#R7#(n5`n-0TDZuSd;a delta 1758 zcmcb`|A?1QW2^q(lxD%DW(-n(M|dalN!6$5u>F3t{mzV?YgT1(ScslyxX5stLBD8A z+_@8V**8ibmhJ1g_Iv@O?_-0Pce`~we}8#<@u=W^-w&JaEY)dp#v>GN0AbkF%8{8&$-eeaVB-L=zr)#Inn zFy|X1{W2{@}Osbu$WD)mw(!a0oFTOaj$zWf}^zEN-Ch+}K+p|k$bK+k6q-|TyuaM3O z+;D$uY^A@15=ZP+#z|ie-}|X8qAAp0Bf~GVZnF^I=dwGO8ta)w8g&eQPII<d(|)kc03KAi~E-@Wnb`3Y{{?>r1(TYb6sO?E76(6z%64ks>l`9#iNp7`*| z;zH+05!Q!1fqaYEbOeH$`#U4}q@5Qh*m`DvnzN48cFx?UHOby<^?nyyZI0bp_`de! z`^m?|73@x$UAlB|rv?{Cy_IkI9<7`8uD={5HlOM_T{=7F_o{n=)~*_L>y(?cU$RCE z_~l=%vz{~m?v36WL!-Y=|M#f=yureD`P8!Fi_M``u`6rC*?+tK4Q`hFVz4$VNL%^x z#g}<|J!hVO6}a>km%Cg)62U(I%C+!%!Nu%++h)3ZN(Ct#wY6A1Dd6}w|CIrg zGJRF%99itKB6$IWljTXTvg*~`Y=<@_23t+C+7M*E&HBu?;L;7k+rOrs_I#Yv|GID5 zkvnde_!hru*b`rtZ2E1#s$|yN^SYjgPq@|3pEzk&F@q3SS5e9gm$kZq`?H_6FtYMU zSv*-hMZDy*XM+>dfxSJfZn?AE7+5sVU;bdibvWr@Ad3iZ<^76C4YR|_3we2Y@BUxX zkvgr+BG2L5gKx*WBFZKl|Iu{Nz@Tf{Kl7GdMW2_I?Aj>V)8*Tc`QlFZgxl56#9k&_ z3%vG{tiM)wCVidpf335NA~-B%g)KBE&wIIu-^_Z!##Lo0{c3+5E=(x9Hc|D-3qP|Q zos-?$_2iBfdQ7{umOHKJ_0O2Bm-TtBYAtK7ESgp=%FEo|F#f+dDx0L!HO1NNhi)1p;u=8t}vazJBw5P@3~DObzyUgUtgH@lKbU^ za&gl$6FhwKd^watIX z^_7La_m=LX*!i&+b{~7O=I`O-s!6K$!K>~*Vfj%J9lmD8G7bOm@bDG0mDaL`MjQD> zty<#vV|Sp}$pyVaw^^TQPiwJyYP8Bav7F0vj;ON!oGaIoCfRg^6kNYv&mwguu zX0_j+8YOqj2;KM)#Wvya6Mhl5i|J2Xw36#iJl?Cv+H&S`6_XxU28Rl(%M#ZmlL}s1 z^0meGSM{7IQ?BDPJ5#yttpxXK&BcY4r!{@p{+|4*!vFEXM6YW*4!)dJeUmYx=u*&@ zdd(|M*Ys%LjE^S zCw7H@?Q_2Eb8mGNP+S_hJW71AG+$QpU!Ri&65Dv@z25q5foH*c8y~Go>wLa;`MQ}$=bihOtt9g7aQQzw5#iNL0S2a40FG8ps{jB1 diff --git a/resources/css/admin-tokens.css b/resources/css/admin-tokens.css index 42d83b13..a0db29e5 100644 --- a/resources/css/admin-tokens.css +++ b/resources/css/admin-tokens.css @@ -1,21 +1,34 @@ @layer components { + .token-list-wrapper { + margin-block-start: 1em; + border: 1px solid var(--clr-border); + border-radius: 16px; + overflow: auto hidden; + background: light-dark( + oklch(99% 0.02 var(--primary-hue)), + oklch(22% 0.05 var(--primary-hue)) + ); + } + .token-list { width: 100%; + min-width: 640px; + table-layout: fixed; border-collapse: collapse; - margin-block-start: 1em; th, td { text-align: left; - padding: 0.6em 0.8em; + padding: 0.9em 1.2em; border-bottom: 1px solid var(--clr-border); vertical-align: middle; } th { - font-size: 0.85em; + font-size: 0.8em; + font-weight: 700; text-transform: uppercase; - letter-spacing: 0.03em; + letter-spacing: 0.08em; opacity: 0.7; } @@ -26,14 +39,65 @@ a { word-break: break-all; } + + th:nth-child(1), + td:nth-child(1) { + width: 31%; + } + + th:nth-child(2), + td:nth-child(2) { + width: 24%; + } + + th:nth-child(3), + td:nth-child(3) { + width: 15%; + } + + th:nth-child(4), + td:nth-child(4) { + width: 16%; + } + + th:nth-child(5), + td:nth-child(5) { + width: 14%; + text-align: right; + } + + tr:last-child td { + border-bottom: none; + } + } + + .scope-chips { + display: flex; + flex-wrap: wrap; + gap: 0.4em; + } + + .scope-chip { + display: inline-block; + padding: 0.2em 0.7em; + border-radius: 999px; + background: light-dark( + oklch(92% 0.05 var(--primary-hue)), + oklch(35% 0.08 var(--primary-hue)) + ); + font-size: 0.85em; + white-space: nowrap; } .badge, .token-list button.revoke { - display: inline-block; - padding: 0.2em 0.7em; + display: inline-flex; + align-items: center; + gap: 0.4em; + padding: 0.3em 0.8em; border-radius: 999px; font-size: 0.85em; + font-weight: 600; line-height: 1.5; white-space: nowrap; } @@ -45,10 +109,18 @@ .badge-active { color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg)); + + .dot { + width: 6px; + height: 6px; + border-radius: 50%; + background: currentcolor; + } } .badge-revoked { color: var(--clr-text); + opacity: 0.7; } .token-list button.revoke { diff --git a/resources/css/layout.css b/resources/css/layout.css index dc5f753f..44fda96f 100644 --- a/resources/css/layout.css +++ b/resources/css/layout.css @@ -18,7 +18,17 @@ } > main { - grid-column: 2/3; + grid-column: 1/-1; + display: grid; + grid-template-columns: subgrid; + + > * { + grid-column: 2/3; + } + + > .full-bleed { + grid-column: 1/-1; + } } > footer { diff --git a/resources/views/admin/tokens/index.blade.php b/resources/views/admin/tokens/index.blade.php index fe787ad9..c9443e29 100644 --- a/resources/views/admin/tokens/index.blade.php +++ b/resources/views/admin/tokens/index.blade.php @@ -7,41 +7,49 @@ @if($tokens->isEmpty())

No tokens have been issued.

@else - - - - - - - - - - - - @foreach($tokens as $token) - - - - - - - - @endforeach - -
ClientScopeIssuedStatusAction
{{ $token->client_id }}{{ $token->scope }} - @if($token->isRevoked) - Revoked {{ $token->revoked_at->diffForHumans() }} - @else - Active - @endif - - @unless($token->isRevoked) -
- {{ csrf_field() }} - {{ method_field('PUT') }} - -
- @endunless -
+
+ + + + + + + + + + + + @foreach($tokens as $token) + + + + + + + + @endforeach + +
ClientScopeIssuedStatusAction
{{ $token->client_id }} + + @foreach(explode(' ', $token->scope) as $scope) + {{ $scope }} + @endforeach + + + @if($token->isRevoked) + Revoked {{ $token->revoked_at->diffForHumans() }} + @else + Active + @endif + + @unless($token->isRevoked) +
+ {{ csrf_field() }} + {{ method_field('PUT') }} + +
+ @endunless +
+
@endif @stop From 714cd95d79b56c8d7548a357c3a9ef19736a4ac4 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 22 Aug 2026 10:42:16 +0100 Subject: [PATCH 14/33] Drop RSS/Atom feeds, support JSON feeds only Removes the RSS and Atom feed routes, controller methods, and views for both the blog and notes feeds, keeping JSON (and JF2) as the only supported feed formats. Also serves the JSON feeds with the spec-required application/feed+json MIME type instead of the generic application/json. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01AXyzNvQZPQgBoSZwW7cLG8 --- app/Http/Controllers/FeedsController.php | 65 +++--------------------- resources/views/articles/atom.blade.php | 20 -------- resources/views/articles/rss.blade.php | 26 ---------- resources/views/master.blade.php | 8 +-- resources/views/notes/atom.blade.php | 20 -------- resources/views/notes/rss.blade.php | 26 ---------- routes/web.php | 4 -- tests/Feature/FeedsTest.php | 52 +------------------ 8 files changed, 12 insertions(+), 209 deletions(-) delete mode 100644 resources/views/articles/atom.blade.php delete mode 100644 resources/views/articles/rss.blade.php delete mode 100644 resources/views/notes/atom.blade.php delete mode 100644 resources/views/notes/rss.blade.php diff --git a/app/Http/Controllers/FeedsController.php b/app/Http/Controllers/FeedsController.php index a30c89dc..9aeb4abb 100644 --- a/app/Http/Controllers/FeedsController.php +++ b/app/Http/Controllers/FeedsController.php @@ -7,66 +7,13 @@ namespace App\Http\Controllers; use App\Models\Article; use App\Models\Note; use Illuminate\Http\JsonResponse; -use Illuminate\Http\Response; class FeedsController extends Controller { - /** - * Returns the blog RSS feed. - */ - public function blogRss(): Response - { - $articles = Article::where('published', '1')->latest('updated_at')->take(20)->get(); - $buildDate = $articles->first()->updated_at->toRssString(); - - return response() - ->view('articles.rss', compact('articles', 'buildDate')) - ->header('Content-Type', 'application/rss+xml; charset=utf-8'); - } - - /** - * Returns the blog Atom feed. - */ - public function blogAtom(): Response - { - $articles = Article::where('published', '1')->latest('updated_at')->take(20)->get(); - - return response() - ->view('articles.atom', compact('articles')) - ->header('Content-Type', 'application/atom+xml; charset=utf-8'); - } - - /** - * Returns the notes RSS feed. - */ - public function notesRss(): Response - { - $notes = Note::latest()->take(20)->get(); - $buildDate = $notes->first()->updated_at->toRssString(); - - return response() - ->view('notes.rss', compact('notes', 'buildDate')) - ->header('Content-Type', 'application/rss+xml; charset=utf-8'); - } - - /** - * Returns the notes Atom feed. - */ - public function notesAtom(): Response - { - $notes = Note::latest()->take(20)->get(); - - return response() - ->view('notes.atom', compact('notes')) - ->header('Content-Type', 'application/atom+xml; charset=utf-8'); - } - - /** @todo sort out return type for json responses */ - /** * Returns the blog JSON feed. */ - public function blogJson(): array + public function blogJson(): JsonResponse { $articles = Article::where('published', '1')->latest('updated_at')->take(20)->get(); $data = [ @@ -94,13 +41,15 @@ class FeedsController extends Controller ]; } - return $data; + return response()->json($data, 200, [ + 'Content-Type' => 'application/feed+json', + ]); } /** * Returns the notes JSON feed. */ - public function notesJson(): array + public function notesJson(): JsonResponse { $notes = Note::latest()->with('media', 'place', 'tags')->take(20)->get(); $data = [ @@ -130,7 +79,9 @@ class FeedsController extends Controller } } - return $data; + return response()->json($data, 200, [ + 'Content-Type' => 'application/feed+json', + ]); } /** diff --git a/resources/views/articles/atom.blade.php b/resources/views/articles/atom.blade.php deleted file mode 100644 index 9892bcfb..00000000 --- a/resources/views/articles/atom.blade.php +++ /dev/null @@ -1,20 +0,0 @@ - - - Atom feed for {{ config('user.display_name') }}’s blog - - {{ config('app.url')}}/blog - {{ $articles[0]->updated_at->toAtomString() }} - -@foreach($articles as $article) - - {{ $article->title }} - - {{ config('app.url') }}{{ $article->link }} - {{ $article->updated_at->toAtomString() }} - {{ $article->main }} - - {{ config('user.display_name') }} - - -@endforeach - diff --git a/resources/views/articles/rss.blade.php b/resources/views/articles/rss.blade.php deleted file mode 100644 index 00268681..00000000 --- a/resources/views/articles/rss.blade.php +++ /dev/null @@ -1,26 +0,0 @@ - - - - {{ config('user.display_name') }} - - An RSS feed of the blog posts found on {{ config('app.url') }} - {{ config('app.url') }}/blog - {{ $buildDate }} - 1800 - -@foreach($articles as $article) - - {{ strip_tags($article->title) }} - - main }} - @if($article->url)

Permalink

@endif - ]]> -
- @if($article->url != ''){{ $article->url }}@else{{ config('app.url') }}{{ $article->link }}@endif - {{ config('app.url') }}{{ $article->link }} - {{ $article->pubdate }} -
-@endforeach -
-
diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index 2e5c6b5a..f269d830 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -7,13 +7,9 @@ @yield('title'){{ config('app.name') }} - - - + - - - + diff --git a/resources/views/notes/atom.blade.php b/resources/views/notes/atom.blade.php deleted file mode 100644 index c84a4a93..00000000 --- a/resources/views/notes/atom.blade.php +++ /dev/null @@ -1,20 +0,0 @@ - - - Atom feed for {{ config('user.display_name') }}’s notes - - {{ config('app.url')}}/notes - {{ $notes[0]->updated_at->toAtomString() }} - -@foreach($notes as $note) - - {{ strip_tags($note->note) }} - - {{ $note->uri }} - {{ $note->updated_at->toAtomString() }} - {{ $note->note }} - - {{ config('user.display_name') }} - - -@endforeach - diff --git a/resources/views/notes/rss.blade.php b/resources/views/notes/rss.blade.php deleted file mode 100644 index 9146ebe0..00000000 --- a/resources/views/notes/rss.blade.php +++ /dev/null @@ -1,26 +0,0 @@ - - - - {{ config('user.display_name') }} - - An RSS feed of the notes found on {{ config('app.url') }} - {{ config('app.url') }}/notes - {{ $buildDate }} - 1800 - -@foreach($notes as $note) - - {{ strip_tags($note->note) }} - - note !!} - ]]> - - {{ $note->uri }} - {{ $note->uri}} - {{ $note->pubdate }} - -@endforeach - - - diff --git a/routes/web.php b/routes/web.php index dd594480..b929a2de 100644 --- a/routes/web.php +++ b/routes/web.php @@ -170,8 +170,6 @@ Route::middleware(MyAuthMiddleware::class)->prefix('admin')->group(function () { // Blog pages using ArticlesController Route::prefix('blog')->group(function () { - Route::get('/feed.rss', [FeedsController::class, 'blogRss'])->name('feed.blog.rss'); - Route::get('/feed.atom', [FeedsController::class, 'blogAtom'])->name('feed.blog.atom'); Route::get('/feed.json', [FeedsController::class, 'blogJson'])->name('feed.blog.json'); Route::get('/feed.jf2', [FeedsController::class, 'blogJf2'])->name('feed.blog.jf2'); Route::get('/s/{id}', [ArticlesController::class, 'onlyIdInURL']); @@ -182,8 +180,6 @@ Route::prefix('blog')->group(function () { // Notes pages using NotesController Route::prefix('notes')->group(function () { Route::get('/', [NotesController::class, 'index']); - Route::get('/feed.rss', [FeedsController::class, 'notesRss'])->name('feed.notes.rss'); - Route::get('/feed.atom', [FeedsController::class, 'notesAtom'])->name('feed.notes.atom'); Route::get('/feed.json', [FeedsController::class, 'notesJson'])->name('feed.notes.json'); Route::get('/feed.jf2', [FeedsController::class, 'notesJf2'])->name('feed.notes.jf2'); Route::get('/new', [NotesController::class, 'create']); diff --git a/tests/Feature/FeedsTest.php b/tests/Feature/FeedsTest.php index 0323aa73..3f168b58 100644 --- a/tests/Feature/FeedsTest.php +++ b/tests/Feature/FeedsTest.php @@ -15,42 +15,6 @@ class FeedsTest extends TestCase { use RefreshDatabase; - /** - * Test the blog RSS feed. - */ - #[Test] - public function blog_rss_feed_is_present(): void - { - Article::factory()->count(3)->create(); - $response = $this->get('/blog/feed.rss'); - $response->assertHeader('Content-Type', 'application/rss+xml; charset=utf-8'); - $response->assertOk(); - } - - /** - * Test the notes RSS feed. - */ - #[Test] - public function notes_rss_feed_is_present(): void - { - Note::factory()->count(3)->create(); - $response = $this->get('/notes/feed.rss'); - $response->assertHeader('Content-Type', 'application/rss+xml; charset=utf-8'); - $response->assertOk(); - } - - /** - * Test the blog RSS feed. - */ - #[Test] - public function blog_atom_feed_is_present(): void - { - Article::factory()->count(3)->create(); - $response = $this->get('/blog/feed.atom'); - $response->assertHeader('Content-Type', 'application/atom+xml; charset=utf-8'); - $response->assertOk(); - } - #[Test] public function blog_jf2_feed_is_present(): void { @@ -73,18 +37,6 @@ class FeedsTest extends TestCase ]); } - /** - * Test the notes RSS feed. - */ - #[Test] - public function notes_atom_feed_is_present(): void - { - Note::factory()->count(3)->create(); - $response = $this->get('/notes/feed.atom'); - $response->assertHeader('Content-Type', 'application/atom+xml; charset=utf-8'); - $response->assertOk(); - } - /** * Test the blog JSON feed. */ @@ -93,7 +45,7 @@ class FeedsTest extends TestCase { Article::factory()->count(3)->create(); $response = $this->get('/blog/feed.json'); - $response->assertHeader('Content-Type', 'application/json'); + $response->assertHeader('Content-Type', 'application/feed+json'); $response->assertOk(); } @@ -105,7 +57,7 @@ class FeedsTest extends TestCase { Note::factory()->count(3)->create(); $response = $this->get('/notes/feed.json'); - $response->assertHeader('Content-Type', 'application/json'); + $response->assertHeader('Content-Type', 'application/feed+json'); $response->assertOk(); } From 99f306ede1a1f1b59b0b4bfb242571500dc298e0 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 22 Aug 2026 10:42:23 +0100 Subject: [PATCH 15/33] Replace RSS icon with a JSON Feed icon in the header The nav's feed link already points at the JSON feed, but was using the feather RSS icon. Adds an SVG recreation of the official JSON Feed mark (traced from jsonfeed.org's icon) and swaps it in, using a single dark-green fill throughout so it stays legible against both the light and dark theme backgrounds. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01AXyzNvQZPQgBoSZwW7cLG8 --- resources/views/icons/json-feed.blade.php | 11 +++++++++++ resources/views/master.blade.php | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 resources/views/icons/json-feed.blade.php diff --git a/resources/views/icons/json-feed.blade.php b/resources/views/icons/json-feed.blade.php new file mode 100644 index 00000000..7b8df856 --- /dev/null +++ b/resources/views/icons/json-feed.blade.php @@ -0,0 +1,11 @@ +@php +if (isset($title)) { + $uniqueId = bin2hex(random_bytes(6)); +} +@endphp + + @if($title){{ $title }}@endif + + diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index f269d830..3c82845b 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -36,7 +36,7 @@ Likes Contacts Projects - @include('icons.rss', ['title' => 'RSS Feed']) + @include('icons.json-feed', ['title' => 'JSON Feed'])
-
-
- Select theme: -
- - -
-
- - -
-
- - -
-
-
+ +
From 9532aae37eeac0abc29a6de35097821259c22832 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 23 Aug 2026 10:17:26 +0100 Subject: [PATCH 19/33] Bring back winter snow effect, gated by an admin setting The site has flip-flopped on the snow effect every winter (add it, remove it, repeat), meaning a PR round-trip each time. Instead, restore the winter.js/is-land assets and gate them behind a new admin-toggleable setting so the effect can be switched on/off from /admin/settings without touching code. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0113BVPXDpEk9HPEqXvSG2WQ --- .../Controllers/Admin/SettingsController.php | 32 +++++ app/Models/Setting.php | 18 +++ app/Providers/AppServiceProvider.php | 7 + database/factories/SettingFactory.php | 24 ++++ ...026_08_23_101358_create_settings_table.php | 28 ++++ package-lock.json | 20 +++ package.json | 4 + public/assets/js/is-land.min.js | 2 + public/assets/js/is-land.min.js.br | Bin 0 -> 1834 bytes public/assets/js/is-land.min.js.zst | Bin 0 -> 2082 bytes public/assets/js/winter.js | 125 ++++++++++++++++++ public/assets/js/winter.js.br | Bin 0 -> 1117 bytes public/assets/js/winter.js.zst | Bin 0 -> 1329 bytes resources/views/admin/settings/show.blade.php | 26 ++++ resources/views/admin/welcome.blade.php | 5 + resources/views/master.blade.php | 11 ++ routes/web.php | 7 + tests/Feature/Admin/SettingsTest.php | 68 ++++++++++ 18 files changed, 377 insertions(+) create mode 100644 app/Http/Controllers/Admin/SettingsController.php create mode 100644 app/Models/Setting.php create mode 100644 database/factories/SettingFactory.php create mode 100644 database/migrations/2026_08_23_101358_create_settings_table.php create mode 100644 public/assets/js/is-land.min.js create mode 100644 public/assets/js/is-land.min.js.br create mode 100644 public/assets/js/is-land.min.js.zst create mode 100644 public/assets/js/winter.js create mode 100644 public/assets/js/winter.js.br create mode 100644 public/assets/js/winter.js.zst create mode 100644 resources/views/admin/settings/show.blade.php create mode 100644 tests/Feature/Admin/SettingsTest.php diff --git a/app/Http/Controllers/Admin/SettingsController.php b/app/Http/Controllers/Admin/SettingsController.php new file mode 100644 index 00000000..99d283bb --- /dev/null +++ b/app/Http/Controllers/Admin/SettingsController.php @@ -0,0 +1,32 @@ + $settings, + ]); + } + + public function update(Request $request): RedirectResponse + { + $settings = Setting::firstOrNew(); + $settings->winter_effect_enabled = $request->boolean('winter_effect_enabled'); + $settings->save(); + + return redirect()->route('admin.settings.show'); + } +} diff --git a/app/Models/Setting.php b/app/Models/Setting.php new file mode 100644 index 00000000..0c84ea36 --- /dev/null +++ b/app/Models/Setting.php @@ -0,0 +1,18 @@ + + */ + protected $casts = [ + 'winter_effect_enabled' => 'boolean', + ]; +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 68367a97..a40ae43f 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,10 +2,12 @@ namespace App\Providers; +use App\Models\Setting; use Illuminate\Database\Eloquent\Model; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; use Illuminate\Support\Facades\URL; +use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; use Symfony\Component\HtmlSanitizer\HtmlSanitizer; use Symfony\Component\HtmlSanitizer\HtmlSanitizerConfig; @@ -63,5 +65,10 @@ class AppServiceProvider extends ServiceProvider // Force HTTPS URL generation in production URL::forceHttps($this->app->isProduction()); + + // Share whether the winter snow effect is enabled with the base layout + View::composer('master', function ($view) { + $view->with('winterEffectEnabled', Setting::first()?->winter_effect_enabled ?? false); + }); } } diff --git a/database/factories/SettingFactory.php b/database/factories/SettingFactory.php new file mode 100644 index 00000000..8df15756 --- /dev/null +++ b/database/factories/SettingFactory.php @@ -0,0 +1,24 @@ + + */ +class SettingFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'winter_effect_enabled' => false, + ]; + } +} diff --git a/database/migrations/2026_08_23_101358_create_settings_table.php b/database/migrations/2026_08_23_101358_create_settings_table.php new file mode 100644 index 00000000..a4ea86d2 --- /dev/null +++ b/database/migrations/2026_08_23_101358_create_settings_table.php @@ -0,0 +1,28 @@ +id(); + $table->boolean('winter_effect_enabled')->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('settings'); + } +}; diff --git a/package-lock.json b/package-lock.json index 50949213..05c9ad3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,10 @@ "name": "jbuk-frontend", "version": "0.0.1", "license": "CC0-1.0", + "dependencies": { + "@11ty/is-land": "^5.0.0", + "@zachleat/snow-fall": "^1.0.3" + }, "devDependencies": { "@eslint/js": "^10.0.1", "@stylistic/eslint-plugin": "^5.1.0", @@ -20,6 +24,16 @@ "stylelint-config-standard": "^40.0.0" } }, + "node_modules/@11ty/is-land": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@11ty/is-land/-/is-land-5.0.1.tgz", + "integrity": "sha512-Rh/sLhE4vrc2JaSjeY385v2UxnDY9BhnQtitETb3SKyr0A48Q5Vn06q2AvDBHObtk9+dcFWsoZX4jhT+O9g+xQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -1018,6 +1032,12 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@zachleat/snow-fall": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@zachleat/snow-fall/-/snow-fall-1.0.3.tgz", + "integrity": "sha512-Y9srRbmO+k31vSm+eINYRV9DRoeWGV5/hlAn9o34bLpoWo+T5945v6XGBrFzQYjhyEGB4j/4zXuTW1zTxp2Reg==", + "license": "MIT" + }, "node_modules/acorn": { "version": "8.17.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", diff --git a/package.json b/package.json index 9c08f32a..b0ac9882 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,10 @@ "compress": "./scripts/compress.sh", "build": "npm run lint && npm run build-css && npm run build-js && npm run compress" }, + "dependencies": { + "@11ty/is-land": "^5.0.0", + "@zachleat/snow-fall": "^1.0.3" + }, "allowScripts": { "esbuild@0.27.7": true, "lightningcss-cli@1.32.0": true diff --git a/public/assets/js/is-land.min.js b/public/assets/js/is-land.min.js new file mode 100644 index 00000000..17203312 --- /dev/null +++ b/public/assets/js/is-land.min.js @@ -0,0 +1,2 @@ +//! +const e=window,t=e.document,a=e.navigator;function i(){let e,t;return{promise:new Promise((a,i)=>{e=a,t=i}),resolve:e,reject:t}}class r extends HTMLElement{static attributePrefix="on:";static attr={template:"data-island",ready:"ready",defer:"defer-hydration",type:"type",import:"import"};static _tagNames=new Set;static _once=new Map;static ctm(){return"undefined"!=typeof globalThis}static define(t=e.customElements){let a="is-land";this.ctm()&&!t.get(a)&&t.define(a,this)}static _initTypes={default:async e=>{await import(e.getAttribute(r.attr.import))}};static addInitType(e,t){this._initTypes[e]=t}static _fallback={};static addFallback(e,a){this._fallback[e]=a;let i=Array.from(this._tagNames);i.length&&t.querySelectorAll(i.map(e=>`${e}:defined`).join(",")).forEach(e=>{e.replaceFallbackContent()})}getFallback(){return Object.assign({[`:not(:defined):not(${this.localName}):not([${r.attr.defer}])`]:(e,t)=>{let a=r.renameNode(e,t+e.localName);return()=>{a.shadowRoot&&e.shadowRoot.append(...a.shadowRoot.childNodes),e.append(...a.childNodes),a.replaceWith(e)}}},r._fallback)}static renameNode(e,a){let i=t.createElement(a);for(let t of e.getAttributeNames())i.setAttribute(t,e.getAttribute(t));let r=e.shadowRoot;if(!r){let t=e.querySelector(":scope > template[shadowrootmode], :scope > template[shadowroot]");if(t){let a=t.getAttribute("shadowrootmode")||t.getAttribute("shadowroot")||"closed";r=e.attachShadow({mode:a}),r.appendChild(t.content.cloneNode(!0))}}return r&&i.attachShadow({mode:r.mode}).append(...r.childNodes),i.append(...e.childNodes),e.replaceWith(i),i}constructor(){super(),this._ready=i(),this._fallbackExec={},r._tagNames.add(this.localName)}getParents(e,a=!1){let i=[];for(;(e=e.parentNode)&&e&&e!==t.body;)if(e.matches&&e.matches(this.localName)){if(a&&e===a)break;s.hasConditions(e,r.attributePrefix)&&i.push(e)}return i}replaceTemplates(){let e=this.querySelectorAll(`template[${r.attr.template}]`);for(let t of e){if(this.getParents(t,this).length>0)continue;let e=t.getAttribute(r.attr.template);if("replace"===e){let e=Array.from(this.childNodes);for(let t of e)this.removeChild(t);this.appendChild(t.content);break}{let a=t.innerHTML;if("once"===e&&a){if(r._once.has(a))return void t.remove();r._once.set(a,!0)}t.replaceWith(t.content)}}}async beforeReady(){let e,t=this.getAttribute(r.attr.type);t?e=r._initTypes[t]:this.getAttribute(r.attr.import)&&(e=r._initTypes.default),e&&await e(this)}async ready(e,t){return Array.isArray(t)||(t=this.getParents(e)),Promise.all(t.map(e=>e.wait()))}replaceFallbackContent(){let e=`${this.localName}--`;for(let[t,a]of Object.entries(this.getFallback())){if(this._fallbackExec[t])continue;let i=Array.from(this.querySelectorAll(t)).reverse(),r=[];for(let t of i){if(!t.isConnected)continue;let i=this.getParents(t);if(i[0]===this){let s=a(t,e);r.push({node:t,parents:i,returned:s})}}for(let{node:e,parents:t,returned:a}of r.reverse())this.ready(e,t).then(a);this._fallbackExec[t]=!0}}wait(){return this._ready.promise}async connectedCallback(){s.hasConditions(this,r.attributePrefix)&&this.replaceFallbackContent(),await this.hydrate()}async hydrate(){let e=[],t=this.getParents(this);t.length&&e.push(t[0].wait()),e.push(...s.getConditions(this,r.attributePrefix)),await Promise.all(e),this.replaceTemplates(),await this.beforeReady(),this._ready.resolve();let{ready:a,defer:i}=r.attr;this.setAttribute(a,""),this.querySelectorAll(`[${i}]`).forEach(e=>e.removeAttribute(i))}}class s{static _media={};static map={visible:s.visible,idle:s.idle,load:s.pageLoad,interaction:s.interaction,media:s.media,"save-data":s.saveData};static getMap(e=""){return Object.keys(s.map).map(t=>e+t)}static hasConditions(e,t){for(let a of s.getMap(t))if(e.hasAttribute(a))return!0;return!1}static getConditions(e,t){let a=[];for(let i of s.getMap()){let r=t+i;if(e.hasAttribute(r)){let t=e.getAttribute(r);a.push(s.map[i](t,e))}}return a}static visible(t,a){let{promise:r,resolve:s}=i();if("IntersectionObserver"in e){let e=new IntersectionObserver(t=>{let[a]=t;a.isIntersecting&&(e.unobserve(a.target),s())});e.observe(a)}else s();return r}static pageLoad(){if(s._cacheLoad)return s._cacheLoad;let{promise:a,resolve:r}=i();return"complete"===t.readyState?r():e.addEventListener("load",()=>r(),{once:!0}),s._cacheLoad=a,a}static idle(){if(s._cacheIdle)return s._cacheIdle;let{promise:t,resolve:a}=i();return"requestIdleCallback"in e?requestIdleCallback(()=>a()):a(),s._cacheIdle=Promise.all([s.pageLoad(),t]),s._cacheIdle}static interaction(e,t){let a=(e||"click,touchstart").split(",").map(e=>e.trim()),{promise:r,resolve:s}=i();function o(e){s();for(let e of a)t.removeEventListener(e,o)}for(let e of a)t.addEventListener(e,o,{once:!0,passive:!0});return r}static media(t){if(s._media[t])return s._media[t];let{promise:a,resolve:r}=i(),o={matches:!0};return t&&"matchMedia"in e&&(o=e.matchMedia(t)),o.matches?r():o.addListener(e=>{e.matches&&r()}),s._media[t]=a,a}static saveData(e){let{promise:t,resolve:r}=i();return"connection"in a&&a.connection.saveData!==("false"!==e)||r(),t}}new URL(import.meta.url).searchParams.has("nodefine")||r.define(),e.Island=r;export{r as Island}; \ No newline at end of file diff --git a/public/assets/js/is-land.min.js.br b/public/assets/js/is-land.min.js.br new file mode 100644 index 0000000000000000000000000000000000000000..34fe76f2943ce1586ecfa2013bf766c68599d5b7 GIT binary patch literal 1834 zcmcckVF5#eNMH5((-)$2g1MD9PwQF{ztZb@JOejZ$z9JfnVYdui#LaytumkLV$&g8 zkyn`K`Q~^)ttQ6~7i({}rTu&U-e2i?d{MiVm?G?{`@U%Xa75|BXx7huTPIEPWifvm$n&cefND7o3L!6 zw4MHu+Y5DO1XfN5G8X8_TxqeHxZI@J;N)GqQ!&#yCwp*7 zY}YuMFje9AdFe0TY*bIPtlV1oDkbYw!2;&gC6oW|sD2Q?Q_u9~$+K_w2OnL))zaiu zcAd*5Li=X2)SlJN*>Cf|m5bgo`2H_oszT738((@)PrU!tvv2OXODdOVOQ#t%{;l+k z@0utpCb`$@tn(h9az5jgFDGo3ss0(>^LN$lOQ4;(mh1Dzt1P*2W0RG&b%Du8hEq%rqLbGO{@l2% z&X&WGSD&l$jaAO;Ka59|cZwf6G4b%!!|JQ-HgikQem(oRJE!ft`K@Me<4mfAnr|iE zuDX+9;;{btuBUGjjCihk7CrM2d@oS`!#8quOU}*tFZk@=9<^S2*8HW(`b*I*lYZ2d zteAhG@=fT^Kl^+Qm_8}VZ|jClu$-mEF2ERZp+jv0m2t#e`B>6p4vWWKF~9c5Z|lGR`9#S6Vh+Q5uKb#YpVew+9r;(VGrwm| z^8U!I904^S2K~M3`>jx{&T9-*=rnUa|M}Jrk>hylTeDK&rpK9H; z%gOY)J-5DEO-(x%ExA>K=QkZ&}DPfnQ}z?G8D= z`oP3R=dX$c3RSOgI5YFojF}!KI`-im1$Nx~og#}GK3)^;I_^I4da$eYFO9+jf2BI> z{`K~2na!Sip`TyrnER*FDNhA-WS5^1S?%)kJD-$c)U%7Hzp99TD0c|5xXi}E<96}> z&Ah7-d~pxno>*_u@wYqahg7agLcaJEN0)XlZKp$%@0uj_1uc1?DsLUjR~{$v(%^dl zYt6oQMLbLNosKMACh~yq^z+wKN~6nP7V6w!3(K0}yF+m2)ivcCJFic3iOeY1xEUX=R_dyo^t=4%`do-nYNAeZz~q2F>oTn`UV;dDLIZ zI%t%Z@$K@<$Nz3d$xUB=>Asrea-|=JPmX#7FI_4Br~A?kNzDn7s)E)lrawO4HEn&{ zY~|K<@y?7g4lZBn3Zk#ce@ltwR@6`V=5^|h%LdE6QhQ^Roz|P{wk$hbYq0cf_Q71{ zoVPchhS|U0{&RY0__^uZOLJ}-3KuV)ePiW5Mc?V=JDq3dzdltopGQ*S=*BR9!>$uE zv>D@7#FV+}T=njpsQDhUv(@7Mhi(szr^_El+eII~d!;hzgo-z3;-ZId?b&*k@$^28 z^fmW;KH=W7%0{0BFaP%+5NcNrUM*Vl^jXHqsved0!-*oD6X)v0uK(8%#98#b)=%z( z0o$ZW@pU>+5~|jI-v8z5`c)N=_N{Ps-okYz$1kMN%>2G;X*B!p``HV49QbW~-v279 z((&6_ZM!Dw0+&cc+w8C@7oFB?IVWySzt76~=uKYV&6RzXFW=m2mpb_~A}6)G^L(*y`@z z_Ly@%bWYLyQ}cTT&z|G@`u6yycVENgH*RLK)+*y!XgvFwu@1NH2UC}slV|&?Za=g9 OQkCavKJV~_Hp~D5aDl`C literal 0 HcmV?d00001 diff --git a/public/assets/js/is-land.min.js.zst b/public/assets/js/is-land.min.js.zst new file mode 100644 index 0000000000000000000000000000000000000000..f878449071c3b6d393e2a050c9071f3b6bd645eb GIT binary patch literal 2082 zcmdPcs{c1dUU;bkLsm!&pDM%TJDICJPEL7yD3(bv?cx{HkNbU}=cmuC<$v!V|K#MK z|Mx==vOHjT#Bhs2e2Ij7>YCR-Y`5p1`Q732NiK=UXz8+c z)}BjA*Uern?ozdy^!Yc_rDYXNhxZ3cR^Ll^bv?f7to1RyTqEW;ANOr}B2jH7wB6e6 zF@wGLo0rd5F8ZaV%I++jvV6t0 zdb_N?vg`iY%RF!2y~c6h@C`R(Udf%P*3TC|WlF7lc~$l9ud)}h*7q-O)wL=**1x2* zvBoZWQQOn(6Yo-k!%UW5|8V#Cl$1XWZ*8U;GdWC9@n<%Xvk+uz66zFpd6LcjC+6*= z`LoYyCMhbOzVY9v>#@cZe;JnLt0gbCZ*6-&v8+?z%iVJS_&d4h%rka=E#AF5>UG)a znkx^=yq9XGDb>9<^(+hhnBDp0`Ia9ugwkI;-lnT?mhqXw17t;)nZ*Z$ykh|`F z^}FAS?lZTPabH}$Re>or{a@wN_g?ZVV{5d&e=52!5yYX%I$2|D&wJ&IcegFOH|yK> z-xu{KA9|-gwXxCb?%i*{e(t>6c7NZ+9dEyxc0O6S=dj;~7u#w|MQ(lT6Iq@%{dVy* zk0)QI8HHtRH=Uf7e{8|Flsil<>jSb_gLzB^CoWJtA ztdl!;NoFN~V#@048>C%kO1La2cAczJC*C8qMA7N`RM+)e_Z)loB6|MufT=3}B8L{f z`N4W=f^)~W8&i6M-o#AooHKjh+&fi&eD{haP7KW6yi7PgqS@e6gi@mB^K1*%87`m1 z=e(P}tf+MP>!*2NZslDLy!iid$i?k%=FU%3%HH?7Bgy;}%dYh8h29mn&hbB#*j20d zTq674ruoM@rmxMMpi=iY=W|QlzwZC@1dH1iv03^qU-w(;)~jnj<+p3DZJ%gjx8%c- zi4!Zc_pEGPr0LSVA?W|HDHe$t53NO5<$fK@Vi0xtCjT`1KkGi-+>*<(J)Q;zb<^0Q z4o|T>eoudKcLq)B_br(Ps?iEuIc+kB6R)uxX{!)6HtJ2|Jk6ug#`m{y zl0d4GXxE~fch)bk4OC&wams2ERgnGUA>=%x(Z|E^*10Uv7n_r2g>RgwJ)Jv)Q|9h* zr#E?<*>hNrg|6!@Jj$|0cb1Y-y}MXclEmGQvWG9OSm*Lx_JZ(~cubjHqX%QO}d%<+u52=gGR;A9X8M+Ug`?#a-L2lB$Crno-9n|@G$tqaj-KQz{xP!jAOw&9(U(;yb7a{o> zD;7up%zI;z|HtIuU#~=$>R^vwAGZ9TuJS!}%18Alh1Fe#U7NY~UY}+3aLLE5`&HFX zIO-*NGoN*zX?^#JVath-E2~6O&-+i*w6)2&#`e5t;e*K2E;+&`3@6MpX6TwGG{yvM zyLWLv&yx*J7T>+i_>Su;Di$OMbaIC#C)pG=M_u#X_HK6Du2~I$B>{}SULdh7n3vX^@+KX2M$t^IsU{`BZSx>HMc-H_NI<|4rr zwl!i}^L4}N{4B+1HrYJ+^8RRNdGWro-Ru6iY~}q@D0!g2?80`2lG`(P=TvULqPxh8 zS1y}N#z%jxduA}}(xQa4%MKPcqnkhG~LB4L|Xkn_FN%v2lRpNzh7b6d=+{F#dsr0HeqYlmGw# literal 0 HcmV?d00001 diff --git a/public/assets/js/winter.js b/public/assets/js/winter.js new file mode 100644 index 00000000..c28d74d5 --- /dev/null +++ b/public/assets/js/winter.js @@ -0,0 +1,125 @@ +class Snow extends HTMLElement { + static random(min, max) { + return min + Math.floor(Math.random() * (max - min) + 1); + } + + static attrs = { + count: "count", // default: 100 + mode: "mode", + text: "text", // text in snow flake (emoji, too) + } + + generateCss(mode, count) { + let css = []; + css.push(` +:host([mode="element"]) { + display: block; + position: relative; + overflow: hidden; +} +:host([mode="page"]) { + position: fixed; + top: 0; + left: 0; + right: 0; +} +:host([mode="page"]), +:host([mode="element"]) > * { + pointer-events: none; +} +:host([mode="element"]) ::slotted(*) { + pointer-events: all; +} +* { + position: absolute; +} +:host([text]) * { + font-size: var(--snow-fall-size, 1em); +} +:host(:not([text])) * { + width: var(--snow-fall-size, 10px); + height: var(--snow-fall-size, 10px); + background: var(--snow-fall-color, rgba(255,255,255,.5)); + border-radius: 50%; +} +`); + + // using vw units (max 100) + let dimensions = { width: 100, height: 100 }; + let units = { x: "vw", y: "vh"}; + + if(mode === "element") { + dimensions = { + width: this.firstElementChild.clientWidth, + height: this.firstElementChild.clientHeight, + }; + units = { x: "px", y: "px"}; + } + + // Thank you @alphardex: https://codepen.io/alphardex/pen/dyPorwJ + for(let j = 1; j<= count; j++ ) { + let x = Snow.random(1, 100) * dimensions.width/100; // vw + let offset = Snow.random(-10, 10) * dimensions.width/100; // vw + + let yoyo = Math.round(Snow.random(30, 100)); // % time + let yStart = yoyo * dimensions.height/100; // vh + let yEnd = dimensions.height; // vh + + let scale = Snow.random(1, 10000) * .0001; + let duration = Snow.random(10, 30); + let delay = Snow.random(0, 30) * -1; + + css.push(` +:nth-child(${j}) { + opacity: ${Snow.random(0, 1000) * 0.001}; + transform: translate(${x}${units.x}, -10px) scale(${scale}); + animation: fall-${j} ${duration}s ${delay}s linear infinite; +} + +@keyframes fall-${j} { + ${yoyo}% { + transform: translate(${x + offset}${units.x}, ${yStart}${units.y}) scale(${scale}); + } + + to { + transform: translate(${x + offset / 2}${units.x}, ${yEnd}${units.y}) scale(${scale}); + } +}`) + } + return css.join("\n"); + } + + connectedCallback() { + // https://caniuse.com/mdn-api_cssstylesheet_replacesync + if(this.shadowRoot || !("replaceSync" in CSSStyleSheet.prototype)) { + return; + } + + let count = parseInt(this.getAttribute(Snow.attrs.count)) || 100; + + let mode; + if(this.hasAttribute(Snow.attrs.mode)) { + mode = this.getAttribute(Snow.attrs.mode); + } else { + mode = this.firstElementChild ? "element" : "page"; + this.setAttribute(Snow.attrs.mode, mode); + } + + let sheet = new CSSStyleSheet(); + sheet.replaceSync(this.generateCss(mode, count)); + + let shadowroot = this.attachShadow({ mode: "open" }); + shadowroot.adoptedStyleSheets = [sheet]; + + let d = document.createElement("div"); + let text = this.getAttribute(Snow.attrs.text); + d.innerText = text || ""; + for(let j = 0, k = count; j`{AG~sY`N4r7GGR}La zn6yNy1quxO_gro(-I>YL%6`7Mq0cO^lq>#H(UjQNj@~CHUC*ujvpMKX;~btzTTcYI zue;K;{lJzbA=#NWxAwf^`toe|{J^b&D&=bu`wwo^IbLHXa{0c-d64_h^V>}eKF1773D=^5Ye5CYi z(H5U2?56U?vuD3LYP7fN-<{j}Z09Adb8{BhFLkxn?t6Z5=cA9uH;d<-<~q#Hc{FwJ z2ZzTqx)yhAwK*+*Ky6L=6s1?6Tg-e8IeV(eZz!CQsw&s#K8x3IrP%FNt?M7Wy}f;f zd*+MZYrj;i(sM79E#W^U{$XX#+x)A&I#Ig+mwsXF3Hi&AZB}yQ2}kCoWm^j7pGdhc zuWrBN`>&8GHs_*`wX%21PMfG89dzWd@P2WzTga9J=w{()UADchj2;$y<3$9 zTi)){;1F;%t8#q1wQFOzZu-LzPa}~j3MAIIGvd*3kG-nI@d*5tIddthgpqH_tZD zI^n~5Tx3E1mPJlFC8gZo+V|Nswb^>H83kJ0UcDyaT>tNtk!`p4#ndvFh3&R{ylL^p zd2L^6bSEBj=O~=YH_NkrrO8=k<49)KfKmtT(^KwnE$Td2`^%cw#rD#vUfX;RSL@Y6 z?tfEsTIS2$YLC&JF}rTZ38R&LO656UteCnAR-c=;TzyV}lhoho3K|Q3{=9D=b3Fg~ z#Rp47E<3GU_m^+B##|QzlMg+emI2;pCT~y`J;3HvI%Ad?%lh5s7r%Z~3srJh{Z-Jv zwnW8Kj>FvIyut4s4~;9{|BQanz`Dg<)8+n=F1bl1-W{TgKCFx0=jr7=X|JQJhhW9Q zwL01+E6==GQY`#UC*oxN^Q|xW?y!HjrDVVj;)L p=QnYEeDvv*^1LUON7oq5IQ5j>bz;!}Z0H zh*f6K=bFVZpJ6G(IjNroMt4`m?pw1iRcF3jbYVeO=&{~*dGBMtUqz_CtcbX~W#y)c zfop5$N$-u4{-O9ZjpxZf>685Df9R$^*z;;z3}5}1f-gBn3(xSz$xL5lRyA+!KJ)E5 z(J$?%ln8pVE^@fEPd4I3;P*=38;3hpZ{+T>z07f>@ur*Z=INC=9@i)F?{`y~`}bMT z^5!E)jvl^t=?xiT}1u`fO6vwYAO(MH^0XWG>;8^|^S^@nEx@#4f?FFT>uP)l^G%xv)|E=l%4xT6yo+u4+>~b-yS< zScymZWxS1gbmqT_mYNrxRl9?&wfsH>Xr4sE-w+@Ao~4M)2wp&xee)_ zH_TlhJxIw&Vt6U0J*889OI8kh&!PQ)xEzF=pU){4?)nn5{v_b^*ze1Gt3?y$~%|4OtI`@;g%E5EsD&d8INmk zzIZrI{P@bWf2Et{I?R9dFAgsF-5tf2Xgu}#&INaLm#>)kvGUJ^m8QAV@?Gk3UwzBG zR%89XDRP2e{^7kB!&YyIQGXxS5vum@tn;P%w)8XREa6z5r$SA3sc1DcxMNMy$y3WqM1uU=Gik&%W_b)m7yageJ)C`oE@<+py_IP|Mw{xyxou zP&>bAse6;0@AvYkBKKun&C_LMD`ekm+;QMFKT??LWU-L_+&+=UTGt7k(&rBs-Db1c z)D)%j@L*2l{$?R`>8$hFCKMhKK~-`ybIH7smfCqK<20+7rHut|bQ( z(mI^?Gb)}n^E>{!E!K^hyZ2O|SQ9(v?yicSr}Z=b$*$WyF-a=>&OvbJzFAMom|UW4*@PZ(>(FIh3(FxAHy!%+Y(d literal 0 HcmV?d00001 diff --git a/resources/views/admin/settings/show.blade.php b/resources/views/admin/settings/show.blade.php new file mode 100644 index 00000000..801171e1 --- /dev/null +++ b/resources/views/admin/settings/show.blade.php @@ -0,0 +1,26 @@ +@extends('master') + +@section('title')Site Settings « Admin CP « @stop + +@section('content') +

Site settings

+
+ {{ csrf_field() }} + {{ method_field('PUT') }} +
+ +
+
+ +
+
+@stop diff --git a/resources/views/admin/welcome.blade.php b/resources/views/admin/welcome.blade.php index 663cfdc4..03112665 100644 --- a/resources/views/admin/welcome.blade.php +++ b/resources/views/admin/welcome.blade.php @@ -61,4 +61,9 @@

Manager your passkeys.

+ +

Settings

+

+ Edit site settings. +

@stop diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index cb15e685..543f4255 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -80,6 +80,17 @@ @section('scripts') + + @if($winterEffectEnabled ?? false) + + + + + + @endif @show diff --git a/routes/web.php b/routes/web.php index b929a2de..3b6fa7d2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,6 +9,7 @@ use App\Http\Controllers\Admin\LikesController as AdminLikesController; use App\Http\Controllers\Admin\NotesController as AdminNotesController; use App\Http\Controllers\Admin\PasskeysController; use App\Http\Controllers\Admin\PlacesController as AdminPlacesController; +use App\Http\Controllers\Admin\SettingsController; use App\Http\Controllers\Admin\SyndicationTargetsController; use App\Http\Controllers\Admin\TokensController; use App\Http\Controllers\ArticlesController; @@ -160,6 +161,12 @@ Route::middleware(MyAuthMiddleware::class)->prefix('admin')->group(function () { Route::put('/', [BioController::class, 'update']); }); + // Settings + Route::prefix('settings')->group(function () { + Route::get('/', [SettingsController::class, 'show'])->name('admin.settings.show'); + Route::put('/', [SettingsController::class, 'update']); + }); + // Passkeys Route::prefix('passkeys')->group(function () { Route::get('/', [PasskeysController::class, 'index']); diff --git a/tests/Feature/Admin/SettingsTest.php b/tests/Feature/Admin/SettingsTest.php new file mode 100644 index 00000000..bf7d068b --- /dev/null +++ b/tests/Feature/Admin/SettingsTest.php @@ -0,0 +1,68 @@ +make(); + + $response = $this->actingAs($user) + ->get('/admin/settings'); + $response->assertSeeText('Site settings'); + } + + #[Test] + public function admin_can_enable_winter_effect(): void + { + $user = User::factory()->make(); + + $this->actingAs($user) + ->post('/admin/settings', [ + '_method' => 'PUT', + 'winter_effect_enabled' => '1', + ]); + $this->assertDatabaseHas('settings', ['winter_effect_enabled' => true]); + } + + #[Test] + public function admin_can_disable_winter_effect(): void + { + $user = User::factory()->make(); + Setting::factory()->create(['winter_effect_enabled' => true]); + + $this->actingAs($user) + ->post('/admin/settings', [ + '_method' => 'PUT', + ]); + $this->assertDatabaseHas('settings', ['winter_effect_enabled' => false]); + } + + #[Test] + public function winter_effect_markup_is_hidden_when_disabled(): void + { + $response = $this->get('/'); + $response->assertDontSee('snow-fall'); + } + + #[Test] + public function winter_effect_markup_is_shown_when_enabled(): void + { + Setting::factory()->create(['winter_effect_enabled' => true]); + + $response = $this->get('/'); + $response->assertSee('snow-fall', false); + } +} From 9e9fbdc127e983a4a33a9aae313c3930956db6c8 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Fri, 28 Aug 2026 14:49:53 +0100 Subject: [PATCH 20/33] Add admin-editable About page Mirrors the existing Bio singleton pattern: a new `about` table/model, admin CRUD at /admin/about, and a public page at /about linked from both the header nav and the admin homepage. Content is wrapped in .e-content so it lays out correctly within the site's CSS grid. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_013bzYwaDD8p3XNDMYKvXKrs --- app/Http/Controllers/AboutPageController.php | 16 +++++ .../Controllers/Admin/AboutController.php | 32 +++++++++ app/Models/About.php | 13 ++++ database/factories/AboutFactory.php | 24 +++++++ .../2026_08_28_142830_create_about_table.php | 28 ++++++++ resources/views/about.blade.php | 9 +++ resources/views/admin/about/show.blade.php | 19 ++++++ resources/views/admin/welcome.blade.php | 5 ++ resources/views/master.blade.php | 1 + routes/web.php | 11 +++ tests/Feature/AboutPageTest.php | 26 +++++++ tests/Feature/Admin/AboutTest.php | 68 +++++++++++++++++++ 12 files changed, 252 insertions(+) create mode 100644 app/Http/Controllers/AboutPageController.php create mode 100644 app/Http/Controllers/Admin/AboutController.php create mode 100644 app/Models/About.php create mode 100644 database/factories/AboutFactory.php create mode 100644 database/migrations/2026_08_28_142830_create_about_table.php create mode 100644 resources/views/about.blade.php create mode 100644 resources/views/admin/about/show.blade.php create mode 100644 tests/Feature/AboutPageTest.php create mode 100644 tests/Feature/Admin/AboutTest.php diff --git a/app/Http/Controllers/AboutPageController.php b/app/Http/Controllers/AboutPageController.php new file mode 100644 index 00000000..d174e550 --- /dev/null +++ b/app/Http/Controllers/AboutPageController.php @@ -0,0 +1,16 @@ + About::first()?->content, + ]); + } +} diff --git a/app/Http/Controllers/Admin/AboutController.php b/app/Http/Controllers/Admin/AboutController.php new file mode 100644 index 00000000..cc5be0ad --- /dev/null +++ b/app/Http/Controllers/Admin/AboutController.php @@ -0,0 +1,32 @@ + $about, + ]); + } + + public function update(Request $request): RedirectResponse + { + $about = About::firstOrNew(); + $about->content = $request->input('content'); + $about->save(); + + return redirect()->route('admin.about.show'); + } +} diff --git a/app/Models/About.php b/app/Models/About.php new file mode 100644 index 00000000..26b6a719 --- /dev/null +++ b/app/Models/About.php @@ -0,0 +1,13 @@ + + */ +class AboutFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'content' => $this->faker->paragraph, + ]; + } +} diff --git a/database/migrations/2026_08_28_142830_create_about_table.php b/database/migrations/2026_08_28_142830_create_about_table.php new file mode 100644 index 00000000..15ab6f84 --- /dev/null +++ b/database/migrations/2026_08_28_142830_create_about_table.php @@ -0,0 +1,28 @@ +id(); + $table->text('content'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('about'); + } +}; diff --git a/resources/views/about.blade.php b/resources/views/about.blade.php new file mode 100644 index 00000000..e73c933a --- /dev/null +++ b/resources/views/about.blade.php @@ -0,0 +1,9 @@ +@extends('master') +@section('title')About « @stop + +@section('content') +

About

+
+ {!! $about !!} +
+@stop diff --git a/resources/views/admin/about/show.blade.php b/resources/views/admin/about/show.blade.php new file mode 100644 index 00000000..59c6a433 --- /dev/null +++ b/resources/views/admin/about/show.blade.php @@ -0,0 +1,19 @@ +@extends('master') + +@section('title')Edit About « Admin CP « @stop + +@section('content') +

Edit About

+
+ {{ csrf_field() }} + {{ method_field('PUT') }} +
+ +
+ +
+
+ +
+
+@stop diff --git a/resources/views/admin/welcome.blade.php b/resources/views/admin/welcome.blade.php index 03112665..132da7cc 100644 --- a/resources/views/admin/welcome.blade.php +++ b/resources/views/admin/welcome.blade.php @@ -57,6 +57,11 @@ Edit your bio.

+

About

+

+ Edit your about page. +

+

Passkeys

Manager your passkeys. diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index 543f4255..b33d1fa9 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -36,6 +36,7 @@ Likes Contacts Projects + About @include('icons.json-feed', ['title' => 'JSON Feed'])

diff --git a/routes/web.php b/routes/web.php index 3b6fa7d2..03d865b1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,7 @@ name('login'); Route::post('login', [AuthController::class, 'login']); @@ -167,6 +172,12 @@ Route::middleware(MyAuthMiddleware::class)->prefix('admin')->group(function () { Route::put('/', [SettingsController::class, 'update']); }); + // About + Route::prefix('about')->group(function () { + Route::get('/', [AboutController::class, 'show'])->name('admin.about.show'); + Route::put('/', [AboutController::class, 'update']); + }); + // Passkeys Route::prefix('passkeys')->group(function () { Route::get('/', [PasskeysController::class, 'index']); diff --git a/tests/Feature/AboutPageTest.php b/tests/Feature/AboutPageTest.php new file mode 100644 index 00000000..61455069 --- /dev/null +++ b/tests/Feature/AboutPageTest.php @@ -0,0 +1,26 @@ +create([ + 'content' => 'This is the about page content.', + ]); + + $this->get('/about') + ->assertSee('This is the about page content.'); + } +} diff --git a/tests/Feature/Admin/AboutTest.php b/tests/Feature/Admin/AboutTest.php new file mode 100644 index 00000000..141a548b --- /dev/null +++ b/tests/Feature/Admin/AboutTest.php @@ -0,0 +1,68 @@ +make(); + + $response = $this->actingAs($user) + ->get('/admin/about'); + $response->assertSeeText('Edit About'); + } + + #[Test] + public function admin_can_create_about(): void + { + $user = User::factory()->make(); + + $this->actingAs($user) + ->post('/admin/about', [ + '_method' => 'PUT', + 'content' => 'About content', + ]); + $this->assertDatabaseHas('about', ['content' => 'About content']); + } + + #[Test] + public function admin_can_load_existing_about(): void + { + $user = User::factory()->make(); + $about = About::factory()->create([ + 'content' => 'This is my about page. It uses HTML.', + ]); + + $response = $this->actingAs($user) + ->get('/admin/about'); + $response->assertSeeText('This is my about page. It uses HTML.'); + } + + #[Test] + public function admin_can_edit_about(): void + { + $user = User::factory()->make(); + $about = About::factory()->create(); + + $this->actingAs($user) + ->post('/admin/about', [ + '_method' => 'PUT', + 'content' => 'This about page has been edited', + ]); + $this->assertDatabaseHas('about', [ + 'content' => 'This about page has been edited', + ]); + } +} From 568ae78864aa1f955c80000afe44c790b994cea5 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 13 Sep 2026 10:40:27 +0100 Subject: [PATCH 21/33] Add manual Micropub token generation for non-PKCE clients iA Writer's IndieAuth client predates PKCE support in the spec, so it can't complete the normal authorization flow. Add an admin form to mint a token directly (reusing the existing TokenService), so it can be pasted into clients that support manual token setup instead. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_017USyUg8PwuoDcHP8pv5xjy --- .../Controllers/Admin/TokensController.php | 32 +++++++++ public/assets/css/app.css | 2 +- public/assets/css/app.css.br | Bin 1690 -> 1792 bytes public/assets/css/app.css.map | 2 +- public/assets/css/app.css.zst | Bin 2010 -> 2117 bytes public/assets/js/app.js.br | Bin 1269 -> 1304 bytes public/assets/js/app.js.zst | Bin 1475 -> 1502 bytes resources/css/admin-tokens.css | 26 +++++++ resources/views/admin/tokens/create.blade.php | 52 ++++++++++++++ resources/views/admin/tokens/index.blade.php | 9 +++ routes/web.php | 2 + tests/Feature/Admin/TokensTest.php | 67 ++++++++++++++++++ 12 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 resources/views/admin/tokens/create.blade.php diff --git a/app/Http/Controllers/Admin/TokensController.php b/app/Http/Controllers/Admin/TokensController.php index 1b5348f9..02b9660c 100644 --- a/app/Http/Controllers/Admin/TokensController.php +++ b/app/Http/Controllers/Admin/TokensController.php @@ -6,7 +6,9 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\MicropubToken; +use App\Services\TokenService; use Illuminate\Http\RedirectResponse; +use Illuminate\Http\Request; use Illuminate\View\View; class TokensController extends Controller @@ -21,6 +23,36 @@ class TokensController extends Controller return view('admin.tokens.index', compact('tokens')); } + /** + * Show the form to manually generate a new Micropub token. + * + * This is for clients (e.g. iA Writer) that don't support the IndieAuth + * PKCE flow and instead expect to be given a token directly. + */ + public function create(): View + { + return view('admin.tokens.create'); + } + + /** + * Manually generate a new Micropub token. + */ + public function store(Request $request): RedirectResponse + { + $validated = $request->validate([ + 'client_id' => 'required|string', + 'scope' => 'required|array|min:1', + ]); + + $token = resolve(TokenService::class)->getNewToken([ + 'me' => config('app.url'), + 'client_id' => $validated['client_id'], + 'scope' => implode(' ', $validated['scope']), + ]); + + return redirect('/admin/tokens')->with('new_token', $token); + } + /** * Revoke a Micropub token. */ diff --git a/public/assets/css/app.css b/public/assets/css/app.css index 5c50c0b4..e255209f 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -1,2 +1,2 @@ -@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:1/-1;grid-template-columns:subgrid;display:grid;&>*{grid-column:2/3}&>.full-bleed{grid-column:1/-1}}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{background-color:color-mix(in oklch, var(--clr-border) 40%, transparent);border-radius:999px;justify-self:start;align-items:center;gap:.25rem;padding:.25rem;display:flex;& button{appearance:none;color:inherit;background:0 0;border:none;border-radius:999px;place-items:center;padding:.375rem;transition:background-color .2s,color .2s;display:grid;&:hover{cursor:pointer}&:focus-visible{outline:2px solid var(--clr-text);outline-offset:2px}& svg{fill:currentColor;width:1.5rem;height:1.5rem}@media (hover:hover){&:hover{background-color:color-mix(in oklch, var(--clr-border) 70%, transparent)}&[aria-pressed=true]:hover{background-color:var(--clr-text)}}&[aria-pressed=true]{background-color:var(--clr-text);color:var(--clr-background)}}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list-wrapper{border:1px solid var(--clr-border);background:light-dark(oklch(99% .02 var(--primary-hue)),oklch(22% .05 var(--primary-hue)));border-radius:16px;margin-block-start:1em;overflow:auto hidden}.token-list{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.9em 1.2em}& th{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:.8em;font-weight:700}& tr.is-revoked{opacity:.6}& a{word-break:break-all}& th:first-child,& td:first-child{width:31%}& th:nth-child(2),& td:nth-child(2){width:24%}& th:nth-child(3),& td:nth-child(3){width:15%}& th:nth-child(4),& td:nth-child(4){width:16%}& th:nth-child(5),& td:nth-child(5){text-align:right;width:14%}& tr:last-child td{border-bottom:none}}.scope-chips{flex-wrap:wrap;gap:.4em;display:flex}.scope-chip{background:light-dark(oklch(92% .05 var(--primary-hue)),oklch(35% .08 var(--primary-hue)));white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;display:inline-block}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;align-items:center;gap:.4em;padding:.3em .8em;font-size:.85em;font-weight:600;line-height:1.5;display:inline-flex}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145));& .dot{background:currentColor;border-radius:50%;width:6px;height:6px}}.badge-revoked{color:var(--clr-text);opacity:.7}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}} +@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:1/-1;grid-template-columns:subgrid;display:grid;&>*{grid-column:2/3}&>.full-bleed{grid-column:1/-1}}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{background-color:color-mix(in oklch, var(--clr-border) 40%, transparent);border-radius:999px;justify-self:start;align-items:center;gap:.25rem;padding:.25rem;display:flex;& button{appearance:none;color:inherit;background:0 0;border:none;border-radius:999px;place-items:center;padding:.375rem;transition:background-color .2s,color .2s;display:grid;&:hover{cursor:pointer}&:focus-visible{outline:2px solid var(--clr-text);outline-offset:2px}& svg{fill:currentColor;width:1.5rem;height:1.5rem}@media (hover:hover){&:hover{background-color:color-mix(in oklch, var(--clr-border) 70%, transparent)}&[aria-pressed=true]:hover{background-color:var(--clr-text)}}&[aria-pressed=true]{background-color:var(--clr-text);color:var(--clr-background)}}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list-wrapper{border:1px solid var(--clr-border);background:light-dark(oklch(99% .02 var(--primary-hue)),oklch(22% .05 var(--primary-hue)));border-radius:16px;margin-block-start:1em;overflow:auto hidden}.token-list{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.9em 1.2em}& th{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:.8em;font-weight:700}& tr.is-revoked{opacity:.6}& a{word-break:break-all}& th:first-child,& td:first-child{width:31%}& th:nth-child(2),& td:nth-child(2){width:24%}& th:nth-child(3),& td:nth-child(3){width:15%}& th:nth-child(4),& td:nth-child(4){width:16%}& th:nth-child(5),& td:nth-child(5){text-align:right;width:14%}& tr:last-child td{border-bottom:none}}.scope-chips{flex-wrap:wrap;gap:.4em;display:flex}.scope-chip{background:light-dark(oklch(92% .05 var(--primary-hue)),oklch(35% .08 var(--primary-hue)));white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;display:inline-block}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;align-items:center;gap:.4em;padding:.3em .8em;font-size:.85em;font-weight:600;line-height:1.5;display:inline-flex}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145));& .dot{background:currentColor;border-radius:50%;width:6px;height:6px}}.badge-revoked{color:var(--clr-text);opacity:.7}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}.token-reveal{border:1px solid var(--clr-border);background:light-dark(oklch(96% .08 145),oklch(28% .08 145));border-radius:16px;margin-block-end:1em;padding:1em 1.2em;& input{border:1px solid var(--clr-border);border-radius:8px;width:100%;padding:.5em .7em;font-family:monospace}}.scope-checkboxes{flex-wrap:wrap;align-items:center;gap:1em;display:flex}} /*# sourceMappingURL=/assets/css/app.css.map */ diff --git a/public/assets/css/app.css.br b/public/assets/css/app.css.br index 9ca789b9af38df7f5e3f37fefbeae7419e9b5312..200e0d258d986670b66f63ebf5d4d71b53405b73 100644 GIT binary patch literal 1792 zcmcck;Sj?E8K3ROt4(x$ID$W=y-!zGnfdkf-qXn;>(tGEugG&2{?+AFtMH}8e`S8z z%vIN|3)K}kkDS=CE^dd~(MXHzQ2yYp5C7he%Hj;sN@ZAjs`iE_o70B!rF%spzwTXV zduM^xq;%Qn4g2z(YfN5TTE;tb+w@~C2K=}7t(W?(a%Ea=7= z={xJXuX(2uHR3zt7RFAS@NBPk=q&z;JMF^TuX`-ckLH@j_sU>*SlfJ0t(g*B`4PLG zR=GQB?3v#X^Ng$ibe@u!<&Ee=f;aUi{^@MV?7enm=l<3%`NhKTry2xsp0AzV<8ajS zu0`(ZsMM`Vq0`R)D^KS?&ej&o$-Jv=Urs1I`yyVO6 zFsBJ-3ae(63tMg1xge=@!}W*kN{utuQ`R>!rtFc{FAe@8>!Q!uFJ7^Xuj^BGxWw!e zCd{RrS??0>TokyzdCRqC&s!dR8Zj!bemz~1SP<10zD}UqP%%vRkgiw8-Ye{W{r8UC zyr`QkX#TJxZ_86py94*Vm}K%3lZ78nc3ZN0$+wElQ7={t%}zX{;Zy53>8Po`Z_r^p-T{&m-nDtrBE`gCK?HoG~N z)+OwdR_49dO=4^9NHh6Z@x}gXm*vsy&8g`x4qmuF;c#?g`_i*YhZk=zU&L1}-P`gq zx^SacXv%}ymR{*?ocyteb5AYf)ahQ}#IUVh{?MQ0W(oya&wV6o_)o}r9Q{~hRJG2# z=V1J;<=PTq9CaH6!bIZcZTAZ=dmIqm^f2}BR9b7N=AymC?A<3z*At-}FKl-z``!$>DYJf~`FKwf5$xt)--^mL$#2$O*kmKevpnDOVk^U4ok}$RIZX&Z`%cFmLSO0tW`w>&1bmI5v=b9!IAF0?{VR!3V z!F;g?rAxEKW(i3yUR3=|S^tyYvB-yYESmf0S#i{q3ELiZvK22hd1>Hbz$3i$@zg1^mA7`THQ6MQvF7X)g|o#Q z4dS&+a{rw3X1U~YsAJDp2dmeMIT!yr{-!uc_PXdPpP~)1oBgB{XCc~D^$ETbNtydDdNXe=k6)%7wx;4Hb=Zl zyQ7uoxO(Karp#Lce@%8dFZi7ma>SbX>ps1tBBuWineX0jaGPeb*vNm@E4O|jH6f$S z#n#Pt*rjhzu8-OL(afHU<+b|ttCLw2SJm^Devf$9J>6D-udYt!g#pX5NmdKD{5p{E zd{-`iU+1ZRx=O7}rfc)*ZQ~8*^RQ?DtQ?_>9f|?IEl)izBy08xV_6r zdcrXw_N;bR#TD0IM4WJ(eKa>*@k5hWmj9|xhT*HW`dR9KWnf-%`7HkLFLvf>UALRiVqtM5MSh85e$NA~ ziuP>Nbr&m7x(ilc=%4pVg;|(1r0L-IQSPd628mp>h-eoU5)Aenpv;EncZ!$-|?YQ z{dvO-{f<4eMfbZ;HkDW~@m-rvdHa&`t^;3r>tfewY8(}7Jz9AB*|J@)#`x@hP6y?-qg@2x!g_5b`Y Vnfeurf?qQI-ZAUE^Rs;=%m5*JZlVAH literal 1690 zcmcckVH3jx9iNA9k~9ypCQ0-yUH_?f&6UL3SzeV}>b7u&Ef2VC6V4{-!M1Ow>+M-# zaZxtcmNfZX&UdKX7`!cwe{#syhqABE$a5|$k&!RBQ?qNcl%w2@!jqm8!{?f7Vsea)l`)2#A&e5=mN96Rwth>v$wc&+2ysT;#Piz242 zcUm8y|G8uHJyXrIzu)XG5N-FKawh+FjZMv~+BdbU>}Q`7Sjn5{RH0g&ecf2B<=E@> z4}SNoSo`+B;+B73GdRmTtkUbgJT%I~)(E-@fONvb)w|0Cn!W0eWndC_jm zd_MP!UXVEYCL!`P^W}~5CJXn5MG0{xm|ZMevAXKj`2f`={%v1ZFf;A!Su?HwLecY8 z))uX;suB?{%Vv5Q-d-?S>eSD^jK#hmi(AaB-@pDF_wcag0YAmK@9D*S9UVo@Q`dYt z_{p^R_JQdcT=fZ?+3(05`zAeQ^>T-oJKS&iosZZq|6l&Ed2W>3vnfxHD$iTAZRNFP zd>vZnS6`iLEq0feT$S!__|2yKVuzMt-O8)Imme;W-6yEU@Ich< zT!xNNkJeY87-!oac5SUqd69P}pG%ysJj49o@?P`5iweKHx<9*jd~3<6oYHHTIrepD zZA*Mvw13vjAMXCn5{I6tw;cTbXMdlKOU)j~|}|b9~v$>`SF#WLyvyUztZ|m$4UO}{1YpG-<{4d(^2JOd9BFX zDt}$?4C@oYo2LD*m~d>n;%coXX!gOT8efG zd}|8QWLufyAai=7_Qaybo{qwmLfuPB+#F_#KjFx07r81jWm8M!qz*O@wdkF@E{V-j z&D$#_-PZi3>zM8i;rOcp+utscun@eHV9nXPq%rpImwe6hnJTZ{w@sfXEsd9h5k@W-Rp{tL+mCu%Y6-nra#+RE5%g header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: subgrid;\n\n > * {\n grid-column: 2/3;\n }\n\n > .full-bleed {\n grid-column: 1/-1;\n }\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n .token-list-wrapper {\n margin-block-start: 1em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n overflow: auto hidden;\n background: light-dark(\n oklch(99% 0.02 var(--primary-hue)),\n oklch(22% 0.05 var(--primary-hue))\n );\n }\n\n .token-list {\n width: 100%;\n min-width: 640px;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n text-align: left;\n padding: 0.9em 1.2em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.8em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n\n th:nth-child(1),\n td:nth-child(1) {\n width: 31%;\n }\n\n th:nth-child(2),\n td:nth-child(2) {\n width: 24%;\n }\n\n th:nth-child(3),\n td:nth-child(3) {\n width: 15%;\n }\n\n th:nth-child(4),\n td:nth-child(4) {\n width: 16%;\n }\n\n th:nth-child(5),\n td:nth-child(5) {\n width: 14%;\n text-align: right;\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n }\n\n .scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4em;\n }\n\n .scope-chip {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n background: light-dark(\n oklch(92% 0.05 var(--primary-hue)),\n oklch(35% 0.08 var(--primary-hue))\n );\n font-size: 0.85em;\n white-space: nowrap;\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n padding: 0.3em 0.8em;\n border-radius: 999px;\n font-size: 0.85em;\n font-weight: 600;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentcolor;\n }\n }\n\n .badge-revoked {\n color: var(--clr-text);\n opacity: 0.7;\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n"],"names":[]} \ No newline at end of file +{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YEAE,oaAwBA,kECxBA,0BAIA,oBAIA,iIAME,0BAIA,mEAKE,oBAIA,gCAKF,iDAIE,yEAME,uBAON,oDHjDF,kBGyDE,SACE,oBC1DF,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CIrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MH/BA,sFAME,+CENF,0LASE,gLAWE,uBAIA,qEAKA,mDAMA,qBACE,iFAIA,6DAKF,oFAOJ,uIAYA,iEAIA,kGAKA,4DAIA,qDAIA,mIDjFA,iNAWA,mFAME,6GAQA,6FAQA,2BAIA,yBAIA,4CAKA,8CAKA,8CAKA,8CAKA,+DAMA,uCAKF,kDAMA,qMAYA,0LAaA,uCAKA,sEAGE,uEAQF,gDAKA,kNAQA,0FAIA,wKAUE,iHASF","sources":["resources/css/app.css","resources/css/colours.css","resources/css/layout.css","resources/css/header.css","resources/css/reset.css","resources/css/pagination.css","resources/css/admin-tokens.css","resources/css/theme-selector.css","resources/css/notes.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: subgrid;\n\n > * {\n grid-column: 2/3;\n }\n\n > .full-bleed {\n grid-column: 1/-1;\n }\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n .token-list-wrapper {\n margin-block-start: 1em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n overflow: auto hidden;\n background: light-dark(\n oklch(99% 0.02 var(--primary-hue)),\n oklch(22% 0.05 var(--primary-hue))\n );\n }\n\n .token-list {\n width: 100%;\n min-width: 640px;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n text-align: left;\n padding: 0.9em 1.2em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.8em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n\n th:nth-child(1),\n td:nth-child(1) {\n width: 31%;\n }\n\n th:nth-child(2),\n td:nth-child(2) {\n width: 24%;\n }\n\n th:nth-child(3),\n td:nth-child(3) {\n width: 15%;\n }\n\n th:nth-child(4),\n td:nth-child(4) {\n width: 16%;\n }\n\n th:nth-child(5),\n td:nth-child(5) {\n width: 14%;\n text-align: right;\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n }\n\n .scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4em;\n }\n\n .scope-chip {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n background: light-dark(\n oklch(92% 0.05 var(--primary-hue)),\n oklch(35% 0.08 var(--primary-hue))\n );\n font-size: 0.85em;\n white-space: nowrap;\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n padding: 0.3em 0.8em;\n border-radius: 999px;\n font-size: 0.85em;\n font-weight: 600;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentcolor;\n }\n }\n\n .badge-revoked {\n color: var(--clr-text);\n opacity: 0.7;\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n\n .token-reveal {\n margin-block-end: 1em;\n padding: 1em 1.2em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n background: light-dark(\n oklch(96% 0.08 145deg),\n oklch(28% 0.08 145deg)\n );\n\n input {\n width: 100%;\n font-family: monospace;\n padding: 0.5em 0.7em;\n border-radius: 8px;\n border: 1px solid var(--clr-border);\n }\n }\n\n .scope-checkboxes {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 1em;\n }\n}\n","@layer components {\n #theme-selector {\n display: flex;\n justify-self: start;\n align-items: center;\n gap: .25rem;\n padding: .25rem;\n border-radius: 999px;\n background-color: color-mix(in oklch, var(--clr-border) 40%, transparent);\n\n button {\n display: grid;\n place-items: center;\n appearance: none;\n border: none;\n border-radius: 999px;\n padding: .375rem;\n background: transparent;\n color: inherit;\n transition: background-color .2s, color .2s;\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus-visible {\n outline: 2px solid var(--clr-text);\n outline-offset: 2px;\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n fill: currentcolor;\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: color-mix(in oklch, var(--clr-border) 70%, transparent);\n }\n\n &[aria-pressed=\"true\"]:hover {\n background-color: var(--clr-text);\n }\n }\n\n &[aria-pressed=\"true\"] {\n background-color: var(--clr-text);\n color: var(--clr-background);\n }\n }\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n"],"names":[]} \ No newline at end of file diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst index d7479672cf281dfbba69bb5d09034c9262bf0692..2fda63037f8da7e97d557de0283fb3148b4aa42e 100644 GIT binary patch literal 2117 zcmdPcs{c17UVN`3gH@OfzlMOX3;%{i7v^{9YchQg-2B^U(=8bVpW5v*h20x(EuJrM zx|@%|p-V&HA;U9<=L~Cay>I)xS$g+GeWzvdFXn$&k?%er9vP*-JY~P>n_UIg@ouk+ z1Dq~frGC%3rg#3%oS9qWM{$}&mV3{kYHkdlt z+|Qe&=-#u*c@495(heKfr_oRTEMK%cLFQZV+&a`Zev|R^TpDM$5^+{nN+(}&LZw_ z=>K2OJES)0^w{5h`nJYxjbeODc(|$Z>%T&qm)3g8ZcJ_XyY6jgdCS8_zQuPM_QaPZ zf7Lx1kX@e_%Bw0}>vi(VoZV{dD_*tl{T%*&ey~x&j&;&*+)iFeB0}dII#zuuG%46| z&dcJ=?LvPxK7l6-6F#kNt2t-bDsp0RqE2wO1V>ovk_AUp)hloIuB~e`+4Y>a-6&$| zyyW=TS`#+O9bGVw#PEdQNV;yI2Mws&V-yZT>^V~L6h_mT3c{l4c*F0#+=b+DWs ze!?;MA8X9@TYlp9&)M2fCy25iQos9N%d^4L^2)rtIpdtVgqZK#$%@4Dppl%0kDetYwZ z&$X|2Rmh#cfH^cIQMx}WvD(k=)z;6?UBr(@u;0IOExcZ6F&p2und&R0f)tM0T4VEfX>VPaF0$Pxn? zXN5`b%$h8defqEDn9dS;WO1F>YKOP$-c`%{3&MKt&5}vioIOeWi1U1&-v9k7r=#+3 z-n5zFbkSz!{V4}xcQd?cs8gM$Fu|2S{L5M^%TLQ@1Sw8>Zj^H2ds4B$&Yrr5FT#U7 z6wd1{?Kl%NY1Vex19O=L?y)gFI_PoXue98aiRaflG-$tISjPD2;F+7Tzl8o7+dkT8 zxzhCI&bgjqRcZ(S{5;TdaV49~n~Ao8{0k>1w>sZoZ{(bwXuUCQhpSOfh3w*ntqmSY z6aGDNc=|sqtG)X{xJ=$9vkCix0&V9>{4P5wadY0I)eSsJf81B^JbSo6A>46Chu&x9 zW9vEA=pKuoxySd}2BoZJFPip0yHnSyeUiu3tR+xgTVy(8(}C8#oR=@Z4h~ZC{I=53 z>_M|?dU12{@#c4}C)sY^4D{W4VNa0cVc{=c8Zn%u(Pzb~ZiI;6*d^52w&>WVV`hTw zDp6^Q4)04D!=mKtKFiPc>Aq%=ruA`_%j$wa;};$3GXqxDo9eipYP-4a?w?5}=^Jlu zRM_w&qFTyh;j(vJk!6mz4Pzbpo7Db<@fNC1F86zT_vhC59e!L&yRzw6U)f0w zBcFg~1%{Q!<&*+0Z0&iGHtV1TyR^;m*_C&<7oO-{@bpPo&vVtNyaHXHJo~?k1$ho6 zYYW;g=6|$cH}fAYp}+&d)BaxOTwoblHE)LS@|T)#40129eVn;*LyOnymdxCj%jU70 z>m;yzm~hzr{}!3M(Z6bVk`0`>wsWo)cyCkL^EcsF`q5P38)>b#0l%$s{T+rQpV3f4|L-f~dQ{D$+E`+r+`Z$2&A(01>_xOdrv)kG( zSF}8sVgIA-58K&RT>sU2ASsYt=)>z-N$a->t^KOLaiQY-Ij^EhYrU^L;H*5XFCn0; z{GK^U{MNkUB!;D%7WtIM-VoO>Jiqrsp2;27{xh>RPfXk(e4$?Pk~qiezt0^{D980) zik%g_Gg?yUdtu!5tBbt^%x>qZn!n$BX;F#8{E|y+YyM{zUgO)?+h}EAqHX(IQE492 zcDD+hI-#uZbw-VH>*ogD<4#lMZt?55`{;jB?!J;$t7RFERx>Bf4U4FaDU7Q9zAfZP z?~Q1ygiiaq&j*f8uT6TzzF>h<(42h}7E~-ez*DnR+?OXkKl|T`6Dy2l41YMxZ$JFA y#r{v@&yy!pSeIYPT%>&4=P%>AJ#QPEt_!QYd?WEJCUKwo^X#TWDWU152igI{*Z%42HEpO)Y?l!t}Zu-SvbEZ77 z;9q=i?}^gP)#Lsxsyel?uG>>OzZOyUxx$8}eOik?shr=&<6G~;DrL0$- zf7mkWxx|YZ{~{eLws1=OR6nf{cAm+4R6~Pp(Tw&awLG)D7Rl*XioCvUt$I-L)%(}= z{qBpEPapbmCHCIA^k&N^-5*{}I@9*`U#H|{yXAQXZU^hGmmRG>birZcf8CcA6P8~4 zcW08xoSZL~njyvSR>`P%I=`8_zsjGL?|SLsV@(@oNx3owWrT#<^|A7OkL+x(w9Z>~ zz_H6g%xB-z3Fj@BT@q@v;AzX^V?Ma5XX=t4Uo`Z0Z@hYbg4_2y9|PD{UoC!_~?~k58oH3dN#N7k6wlINemxrs2O>#f4+l!Q(DE?Y##BH>_J>TG)5~Wz?m^H#H}e z=B&D!TJM*>P22q4Uj3i7mwqrEQNQUHWo0qbmCIg-m}7VgZOnjL?& zI%_#c>-^Ul54^0BxDUNtdn>=4J!H3Ome%%p=a(A%J-_xu%LLKZz!}w|eTW*q^*4U;>*0fo-@zC3f+8f zg6GEO#TIu}tj(9^)UFdR(0{V?oH!pKFy*}~FVGV1Q_tWo2@G=N- zaXr0Z(is)KsP6hHP9_c!odr{bOFn0Xxi&a49oXBG!DzVZu?3S#W}|{?(L3LQMf39# zJH+}oeYnxKCx6eHCl=g1t+_MGEb>guyUt#45W02Y!iB&6T?R_6u_3ogww;<#xn)C# z+)<_|1(vTy4+9;(J@|I4D#zTaxO^3$xG0^N2q6thrpz!NltC1&I*&}Uu%@QJTLqdXJwLM+V$t_ z+7_k%)R_4zDO&IS$(nz?&rh-**E+deCY^cV&YIS|Wpgs)9yNTi`uOl|w!r(gz(Zd@ z99YoKwdd%Ju-1)7mOF}Z$6eyMIFrjD?96&DK6jA-nJ=3jT>YxLhHDwajv}5r2ZGOW zny+eZdNALcZKVSDooUk7DjC!m&rkG-^8dVGTlCiT(qC6J)<0|!3E+_Vnr2~>9zV13)B;%r>G^^`zG(!$#xw(Or`XOnu-=JVC} zRcdcKUKyCO$hEV2e|Q}<@0oyIb64&9e&5sptcs7)-NAEX+7w>4&l^6o zt+Lf~Sy*-{8`YEHsjl@nrzn}pbXCRJaKyWhRnnq|eztCPyy zdN=4WcipgKvDzTP8~A;8WQuvKK{jYDhiuRY@ zQtCOsc-FTk8I6XYoq}T?M|dx(VB}J|z9{C`#aAN7HXh&a6>fB}Xk(^>#{rQIt79V~ey7b%nw}MgsDziS6 zeSb5*xM5u@bBk#AF73u0S42v-PGE8Vzu3pO!_TF>+q-ZPfB&mqZ-XgkGUQJ8DLRO* z*Vr5_e)j{jaH?fxx2YQs4~tQwrdB}p-P#k%3R6yRz0x*E!EfH`Pb;H^qL{w+R{Oo% zBeU|mV}X@*&dC|>4>A-*6auUEiEiA>*q6>;^LVOk#H{?;_qVumA24weH*Zvu6FMpz z?-KCg>*wkD59>X=5-cY2*?6ow>%A^(;zrT^r?=}IY)Lgaz2xewn_{2uT-g&UzIv6+ z#Nr2hXE^0$6+ZCad|un^$l!G9^SSP*EpZm>Wj{}Me0JEu!Jx^Gn|%X|`nhI*)khtw pR;~AJobLUoH8IKDx^Y>t(x#U>51+@x+x<-?cd-{V z9xmay%cxTOM54v=;h&j3X2Po*470v}xc{p3n8JJBMnAbt?++<1zdK>m!NeB7mkSnF z|6Q1|R7OFha!skC)gwj4;&KUrTpd&%gWQ)5p?(KJ|W|AJ{A2T(S92`I0@~ z4zK$D>eH>YRa~;!7Yq%9RwS+zcv_NltW(`kLHXu_$y+^E{*Jj|V*D!O*qv4GCA_nC z{1mbLe1Deh+P`-vUOT=yyy%~Xx4qSBvAw${Jlkw?@$|cVp;A%4?*Cug4{g-z7mmF! z<@X1xw(#^90a`Wsva9#2n!BBn+3vse!Jaw+^~tw z?`zMsZg<>zLeB4nOzGXmIm~7+XK2XG74h`@eeA1{Z&SjH%WD^`4^m%x=b2D)i{HmX1Ow;BtC8Lxl6 z(bex;*drH)N9(b71QQ#5PKh&{F?QkNWk_t@t(EXsb=PDuGkkx zn}2w^JS5_d)ffMye4fRb%QT+yPV6>6%&J-NW!p*lJ9T+7hm>WKBKO*-eOmt05i`{mZ&$*0-B>9kXvQpHetynM`y!KjY(|KSdU+ z)e;v^n7_?+v*?5)Mk_bE|NQx;Z{D2^Gd8sUUapy$(J=Gvn>y|DF$(kl_3b@5O?9Ql z-^c2w9yQep9gC9J^0jfh+VUiAwUkzEeYalEts6_D7~d>@#`Ju;0Z;Ty#Rrb3t==lC ziAnMopX*!XZ8=$Pu6WOpWg>P@57thf{;FmDzLM3&ZJQDnu4;2sGP{58+B<^;wbM_g zp4y(Cy?9;u3Q@-GYlEWPoZd2P{q(I9cq`aLN;uvq= zR@?N*?XNhK|2i|H#J*{KT%Q-N=9TH~KVi43$Z*bwGFfj`Ki=9m=~HT=*S@gXCE0l( zqs>f;yHfPcnq6!xiXSA>CC}!S#XL9>;M$Q^=x(xif^f<*&ute3|36cT%3S4>V&8Jb zf_K(|puIm=DyCJ~9NP5N@l@6d>qFnlm=?F~{h1{wNiA#7*m8bAe~hZ0VQ>)=c4bHL3SytQ~~B f-(HBiF1=V?K>6gmU!Ojj*6%w1R=ix~S~vp$sqctP literal 1269 zcmX?@QO}@oJ?L%y{ONl$-$(?kGbyQFTBftMYjOkIwUZSlKmNa)9?BOTzs)&qu zlkF*KUJc!zi~*&sktY?-a6J#-6*}>(_MIidxe@x#>6)!2<$NV~HGk^aKi^_$s5ytb z#EaYZ)tlgHu1fq1Pb9y!^*-v{^n9Ae6`#$UCtmj0C%eD!?djv!e{OzQEW`F+(@!h% zY`xoDHS_+p-e$gKIi)XVIJDndmOWycTTfMWW=~x+lhb-z z$F|0f)fXpj{=4?p=O_7Mwz=2WSA5qfjGi01Rqy5=xpS9pO)IZ|q_Eij?7QpoZ?_xC zER)hV{CnuNoL=P7faQm_KMK3UyDw}@z#Y5kO}C}QD_)+vP#kow@~HLk*16&Otf?L! zlLReiyek&mb4J(grt+6~_p??HWfSK1ZEak%S>c=Oqqrv)vm_2KzHD0Bf3<4z{)$9~ z^**f`IjeyF42NW)=qDV%+0v>T0*@;qJ;WFCPaRFKqeD_qCyO&i`G> zLGHf0f5dxOUVCz7W|e6EAIn3T+>@H~E?XZ863DeVS-AG*{O8+V8x_1hBo!xS&9kUm z+A+nEPf&YN`DDKYgHO-EZEmJ<=(&VgK2uuaApcU%J+*^*XtzRl46gymp!w(8!Knzx^CdiITd`SRm)1aAgPzt^~>x9nu`kAg+J zUruk9+9GE1`hxM4?0Hq<5@pkwuh>0k?RZyZ_kM17?(Ju5d!=`sSgG;3;lbXw7nuu|%wT>r8&14Qpf>x0V;|doKF0_w&mcmqON>8g}+6s>)2NpMT(m)_aEQ zn{Fk4&F*C2tps!;>F&ApY~O4BnZ2uLA7s}0ZpQFzP22ZE5#Q~a{`sdrKJVJ~ zzm+fIg68)7DPbN*4;B5Q0>elb=`&SfK-J0IN{-i%!dj2Nc&zDsJJ+Fji diff --git a/public/assets/js/app.js.zst b/public/assets/js/app.js.zst index e9a5163aae326ac383a688a01ab7bc44f4cdf38d..f9a711706ea4fb17f9545e0c604f4eb06253078a 100644 GIT binary patch literal 1502 zcmdPcs{c1-K7Xqo1DCS~kJ<%^=Zp`WZ+X=3vP~~VX7x|$T6uI`gtDss zo(EoX27Fr>b}?*cSh()d5{2vMCq6nOvQDp6C~D!aGiB-fL}qVmzx}+T_LxwoN2%ud z^>>XH2QFQDJ29Q_Cf~=G-M(#^H8YaRyit>BYrrJjEF88bF@9FDjY2CMH<*eY@LHm?Awtcy?w#;tZ z#q)0k?#sM7m%XX|q5J(U|NZ=`MP5HI;`lP>cK^)(Yt5S8rAjIG&Ixwl{a`7sFH)sz zc71;Cvj5h5m?nk&KJqW+XD@Hphw|kQ9?xAE5Wjn}tM=+;6L;RY;3Fg}ClKs0Icn?m zBSPv&4e~-S`^5iV-I}rBRh9QU@2tsd*S^v&nsTpHK09vJFOS_5XB|s!UL1NU?!N4V zD>~PM(%m;L-Kkv{ttWEn#)l0Lo_DOb&0J!)?POZ>|8MrqtM*+@+CKkqNW~4q-rBfD zCaXo+?w!t_Z?|*$#tvn_x##a~wG1rIyK6l0_^+?$ndg}5>(4tn`=s!54y%LvErb{U zo4f1sb#9X%XD41(*57dCl3KH1c}{(>tjqCTu8z$0vXN%1*4DoGw5Ym$n%E(2l}@E^ zk`hO_o%hHbcyT9c`tiJnum5bgv|7Hbyn#nMXOgrtg(zP|1e|K!1UutUCw>LYBp1pmyYIpSOvYREFL@l?N?sYVH^(5k! z$;{3bRo~t&c&-wC%P;cQ_2nOIH(udpkSJe~?c~VwxTkO4O=->u9R~f9g`2w1$d&pA zFwc3{HK#B;Ft~V%Rm_X0IbYWtZrJnx$jX|`GtoCq=grfc{>>zLb*jisY11>SzXbbd zZF--3Ty5St-Po54ZC^xHw)U(PVEe+V$Y8XluVKN}XI6`OK2_$Qv2wrcfBDQ*gYEIv zp?fArXFV?2ySD6%sk_60;Id<)^R4w<|7&Y6ys+AU*XjGjTb)yUD#Lr$&z*E|(|hTx zx&MCeiSCtQ>@ zH9QhiBbY@e?7VpDo&aBg!olvD)~2qk7Fyl*2Gdv1oG!rjKAUr|+trm{^-WIXGhGc} z4LyCGsi^DizDH77t@mChwr#(h{bS1;`7)?SZo$ZczW+<=WpZ7D?5yfLh3*L(q(=Bvf|Wp zH+IR-GcTG3Dpf4aS8}W1Zf*DOXsF8R%Kv^itFI@@=rPlkh6pa^w(xBxCAZG8>OA!O z&6>ioHm_A_&Roxlw22mZ&`B@h6F|$HTw{4Z}|Fe{Djo^)CnV)m#B!}Fw;qc+- zpL&&3SgP%MwEM=V*1Id+>U~4A6Q=I?+JE(cpjP>28R^51l#WG-U7d9^+k2j{)VApt zxkLVG%;5Wc>dfLr5B)E?epX}rv_dR|eWq2LK&X5Em3*BEl0T$WzWmV*PYPKO_gKqr ziRaJmDL~*ANz0nk2v)WVc$*D_pr*ncl$1*(y>i8zw~mK+J@6vPY&Pkie2TW zcuX(w(-B39M49XEwRW|ZLJfKL6OZUg&)sDGi|54D)ZbPoOTKSoU?%*y-XK6gb< z<~!N#WR19CHR0xhzjqauo;k>Rqxm!2=JK6eH`^b4G5u@CnFo)r9F1$NSSlGdt+_%X zwr1^=$%fC&S+{3i?+i9bFWW|w_0A!@4t g54SN7o0rnsRSFM+XZ{pE7^bc?ontjq#v{{-0GzeyWdHyG literal 1475 zcmdPcs{c3T9p74A1}V1{JlY3@1Z@{EUGPuc-{QLFZ^8As3!?(r8Ll2IIyR^LKI4J% z&>PXrjsh%>O)@OI84fY*Ww^YZ|9}$bR&M(MKkmozFH|fef1P!0;g}${W;L z@}_CWeUtrG*PLpq->ErI^?6a%v!_AdOh4QFjP<(1vqbcM_tK5)_*d607md18e#m_0 zy-wGI**&b&jy<||^6jf9FV$a5Ufo)@a|^5ZWi zbM>i7T-ScA>1t=;?zp^wiLJFc(X>14{e_02peyUr4MQ6({C{RHjhJ?P_Tx`ibe3QG z`hi8-nUooJSUSY(k(t=+2gOJ9rgL%kaQr^~K=U-` zUFUZK8*h~Vi$8tXPy6Ye8O%(nw-1Iqoo%W8%i>?)inUznJM@q0Ca@yHosQ@5~iOyTjtOuFUz%a@_0UZ?g)vn@UPDUJn8qpRdVg z*?LOAW~x}qy-n2LWR#riVc9Ln(;Y@=z zYt6jt{nPV*OTM&wu&!>U%G{aqX>r{@mHl@L8XugPv(KQ>YvnoCN{fVy@bj_^E2dh! ze=yHQ)m4|ZEjBcr#YBqX7Hg4+$ja{7v!*gWZ4t1#Fz3c)yaAIS!na;zMwD$YGs5eeeXY0S3HEDj< za;nsbt zdUWCGq^OsNH-CDkZxmw zc-_iicqI7!wZwz^jn0<*t6K`TOfBr0XMI^!r`P!V*SjBEt{tw7k8;lNT_Powstz2U-MM(CfCYc=Qr~dAGmXoOYm;x zV%EY-C;u-wcwg(wEz#!OS4YDqx=4BL->{)3`d@VAp(}HZw>89UPrG{}<6H!HMaql) z>Y0v{qF2q;I$Lt@l1^A%V`JEXtDSCZ#X5r(54`wt)KE(X_oHW;-=GB>KY0qeW=n%VedFNKn zzps9`+U+u)60MaG*IRLxX-zEGA?IBZ&YkIQulIGX?Jd#mV?H~neD0$o&$y>PoPX5* zxqS1*dfp?&g;SRX79C{f3Q-f+b=*@@Vr%}o);>G`fc)yuRbpH#q+LAzF`sYv?`%}2 zZPYBNyy{qORjZy^>k5b0wmi(9V(JqfO3a@0+A@ekNmD9u`ri%jA01oko_zHHbI&5p yX4`G83JX}muTA-37t_LI-qXGB8ROh^gO`c|TIx=H`pPREe4a|}$=aebcN+lWFTUvj diff --git a/resources/css/admin-tokens.css b/resources/css/admin-tokens.css index a0db29e5..7bf0ad02 100644 --- a/resources/css/admin-tokens.css +++ b/resources/css/admin-tokens.css @@ -134,4 +134,30 @@ .token-list button.revoke:hover { background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg)); } + + .token-reveal { + margin-block-end: 1em; + padding: 1em 1.2em; + border: 1px solid var(--clr-border); + border-radius: 16px; + background: light-dark( + oklch(96% 0.08 145deg), + oklch(28% 0.08 145deg) + ); + + input { + width: 100%; + font-family: monospace; + padding: 0.5em 0.7em; + border-radius: 8px; + border: 1px solid var(--clr-border); + } + } + + .scope-checkboxes { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 1em; + } } diff --git a/resources/views/admin/tokens/create.blade.php b/resources/views/admin/tokens/create.blade.php new file mode 100644 index 00000000..d4847d1e --- /dev/null +++ b/resources/views/admin/tokens/create.blade.php @@ -0,0 +1,52 @@ +@extends('master') + +@section('title')New Token « Admin CP « @stop + +@section('content') +

Generate a new token

+

Use this for clients that can't complete the IndieAuth authorization flow (e.g. they don't support PKCE) and instead let you paste in a token directly.

+ +
+ {{ csrf_field() }} + +
+ + +
+ +
+ Scope + + +
+ +
+ +
+
+@stop diff --git a/resources/views/admin/tokens/index.blade.php b/resources/views/admin/tokens/index.blade.php index c9443e29..33806cdd 100644 --- a/resources/views/admin/tokens/index.blade.php +++ b/resources/views/admin/tokens/index.blade.php @@ -4,6 +4,15 @@ @section('content')

Micropub Tokens

+

Generate new token

+ + @if(session('new_token')) +
+

Here's your new token. Copy it now — it won't be shown again.

+ +
+ @endif + @if($tokens->isEmpty())

No tokens have been issued.

@else diff --git a/routes/web.php b/routes/web.php index 03d865b1..a9b46407 100644 --- a/routes/web.php +++ b/routes/web.php @@ -157,6 +157,8 @@ Route::middleware(MyAuthMiddleware::class)->prefix('admin')->group(function () { // Micropub Tokens Route::prefix('tokens')->group(function () { Route::get('/', [TokensController::class, 'index']); + Route::get('/create', [TokensController::class, 'create']); + Route::post('/', [TokensController::class, 'store']); Route::put('/{token}/revoke', [TokensController::class, 'revoke']); }); diff --git a/tests/Feature/Admin/TokensTest.php b/tests/Feature/Admin/TokensTest.php index 0c415296..d6695a15 100644 --- a/tests/Feature/Admin/TokensTest.php +++ b/tests/Feature/Admin/TokensTest.php @@ -37,6 +37,73 @@ class TokensTest extends TestCase $response->assertSeeText($token->client_id); } + #[Test] + public function create_requires_authentication(): void + { + $response = $this->get('/admin/tokens/create'); + $response->assertRedirect(); + } + + #[Test] + public function create_shows_form(): void + { + $user = User::factory()->make(); + + $response = $this->actingAs($user)->get('/admin/tokens/create'); + + $response->assertOk(); + $response->assertSee('name="client_id"', false); + } + + #[Test] + public function store_requires_authentication(): void + { + $response = $this->post('/admin/tokens', [ + 'client_id' => 'https://ia.net/writer', + 'scope' => ['create'], + ]); + + $response->assertRedirect(); + $this->assertDatabaseCount('micropub_tokens', 0); + } + + #[Test] + public function store_creates_a_new_token_and_redirects_with_it_flashed(): void + { + $user = User::factory()->make(); + + $response = $this->actingAs($user)->post('/admin/tokens', [ + 'client_id' => 'https://ia.net/writer', + 'scope' => ['create', 'update'], + ]); + + $response->assertRedirect('/admin/tokens'); + $response->assertSessionHas('new_token'); + + $this->assertDatabaseHas('micropub_tokens', [ + 'client_id' => 'https://ia.net/writer', + 'scope' => 'create update', + 'me' => config('app.url'), + ]); + + $token = $response->getSession()->get('new_token'); + $this->assertNotNull(MicropubToken::findActive($token)); + } + + #[Test] + public function store_requires_at_least_one_scope(): void + { + $user = User::factory()->make(); + + $response = $this->actingAs($user)->post('/admin/tokens', [ + 'client_id' => 'https://ia.net/writer', + 'scope' => [], + ]); + + $response->assertSessionHasErrors('scope'); + $this->assertDatabaseCount('micropub_tokens', 0); + } + #[Test] public function revoke_requires_authentication(): void { From 77998a963e57c1a6557f448f7fd1a6376094e858 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 13 Sep 2026 11:42:28 +0100 Subject: [PATCH 22/33] Fix relative Location header when Micropub creates an article EntryHandler used Article::link, which is deliberately a site-relative path elsewhere in the app, directly as the Micropub response's Location URL. Every other post type it returns (notes, bookmarks, places) already prepends the site URL, so articles were the only case where clients received a relative Location - iA Writer appears to treat that as a local file path and fails to open it after posting. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_017USyUg8PwuoDcHP8pv5xjy --- app/Services/Micropub/Handlers/EntryHandler.php | 2 +- tests/Feature/MicropubControllerTest.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Services/Micropub/Handlers/EntryHandler.php b/app/Services/Micropub/Handlers/EntryHandler.php index 48bbb550..a19f4d2b 100644 --- a/app/Services/Micropub/Handlers/EntryHandler.php +++ b/app/Services/Micropub/Handlers/EntryHandler.php @@ -37,7 +37,7 @@ class EntryHandler implements MicropubHandlerInterface $location = match (true) { isset($dataArray['like-of']) => resolve(LikeService::class)->create($dataArray)->url, isset($dataArray['bookmark-of']) => resolve(BookmarkService::class)->create($dataArray)->uri, - isset($dataArray['name']) => resolve(ArticleService::class)->create($dataArray)->link, + isset($dataArray['name']) => config('app.url').resolve(ArticleService::class)->create($dataArray)->link, default => resolve(NoteService::class)->create($dataArray)->uri, }; diff --git a/tests/Feature/MicropubControllerTest.php b/tests/Feature/MicropubControllerTest.php index efcfb6ce..e1795561 100644 --- a/tests/Feature/MicropubControllerTest.php +++ b/tests/Feature/MicropubControllerTest.php @@ -871,6 +871,8 @@ class MicropubControllerTest extends TestCase 'main' => $content, 'published' => true, ]); + $response->assertHeader('Location'); + $this->assertStringStartsWith(config('app.url').'/blog/', $response->headers->get('Location')); } #[Test] From 4aa93d63bbee4cab51ae4bd2bbe5f4448ee4bc77 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 13 Sep 2026 12:12:36 +0100 Subject: [PATCH 23/33] Add Article::uri accessor for the absolute post URL Follow the uri/link convention already used by Note, Bookmark, and Place, rather than concatenating config('app.url') inline where the absolute URL is needed. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_017USyUg8PwuoDcHP8pv5xjy --- app/Models/Article.php | 7 +++++++ app/Services/Micropub/Handlers/EntryHandler.php | 2 +- tests/Unit/ArticlesTest.php | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/Models/Article.php b/app/Models/Article.php index ab0602d1..9ac2335d 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -93,6 +93,13 @@ class Article extends Model ); } + protected function uri(): Attribute + { + return Attribute::get( + get: fn () => config('app.url').$this->link, + ); + } + /** * Scope a query to only include articles from a particular year/month. */ diff --git a/app/Services/Micropub/Handlers/EntryHandler.php b/app/Services/Micropub/Handlers/EntryHandler.php index a19f4d2b..d79a0418 100644 --- a/app/Services/Micropub/Handlers/EntryHandler.php +++ b/app/Services/Micropub/Handlers/EntryHandler.php @@ -37,7 +37,7 @@ class EntryHandler implements MicropubHandlerInterface $location = match (true) { isset($dataArray['like-of']) => resolve(LikeService::class)->create($dataArray)->url, isset($dataArray['bookmark-of']) => resolve(BookmarkService::class)->create($dataArray)->uri, - isset($dataArray['name']) => config('app.url').resolve(ArticleService::class)->create($dataArray)->link, + isset($dataArray['name']) => resolve(ArticleService::class)->create($dataArray)->uri, default => resolve(NoteService::class)->create($dataArray)->uri, }; diff --git a/tests/Unit/ArticlesTest.php b/tests/Unit/ArticlesTest.php index fda1abf4..0de3277d 100644 --- a/tests/Unit/ArticlesTest.php +++ b/tests/Unit/ArticlesTest.php @@ -63,6 +63,17 @@ class ArticlesTest extends TestCase ); } + #[Test] + public function uri_is_the_absolute_form_of_the_link(): void + { + $article = Article::create([ + 'title' => 'Test', + 'main' => 'Test', + ]); + + $this->assertEquals(config('app.url').$article->link, $article->uri); + } + #[Test] public function date_scope_returns_expected_articles(): void { From 6727138f43f752e095da074e365693b810f0e8c2 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 19 Sep 2026 12:22:33 +0100 Subject: [PATCH 24/33] Report exceptions from Micropub 500 error paths instead of swallowing them MicropubController's catch-all handlers returned a generic 500 without ever calling report(), so failures never reached laravel.log or Flare (Flare is already wired up via bootstrap/app.php). Widened the final catch to \Throwable so PHP Errors (e.g. TypeError) get the same Micropub-shaped error response and are also reported. Co-Authored-By: Claude Sonnet 5 --- app/Http/Controllers/MicropubController.php | 12 +++++++++--- tests/Feature/MicropubControllerTest.php | 7 +++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/MicropubController.php b/app/Http/Controllers/MicropubController.php index 2df5d432..72242150 100644 --- a/app/Http/Controllers/MicropubController.php +++ b/app/Http/Controllers/MicropubController.php @@ -70,7 +70,9 @@ class MicropubController extends Controller 'error' => 'invalid_request', 'error_description' => 'No known note with given ID', ], 404); - } catch (MicropubUnsupportedModelException) { + } catch (MicropubUnsupportedModelException $e) { + report($e); + return response()->json([ 'error' => 'invalid', 'error_description' => 'This implementation currently only supports the updating of notes', @@ -80,12 +82,16 @@ class MicropubController extends Controller 'error' => 'invalid_request', 'error_description' => $e->getMessage(), ], 400); - } catch (MicropubHandlerException) { + } catch (MicropubHandlerException $e) { + report($e); + return response()->json([ 'error' => 'unsupported_operation', 'error_description' => 'The request could not be processed by this server', ], 500); - } catch (\Exception $e) { + } catch (\Throwable $e) { + report($e); + return response()->json([ 'error' => 'server_error', 'error_description' => 'An error occurred processing the request', diff --git a/tests/Feature/MicropubControllerTest.php b/tests/Feature/MicropubControllerTest.php index e1795561..86ffa972 100644 --- a/tests/Feature/MicropubControllerTest.php +++ b/tests/Feature/MicropubControllerTest.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace Tests\Feature; +use App\Exceptions\MicropubHandlerException; use App\Jobs\SendWebMentions; use App\Jobs\SyndicateNoteToBluesky; use App\Jobs\SyndicateNoteToMastodon; @@ -12,6 +13,7 @@ use App\Models\Note; use App\Models\Place; use App\Models\SyndicationTarget; use Faker\Factory; +use Illuminate\Contracts\Debug\ExceptionHandler; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Queue; @@ -457,6 +459,11 @@ class MicropubControllerTest extends TestCase #[Test] public function micropub_client_api_request_for_unsupported_post_type_returns_error(): void { + $this->mock(ExceptionHandler::class) + ->shouldReceive('report') + ->once() + ->with(\Mockery::type(MicropubHandlerException::class)); + $response = $this->postJson( '/api/post', [ From eb35a0aa2d4fef3b84e8653f9d1a0e7bf8dbcde1 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 19 Sep 2026 17:16:11 +0100 Subject: [PATCH 25/33] Update existing draft articles instead of erroring on a repeat Micropub post If a Micropub h-entry post's title matches an existing article that's still a draft, update that article in place rather than trying to insert a duplicate. If it matches one that's already published, reject the request with a clear error instead of silently colliding. Also set includeTrashed on Article's slug config as a safety net: this model soft-deletes, and Sluggable's uniqueness check ignores trashed rows by default, so a previously-deleted article's title could crash new inserts with a raw unique constraint violation (this is exactly what surfaced in Flare as a UniqueConstraintViolationException on articles_titleurl_unique once the prior swallowed-exception fix shipped). Co-Authored-By: Claude Sonnet 5 --- app/Models/Article.php | 1 + app/Services/ArticleService.php | 21 +++++++- tests/Feature/MicropubControllerTest.php | 61 ++++++++++++++++++++++++ tests/Unit/ArticlesTest.php | 11 +++++ 4 files changed, 92 insertions(+), 2 deletions(-) diff --git a/app/Models/Article.php b/app/Models/Article.php index 9ac2335d..330ff03e 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -40,6 +40,7 @@ class Article extends Model return [ 'titleurl' => [ 'source' => 'title', + 'includeTrashed' => true, ], ]; } diff --git a/app/Services/ArticleService.php b/app/Services/ArticleService.php index 2372ffb7..ab91f9e4 100644 --- a/app/Services/ArticleService.php +++ b/app/Services/ArticleService.php @@ -8,12 +8,29 @@ use App\Models\Article; class ArticleService { + /** + * @throws \InvalidArgumentException if a published article already has this title + */ public function create(array $data): Article { - return Article::create([ + $attributes = [ 'title' => $data['name'], 'main' => $data['content'], 'published' => ($data['post-status'] ?? null) !== 'draft', - ]); + ]; + + $existing = Article::where('title', $data['name'])->first(); + + if ($existing !== null) { + if ($existing->published) { + throw new \InvalidArgumentException("An article titled \"{$data['name']}\" has already been published"); + } + + $existing->update($attributes); + + return $existing; + } + + return Article::create($attributes); } } diff --git a/tests/Feature/MicropubControllerTest.php b/tests/Feature/MicropubControllerTest.php index 86ffa972..3fd8b515 100644 --- a/tests/Feature/MicropubControllerTest.php +++ b/tests/Feature/MicropubControllerTest.php @@ -8,6 +8,7 @@ use App\Exceptions\MicropubHandlerException; use App\Jobs\SendWebMentions; use App\Jobs\SyndicateNoteToBluesky; use App\Jobs\SyndicateNoteToMastodon; +use App\Models\Article; use App\Models\Media; use App\Models\Note; use App\Models\Place; @@ -911,4 +912,64 @@ class MicropubControllerTest extends TestCase 'published' => false, ]); } + + #[Test] + public function micropub_client_api_request_updates_an_existing_draft_article_with_the_same_name(): void + { + $draft = Article::create([ + 'title' => 'WireGuard', + 'main' => 'Early draft content', + 'published' => false, + ]); + + $response = $this->postJson( + '/api/post', + [ + 'type' => ['h-entry'], + 'properties' => [ + 'name' => ['WireGuard'], + 'content' => ['Finished content'], + ], + ], + ['HTTP_Authorization' => 'Bearer '.$this->getToken()] + ); + + $response + ->assertJson(['response' => 'created']) + ->assertStatus(201); + $this->assertSame(1, Article::where('title', 'WireGuard')->count()); + $this->assertDatabaseHas('articles', [ + 'id' => $draft->id, + 'title' => 'WireGuard', + 'main' => 'Finished content', + 'published' => true, + ]); + } + + #[Test] + public function micropub_client_api_request_errors_when_an_article_with_the_same_name_is_already_published(): void + { + Article::create([ + 'title' => 'WireGuard', + 'main' => 'Published content', + 'published' => true, + ]); + + $response = $this->postJson( + '/api/post', + [ + 'type' => ['h-entry'], + 'properties' => [ + 'name' => ['WireGuard'], + 'content' => ['Some other content'], + ], + ], + ['HTTP_Authorization' => 'Bearer '.$this->getToken()] + ); + + $response + ->assertJson(['error' => 'invalid_request']) + ->assertStatus(400); + $this->assertSame(1, Article::where('title', 'WireGuard')->count()); + } } diff --git a/tests/Unit/ArticlesTest.php b/tests/Unit/ArticlesTest.php index 0de3277d..afcc0828 100644 --- a/tests/Unit/ArticlesTest.php +++ b/tests/Unit/ArticlesTest.php @@ -74,6 +74,17 @@ class ArticlesTest extends TestCase $this->assertEquals(config('app.url').$article->link, $article->uri); } + #[Test] + public function slug_is_suffixed_when_a_trashed_article_already_used_it(): void + { + $original = Article::create(['title' => 'My Title', 'main' => 'Content']); + $original->delete(); + + $newArticle = Article::create(['title' => 'My Title', 'main' => 'Other content']); + + $this->assertEquals('my-title-2', $newArticle->titleurl); + } + #[Test] public function date_scope_returns_expected_articles(): void { From a31c218784687bb67d773b647d38d8685bf0564d Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 26 Sep 2026 16:20:50 +0100 Subject: [PATCH 26/33] Hide draft articles from the front page and mark drafts when viewed directly Add an Article::published() scope and use it on the front page (which previously showed drafts), the /blog listing and the feeds. Draft articles are still reachable at their URL, but now show a draft notice, a "[Draft]" title prefix and a noindex robots meta tag. Co-Authored-By: Claude Opus 5.5 --- app/Http/Controllers/ArticlesController.php | 2 +- app/Http/Controllers/FeedsController.php | 4 +-- app/Http/Controllers/FrontPageController.php | 2 +- app/Models/Article.php | 8 +++++ public/assets/css/app.css | 2 +- public/assets/css/app.css.br | Bin 1792 -> 1828 bytes public/assets/css/app.css.map | 2 +- public/assets/css/app.css.zst | Bin 2117 -> 2158 bytes resources/css/layout.css | 13 ++++++++ resources/views/articles/show.blade.php | 13 +++++++- resources/views/master.blade.php | 1 + tests/Feature/ArticlesTest.php | 33 +++++++++++++++++++ tests/Feature/FrontPageTest.php | 11 +++++++ 13 files changed, 84 insertions(+), 7 deletions(-) diff --git a/app/Http/Controllers/ArticlesController.php b/app/Http/Controllers/ArticlesController.php index ff28fd50..b2da783f 100644 --- a/app/Http/Controllers/ArticlesController.php +++ b/app/Http/Controllers/ArticlesController.php @@ -17,7 +17,7 @@ class ArticlesController extends Controller */ public function index(?int $year = null, ?int $month = null): View { - $articles = Article::where('published', '1') + $articles = Article::published() ->date($year, $month) ->orderBy('updated_at', 'desc') ->simplePaginate(5); diff --git a/app/Http/Controllers/FeedsController.php b/app/Http/Controllers/FeedsController.php index 9aeb4abb..0e312882 100644 --- a/app/Http/Controllers/FeedsController.php +++ b/app/Http/Controllers/FeedsController.php @@ -15,7 +15,7 @@ class FeedsController extends Controller */ public function blogJson(): JsonResponse { - $articles = Article::where('published', '1')->latest('updated_at')->take(20)->get(); + $articles = Article::published()->latest('updated_at')->take(20)->get(); $data = [ 'version' => 'https://jsonfeed.org/version/1.1', 'title' => 'The JSON Feed for '.config('user.display_name').'’s blog', @@ -89,7 +89,7 @@ class FeedsController extends Controller */ public function blogJf2(): JsonResponse { - $articles = Article::where('published', '1')->latest('updated_at')->take(20)->get(); + $articles = Article::published()->latest('updated_at')->take(20)->get(); $items = []; foreach ($articles as $article) { $items[] = [ diff --git a/app/Http/Controllers/FrontPageController.php b/app/Http/Controllers/FrontPageController.php index 19537663..47833f45 100644 --- a/app/Http/Controllers/FrontPageController.php +++ b/app/Http/Controllers/FrontPageController.php @@ -26,7 +26,7 @@ class FrontPageController extends Controller ->withCount(['webmentions AS reposts' => function ($query) { $query->where('type', 'repost-of'); }])->get(); - $articles = Article::latest()->get(); + $articles = Article::published()->latest()->get(); $bookmarks = Bookmark::latest()->with('tags')->get(); $likes = Like::latest()->get(); diff --git a/app/Models/Article.php b/app/Models/Article.php index 330ff03e..6fccfc9e 100644 --- a/app/Models/Article.php +++ b/app/Models/Article.php @@ -101,6 +101,14 @@ class Article extends Model ); } + /** + * Scope a query to only include published (non-draft) articles. + */ + public function scopePublished(Builder $query): Builder + { + return $query->where('published', 1); + } + /** * Scope a query to only include articles from a particular year/month. */ diff --git a/public/assets/css/app.css b/public/assets/css/app.css index e255209f..cdb6e3d3 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -1,2 +1,2 @@ -@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:1/-1;grid-template-columns:subgrid;display:grid;&>*{grid-column:2/3}&>.full-bleed{grid-column:1/-1}}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{background-color:color-mix(in oklch, var(--clr-border) 40%, transparent);border-radius:999px;justify-self:start;align-items:center;gap:.25rem;padding:.25rem;display:flex;& button{appearance:none;color:inherit;background:0 0;border:none;border-radius:999px;place-items:center;padding:.375rem;transition:background-color .2s,color .2s;display:grid;&:hover{cursor:pointer}&:focus-visible{outline:2px solid var(--clr-text);outline-offset:2px}& svg{fill:currentColor;width:1.5rem;height:1.5rem}@media (hover:hover){&:hover{background-color:color-mix(in oklch, var(--clr-border) 70%, transparent)}&[aria-pressed=true]:hover{background-color:var(--clr-text)}}&[aria-pressed=true]{background-color:var(--clr-text);color:var(--clr-background)}}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list-wrapper{border:1px solid var(--clr-border);background:light-dark(oklch(99% .02 var(--primary-hue)),oklch(22% .05 var(--primary-hue)));border-radius:16px;margin-block-start:1em;overflow:auto hidden}.token-list{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.9em 1.2em}& th{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:.8em;font-weight:700}& tr.is-revoked{opacity:.6}& a{word-break:break-all}& th:first-child,& td:first-child{width:31%}& th:nth-child(2),& td:nth-child(2){width:24%}& th:nth-child(3),& td:nth-child(3){width:15%}& th:nth-child(4),& td:nth-child(4){width:16%}& th:nth-child(5),& td:nth-child(5){text-align:right;width:14%}& tr:last-child td{border-bottom:none}}.scope-chips{flex-wrap:wrap;gap:.4em;display:flex}.scope-chip{background:light-dark(oklch(92% .05 var(--primary-hue)),oklch(35% .08 var(--primary-hue)));white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;display:inline-block}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;align-items:center;gap:.4em;padding:.3em .8em;font-size:.85em;font-weight:600;line-height:1.5;display:inline-flex}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145));& .dot{background:currentColor;border-radius:50%;width:6px;height:6px}}.badge-revoked{color:var(--clr-text);opacity:.7}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}.token-reveal{border:1px solid var(--clr-border);background:light-dark(oklch(96% .08 145),oklch(28% .08 145));border-radius:16px;margin-block-end:1em;padding:1em 1.2em;& input{border:1px solid var(--clr-border);border-radius:8px;width:100%;padding:.5em .7em;font-family:monospace}}.scope-checkboxes{flex-wrap:wrap;align-items:center;gap:1em;display:flex}} +@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:1/-1;grid-template-columns:subgrid;display:grid;&>*{grid-column:2/3}&>.full-bleed{grid-column:1/-1}}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}.draft-notice{border:2px dashed var(--clr-border);background:light-dark(oklch(95% .08 85),oklch(30% .08 85));border-radius:8px;margin-block-end:2ex;padding:1ex 1em}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{background-color:color-mix(in oklch, var(--clr-border) 40%, transparent);border-radius:999px;justify-self:start;align-items:center;gap:.25rem;padding:.25rem;display:flex;& button{appearance:none;color:inherit;background:0 0;border:none;border-radius:999px;place-items:center;padding:.375rem;transition:background-color .2s,color .2s;display:grid;&:hover{cursor:pointer}&:focus-visible{outline:2px solid var(--clr-text);outline-offset:2px}& svg{fill:currentColor;width:1.5rem;height:1.5rem}@media (hover:hover){&:hover{background-color:color-mix(in oklch, var(--clr-border) 70%, transparent)}&[aria-pressed=true]:hover{background-color:var(--clr-text)}}&[aria-pressed=true]{background-color:var(--clr-text);color:var(--clr-background)}}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list-wrapper{border:1px solid var(--clr-border);background:light-dark(oklch(99% .02 var(--primary-hue)),oklch(22% .05 var(--primary-hue)));border-radius:16px;margin-block-start:1em;overflow:auto hidden}.token-list{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.9em 1.2em}& th{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:.8em;font-weight:700}& tr.is-revoked{opacity:.6}& a{word-break:break-all}& th:first-child,& td:first-child{width:31%}& th:nth-child(2),& td:nth-child(2){width:24%}& th:nth-child(3),& td:nth-child(3){width:15%}& th:nth-child(4),& td:nth-child(4){width:16%}& th:nth-child(5),& td:nth-child(5){text-align:right;width:14%}& tr:last-child td{border-bottom:none}}.scope-chips{flex-wrap:wrap;gap:.4em;display:flex}.scope-chip{background:light-dark(oklch(92% .05 var(--primary-hue)),oklch(35% .08 var(--primary-hue)));white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;display:inline-block}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;align-items:center;gap:.4em;padding:.3em .8em;font-size:.85em;font-weight:600;line-height:1.5;display:inline-flex}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145));& .dot{background:currentColor;border-radius:50%;width:6px;height:6px}}.badge-revoked{color:var(--clr-text);opacity:.7}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}.token-reveal{border:1px solid var(--clr-border);background:light-dark(oklch(96% .08 145),oklch(28% .08 145));border-radius:16px;margin-block-end:1em;padding:1em 1.2em;& input{border:1px solid var(--clr-border);border-radius:8px;width:100%;padding:.5em .7em;font-family:monospace}}.scope-checkboxes{flex-wrap:wrap;align-items:center;gap:1em;display:flex}} /*# sourceMappingURL=/assets/css/app.css.map */ diff --git a/public/assets/css/app.css.br b/public/assets/css/app.css.br index 200e0d258d986670b66f63ebf5d4d71b53405b73..544eb3957112daadec3232450bf4006f46b3b599 100644 GIT binary patch literal 1828 zcmca8aDpKrFk$!FjFJsfyc;*9#6662Hp*Ukhb8ux=Hk+YlcW_L9reB+-TL-K|I0s_ zp`S!|loxoU&iWUkD5~svo40h==fdMxvhRz(OgOr&ahGNq|KyOZ4`tUbo#wDKh%Mmi z$$#h0#BLU7`ptiLIm4dK#s6azKCDrWUc2kavb_OmWwW{?b{n1vQD@x#=7T%$3)Z=3 zCl;M$XRlpw_iEXjA3xm<+Ldcf-9q19Vmk5S*o0kWA)A{mj*x{}F*_Ct4j_eI& zkvdwr;xvQAx|c_$Z*IPrrI*J4)BB(Ojl;~XY2nTdeU8bwG8`r)ZZ10hihv9{*S=RTi!H|8$%?wM(?y7~1w#hm{KB96)&-FfVgpZ|?*y#MFte^0xZ5_s~# z)6U>`(E=CExBg>jrE6Etnv>(EjzbI^Yzk&A8#;AFNmzn z@^&`vS~g+&foF_I?&`<+Ux}KsV9R9*gCEmYJifkp>8dR=!t^$*u$;PfR$J7S2UWS& zt?us^*)QE>b+1)t*XC)vpSsL;6SjSS>E_PgDTy!nX4c7Auq?6Q9$a0N%Pg_ zu-^}LZ{3~8+L99WdHDmDt^1R6HkPi9DSvyY{K2N6X~xg>GTyXWuPc4nGil$$OS@lR z`@Q|m`^p28HT(ALKA(_qaSp58^mhdYQv~$Cm`P+9Trgkp;n|A4-n)J$$u%!lE-|>3 zAk)1sUA)`mcT$CZ;`A)B`WG=hsnQp}7U{fMv-r)0NY6Q&kM7j;E=w)?dg2k&8sq-? zOTJ8Mc^xh@)h=R=H@{I^~$5#eqYX-lyQjVIa{Yd z%N|W1B_sRF4(&}zQ?|47Z+XI9_548Pk>n*oGdH*#UHd`gZ^*42^NEWms66UXI@*!8 zWSPoY(Ic;$iDctUPmP{7{T6pEEQ(DIaJosAX#<(vNy}wv|mV1rT41vai88!}LF?%Z1 zb;OR`Sea6BX}yydck{EVJxR&;^K=Y~IGSXdcZw!IgZy8ew7XHqYn5N0pe?cJf(XRCR6!owFVr+7xxTyIjzntki-!V9zc*b}2N38XSHm{z8(N23Sot4Yx_#dn&ix<6PI*s1wzFo-$G$_yTK)QVvWR~cRlL0F zg{pDH-p*B(uRmX!x9H+Yrtm92wzkeXBBDK~OZBr_n(Q|>$7zb^PEBE3I^|}%x zq6DkF+{N|pyk#}NmUq!Kv9!DE^fZ4it-X&gZnT%T|J1>^r|{4F8?W0RbZw03wc@+} L@3eU4uZ^+*k`atV literal 1792 zcmcck;Sj?E8K3ROt4(x$ID$W=y-!zGnfdkf-qXn;>(tGEugG&2{?+AFtMH}8e`S8z z%vIN|3)K}kkDS=CE^dd~(MXHzQ2yYp5C7he%Hj;sN@ZAjs`iE_o70B!rF%spzwTXV zduM^xq;%Qn4g2z(YfN5TTE;tb+w@~C2K=}7t(W?(a%Ea=7= z={xJXuX(2uHR3zt7RFAS@NBPk=q&z;JMF^TuX`-ckLH@j_sU>*SlfJ0t(g*B`4PLG zR=GQB?3v#X^Ng$ibe@u!<&Ee=f;aUi{^@MV?7enm=l<3%`NhKTry2xsp0AzV<8ajS zu0`(ZsMM`Vq0`R)D^KS?&ej&o$-Jv=Urs1I`yyVO6 zFsBJ-3ae(63tMg1xge=@!}W*kN{utuQ`R>!rtFc{FAe@8>!Q!uFJ7^Xuj^BGxWw!e zCd{RrS??0>TokyzdCRqC&s!dR8Zj!bemz~1SP<10zD}UqP%%vRkgiw8-Ye{W{r8UC zyr`QkX#TJxZ_86py94*Vm}K%3lZ78nc3ZN0$+wElQ7={t%}zX{;Zy53>8Po`Z_r^p-T{&m-nDtrBE`gCK?HoG~N z)+OwdR_49dO=4^9NHh6Z@x}gXm*vsy&8g`x4qmuF;c#?g`_i*YhZk=zU&L1}-P`gq zx^SacXv%}ymR{*?ocyteb5AYf)ahQ}#IUVh{?MQ0W(oya&wV6o_)o}r9Q{~hRJG2# z=V1J;<=PTq9CaH6!bIZcZTAZ=dmIqm^f2}BR9b7N=AymC?A<3z*At-}FKl-z``!$>DYJf~`FKwf5$xt)--^mL$#2$O*kmKevpnDOVk^U4ok}$RIZX&Z`%cFmLSO0tW`w>&1bmI5v=b9!IAF0?{VR!3V z!F;g?rAxEKW(i3yUR3=|S^tyYvB-yYESmf0S#i{q3ELiZvK22hd1>Hbz$3i$@zg1^mA7`THQ6MQvF7X)g|o#Q z4dS&+a{rw3X1U~YsAJDp2dmeMIT!yr{-!uc_PXdPpP~)1oBgB{XCc~D^$ETbNtydDdNXe=k6)%7wx;4Hb=Zl zyQ7uoxO(Karp#Lce@%8dFZi7ma>SbX>ps1tBBuWineX0jaGPeb*vNm@E4O|jH6f$S z#n#Pt*rjhzu8-OL(afHU<+b|ttCLw2SJm^Devf$9J>6D-udYt!g#pX5NmdKD{5p{E zd{-`iU+1ZRx=O7}rfc)*ZQ~8*^RQ?DtQ?_>9f|?IEl)izBy08xV_6r zdcrXw_N;bR#TD0IM4WJ(eKa>*@k5hWmj9|xhT*HW`dR9KWnf-%`7HkLFLvf>UALRiVqtM5MSh85e$NA~ ziuP>Nbr&m7x(ilc=%4pVg;|(1r0L-IQSPd628mp>h-eoU5)Aenpv;EncZ!$-|?YQ z{dvO-{f<4eMfbZ;HkDW~@m-rvdHa&`t^;3r>tfewY8(}7Jz9AB*|J@)#`x@hP6y?-qg@2x!g_5b`Y Vnfeurf?qQI-ZAUE^Rs;=%m5*JZlVAH diff --git a/public/assets/css/app.css.map b/public/assets/css/app.css.map index 6413bbe9..2a11fb01 100644 --- a/public/assets/css/app.css.map +++ b/public/assets/css/app.css.map @@ -1 +1 @@ -{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YEAE,oaAwBA,kECxBA,0BAIA,oBAIA,iIAME,0BAIA,mEAKE,oBAIA,gCAKF,iDAIE,yEAME,uBAON,oDHjDF,kBGyDE,SACE,oBC1DF,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CIrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MH/BA,sFAME,+CENF,0LASE,gLAWE,uBAIA,qEAKA,mDAMA,qBACE,iFAIA,6DAKF,oFAOJ,uIAYA,iEAIA,kGAKA,4DAIA,qDAIA,mIDjFA,iNAWA,mFAME,6GAQA,6FAQA,2BAIA,yBAIA,4CAKA,8CAKA,8CAKA,8CAKA,+DAMA,uCAKF,kDAMA,qMAYA,0LAaA,uCAKA,sEAGE,uEAQF,gDAKA,kNAQA,0FAIA,wKAUE,iHASF","sources":["resources/css/app.css","resources/css/colours.css","resources/css/layout.css","resources/css/header.css","resources/css/reset.css","resources/css/pagination.css","resources/css/admin-tokens.css","resources/css/theme-selector.css","resources/css/notes.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: subgrid;\n\n > * {\n grid-column: 2/3;\n }\n\n > .full-bleed {\n grid-column: 1/-1;\n }\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n .token-list-wrapper {\n margin-block-start: 1em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n overflow: auto hidden;\n background: light-dark(\n oklch(99% 0.02 var(--primary-hue)),\n oklch(22% 0.05 var(--primary-hue))\n );\n }\n\n .token-list {\n width: 100%;\n min-width: 640px;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n text-align: left;\n padding: 0.9em 1.2em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.8em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n\n th:nth-child(1),\n td:nth-child(1) {\n width: 31%;\n }\n\n th:nth-child(2),\n td:nth-child(2) {\n width: 24%;\n }\n\n th:nth-child(3),\n td:nth-child(3) {\n width: 15%;\n }\n\n th:nth-child(4),\n td:nth-child(4) {\n width: 16%;\n }\n\n th:nth-child(5),\n td:nth-child(5) {\n width: 14%;\n text-align: right;\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n }\n\n .scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4em;\n }\n\n .scope-chip {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n background: light-dark(\n oklch(92% 0.05 var(--primary-hue)),\n oklch(35% 0.08 var(--primary-hue))\n );\n font-size: 0.85em;\n white-space: nowrap;\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n padding: 0.3em 0.8em;\n border-radius: 999px;\n font-size: 0.85em;\n font-weight: 600;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentcolor;\n }\n }\n\n .badge-revoked {\n color: var(--clr-text);\n opacity: 0.7;\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n\n .token-reveal {\n margin-block-end: 1em;\n padding: 1em 1.2em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n background: light-dark(\n oklch(96% 0.08 145deg),\n oklch(28% 0.08 145deg)\n );\n\n input {\n width: 100%;\n font-family: monospace;\n padding: 0.5em 0.7em;\n border-radius: 8px;\n border: 1px solid var(--clr-border);\n }\n }\n\n .scope-checkboxes {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 1em;\n }\n}\n","@layer components {\n #theme-selector {\n display: flex;\n justify-self: start;\n align-items: center;\n gap: .25rem;\n padding: .25rem;\n border-radius: 999px;\n background-color: color-mix(in oklch, var(--clr-border) 40%, transparent);\n\n button {\n display: grid;\n place-items: center;\n appearance: none;\n border: none;\n border-radius: 999px;\n padding: .375rem;\n background: transparent;\n color: inherit;\n transition: background-color .2s, color .2s;\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus-visible {\n outline: 2px solid var(--clr-text);\n outline-offset: 2px;\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n fill: currentcolor;\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: color-mix(in oklch, var(--clr-border) 70%, transparent);\n }\n\n &[aria-pressed=\"true\"]:hover {\n background-color: var(--clr-text);\n }\n }\n\n &[aria-pressed=\"true\"] {\n background-color: var(--clr-text);\n color: var(--clr-background);\n }\n }\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n"],"names":[]} \ No newline at end of file +{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YGAE,oaAwBA,kEDxBA,0BAIA,oBAIA,iIAME,0BAIA,mEAKE,oBAIA,gCAKF,iDAIE,yEAME,uBAON,oDFjDF,kBEyDE,SACE,oBAQF,oKGlEA,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CGrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MJ/BA,sFAME,+CENF,0LASE,gLAWE,uBAIA,qEAKA,mDAMA,qBACE,iFAIA,6DAKF,oFAOJ,uIAYA,iEAIA,kGAKA,4DAIA,qDAIA,mICjFA,iNAWA,mFAME,6GAQA,6FAQA,2BAIA,yBAIA,4CAKA,8CAKA,8CAKA,8CAKA,+DAMA,uCAKF,kDAMA,qMAYA,0LAaA,uCAKA,sEAGE,uEAQF,gDAKA,kNAQA,0FAIA,wKAUE,iHASF","sources":["resources/css/app.css","resources/css/layout.css","resources/css/colours.css","resources/css/reset.css","resources/css/pagination.css","resources/css/header.css","resources/css/admin-tokens.css","resources/css/theme-selector.css","resources/css/notes.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: subgrid;\n\n > * {\n grid-column: 2/3;\n }\n\n > .full-bleed {\n grid-column: 1/-1;\n }\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n\n@layer components {\n .draft-notice {\n margin-block-end: 2ex;\n padding: 1ex 1em;\n border: 2px dashed var(--clr-border);\n border-radius: 8px;\n background: light-dark(\n oklch(95% 0.08 85deg),\n oklch(30% 0.08 85deg)\n );\n }\n}\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer components {\n .token-list-wrapper {\n margin-block-start: 1em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n overflow: auto hidden;\n background: light-dark(\n oklch(99% 0.02 var(--primary-hue)),\n oklch(22% 0.05 var(--primary-hue))\n );\n }\n\n .token-list {\n width: 100%;\n min-width: 640px;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n text-align: left;\n padding: 0.9em 1.2em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.8em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n\n th:nth-child(1),\n td:nth-child(1) {\n width: 31%;\n }\n\n th:nth-child(2),\n td:nth-child(2) {\n width: 24%;\n }\n\n th:nth-child(3),\n td:nth-child(3) {\n width: 15%;\n }\n\n th:nth-child(4),\n td:nth-child(4) {\n width: 16%;\n }\n\n th:nth-child(5),\n td:nth-child(5) {\n width: 14%;\n text-align: right;\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n }\n\n .scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4em;\n }\n\n .scope-chip {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n background: light-dark(\n oklch(92% 0.05 var(--primary-hue)),\n oklch(35% 0.08 var(--primary-hue))\n );\n font-size: 0.85em;\n white-space: nowrap;\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n padding: 0.3em 0.8em;\n border-radius: 999px;\n font-size: 0.85em;\n font-weight: 600;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentcolor;\n }\n }\n\n .badge-revoked {\n color: var(--clr-text);\n opacity: 0.7;\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n\n .token-reveal {\n margin-block-end: 1em;\n padding: 1em 1.2em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n background: light-dark(\n oklch(96% 0.08 145deg),\n oklch(28% 0.08 145deg)\n );\n\n input {\n width: 100%;\n font-family: monospace;\n padding: 0.5em 0.7em;\n border-radius: 8px;\n border: 1px solid var(--clr-border);\n }\n }\n\n .scope-checkboxes {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 1em;\n }\n}\n","@layer components {\n #theme-selector {\n display: flex;\n justify-self: start;\n align-items: center;\n gap: .25rem;\n padding: .25rem;\n border-radius: 999px;\n background-color: color-mix(in oklch, var(--clr-border) 40%, transparent);\n\n button {\n display: grid;\n place-items: center;\n appearance: none;\n border: none;\n border-radius: 999px;\n padding: .375rem;\n background: transparent;\n color: inherit;\n transition: background-color .2s, color .2s;\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus-visible {\n outline: 2px solid var(--clr-text);\n outline-offset: 2px;\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n fill: currentcolor;\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: color-mix(in oklch, var(--clr-border) 70%, transparent);\n }\n\n &[aria-pressed=\"true\"]:hover {\n background-color: var(--clr-text);\n }\n }\n\n &[aria-pressed=\"true\"] {\n background-color: var(--clr-text);\n color: var(--clr-background);\n }\n }\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n"],"names":[]} \ No newline at end of file diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst index 2fda63037f8da7e97d557de0283fb3148b4aa42e..23a21d7720e31f959cbb407ddbb5b05f401a4cb8 100644 GIT binary patch literal 2158 zcmdPcs{c2IS%TG>K`NqwUqc|fL+*icgPmc#qUh0M{M-M=*B??oF?C&!OtQwW{(mX4 zpSP`E#m$iMjNvuITZXd<+=pJSy_Mhod9(EGiTZBK?!TCCt|~wKfOut;{_~Xmrf*Ia zSjW4)E*5NhY|~TqUCH}WTy6D~!XxFpdvd<7GMrzqEu-$}8^!yJ-Um*f^ZsUf_I866 zQxl^bD)!w~ah@iT+JA$6+mQ)ByG|WH@iX3Y`bC>Jn#Z%Vw&qy;-1R0!qNaAk!iQg2 zH|*jo-gJG^`G+!Vi+M_X{;!d-xz!?cInMIlk$^NuL$0nyjb{sIbk4q1Yw)-$%J1a9 zFkYGUb)Nr!eV<^pNvFsE?$ft5US|~VH-}G8@w)a~J|^-oxozS! zKEE_ihYMM|9*3U%r+tb4(2Ur$n03)lZ-sxIcT3ah;d3jo9h0`K`{(Yui1lEi!oJlt zJypxP?QXnbIkj_-8_%v!`314r*0F!)h|9cdik0KIU$XzT$yw1_(_H75SJ@-CW)&y3 z|5jTYXZo6Vrbx0@bU;b5$nx1K&zDWny|Tg6Nm4>0Zkuta1WWotgRUBmlijDES22Ef znm600KePDppYQXf^sMUt&2qTqcQ8Fsc0!c=TT9E8*U!xti49GbtqF;a|LfZ$WN{;J zK}Kc4HTQ)c%S) zJaw+p!U=D`)t&k(yu14?|K_(LmNz$5w-mkcMqEJL? zTjH&U5m|c5-<%e2==Pd@?$`uN=fsTxIty5x0`vvtSX21(riUHb)KvO+#)NO7@sIm9 z3uKB(nf+{g{P+HZ=%aZ#s%FlIId<+%?^`&}io3O=bSY1)_q`+gW(l{gUU(!w*QnWWNM63CGx(kv8J$^2=717DI% z^Blz!g2E@xcnJ79I%>5(6jms5V76f4o-LR9?`}%R;x*F61@_&Gr~2==S{;&Kts?y@ zG>B>HMb|dH|KBI}uGubri)rbD^*a2|wu@F=w`yKcU**;+*ytfPDQ2N$Xy6t`!@s=d zCzpCY?+*yJEvjUHs1e`!$iY@`|0y+LnJlG3hA5eYUuF6VnPIK(aw;U;`HGIpu6w{X zgXM&Mdfwa_(^~>(N*%qiXG+iEy=g*>dj${1?mN<;{E9K=b)#(n|H6sIO6>(KOq|nG ztPfr*m@Rp&S~iSvE5pPi3WpwT_)&j6t6iD$tz^O}^-{!f@S2^&?w5#j;v%RI9qizdL;Y_;ICRi|iAgrtyz6MVHQM3_5e#W#zxp zjUsEzgrz*=WW>y>SsQ2fZ(T5Lib<)x=f1{Oy_pStb}M(OiZh3s9-C_OJ|?zi`WAh= zlNQ>$KiF!2SuQU2_DM#=ok`9L-4%b@Jv3iDI?^G1HgryN!g(p#efRDNHpjTUNH*O0 ze#W*xEnUY98TwbbNC=%jBkjvxuyqy-lRszvI$?+6Nncb9XG$;AOETDc!R^zQkGp1g zE#y?*^2a<;Bu_EH<@v(qeurhQ^TN|PIFHR~v~BS{(cp1>@(~N3$=b=Q*^YO$l%#~L zW{_zQx^!Aj&u_6~#+@l0n&y`!{N=;02cNmly-0QY@ym_DT7U2G_A08&#yn?tUu|%b zb%$oOm9>P%%QG^kZyr3f$J4$l_g_*PgLgxS+nzlW+|y0%YmB@>Os&j0(x&~Wvo>M4#sn}4}BR-AXfSF?w&lJj&lOUkl> zV@=ZTncTUWYr?KyUG&lG<3=x+gB=UpdrvX0ifF$Q<=Pa<_{X!jG`iN@b^5pUtbGA9 z4XkLl6TE26+)K5Ovi;^)i4+<-orOyN%oAiFh4Vm0Cb7nZ+T%(b{ zQ*TH2^t;8@Tb@h3JE;6wfHgzBjOmv?%P*r1x60&NEFQIJ{Pk82%L-s?Z=Ta$@^yt! z%h`F`7|wXF-%?_g;BQs2dhh<=ImPO^i)CdQOzcHoWGMV&oyWI5x9Rz&tf1mr_r~Yh zbC|snmrRIz*!^gC1-2`*V4+idRif5h&K1aengW`3tT^iWdL-Vh8|Lv-*bs literal 2117 zcmdPcs{c17UVN`3gH@OfzlMOX3;%{i7v^{9YchQg-2B^U(=8bVpW5v*h20x(EuJrM zx|@%|p-V&HA;U9<=L~Cay>I)xS$g+GeWzvdFXn$&k?%er9vP*-JY~P>n_UIg@ouk+ z1Dq~frGC%3rg#3%oS9qWM{$}&mV3{kYHkdlt z+|Qe&=-#u*c@495(heKfr_oRTEMK%cLFQZV+&a`Zev|R^TpDM$5^+{nN+(}&LZw_ z=>K2OJES)0^w{5h`nJYxjbeODc(|$Z>%T&qm)3g8ZcJ_XyY6jgdCS8_zQuPM_QaPZ zf7Lx1kX@e_%Bw0}>vi(VoZV{dD_*tl{T%*&ey~x&j&;&*+)iFeB0}dII#zuuG%46| z&dcJ=?LvPxK7l6-6F#kNt2t-bDsp0RqE2wO1V>ovk_AUp)hloIuB~e`+4Y>a-6&$| zyyW=TS`#+O9bGVw#PEdQNV;yI2Mws&V-yZT>^V~L6h_mT3c{l4c*F0#+=b+DWs ze!?;MA8X9@TYlp9&)M2fCy25iQos9N%d^4L^2)rtIpdtVgqZK#$%@4Dppl%0kDetYwZ z&$X|2Rmh#cfH^cIQMx}WvD(k=)z;6?UBr(@u;0IOExcZ6F&p2und&R0f)tM0T4VEfX>VPaF0$Pxn? zXN5`b%$h8defqEDn9dS;WO1F>YKOP$-c`%{3&MKt&5}vioIOeWi1U1&-v9k7r=#+3 z-n5zFbkSz!{V4}xcQd?cs8gM$Fu|2S{L5M^%TLQ@1Sw8>Zj^H2ds4B$&Yrr5FT#U7 z6wd1{?Kl%NY1Vex19O=L?y)gFI_PoXue98aiRaflG-$tISjPD2;F+7Tzl8o7+dkT8 zxzhCI&bgjqRcZ(S{5;TdaV49~n~Ao8{0k>1w>sZoZ{(bwXuUCQhpSOfh3w*ntqmSY z6aGDNc=|sqtG)X{xJ=$9vkCix0&V9>{4P5wadY0I)eSsJf81B^JbSo6A>46Chu&x9 zW9vEA=pKuoxySd}2BoZJFPip0yHnSyeUiu3tR+xgTVy(8(}C8#oR=@Z4h~ZC{I=53 z>_M|?dU12{@#c4}C)sY^4D{W4VNa0cVc{=c8Zn%u(Pzb~ZiI;6*d^52w&>WVV`hTw zDp6^Q4)04D!=mKtKFiPc>Aq%=ruA`_%j$wa;};$3GXqxDo9eipYP-4a?w?5}=^Jlu zRM_w&qFTyh;j(vJk!6mz4Pzbpo7Db<@fNC1F86zT_vhC59e!L&yRzw6U)f0w zBcFg~1%{Q!<&*+0Z0&iGHtV1TyR^;m*_C&<7oO-{@bpPo&vVtNyaHXHJo~?k1$ho6 zYYW;g=6|$cH}fAYp}+&d)BaxOTwoblHE)LS@|T)#40129eVn;*LyOnymdxCj%jU70 z>m;yzm~hzr{}!3M(Z6bVk`0`>wsWo)cyCkL^EcsF`q5P38)>b#0l%$s{T+rQpV3f4|L-f~dQ{D$+E`+r+`Z$2&A(01>_xOdrv)kG( zSF}8sVgIA-58K&RT>sU2ASsYt=)>z-N$a->t^KOLaiQY-Ij^EhYrU^L;H*5XFCn0; z{GK^U{MNkUB!;D%7WtIM-VoO>Jiqrsp2;27{xh>RPfXk(e4$?Pk~qiezt0^{D980) zik%g_Gg?yUdtu!5tBbt^%x>qZn!n$BX;F#8{E|y+YyM{zUgO)?+h}EAqHX(IQE492 zcDD+hI-#uZbw-VH>*ogD<4#lMZt?55`{;jB?!J;$t7RFERx>Bf4U4FaDU7Q9zAfZP z?~Q1ygiiaq&j*f8uT6TzzF>h<(42h}7E~-ez*DnR+?OXkKl|T`6Dy2l41YMxZ$JFA y#r{v@&yy!pSeIYPT%>&4=P%>AJ#QPEt_!QYd?WEJCUKwo^X#TWDWU152igI{*Ztitle) }} « @stop +@section('title'){{ $article->published ? '' : '[Draft] ' }}{{ strip_tags($article->title) }} « @stop + +@if (! $article->published) + @push('head') + + @endpush +@endif @section('content') + @unless ($article->published) + + @endunless @include('templates.article', ['article' => $article]) @stop diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index b33d1fa9..80e6780d 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -22,6 +22,7 @@ @if (File::exists(public_path('gpg.key'))) @endif + @stack('head')
diff --git a/tests/Feature/ArticlesTest.php b/tests/Feature/ArticlesTest.php index 5001e923..a7685a74 100644 --- a/tests/Feature/ArticlesTest.php +++ b/tests/Feature/ArticlesTest.php @@ -29,6 +29,39 @@ class ArticlesTest extends TestCase $response->assertViewIs('articles.show'); } + #[Test] + public function articles_page_does_not_list_drafts(): void + { + Article::factory()->create(['title' => 'Published Article']); + Article::factory()->create(['title' => 'Draft Article', 'published' => 0]); + + $this->get('/blog') + ->assertSee('Published Article') + ->assertDontSee('Draft Article'); + } + + #[Test] + public function draft_article_is_viewable_and_marked_as_draft(): void + { + $article = Article::factory()->create(['published' => 0]); + + $this->get($article->link) + ->assertOk() + ->assertSee('draft-notice', false) + ->assertSee('', false) + ->assertSee('[Draft] ', false); + } + + #[Test] + public function published_article_is_not_marked_as_draft(): void + { + $article = Article::factory()->create(); + + $this->get($article->link) + ->assertDontSee('draft-notice', false) + ->assertDontSee('noindex', false); + } + #[Test] public function wrong_date_in_url_redirects_to_correct_date() { diff --git a/tests/Feature/FrontPageTest.php b/tests/Feature/FrontPageTest.php index 8c8a5706..3a542d4a 100644 --- a/tests/Feature/FrontPageTest.php +++ b/tests/Feature/FrontPageTest.php @@ -31,4 +31,15 @@ class FrontPageTest extends TestCase ->assertSee('https://example.com') ->assertSee('Like 1'); } + + #[Test] + public function front_page_does_not_show_draft_articles(): void + { + Article::factory()->create(['title' => 'Published Article']); + Article::factory()->create(['title' => 'Draft Article', 'published' => 0]); + + $this->get('/') + ->assertSee('Published Article') + ->assertDontSee('Draft Article'); + } } From d2bc91794b09c5d2cc7aa680803e0fbc94e2c7ff Mon Sep 17 00:00:00 2001 From: Jonny Barnes <hi@jonnybarnes.uk> Date: Sat, 17 Oct 2026 14:59:29 +0100 Subject: [PATCH 27/33] Use self-hosted Libron and Cal Sans fonts Libron is the body serif and Cal Sans is used for headings and the header nav, both under the SIL OFL with licences alongside the font files. Both are preloaded so the header doesn't shift while Cal Sans loads. Also nudge note text up and note/article metadata down in size. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- public/assets/css/app.css | 2 +- public/assets/css/app.css.br | Bin 1828 -> 2048 bytes public/assets/css/app.css.map | 2 +- public/assets/css/app.css.zst | Bin 2158 -> 2386 bytes public/assets/fonts/cal-sans/CalSansVF.woff2 | Bin 0 -> 290004 bytes public/assets/fonts/cal-sans/OFL.txt | 93 +++++++++++++++++ public/assets/fonts/libron/Libron-Bold.woff2 | Bin 0 -> 84724 bytes .../fonts/libron/Libron-BoldItalic.woff2 | Bin 0 -> 88748 bytes .../assets/fonts/libron/Libron-Italic.woff2 | Bin 0 -> 87284 bytes .../assets/fonts/libron/Libron-Regular.woff2 | Bin 0 -> 83828 bytes public/assets/fonts/libron/OFL.txt | 95 ++++++++++++++++++ resources/css/app.css | 1 + resources/css/fonts.css | 61 +++++++++++ resources/css/layout.css | 4 + resources/css/notes.css | 6 ++ resources/views/master.blade.php | 2 + 16 files changed, 264 insertions(+), 2 deletions(-) create mode 100644 public/assets/fonts/cal-sans/CalSansVF.woff2 create mode 100644 public/assets/fonts/cal-sans/OFL.txt create mode 100644 public/assets/fonts/libron/Libron-Bold.woff2 create mode 100644 public/assets/fonts/libron/Libron-BoldItalic.woff2 create mode 100644 public/assets/fonts/libron/Libron-Italic.woff2 create mode 100644 public/assets/fonts/libron/Libron-Regular.woff2 create mode 100644 public/assets/fonts/libron/OFL.txt create mode 100644 resources/css/fonts.css diff --git a/public/assets/css/app.css b/public/assets/css/app.css index cdb6e3d3..06a2b660 100644 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -1,2 +1,2 @@ -@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:1/-1;grid-template-columns:subgrid;display:grid;&>*{grid-column:2/3}&>.full-bleed{grid-column:1/-1}}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}}.draft-notice{border:2px dashed var(--clr-border);background:light-dark(oklch(95% .08 85),oklch(30% .08 85));border-radius:8px;margin-block-end:2ex;padding:1ex 1em}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{background-color:color-mix(in oklch, var(--clr-border) 40%, transparent);border-radius:999px;justify-self:start;align-items:center;gap:.25rem;padding:.25rem;display:flex;& button{appearance:none;color:inherit;background:0 0;border:none;border-radius:999px;place-items:center;padding:.375rem;transition:background-color .2s,color .2s;display:grid;&:hover{cursor:pointer}&:focus-visible{outline:2px solid var(--clr-text);outline-offset:2px}& svg{fill:currentColor;width:1.5rem;height:1.5rem}@media (hover:hover){&:hover{background-color:color-mix(in oklch, var(--clr-border) 70%, transparent)}&[aria-pressed=true]:hover{background-color:var(--clr-text)}}&[aria-pressed=true]{background-color:var(--clr-text);color:var(--clr-background)}}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list-wrapper{border:1px solid var(--clr-border);background:light-dark(oklch(99% .02 var(--primary-hue)),oklch(22% .05 var(--primary-hue)));border-radius:16px;margin-block-start:1em;overflow:auto hidden}.token-list{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.9em 1.2em}& th{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:.8em;font-weight:700}& tr.is-revoked{opacity:.6}& a{word-break:break-all}& th:first-child,& td:first-child{width:31%}& th:nth-child(2),& td:nth-child(2){width:24%}& th:nth-child(3),& td:nth-child(3){width:15%}& th:nth-child(4),& td:nth-child(4){width:16%}& th:nth-child(5),& td:nth-child(5){text-align:right;width:14%}& tr:last-child td{border-bottom:none}}.scope-chips{flex-wrap:wrap;gap:.4em;display:flex}.scope-chip{background:light-dark(oklch(92% .05 var(--primary-hue)),oklch(35% .08 var(--primary-hue)));white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;display:inline-block}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;align-items:center;gap:.4em;padding:.3em .8em;font-size:.85em;font-weight:600;line-height:1.5;display:inline-flex}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145));& .dot{background:currentColor;border-radius:50%;width:6px;height:6px}}.badge-revoked{color:var(--clr-text);opacity:.7}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}.token-reveal{border:1px solid var(--clr-border);background:light-dark(oklch(96% .08 145),oklch(28% .08 145));border-radius:16px;margin-block-end:1em;padding:1em 1.2em;& input{border:1px solid var(--clr-border);border-radius:8px;width:100%;padding:.5em .7em;font-family:monospace}}.scope-checkboxes{flex-wrap:wrap;align-items:center;gap:1em;display:flex}} +@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin-block-end:0}ul[role=list],ol[role=list]{list-style:none}body{line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto;color:currentColor}img,picture{max-width:100%;height:auto;display:block}input,button,textarea,select{font-family:inherit;font-size:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}}@layer base{:root{--font-serif:libron, georgia, serif;--font-sans:"Cal Sans", system-ui, sans-serif}body{font-family:var(--font-serif)}h1,h2,h3,h4,h5,h6,body>header nav{font-family:var(--font-sans)}:root{color-scheme:light dark;--primary-hue:307;--clr-text:light-dark(oklch(5% .1 var(--primary-hue)),oklch(100% .1 var(--primary-hue)));--clr-background:light-dark(oklch(100% .1 var(--primary-hue)),oklch(15% .15 var(--primary-hue)));--clr-border:light-dark(oklch(90% .2 var(--primary-hue)),oklch(25% .1 var(--primary-hue)));--clr-snow-fall:light-dark(oklch(25% .15 var(--primary-hue)),oklch(85% .2 var(--primary-hue)))}body{background-color:var(--clr-background);color:var(--clr-text)}:root{--border-radius:8px}html{font-size:125%}body{grid-template-rows:min-content 1fr min-content;grid-template-columns:1fr min(80ch,80vw) 1fr;padding-inline:4vw;display:grid;&>header{grid-column:1/-1}&>main{grid-column:1/-1;grid-template-columns:subgrid;display:grid;&>*{grid-column:2/3}&>.full-bleed{grid-column:1/-1}}&>footer{grid-column:1/-1;margin-block-start:2ex;& search form{flex-direction:row;align-items:center;gap:1ex;display:flex;& input{min-width:0}}}}.h-feed{flex-direction:column;gap:2ex;display:flex}}@layer components{.h-entry{& pre{padding:1rem}& .post-info{font-size:85%}}.draft-notice{border:2px dashed var(--clr-border);background:light-dark(oklch(95% .08 85),oklch(30% .08 85));border-radius:8px;margin-block-end:2ex;padding:1ex 1em}body>header{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem;display:grid;& a{text-decoration:none}& h1{text-wrap:nowrap;margin:0}& nav{flex-direction:row;gap:.5rem;display:flex;@media screen and (width<=1100px){flex-wrap:wrap;grid-area:2/1/auto/span 3}}}.note{border:1px solid var(--clr-border);border-radius:var(--border-radius);flex-direction:column;padding:1ex 2ex;display:flex;& .e-content{font-size:110%;&>p:first-child{margin-block-start:0}& .u-photo{width:100%;height:auto}}& .note-metadata{font-size:85%}& .syndication-links{flex-direction:row;gap:1ex;display:flex;& svg{border-radius:4px;width:auto;height:1lh}}}.reply-to{border:1px solid var(--clr-border);border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom:none;margin-inline:2ex;padding-inline:1ex;font-size:85%}.pagination{flex-direction:row;justify-content:center;align-items:center;display:flex;& div{flex-direction:row;gap:1ex;display:flex}}#theme-selector{background-color:color-mix(in oklch, var(--clr-border) 40%, transparent);border-radius:999px;justify-self:start;align-items:center;gap:.25rem;padding:.25rem;display:flex;& button{appearance:none;color:inherit;background:0 0;border:none;border-radius:999px;place-items:center;padding:.375rem;transition:background-color .2s,color .2s;display:grid;&:hover{cursor:pointer}&:focus-visible{outline:2px solid var(--clr-text);outline-offset:2px}& svg{fill:currentColor;width:1.5rem;height:1.5rem}@media (hover:hover){&:hover{background-color:color-mix(in oklch, var(--clr-border) 70%, transparent)}&[aria-pressed=true]:hover{background-color:var(--clr-text)}}&[aria-pressed=true]{background-color:var(--clr-text);color:var(--clr-background)}}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::view-transition-group(changing-theme){animation-duration:1.25s}::view-transition-new(changing-theme),::view-transition-old(changing-theme){mix-blend-mode:normal}::view-transition-new(changing-theme){animation-name:reveal}::view-transition-old(changing-theme){animation:none}@keyframes reveal{0%{clip-path:polygon(-30% 0,-30% 0,-15% 100%,-10% 115%)}to{clip-path:polygon(-30% 0,130% 0,115% 100%,-10% 115%)}}.token-list-wrapper{border:1px solid var(--clr-border);background:light-dark(oklch(99% .02 var(--primary-hue)),oklch(22% .05 var(--primary-hue)));border-radius:16px;margin-block-start:1em;overflow:auto hidden}.token-list{table-layout:fixed;border-collapse:collapse;width:100%;min-width:640px;& th,& td{text-align:left;border-bottom:1px solid var(--clr-border);vertical-align:middle;padding:.9em 1.2em}& th{text-transform:uppercase;letter-spacing:.08em;opacity:.7;font-size:.8em;font-weight:700}& tr.is-revoked{opacity:.6}& a{word-break:break-all}& th:first-child,& td:first-child{width:31%}& th:nth-child(2),& td:nth-child(2){width:24%}& th:nth-child(3),& td:nth-child(3){width:15%}& th:nth-child(4),& td:nth-child(4){width:16%}& th:nth-child(5),& td:nth-child(5){text-align:right;width:14%}& tr:last-child td{border-bottom:none}}.scope-chips{flex-wrap:wrap;gap:.4em;display:flex}.scope-chip{background:light-dark(oklch(92% .05 var(--primary-hue)),oklch(35% .08 var(--primary-hue)));white-space:nowrap;border-radius:999px;padding:.2em .7em;font-size:.85em;display:inline-block}.badge,.token-list button.revoke{white-space:nowrap;border-radius:999px;align-items:center;gap:.4em;padding:.3em .8em;font-size:.85em;font-weight:600;line-height:1.5;display:inline-flex}.badge{background:0 0;border:1px solid}.badge-active{color:light-dark(oklch(35% .16 145),oklch(75% .16 145));& .dot{background:currentColor;border-radius:50%;width:6px;height:6px}}.badge-revoked{color:var(--clr-text);opacity:.7}.token-list button.revoke{color:light-dark(oklch(30% .15 25),oklch(92% .12 25));cursor:pointer;background:light-dark(oklch(92% .15 25),oklch(30% .12 25));border:1px solid #0000;transition:background-color .15s}.token-list button.revoke:hover{background:light-dark(oklch(80% .2 25),oklch(45% .18 25))}.token-reveal{border:1px solid var(--clr-border);background:light-dark(oklch(96% .08 145),oklch(28% .08 145));border-radius:16px;margin-block-end:1em;padding:1em 1.2em;& input{border:1px solid var(--clr-border);border-radius:8px;width:100%;padding:.5em .7em;font-family:monospace}}.scope-checkboxes{flex-wrap:wrap;align-items:center;gap:1em;display:flex}}@font-face{font-family:Libron;src:url(/assets/fonts/libron/Libron-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Libron;src:url(/assets/fonts/libron/Libron-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Libron;src:url(/assets/fonts/libron/Libron-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Libron;src:url(/assets/fonts/libron/Libron-BoldItalic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Cal Sans;src:url(/assets/fonts/cal-sans/CalSansVF.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap} /*# sourceMappingURL=/assets/css/app.css.map */ diff --git a/public/assets/css/app.css.br b/public/assets/css/app.css.br index 544eb3957112daadec3232450bf4006f46b3b599..82536e5921fec0d25cad994a9f0945c79a8e40a5 100644 GIT binary patch literal 2048 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 literal 1828 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 L@3eU4uZ^+*k`atV diff --git a/public/assets/css/app.css.map b/public/assets/css/app.css.map index 2a11fb01..0183bf68 100644 --- a/public/assets/css/app.css.map +++ b/public/assets/css/app.css.map @@ -1 +1 @@ -{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YGAE,oaAwBA,kEDxBA,0BAIA,oBAIA,iIAME,0BAIA,mEAKE,oBAIA,gCAKF,iDAIE,yEAME,uBAON,oDFjDF,kBEyDE,SACE,oBAQF,oKGlEA,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CGrBzC,+HAOE,aACE,qCAIA,mCAMF,6DAKE,gDAQJ,4MJ/BA,sFAME,+CENF,0LASE,gLAWE,uBAIA,qEAKA,mDAMA,qBACE,iFAIA,6DAKF,oFAOJ,uIAYA,iEAIA,kGAKA,4DAIA,qDAIA,mICjFA,iNAWA,mFAME,6GAQA,6FAQA,2BAIA,yBAIA,4CAKA,8CAKA,8CAKA,8CAKA,+DAMA,uCAKF,kDAMA,qMAYA,0LAaA,uCAKA,sEAGE,uEAQF,gDAKA,kNAQA,0FAIA,wKAUE,iHASF","sources":["resources/css/app.css","resources/css/layout.css","resources/css/colours.css","resources/css/reset.css","resources/css/pagination.css","resources/css/header.css","resources/css/admin-tokens.css","resources/css/theme-selector.css","resources/css/notes.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: subgrid;\n\n > * {\n grid-column: 2/3;\n }\n\n > .full-bleed {\n grid-column: 1/-1;\n }\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n }\n}\n\n\n@layer components {\n .draft-notice {\n margin-block-end: 2ex;\n padding: 1ex 1em;\n border: 2px dashed var(--clr-border);\n border-radius: 8px;\n background: light-dark(\n oklch(95% 0.08 85deg),\n oklch(30% 0.08 85deg)\n );\n }\n}\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer components {\n .token-list-wrapper {\n margin-block-start: 1em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n overflow: auto hidden;\n background: light-dark(\n oklch(99% 0.02 var(--primary-hue)),\n oklch(22% 0.05 var(--primary-hue))\n );\n }\n\n .token-list {\n width: 100%;\n min-width: 640px;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n text-align: left;\n padding: 0.9em 1.2em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.8em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n\n th:nth-child(1),\n td:nth-child(1) {\n width: 31%;\n }\n\n th:nth-child(2),\n td:nth-child(2) {\n width: 24%;\n }\n\n th:nth-child(3),\n td:nth-child(3) {\n width: 15%;\n }\n\n th:nth-child(4),\n td:nth-child(4) {\n width: 16%;\n }\n\n th:nth-child(5),\n td:nth-child(5) {\n width: 14%;\n text-align: right;\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n }\n\n .scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4em;\n }\n\n .scope-chip {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n background: light-dark(\n oklch(92% 0.05 var(--primary-hue)),\n oklch(35% 0.08 var(--primary-hue))\n );\n font-size: 0.85em;\n white-space: nowrap;\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n padding: 0.3em 0.8em;\n border-radius: 999px;\n font-size: 0.85em;\n font-weight: 600;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentcolor;\n }\n }\n\n .badge-revoked {\n color: var(--clr-text);\n opacity: 0.7;\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n\n .token-reveal {\n margin-block-end: 1em;\n padding: 1em 1.2em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n background: light-dark(\n oklch(96% 0.08 145deg),\n oklch(28% 0.08 145deg)\n );\n\n input {\n width: 100%;\n font-family: monospace;\n padding: 0.5em 0.7em;\n border-radius: 8px;\n border: 1px solid var(--clr-border);\n }\n }\n\n .scope-checkboxes {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 1em;\n }\n}\n","@layer components {\n #theme-selector {\n display: flex;\n justify-self: start;\n align-items: center;\n gap: .25rem;\n padding: .25rem;\n border-radius: 999px;\n background-color: color-mix(in oklch, var(--clr-border) 40%, transparent);\n\n button {\n display: grid;\n place-items: center;\n appearance: none;\n border: none;\n border-radius: 999px;\n padding: .375rem;\n background: transparent;\n color: inherit;\n transition: background-color .2s, color .2s;\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus-visible {\n outline: 2px solid var(--clr-text);\n outline-offset: 2px;\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n fill: currentcolor;\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: color-mix(in oklch, var(--clr-border) 70%, transparent);\n }\n\n &[aria-pressed=\"true\"]:hover {\n background-color: var(--clr-text);\n }\n }\n\n &[aria-pressed=\"true\"] {\n background-color: var(--clr-text);\n color: var(--clr-background);\n }\n }\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n"],"names":[]} \ No newline at end of file +{"version":3,"mappings":"AACA,aCGE,uCAOA,oFASA,8DAMA,4CAMA,qBAKA,+CAMA,8BAMA,gEAMA,qDAQA,mEAOA,qCAKA,gCAKA,gCACE,wGDhFJ,YK6CE,wFAKA,mCAIA,+DFtDA,oaAwBA,kEKxBA,0BAIA,oBAIA,iIAME,0BAIA,mEAKE,oBAIA,gCAKF,iDAIE,yEAME,uBAON,oDRjDF,kBQyDE,SACE,mBAIA,4BAQF,oKNtEA,wHAOE,yBAIA,+BAKA,gDAKE,kCAAqC,2CKrBzC,+HAOE,4BAGE,qCAIA,mCAMF,+BAIA,6DAKE,gDAQJ,4MHrCA,sFAME,+CENF,0LASE,gLAWE,uBAIA,qEAKA,mDAMA,qBACE,iFAIA,6DAKF,oFAOJ,uIAYA,iEAIA,kGAKA,4DAIA,qDAIA,mIGjFA,iNAWA,mFAME,6GAQA,6FAQA,2BAIA,yBAIA,4CAKA,8CAKA,8CAKA,8CAKA,+DAMA,uCAKF,kDAMA,qMAYA,0LAaA,uCAKA,sEAGE,uEAQF,gDAKA,kNAQA,0FAIA,wKAUE,iHASF,0EJvJF,oJAQA,mJAQA,iJAQA,uJAQA","sources":["resources/css/app.css","resources/css/header.css","resources/css/reset.css","resources/css/colours.css","resources/css/pagination.css","resources/css/theme-selector.css","resources/css/notes.css","resources/css/layout.css","resources/css/fonts.css","resources/css/admin-tokens.css"],"sourcesContent":["/* First thing we need to do is declare our cascade layers */\n@layer reset, base, components;\n\n@import url('reset.css');\n@import url('fonts.css');\n@import url('colours.css');\n@import url('layout.css');\n@import url('header.css');\n@import url('notes.css');\n@import url('pagination.css');\n@import url('theme-selector.css');\n@import url('admin-tokens.css');\n","@layer components {\n body > header {\n display: grid;\n grid-template-columns: auto 1fr auto;\n grid-template-rows: auto auto;\n align-items: baseline;\n gap: 1rem;\n\n a {\n text-decoration: none;\n }\n\n h1 {\n margin: 0;\n text-wrap: nowrap;\n }\n\n nav {\n display: flex;\n flex-direction: row;\n gap: .5rem;\n\n @media screen and (width <= 1100px) {\n grid-row: 2;\n grid-column: 1 / span 3;\n flex-wrap: wrap;\n }\n }\n }\n}\n","@layer reset {\n /* Sourced from https://piccalil.li/blog/a-more-modern-css-reset/ */\n\n /* Box sizing rules */\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n /* Prevent font size inflation */\n html {\n /* stylelint-disable property-no-vendor-prefix */\n -moz-text-size-adjust: none;\n -webkit-text-size-adjust: none;\n /* stylelint-enable property-no-vendor-prefix */\n text-size-adjust: none;\n }\n\n /* Remove default margin in favour of better control in authored CSS */\n body, h1, h2, h3, h4, p,\n figure, blockquote, dl, dd {\n margin-block-end: 0;\n }\n\n /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */\n ul[role='list'],\n ol[role='list'] {\n list-style: none;\n }\n\n /* Set core body defaults */\n body {\n line-height: 1.5;\n }\n\n /* Set shorter line heights on headings and interactive elements */\n h1, h2, h3, h4,\n button, input, label {\n line-height: 1.1;\n }\n\n /* Balance text wrapping on headings */\n h1, h2,\n h3, h4 {\n text-wrap: balance;\n }\n\n /* A elements that don't have a class get default styles */\n a:not([class]) {\n text-decoration-skip-ink: auto;\n color: currentcolor;\n }\n\n /* Make images easier to work with */\n img,\n picture {\n max-width: 100%;\n height: auto;\n display: block;\n }\n\n /* Inherit fonts for inputs and buttons */\n input, button,\n textarea, select {\n font-family: inherit;\n font-size: inherit;\n }\n\n /* Make sure textareas without a rows attribute are not tiny */\n textarea:not([rows]) {\n min-height: 10em;\n }\n\n /* Anything that has been anchored to should have extra scroll margin */\n :target {\n scroll-margin-block: 5ex;\n }\n\n /* Disable view transition animations for users who don’t want them */\n @media (prefers-reduced-motion) {\n ::view-transition-group(*),\n ::view-transition-old(*),\n ::view-transition-new(*) {\n animation: none !important;\n }\n }\n}\n","@layer base {\n :root {\n color-scheme: light dark;\n\n --primary-hue: 307;\n --clr-text: light-dark(\n oklch(5% 0.1 var(--primary-hue)),\n oklch(100% 0.1 var(--primary-hue))\n );\n --clr-background: light-dark(\n oklch(100% 0.1 var(--primary-hue)),\n oklch(15% 0.15 var(--primary-hue))\n );\n --clr-border: light-dark(\n oklch(90% 0.2 var(--primary-hue)),\n oklch(25% 0.1 var(--primary-hue))\n );\n\n /* Adding snow fall colour whilst we are using it */\n --clr-snow-fall: light-dark(\n oklch(25% 0.15 var(--primary-hue)),\n oklch(85% 0.2 var(--primary-hue))\n );\n }\n\n body {\n background-color: var(--clr-background);\n color: var(--clr-text);\n }\n}\n","@layer components {\n .pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n\n div {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n }\n }\n}\n","@layer components {\n #theme-selector {\n display: flex;\n justify-self: start;\n align-items: center;\n gap: .25rem;\n padding: .25rem;\n border-radius: 999px;\n background-color: color-mix(in oklch, var(--clr-border) 40%, transparent);\n\n button {\n display: grid;\n place-items: center;\n appearance: none;\n border: none;\n border-radius: 999px;\n padding: .375rem;\n background: transparent;\n color: inherit;\n transition: background-color .2s, color .2s;\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus-visible {\n outline: 2px solid var(--clr-text);\n outline-offset: 2px;\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n fill: currentcolor;\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: color-mix(in oklch, var(--clr-border) 70%, transparent);\n }\n\n &[aria-pressed=\"true\"]:hover {\n background-color: var(--clr-text);\n }\n }\n\n &[aria-pressed=\"true\"] {\n background-color: var(--clr-text);\n color: var(--clr-background);\n }\n }\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n ::view-transition-group(changing-theme) {\n animation-duration: 1.25s;\n }\n\n ::view-transition-new(changing-theme),\n ::view-transition-old(changing-theme) {\n mix-blend-mode: normal;\n }\n\n ::view-transition-new(changing-theme) {\n animation-name: reveal;\n }\n\n ::view-transition-old(changing-theme) {\n animation: none;\n }\n\n @keyframes reveal {\n from {\n clip-path: polygon(-30% 0, -30% 0, -15% 100%, -10% 115%);\n }\n\n to {\n clip-path: polygon(-30% 0, 130% 0, 115% 100%, -10% 115%);\n }\n }\n}\n","@layer components {\n .note {\n display: flex;\n flex-direction: column;\n border: 1px solid var(--clr-border);\n border-radius: var(--border-radius);\n padding: 1ex 2ex;\n\n .e-content {\n font-size: 110%;\n\n > p:first-child {\n margin-block-start: 0;\n }\n\n .u-photo {\n width: 100%;\n height: auto;\n }\n }\n\n .note-metadata {\n font-size: 85%;\n }\n\n .syndication-links {\n display: flex;\n flex-direction: row;\n gap: 1ex;\n\n svg {\n border-radius: 4px;\n width: auto;\n height: 1lh;\n }\n }\n }\n\n .reply-to {\n font-size: 85%;\n margin-inline: 2ex;\n padding-inline: 1ex;\n border: 1px solid var(--clr-border);\n border-bottom: none;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n }\n}\n","@layer base {\n :root {\n --border-radius: 8px;\n }\n\n html {\n font-size: 125%;\n }\n\n body {\n display: grid;\n grid-template-columns: 1fr min(80ch, 80vw) 1fr;\n grid-template-rows: min-content 1fr min-content;\n padding-inline: 4vw;\n\n > header {\n grid-column: 1/-1;\n }\n\n > main {\n grid-column: 1/-1;\n display: grid;\n grid-template-columns: subgrid;\n\n > * {\n grid-column: 2/3;\n }\n\n > .full-bleed {\n grid-column: 1/-1;\n }\n }\n\n > footer {\n grid-column: 1/-1;\n margin-block-start: 2ex;\n\n search form {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1ex;\n\n input {\n min-width: 0;\n }\n }\n }\n }\n\n .h-feed {\n display: flex;\n flex-direction: column;\n gap: 2ex;\n }\n}\n\n@layer components {\n .h-entry {\n pre {\n padding: 1rem;\n }\n\n .post-info {\n font-size: 85%;\n }\n }\n}\n\n\n@layer components {\n .draft-notice {\n margin-block-end: 2ex;\n padding: 1ex 1em;\n border: 2px dashed var(--clr-border);\n border-radius: 8px;\n background: light-dark(\n oklch(95% 0.08 85deg),\n oklch(30% 0.08 85deg)\n );\n }\n}\n","/*\n * Libron (serif, body text) and Cal Sans (sans, headings), both SIL OFL 1.1\n * Libron v0.31: https://github.com/nicoverbruggen/libron/releases\n * Cal Sans v2.011: https://github.com/calcom/sans/releases\n */\n@font-face {\n font-family: Libron;\n src: url('/assets/fonts/libron/Libron-Regular.woff2') format('woff2');\n font-weight: 400;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: Libron;\n src: url('/assets/fonts/libron/Libron-Italic.woff2') format('woff2');\n font-weight: 400;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: Libron;\n src: url('/assets/fonts/libron/Libron-Bold.woff2') format('woff2');\n font-weight: 700;\n font-style: normal;\n font-display: swap;\n}\n\n@font-face {\n font-family: Libron;\n src: url('/assets/fonts/libron/Libron-BoldItalic.woff2') format('woff2');\n font-weight: 700;\n font-style: italic;\n font-display: swap;\n}\n\n@font-face {\n font-family: 'Cal Sans';\n src: url('/assets/fonts/cal-sans/CalSansVF.woff2') format('woff2');\n font-weight: 400 700;\n font-style: normal;\n font-display: swap;\n}\n\n@layer base {\n :root {\n --font-serif: libron, georgia, serif;\n --font-sans: 'Cal Sans', system-ui, sans-serif;\n }\n\n body {\n font-family: var(--font-serif);\n }\n\n h1, h2, h3,\n h4, h5, h6,\n body > header nav {\n font-family: var(--font-sans);\n }\n}\n","@layer components {\n .token-list-wrapper {\n margin-block-start: 1em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n overflow: auto hidden;\n background: light-dark(\n oklch(99% 0.02 var(--primary-hue)),\n oklch(22% 0.05 var(--primary-hue))\n );\n }\n\n .token-list {\n width: 100%;\n min-width: 640px;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n text-align: left;\n padding: 0.9em 1.2em;\n border-bottom: 1px solid var(--clr-border);\n vertical-align: middle;\n }\n\n th {\n font-size: 0.8em;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n opacity: 0.7;\n }\n\n tr.is-revoked {\n opacity: 0.6;\n }\n\n a {\n word-break: break-all;\n }\n\n th:nth-child(1),\n td:nth-child(1) {\n width: 31%;\n }\n\n th:nth-child(2),\n td:nth-child(2) {\n width: 24%;\n }\n\n th:nth-child(3),\n td:nth-child(3) {\n width: 15%;\n }\n\n th:nth-child(4),\n td:nth-child(4) {\n width: 16%;\n }\n\n th:nth-child(5),\n td:nth-child(5) {\n width: 14%;\n text-align: right;\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n }\n\n .scope-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.4em;\n }\n\n .scope-chip {\n display: inline-block;\n padding: 0.2em 0.7em;\n border-radius: 999px;\n background: light-dark(\n oklch(92% 0.05 var(--primary-hue)),\n oklch(35% 0.08 var(--primary-hue))\n );\n font-size: 0.85em;\n white-space: nowrap;\n }\n\n .badge,\n .token-list button.revoke {\n display: inline-flex;\n align-items: center;\n gap: 0.4em;\n padding: 0.3em 0.8em;\n border-radius: 999px;\n font-size: 0.85em;\n font-weight: 600;\n line-height: 1.5;\n white-space: nowrap;\n }\n\n .badge {\n background: transparent;\n border: 1px solid currentcolor;\n }\n\n .badge-active {\n color: light-dark(oklch(35% 0.16 145deg), oklch(75% 0.16 145deg));\n\n .dot {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentcolor;\n }\n }\n\n .badge-revoked {\n color: var(--clr-text);\n opacity: 0.7;\n }\n\n .token-list button.revoke {\n background: light-dark(oklch(92% 0.15 25deg), oklch(30% 0.12 25deg));\n color: light-dark(oklch(30% 0.15 25deg), oklch(92% 0.12 25deg));\n border: 1px solid transparent;\n cursor: pointer;\n transition: background-color 150ms ease;\n }\n\n .token-list button.revoke:hover {\n background: light-dark(oklch(80% 0.2 25deg), oklch(45% 0.18 25deg));\n }\n\n .token-reveal {\n margin-block-end: 1em;\n padding: 1em 1.2em;\n border: 1px solid var(--clr-border);\n border-radius: 16px;\n background: light-dark(\n oklch(96% 0.08 145deg),\n oklch(28% 0.08 145deg)\n );\n\n input {\n width: 100%;\n font-family: monospace;\n padding: 0.5em 0.7em;\n border-radius: 8px;\n border: 1px solid var(--clr-border);\n }\n }\n\n .scope-checkboxes {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 1em;\n }\n}\n"],"names":[]} \ No newline at end of file diff --git a/public/assets/css/app.css.zst b/public/assets/css/app.css.zst index 23a21d7720e31f959cbb407ddbb5b05f401a4cb8..e11fdb6a08cd760cd2cf9ddbeb2449c0bcee0efb 100644 GIT binary patch literal 2386 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 Wn`UWo;``j@`;Lb5*Umg}>I48ezkwqF literal 2158 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 diff --git a/public/assets/fonts/cal-sans/CalSansVF.woff2 b/public/assets/fonts/cal-sans/CalSansVF.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b4b7aaf9e0eb566482ff9513fc1fa1137f151ff5 GIT binary patch literal 290004 zcmXT-cQayOWME)m$+^NH%D})NB%{N?k`u<j#B`AX3y^BOoFm=Y#~{-<&&b{*%rWQ& zyS;CiV^EU|TY`OXh+{~Thk6FXSu_294nYpC)<%t%HGT%0A4o8oF{v<bbm5+n!oZ@y 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%0A&hR8>X;t5H~i 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%0ARMdcaC!gcoX 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ðSXaEa$LpJzz40x%`561j8%d@<4eVrmyYQ84N`Z$`2W(T1^*R{2<VK zFe*TA5A)N992snT*v`6WW{B-!J$o!Mz^;Z-_n_v5q95E*2N@i+AIfKlGIMN^;%_#K ze>Z>Mt>Rt0yB5AR;J?-Q`GVgJmRqfS8RkCBZynXQh^IAtTWEZXe{%!h0&XjgV2Ab# zg0gLj3zRc@?==W6Fuy3amvym2{$klG_G1nAT-mDl+Zyk=OMhWp(`<J{;DWp2FGC(? z*;d^P>N_M$c&0hee^hm$FoJXLf!+m^H*i_CGA_8hLCUJRalz&dOjhmE4$lv#RWZ(E zi*2c0;4Q(ri)XrH_y^HlT;Uf@Yns=!AFX1xb2NAUB39FucbN5pY)#+0L#`Lne=ybZ zJ$HzI5d1|o#y$R_^%v7SF83d>m+<E;%>StTi!X2S`;WrE81oj$f3*F@DYtO`W3^x0 z6-{-$Rq{5@`(0}p;uhRr{Esnik^SRmzr-tA|Mks&_y0ig7yhyaxkKg`{ui=+;n>$C z_t@k`{13ig{OOLYADF+i%-8(ATPNiCMIPs`sfl+gISv;rP|&r%`%+WuV)V_FNuj-g zSFdQidX=~RtQmXqp~ofDJtr$!zul5|YK!)_TiKe=Y|i~r{(bjN8oO-LPUE|wmuk;{ zlsW&k!~F^8uf31bJvK;ORH)!ty(GeL5x?C6t<bL4mX>usmP@!qH)w?>tqN>j5~gcn zWYkmjHDQ(sqiMF=<wdM=tgMc+%|zbbdKlHt`E>1R$%cviYj!LXX=v0`^NA4S>CqEX z5i#^!<|=r$$+SkLnnzmQwW}p$W!q9uW3AXW&zVNPCnlwOY|Byp=-1XO8_~S{%R*=M zCb_+NIX8|JJh;#-yqwLZ;>UsoUmhJ_e>pVV_2i_h{(Um~vQ~$3Ze~3@;AkKdx*?3= z#*L5-cNuP&rAI{G3@fbO99@u+q;@%T>w?mgEGw@sHk<K)@xZfX8Zzk|P8_)=nip2w zK9REN><od!Qo3^IGA4d-yDR3i>|)BgEt`U(Z=cxn;m{fV{UV0a^H1N~E;QrdF^8TA zw_h)hA5mzYA(eMz=QM}MU2QWwMbZ?V#dbBa&3gUs{eIqu34dEI$u8-edeUuYL8|Ss zdDpe<4$r&3Ip}HRr8|qaPdKh$e`Lv%&Z5uZvjx6-hKi@%+5V9I6jR5gf_)ylxU-qr z7g@=aI$Sh&5$Ont_)?p3egFF_9q;zA`OQ2rhik%_KPxZa>$$q~Xr+y`1<#!ui&^hC zezoSFd4XZaM*j;lw-p9oP+?7&Cek3L+3?PHE^qM?hAp0q7EW9V&zEHx_;Vd#(q!ni zUwAy>=(Wu9f=6uXi3MsrdQy6_A|6~BOqz_b2|))0Jh)R>HZfTq+<y7e;)&Dbd$)Yb zSaQ`}x%7YA0%rf#^-2K?LuBl-v`R$VxPn`k9twN7qRn^0Rd+R$v_+=Eb7$6>>^<O? zpuIu(1nV~@_Qu5rJRj&32=18mx4v4v>BJIdgF`Gnxs1;Ln{)Loel>nwez55`!;k)i z6HmT;J@xza#k9NZcHIv@HJOLTu-V3LFknkiU%l3a?_f@M#0Om#md9)=#@X9scpc|V zc04&}UF$#BMWQAXT`p~4h&^*6N@z#7r)q54%Jx~GR;@g#$2g(9;DJTetL@pd*mE|% zU86g_cv+&W#Px|wBBCA~U24|HpUiWzBm7XlSho3N?;R6!q$Os4Vl>Y?a<XQAV5yza z(=u~i1rza<$Omb>5@kx-r3>AB{!|EeZ{XH^t(XwGf#uE~D-PCA9xE?z7p-7!eIs(^ z)gj-OluHbC({9Kyhf04?o4xSyjl8a$3%7Mk!Z)s*l-Mi2@Q-fs+Vj!%Pur9ut2WM9 zF*D3(actWQu|DA}!MBWhvKtbfq&}VbAiaEUUt`f1?t__$cW(H-$zTy)>X<4#(fGk< z3+=9t6P;{#aNKZ}|59Q3=&*S&hu*!i+PfMTHgL&Xeh5sQ96bNDq-4z#p-U2ip`vPD z7b+SQ<RjMo4(k28ZMXD81#=INmpbyBA2Zu<sDy4c<(<_Q_xhi0BiDk4IhPXEuTNWM z<0jXfKYN|gLGQ0WTV%N#IU0_!?2gr)@+K{7+N7!Fll)G<Zu@9)LaOV*ru=Eoj~MKJ zeemh$nGgKr3>c>D$aOt&!c^waA<e%>Z21@bc-+s&lXTdDg}Ikg`N6@wttW%xzGbSv z=Df3U;{Q~OGY`&u?v-Gf;OY@nckj~rd)()rxK5gXL1&`(84eZC7D)wR6|O1m+*<4! zhMU^9n>YN>Z9k}%o+7V&YJ+0YiIa{ldd0Txh7)EAIPQ>qDZ+U`$@XTGpu+nN&8}s? z^d9`Gf2-OyO=)hJ1>cKn8tcS-I%IQB9Qv2?BtFk_a>U-c+wsD$S0;DpHk`2fbWq!0 zCoaCKcY52h2c{>5>t!xTiCI56*?sl%^1AsR_8kgMy-_9$*K}Xry*2E7V0HP?0=>$` zA_ij2&n3Qo;XgfLlGvj|+Y|+xemxSb$-G{h&gR$t`YCtLCBummR;^Oa_2G<&J#t?z zB9SBW=lb7kf1hnL;Jlr+cBX=H$9c0IyG~bZ-@Wp{t4&F4ensmJ`M9y&^XKQ?E0{I? z*4{-q$<dmn98F6?<b_|o-&lV*%uMK!=af%5JSC}#vnzR3g2W|+fA91=b0=7;Nbbrj zb2hcG^(KuQt<39P{XU)B{@yTu5}(eY&q>L`oU@g!TAW^Le9-^Xz5H0&F^*s-gA&6) z8S(dwE}hSM)bGqcRq#Ywsb7Mt!CZCM;fvoH*Q&Yy`}dqbq)lET%SfNUHcFsXFn=-s z6ZZ63XSQ@43~RX@{mgsgv#F-uuM)JFgA`-GZ>n8hrr&rh!Q<auz89C?i6;5<v*^9} zzTZu~<K^T3kN-W%QDJ1yUGU^+a_pyr?JaZ8KVERE{>Aq2eUW?q8=KoYmt-spOL)8Y z!S|WfDQuU5C9Es`p1RMF(AKY8#UrRSL83>n_(1t-|I?+Degsx$Bt17geBw~~)DAhp zk1vys7`(XrV#(4DCjB*uCNESu95voq`!#1w+!Z(9{fJB4!SDNw)jE2weEaOE$uIUl zD=A^ocHUCn<9d4QRl+k<jMAOhyFJ!8WyT98wry0DmHwER7_`V_*R}M#<#N0)7VnmN zQuA$<Y>kG6lJ9r6`5%|PO<wTp>FR}YdCQM1Y*z>~OjXG$>zXx9dh$nC$E2nsf}M+) z*=I{Lh_*46w;ZY|R2R4{HN#%Fp5=RY;1}()k+&Y5^qAwZ>h6D`O>-Z_|LQT`vUmQi ziB6r)-#`DZG5l%x?4`s;xpTggLz=XheL5zt=l;cb^1-JCPqf~uU6wvp_438{z^VT$ zwl0{zxhpAf<<9)=T`p}^%Qs7io(P<zzMo&pz@&rE>)OMF0%1Fej<YS{2Vc(MnX_L1 z%l##5e^_X<+3H@gkohV6IYS}!+z&wm{mVkSbDnB5?s{Q(Ye}rG)vr%~WF}nuwMNO~ z%JU+xyh$k^><%_+GV3q~t$LKAFIelq?z$yZaL$$Y9!CqU_r4M@tw|7*<IvEuIcJ+A zVEQt^FhTf1v6)2+uhX@k%M@mv3rxEqz-Q`IwZVM-ii(c1jfUk<4Bf+5W%Wv4%}ops zi0^-q^K()BvBP`z?<+c;yg6D<A^Vcpt2Dumz10V9F(1^H;8;7q<+2s``X0IUPAi?e zAF=xdzWNdQ<E#0`_BS(B+@5b_aZunDk2~`*O2FjCyK1QbR?o-58>emx(dDdlcpG$S zL6L(8-{QWmpkEqacx6^Sn%Uf7)+DnnXBYP-&!?%{%-=a(Lc=VJZXT}VY=79p6R>Qu zxNj8WeV1E5DnHCg>iOR4_;JO83#)t<e0}QDwDDewaq2SW$^XBq^`}ccZ4`L2&XlWO zR^8xZ*pd#n%fe1K%jfIQU(3)S-nFoKtLUv=DNN4)IZv2g%HWYVh?DeRI{EhReBn+Z z30<W(M;j-s&O6y89-bgokTAF4quW;YsEVzv!a8|7KJ^$JJ5jRT{%@X3x+P<(*|O~y zQtH1-?%}mKVg2WG@IB>2wrLC7LndXqq_YI9u$X%CqwgoKh0PZ&+&gz%&^3|@@VX%| zQ)`y|Qnl}8H8rw}^|XagEfDEha<OGKTLqW-?RPSd-?n=_&eXW%$M(3%@6>J<QDLh$ zrY8<^Kajq`87%j4DRYYVK@QF<Ein>P@2_Bcygj`!N+N!{Z<K_p%o&w?ZF4XFVddF$ z!Nq#}+RB-EQgNRwS2N1hO(}bHxu|U|a|HkX${Uv7_#2PS{2dgt$n=$0$%dWT)687B zUmxmMlMq%_lt{A=Z-4iCaj-|1gwFm8b_`ZGj1zf8tC!llmWb8%Z1?>sYi}tL$MD|c zn33j>R=bH$7N1#Ha5z?eizEMu;5tLSP<w~Rxf8E$)!pw_DRXLLp?gNNW~j@p2kuY5 zOFfvmF<r>JQM0<ANzJ}TfqR;Un4-#A!)b~W%MNl);JqU@*}wEXADh)aiLy|IFrhw~ zFoV)1`#i;1tM8>N{`vP_MDR=X0gqX2VU3d?^05U8YFBGdWSVC%_wfEx`TAic*RA>M zq@I0`J7nh&Ypi&Gp^WVJPp#V`{Fe)7$#5N>b(?L~^HUAemeo86y{-1mzHSLSqo!;m zTW!eWm+B$)Ea_d>Q$HVGy4_rUO+nl251JJU|JfcZEvZlw*=iul-u$Oyo6Q#9YU_Op z4}BNfOs#axy0{=G+>P;bN}c!n=N-8#`@eVeSFfM8L$LVXCE1ee9RA<g#h$&K*RGSw z-O+Yb-+kS!j*OMjM>4G%&)f4pTXFvQ+IkU3C!yJm{qA4aTs!+_?~V`Gq};AC&-<37 z-5Bgp;t_h>tG{8{tZQQHjk0);@EOkfJ<0T<{|&ii2T!fcm|_2P3Xf*@WPY`OqKB7V znk}4As~c|3!eQie^T%V2iO*FZ9G9BV_u^GgfY$=cr;8;g&v;_#cx>A||23BP^LHmL zocX=r@Y7F6kDk*0V|?hQ=E<Au-ditV`!rvrZraCnZ>nben*6z3^lDdl&~B@R$|Wh& zxY~p#3(GI#)mtFmw`|*6|NWQlIajz$O+4uwS-$Yr{0*xdW_m0%J9dG8VcplZ{2grS z)z=fAx%tK`neYc%=1Dp4Y<+dyCZH@&Fs6Ct!r6)%it<-~Nbqr8{k=;v&cec=LU`$% z2O^?B(ro7>2l*_!($S#O>Kss=#-d-_H2vicMW)FqjH;(Xwek!mD#@D}{;BYiTOttD z#`NM&7Z20+`R(_@E#A$2T(szB(&M#X7AhR%j#%9MhJQz-+Qo&|bEbDL`n+Rl-)+qr z_bVNa*Gew#(5`qLaxPAV?O^o8)hm9o)+~Q_CVNk}U8An+s&nr)JM!;a{r#wTe|yKr zt<CrD`Y(I``>unAVM8pB>etght**{zl+idT(HsBBC~Jvmng3zq$7_BZzp%3GW5jeR zUbZQVKRi3uoEx?N?Dv3=Ykm1Y-u&cy>BE)Iixo!K-hJlW^un3vt;L)vN1`rthHswV z$8;rlYoJo-mx(3Wn}pJCFI@ADU9aU_)BQ3z3Ejsz{5P4k&ZinLVF_Pw<<{ZHvtM%m zWj_10OpM3td?-WTB2~Xbzg~rRt#I^mD{>d!^zre$ClS*v7^<1m-KH3?&zh8ETfh6R zx{#TbQ8UYx387klbysS=`&gxA_fuC~|5?&zN%z=QJD%}H?O5U0e`$_kQlR<*Z+C?Q z_hvni&VTFB*v=X2_Pww7`|U%jVIlz$Vi&xV8vaQn%s;Wp`1Bj^54`dzzM_jF4=gd8 z<dPkdv?88Kaz^gni%S?Ra#v56c_wZ#f!QsZJ9n9W&-&6_+jHjYKb-4+ELZhixLGA$ zJhQ?$$i~y(ux6gf)KB+jyq<OG2D9eAlULu)Sge_QB<=G{(Ug-nxVKH>y)}dTTcxmX z|M8T}hc7Et+8@Mb_D<9~Ho>A^cm+$SdCx}iYt;+56tvyenD3m{o@6TW(&c)_jAgH1 zGN<v1y_le+ckI+$cfIAz>@HutCmT(%R&Y+LIRC+a`4Rnsr`ms+cRtTPoXVrRQonr4 zQ^j8=nTtL4UX(LW{<`JAk4#j+a`v!2b8dLsmOOeKpndP0hUk)oFFAJpQO^I%&@8*u zzj;Ty$LR&LPf6DW*iWCVBd>Y)+0KtP2Y<%=Vm#L)D!#m>p`~f9ct-w}M-TJnZ@V3} z#nPEwxU}j;#G;ck6n^}@xH#LciTzUKw!CvfvTDs*^B-|&m-4Tf;eACb^6qQByXA*J z8~^zruDSlgXUT{i2g7!35;4$~J{Owt@!L6td&1Lq*=~6J^w_&^7kc}>-&X9_(~4gl zYw0<^F|4rsqvrPuOY`_+quw$0-&{6lm+gk+GFJPk>{StZ(+_-L;;pOqoDi<!a9?|N zOM3Tx-np}GD5Z-i+-k6$y6WRhjmN95Wli+Dy!o`I%-k0bR5M@5?pU27IqOJy(UqO6 zy16srDl%QCmA_l}>C#j4f-sB6Cc!6aA{O?)kMwJZYn-6RtKD6(xNYm-wE|~lpNSc# zzAd}BvZ`6bz|uB(htqo51^Ml#t8A(pQwlajySPgp+9Y7OqJN99y1$oQK%eaL$<L2Q z96#ML;jkoIMB}ncQvFAwG*zdnTHfS7AIiPz$gA(~8`DpUsN9?xa$1{rMgM{y`o0JK zYAo7*GnD0TNm~~9F*x*guCx4tb0%KDX9i2~1$>n%U9hnJ+6pt7HIA{OZZn;&5A!Zl zc^~!W*PF^CKjJFZpKgo17?j)L%X6yPQlqpd*TFAgk(GC^+o4xC^V|9ilXG86Ox|wW ztkt8~?^l;H+2!(j&2KEHzAeg=zxJG8|KA<&lPksN1RY#+<?k_%$0n7m@k}9!#|^$N zE3jUC`Of2&r;<+_T+cjVB^>+iN6E(vho4<fU%v8J`Q8Z2r}>te@^v+ZhaXt}zvTa6 za@17q;*FQ$R@iO%nayaI)n_ZAZGYszcFncl6c`^LV}EbH$LJkP=Njg{lDs^H9tOGJ z1n#vm+6lc~?7+HUSAC{LZ$De`&$!^JR#z7CS?rmW<zi{be)oO-T!V}c>h4iyL1`MB z0{853`7FruKZNhz|AXH*dd>MO-e1GLz3=Op6+c%W;=89_H1qtCx2xxW%((7hTR!d0 z<PDt`d(2*6;|^ur{`K3+MRnCzA79<kno}^Lw?pg3Yq7JpdY|d^3GpqD)4jQUs@r#& zTbF)a+0fy&v3C8_kN}SF?1n3L`0h{KG1X2+>i&@=6CJIU)izRh6oTh13;D86<)UJx ze@f>r&o7$N-9leOv}BIAi1#HO>P=o#>eLtJ>(_Ge)R7<a<4&pftSmKAaS+|+;T@#f z-?UHho6OF%xu2sSJxIQ~<GaRMN$EeA6ZIvM-hbM(D6(?xl=XjX+6_*&E@=w%dn&86 zPjlJlVE0LfEHb(l2i^RAGI~u{LYL+jYr_>aS~r)ynAN9nUg@@@<u#6&Ma;*)w)kx? zexzuioL70;?!cMp3R>5vy_vIEdAiFHz1z1IyGXuRuWKM89^LdZ=d|)a_3e4BHKmCx zml7J!Z1^NH*{p`s=4h+el%)KO;-BsR<UIdBQmFoW>inj(rZ9yaNB!P@Fe^~JRnC90 zBWM}lK|vww`Tx4rStJ(c*HzDWZlgMp+l(vNb)lsElNEoBmWtgqSafTn*WBQyIA{K_ z6UCc!I0D%|U+<bTWz(u9sr3(T70o}$v@+uCo;Xdt%LVM~6L%g~ySTumM^A9ycegdm zUYPtfy*2xHR{8RYDxOvx+axA$=A9g);`Tg?#cX5CLZ7zy!k$DC<!PG7-zjUVD9hAk z%;L6I{P^h4rf|+<d3%3MTP)dmab?W%hwSGBn*C&w9dk2ct(L!9aCFHn`z^1Yss7ix z^gCUcxnJVU{r)HSl;<5^6L^|i<{Ga+LUfGr{Z*dFGD5<pJ}>MFw3B}6=FYr;>-MG0 zaL<sL&8{~M(th~9U319s^^VyuOa7Goi2uRz_KxK4_Wz9kD(32XB^OmCT>oRHYIyv0 z-e+ko(YpzTMM+Up)?X~FQ{-In-SBS6Dm$(dx=kw<@_oxv%}n>rtY*G^@o7!F%J-j} z=Zf7})|+vGBUI^->gIpT7cea;onMvXQCshyc>L9-D<+ET_B@<EH}&;AyS(lcsj5xu zZ)|_P?Ma!{&g=sm@wM0f@!vPU>l=OH=a-)r$M)GIUq9s+^0a658F%lwU)Ra9XPa{S zs!lvxDSEZQzer9@XOoLqC%@L-l3PhNdjC87`rB0!4<wa5tP>A^C}KFJXoDa3l`UTK zZ`HO+hlzY&^(e@5tHiFPv;CYboST9(1q386wlAwG=aQbl_2oxzdd2<cEB83^Nc~*P zRGH&++OR?~V}g|dyOG-2I-Zcn20O0sxwNr<w_N^Wm+kBJzboHv@V;{W^36Mch4(1R zic~!F_<B0{=Hi*nn@d?al5-b_NU7}A+V8pT-6t`@D6s`yJp9l11o2APRbT#D%;KAW zY%1fq$$dfgbKYfr*s)Z)bk@s~o5jI@S5>CIJ%4fjh3S_))a|auT9k&JIJV|pNM}jc zm03|?$4XqUWiPTaT^Y8FyW$6jrvLg?5$nX)o2JxRt(#UHI%D(2Go@Ekww;mU(|^jd zb=KL-GtELaX=^Q17bsZy)@9xt2LGFZuU5FN%S-NixAt;(u)mP^L%$QhcbzuvYH~U7 z^hXa%#Y4uLxldNlwY~l%TKQ6_(IuP5Cs*9@@>?|N{l<dKcyXV1W=kH=ydk{(yv>cf zQ&W?#MsC`@Yt8nUIk{YW?wh{dX2o!=^6bsUd?HWx$Euw0S@OGOYd{_=XX&H1-sl^= zpF<Yx@j0-$U3JRab5R#r#hW`HY+co`Wy`vdb#fvG`S)Lj+GVI|)>P`a{e3lOz0qy4 z9}E6;)P!u?b;Ye<)q!n7VJVwb_GWF^#%8tZ2Y(*R`~KW7`3~2Queu!gTvaTx(LZua zX2_>(W%WOtOJA?_o$dMW@5Q<ISIycQXxOmf;cvC2kK#7`sw)aB4_;;QPw43Jdr5AM zHWN-%2~S(HWcjCSR$UeIGLFY|Og}2<yV8d7YV3xbCeH|-6FXlopMUNTi~EnS?!oI_ zX1_br^*p%!JB!D>XCdWgGNoRY4yGsnY`gjUw}*uCwadqsibeSb&)aKv@rUKl5B3UE z?DXX`OrH6^3SNKX@Ttn_H<H{At~hPFb4!WLZ?~U;#f#04U0eC&f3fjKhnHQ^7ZVwB zzQ$irHn{mIZg;`YskPO)llAr*_is7%%YEbBs_>rQSIf6~?mlni^f+xZL*eBBKQZ2~ z7w1jPJ|!`wmE*PWWm(DO=V><+8KzB`v#!$HAh%A7G58JJw1{1wU;W8iYW>Q2m59_A z_2k<reY-Bp8}Hg~5Lm_h_NZ9(cEc@(g7UK`eCQRv=V<dlwr9d?k=R`!OKkhJW2#?H zs{0tS-YIU|P3}O~?TbIh^k*=C+_698YLk3VU)=Jk)_Io~Mf$1U->}MPegD}L{F2`M z8~C^DB}f?GcUbmf`phGe^Ru6`?=!j@s>!(Yo<!1ua*5Q5cc<>y<iqT5lk_b9_tVZd z<rDV5OxYu|u4$<jPn%7>>RhP`%PWg)gd3_anbq~h-Tk(PHUCYJ;%dDu|0J(nSszjI z$amW{7QOttFS{ow_2?UXy8OsGb+edy!p3PVY+lnlmAYSgtbdX;owMQZ1MA4|4i>3< z>%V;}ebDND;%fJ~*fW=<)Ss-sy<<t>j${{8`_0GFl{)1o{AjLEnLXth(+mH$6!Djb zru{bL@mlv{-8=OYYs4MT-kdW(aE)1Z^)<UsQfp;RC0V(6<}W-_elVcgZQcI-?_Xc% zC2h^=_j$W<(e1wHbuQ}!Z3KVBp1aT-+_LD-10EmFI3JB4vy=YZ?RoHWwt$SxTiL8l zi7BDmMK%kGNL_ZUKUrD#LA;oI{S~Kl-%F0%nzeaNfd>?$re4(Df0VVqhG~wUj`hpC zUGm#5Hyk~+FTH5;lk%hTHm*ro>kDpt`_s5SI>P<;w3|yM+L!8_F+Fs1NyYS=$0X`E z{7^qvv2T`hRA$lC74HIO-#$KxPg172P4l8iv8dG9I&Z6hb?WbKhni<y6S8MhQQr0P zy+P34LtCcAe7wXOan!3yULb07=$-9v&n`NVq;*Mo?S;fuGyZ;l_iN_rjJvx#?@yU` zoMUI!$y;jf#b0dG-`)xh-S;Pc!KCj$&hf9bx)J2@=JC0Sy(|;o+U@-8@@BGCVZw&# z=hPci8FU;acZI9$2@cNQTfV*`W9j$z|Bb4(Pw=UEtb5&Z^52T(_t(74xc0$2=<3mc z@TY%%YxeH8&CA>}ZOS(G=Uvg^%{NT%{h9up_vdl>119%fr%XQGocF(m<CfKlbMsfP zyc}CO<NmZZ%d$_u8t?XW*;ZOzEZytt+IH{Qt_%fPJI>c;pXJZDy*~Fk$09#5N0HZA z<X6J+V)v%kLY-&1cD{PleCb`|Zr_IiE<qDaPCdSEZoX`>hfMy<70)v^ShR{<x?;V) z_5|a-iWYP4+gV*s(T`_e?{uh+h`M~>dBsn^!{^!aZq1E4^!H$|yxG4!KmHp<&E((z zG_IX#8aqFC0~>?#JLZHVxtHxbewZZ8zZ)d@Lhf5-evRn9Pw|W1v0p6M@Z@3ZeSZ1< z6~%j>O(<4d!LY08@}orgy%%1TY<D<a$nUs&r{1{-_dhTGwS7zYb^kqwKAbXq8lPXQ zS@k*f+kfWnrG^#frmwp1x3|D_v(EeL`%T1la67y?Q&l0pmT6|@$KMwtAJ)vvn14R= z*qpX{$<;TsE>01j)TrCJLRqYCfmFS@a@DVi&CW@CE~-hFg-yEKGIfDov(|rxb^r7B z7=M29i2YfnTEyh&_jMavPB!w(?muDvwcz`Mk8Lk^p4R$m<m<_1_Wj$-$?s<#dzt=3 zZ|#-yCW<ee-_JE&ekz@J0l(nJU7BxCui^=Q=)%0d{eY!)tJ;shozu37Y)Uwr%&u{G zAJb>XpjC@}dS9&h;qzOx!gu2a#hBVH?6J`g-Sy7$<?ueRkGf?N-|x%7^=#9xI@g55 z-(Fw!O-|qRWBb(&Ggv3sDebt)*ednM<}?4Qe1@v0uddcIh{-pf2usoH7ri^(kfS$X z%G@XOR>!`mui~+r>3O1Tql$EHMdd=nOkU?5t#Rk{7D_xYZM?BCuH<7-<2AmRf48`2 zOC5du=;YyveCCIo#cGYp{>`%En5!+@Q1gD?vm?cFtK#|H`xG0)jgn#(w|74Kd~NPt zn>a@Gv*DN3BRGN<3m&bSp)v2*pLu~Z>zu3Z?0&2iTk<E{^Q}LZ(b_|0C(b38seLMc zHnsJod8EUVGC#Zggyd6YPj03hc-+z5=~j4xN2GtR>-`dwzsXM@8}1J%%rf1OBXZ=8 zj%nt1EzyDn4_95&azFl$sp`eMoBz(<m3SQO73zI;ed?vO---XL78<@>XQCbxyY<Mn zRquC~Y}jt5aQDjBWU=2(C5^vL5~oMoZ+>Un6L)RP{r}vh$JhPW<Pd2nt+>Z0bmL6O ztfu+G$EWYV@UQ(0SETNv$3H%uFw*w^6jtPaSgP4Nx_H+Tn~Hn$5|*FqTK=0mnJx8g zNey?e*_V~im>&BXSM_CAoKpO-c<UE~IN>QLLw&a^NljlS-J_P{5hikrwY}P{%X7jL zmYL!cqb|7rFyu+j^6?T0Zrpk$aHs#JtgXkrEiCn2(hkk(49a_JIn6Le=emT)%HDjA zWm;*I-Kr$B5_^v1iO&w*)VDEX=ML_f;*l$tp15~@MesbGJPohD(BkLzxlHQ8QvFw! zq-N%vVT@SRw&{}P(-}uYZT+({)$izv3%xTfm+xLHuPHgfFs+2`*cXR3&R5f$jH^s7 z?#|~;IrKC8N}t}Nxr_Eq<8S|d>{WfDt4D0xq7`XPF4h|9zAH=b+!Pd3$vh_0E#R1O z@Ue_TtGK-K)@_3Crgd|aNAK<v?A>==t4}TS(l>?;EQQXW|9@E=5ZDrPeLcf+)2f1P z^H&=4c1jvwwL11jK)B%Px}1}Fg}ZDW9_&ABb$H90l9=e~Go~78zy1V#)}3CQmv~Wr z=M(NUE9=QxJYRV|uiGE_aGGn8o$EZ+cYJmKubCJgm7Y?N_C@O4hlEXTh9|`MoUP7% zQ79Jt{9v{3FP}$x(%Yh$Pc%)R*O}cf^ln<O>E7FW?JgB)92L==aaF=ka>7m401=j! zl^I=LwR7C(vv~Q6?C4o|P-W#R_KEVb3(vZEM;=~zou7BNi^<crlqB!e+Q#dQb_Fl@ zpIfw{Q@dKl`BBBnLsK>fM_yYZQMy%7_K26Z;_daeToV1458Rt%J(DAC^0YH{z8B~H z`f=tS<Js$X&UnOm9W)J!j=rPYsPiT7e^vZ%&pN+duP*Xm7uy~8e?{)vjcQM>XilAE zHTlH0S;tfFX!?qlS1GYeuuog@DKNgyp)@71E8XQ$ao>r|yxQdYt=jigA2KPdF$%cC zw0^xyXU}ZWUEl2z*Hp(Xln~z@ux0x0s5tSUZP_g~x8+Z?vcGlsaza3QTf|nE%M<TQ zKg=-dvae3Nf8|iX$-3VjeNja_UhSVhJ%ssw?#jbF2U@c0Mc))WJwIPOwE15C#e}wm z<674PgzA3Au}wDlCivUq_ug+4;}-iQ$>}K_7H&WNne$xE_KO?_yG*y5ru-;K_?8&s zTcpsYeQ<~EY*mkC=RaQEy7`o|iEGNEz}D4eele!8wne*cN%2gJZt8VCIQeQ=et;Gi zYpY(uoiqEc$Cxd?wRy!KV<pYjv=6`7yZ`=ePP!<XxXi+6zvSyJ0ae#RO-$`?Wi^NP zHuT%+8Xufw*mQN$jelONRx>?K$ZRyJIH?(=;j|~(>f)b7`?MWT*fwsq{kE>a{lVjh zy$e^~spHI+y0l^0ubEN4F+6^bQ3Y1#e2VUzKK6gnzV|baJ4xrdt|^S(lo?;ZHElwl z&6e!tAA;gm6dP@{IQ^x}Vp_$Qm#WgY|Nnh!GjnR7qs6K}hi<JpZ*A|N$$H7h`<h3t z;G?~lIR77SetlTB+<W7xt>+R=HyupQywt7v%;V#lYXz^qG%UB5oYj!ESR=NT^Nw&# zL7Jnb0RIe$j_0eBKiqkdB^vdq)X)95tYFwyrpccxQ-5dV?QgMU&YZFN@6D*(7_M_p zQ3Yz}Sju9UHtatmd%3{ND)GB?%45Ar=KJpNx))!+z)UxG?d`5SsVNtimsb6{lCX<Y zYD$B#m8pg8iC=wntQxPU&s?p;f3x|5YtRB)HGjo_amCNG)|l0-G&7Cedw=56e(%iS zKF;V%^B0<{Em@Q4adwte5>w!^J<UhU1wZcFFsEYu*53td)M~bV%9!-)qYy*&raNoj zO{v<kuj0sr3C)|MWM{0u#B*VR#GGrdkN@{NrXW1Sz_`M<%*Ly5Nq{NOF7I{K<;mKt z6`a#$7H+<|wX|Rg_rY`tkCrtN_oZ(0g_ySGh!|8p<lHndre4GTojmW(l{+qd@>tat z^vIiQrCX^*$l{Y#cJ6|+l$gVP_s+Z}S9I6HclnxULN%JsYxC>wr(W4JdwYdXW0X?L z0g-^Hir-Jp{kpEbezx}gpRO0)?3o&9lf2}hluXRIw5cjf8?!4rT_;tP9pu~h*F@+> zqmt94SBpRLr>v4+#ht!k(u|k?<aX~j{>*aeZ-|8dGY1`JjqB5@b;Il2_V-`B7q~%V z(!BC*^UvjFyf|O_wcK;FzwXSVE8iP0jof_b+VX9`oX>?w^mB6Gb(TwZHmEj#{=<Fl z!H=h|tN%9C{Lg*K?{aO%%Sxx`@y?GMS495{EPwyCe#ieAp)A|P`CKJinna3w7UkVu zcW@`GifY_Df79vjmcIJm@PVNqaA~i4to?cpGZX%<=~;QDxd#qUX*lq}Ea!2?)ws{Q z1bmAZS6$!Qm7T8DbY|Avkl3@YuJ*IV-2Wq3_HWOTjs@xpYr3vJmp(pc8pEv<tNWDA zzx~X7uwi!edXpJ1{3HIp+HAjV$GsQRj+)H)d#QQJyA8PySFdihzNuqXXMb{D;whs& zKSICU+5L6Tx61Eq-T8~Ur^)lr(^>tgtb!rz_$;NL@frcM)@%q2KlHRz|J-!O`dd3o zHP>kGC~f@w;SZ<M=GMjASnPV<MgH@>EPeU*$x8>^r1EbSZHm~=RhY6qY)e~_MCZK_ z5$hEN>;m5o**sn%seM{k=cU397X4WY#>{hmFx}jD%KPhbk+2(C!rz2$2|xO+`E?;T z&%K^Xi}&VpR=tc^nBX{x*R0Ict@gs4dqEQnR$P(SUHN$a3cU;dQX4sHF4cz~_<Q<F z7|VXg1K|-LtWCA{XvS&Wp7G+&vmb91tlRG|w*QwmPa!X@*KU1HSyF)CVgX)@;*Wms zBkbdyLY{b}g}qf>`mQG~+O$&ba)|Beo8pWyN4jb^M|K8hmO69wJF9%$A<|Vf-6iDx zi5YUzzb9}{-e|Z~)k3lUhtGO>uk#V-kEiUBk(}W3|1poA(&c21C5H+k-zBcsRsH;B zdh3(DXE%$jeR5l#Bcdnc!=dCQ0n#7yDk}@NmG|CGd9YP3Idx5_ec&P+?@;$7qbCQM z7Rh*NL>OloNIi1+rD#}uYC*EnG}eFztZVAu-S*p|J?BIHot@XF3!OQc_QpM1X1&$A zMwjB2hjW&^inJ3sJ3ILG`YHUCii!tQjvnebdCf%g%=A;<YdM%DxtuN@k(ukxbD&r$ zD>VL!TG`U$L5qL7o>A#JcJt|GDY?k*vg;jsipl<&B5z)@xG(qbh`3zUVLJ5$gNRvS zO8rE|nRAMd6s=Rxzh*gcp4MTL&}BRp>zeMIE;Ic0_?uzbvxjL6+Y(qCbQ3;qJ@8|% zys%H~VNDxmTaD>yCq6t3C=-b^I2UyLg<grw-MZM4-A{wsoz_>i>+MXxdFJ+$n-vdx z_ZsF_CIv_DJ^NjWcYoXGS?wEr@BiyQ7g>3Kn|G=sZ=^#?RAuL#+rGPkZ7%$JncmNy ze#_0KKr1<UK|<US>Gm&+IwRY5ZaJ{Y_j86;xwV4WyUmVk6moRV>YioDInUMb)^M{- z{)D37EZM-Sv<bz2?_TD3Cf6r^cG$17T`94==FhTwlUL2|N$=V4>DG<vEfUPv?3MmK zJbXysuDVdaa;9Xi%&Nkx-@jZ;+cE#|U#1`R^1Ci82rP-vQ1Xb7y0=~Ys$i$*sk%jl zaV=B&>XyuUak74K%Y+FT`8*T<>A#q_)XvRqliP$vcOPEw+ujpfe8Oz&)xBT5mOQ&# z;_<mDS~w<fOQVTJ!PeHhdu!d_#lO5#XkY(Merw<N?~zBtrbe|N+p*%H?zF%iJo@oH zvooh8y8qGIcsZo9Hs+oA>IV@|lgj=_oOq{yUrHqH75~rpwX-I%DdqomP5XJ@&2+l8 zU-S*T?@hZ|ev96Aef6_#vr(<azKIf_o*(^@|LoM|f+dUN^=9T?{&xOkaD?R4Ba4se z=d4+_hx=2=wbgr9ebw=I%U$py|Iz=D6Ezdw9>1C|*Ze`b-E_*o>kWPt^V2_ZChY4C ze=1q8q`9s5`D6vQmvIXv!ozv(U(Qxw<W`x`@ZR!dy=2Tx16PjSf6Obo&V09zy_3KD z?#)l)UklQ-j&e*r9FjC?Vnyn|AO64cR;#;M)Mi{TE?8u=!+4VGiQ_wFxl2C1te-Le z!q46p`H}qs*=Kl99+=|N(aE}eR-P9JAK!J|pX<$kY*?OC$MT$oWpk6|iBGrZHEj|( zl69yn+~8g^>)WTIOgkRgIDLqeU$3XV#M=C~PyOa}dnUsz56#)zZhz0JvrBF>KE>2J zC+?4~!Jo+UuF@0aE3Z39<ukhO+~LgJ+pvhsZnODP=djEvqLL{-QW8Cj#CXjzjvCB5 zy3nXd=fPL4-rgzNI|41v%y{J1xpv|1!X>(AmaUt*?}Ut7zOT)!EK|Ez$L@XW_bRS3 zneVdtx1MUzE<t~`s|SPjn3UQX^?d*Qs6VA)9l!j7+}f)j`47oW(6*0WrF)TI@@Vx` z&;0pbyME1ZJue_Vp=;5DmV@TGHTR=#p5K-Eec5H#`AcU%D9>YHVP7uMe?TG1Pp$8} z;jazzvO_j+2rxe6b;<Ceo3yL-@?gIg5|+aA4lWcFTIc`!qJeyg+P3qr%AN$h_12F* zP+sMB{>0vf=?in7Wj@`x{?C1>4QEaM|FQLxmQpr;f2Hp3@?{HWJXk#K!FK+XOEY_J zJAM<LP<lGjYWA;~0~g;jOm*kv{3I>D__tc#Xa6ZRWmcyb@y&C}igMI;aADXhzWAr` z+3fBlkFIIApL3=B*4)4qIbm6qcHOi}C;jEWw_eFVS~+v|mrL72cP-odC(gb-E7dny z_W2(13&P7w&7<v?A3K%w&@AxgLzU&-i|<LUSnK8&$@K5>=B$jHQ}^rc5*9vQvBE^u z{M(j&wx8x~deXngw7@_Ae%JaGiK@Au_D?aGV0-HPo}x|X_r*O>xWT{t*q<fu+$58w z{ygWdSbijY-rdtHw`6@?XXW~FUcwyv$+M-u&Y#bBtR_z;hCgK;f6NUo*@|Z&lWfa7 z->#cEMMX6uLhX##tDNZ}rz{_@K7DSdsGxFa?`g3Xt9ONbA4Ll`u&iDhTyFAHUrDY? z{Q2CvxuMxJ!(W^WOJ85{^y)5NsrBairz7TT|4!Gl>D9Q@bAEXQt1WBgo~Fhti{=Nu zs45Rw{^@pB!tE1xe(=uJn!+8ujM<;*<iXt5(2Y$hZvJxm%NJ-{R`-Wju8n4|-1{{0 zqnoy=X7b*9r~aRPU9<S8>rL&5MxNBx_uts~?6etlCYte8H3|nkWzD<NDN*y_pHA?z z;_g?L`pvZut6g_&clmF>@0a+oUEYg!7Q9~k%K5av;kS&Z>~4m9l}E!wEtV}&E)bp( z6(#R<Ps1!#%PrNci1qi@W+%ftCGq<fSf0^XtiOJd=G3S;<$TLpW&F1vf5Tw2@L5ss zr&R}6?5T@<P<DQH==IgBL&Kl{)a$pl3VYe*cdcTV`fAy`$?-PY|Kb=!nDw8VtkULd ze|0OSuGdPzMrPq9(Y#3eB{|~3`XW0e_<~Y}TLWH}8%Vr+XK2WJ?}<Xr(-56C8sBP+ zd3@$=+SPmS=FHNhkG0$##tbj5_b#_pzrFnIqn&59q|VM^+yDRPf2WyNpBVNUFJ5G{ z_{gP%50AEUiGOc%zO}z{tIhwY!i!Uqb{x0i@?Y@w+lD80o1+U<Ry8`DoZo%+$&|H* zH=eYw){1|e?Qfd)a98yvpV^_4d002HRz94X>A8fd`07%AuFKl0mv45;NOi7xaVF{C zmisX$riLvLT()sh9IuUzyx##;@d@7!ePH+=Cd7EMxTD8bLt&cAv-xdxa&M(--?|;$ z_`v$&h2)+06&xPdRu(zC1%1-%nfi8Z@&C?!viWvPD$lL=e7rZ~@|Cdj;eU3PCNyvN zUH5iRuGoeXCuXhBs%6hCNN^5hDbL=upweMm<lm_;CaqjMkNNeiHBWz-Zr-p%uti5x zNTR|<{;hoN>y11g6&ILh{<4jG`ZxXP`(8i!)O$0(S88ql{gi*!9s73$e!6nk{)K%s z)sED$Uh`?=qx5Zje~LGKyL~qJehs4zqrq|SoXIP`Oe`weak_C)gqqs2{%=$3zj~Ll zo3w7V@N$17(X%_pZ`*WJ{kKmpc?X>EQ((ARX50Ti?RsK{a^a?H*Uf|clyC3yDxPxB z_x)>$wI(l_c}3stGrRD^kNy8Qwbd(s)|A~_!W0~Ee&T}b+Q%iQ6l+ygyxWy6|Dhp$ ztI>w1*Ke`~2e{0+buUR}b1j3Qp4_e%K6Zt22ZS7~Y%&$s8k@3*r>;2CJE8Ru1K<5K zj~~p6Qu>+Ve$Ju%g7%X?c0AdFGhh32O^XwqYCFj!#QvW%i_n9g)eq&=lY;af+k9HI z^vk|y(`^0(CWO7btMKgXfi==>{g-%RKKEy=es8j+L+-y;j(pem<db!B9y#A8a4b^j zyx<``DeBKf2g_66UOzj1jP>{C_yfrm&*kr|%AR-b#l}6&S}*yUGC7QV@A-;fkN44^ zc_H)6<4GZ+^L)==<nuh*YrW^(zatE@o-7fXuug1`Nm0_K34TStFaBx&B2>Y6-Cidq zRlDohZ0^I6qCXpdGVvt*ytz&8zKczX*{7RM#oN;N*PUE?fcu+rP2Q6pC#U)ca_0m0 zil@v>Fj#K8BG2rw`xM9Lzw0}!+D|ar=qe-xH+@x^w4>K2i}C2=35-k%E_46>x_!E@ zcEyJ44ihp?9T2;9f4}mpOY_~Y?4EczROnajcb2}ar(DV^&a0%CB>q`#@g#wnQ^R<T ztx^I1qxX?_)BYNZ%Pq@3Jx}US*IdrU5yb`VK3C>gFLEl;?Y*#WE-$C9<@A}$E&4f4 zkIcRP&8`0T@*O!nml>M`_1NFMSWr|E$hNunY_i*869v(@jXGPtEq?Z0t~*yrM{1Tn z*J{;i7Hfa+^4+r7Zr0M)XGyc`F3l@Db2>&;VwSzQ_j}Xn2L9z;&%A`wA`;ma_nu8^ zIg}!1d}6`YjW@OgOyDtiVEbKqRUN1FOxM!4Gk2M8W~smQknOkq&XhNQJGShpd3#3T zkc?Q1TtU|R^1>chC*hfQ&LljTA(PVTQ4+IAVdqtO{*c4$^Uj;N{AIHLXaDSFlh41B zm9swh|2TQ)=jAsScubdx|EUxeTlH_I+RC%;>PJK#*~>THmbCvC)Ufio(dDCeKh3^d zGof_-OqH2ipWT(2^U)#W_q&r-QU~SLx(tu;c={(i>Q1ekJ|X6p@b(3_+Vm`2H&uEq zzx3zZ@$W4Uf-Qf&T()wuWW!$W8Ov_p_KdkG61l^E&WYCRKTYpP=cR0vJA7%u<c2i< zL!PmLXL)zu-Ti*b+uDwEN@dgUFLo?usE(F+*_>ji-=X}~UD>QeKy*^XKkhSTTYttp zZWfsR_?EQ7J{5sIfw$jO{qNTb=rsDV>*uFQD=#l+D>$`v+TH06y*B>a9t*uFV42Ie z{E}ey=1JRv<|p5?cl&+z%FjY()wGqRKem1}J7FNIm?Pw#(B|p%gXQYmxETw+i|lbY zyzEH$le?`?=Dfe*JZWvCYxj#=-no}dLOQumzWe_n<x-y0t$FGHCx1QVz+c<H_P1%g zV@Y+w;mOZ0?+V&nI5lOVg#n|d?Fm)epXHCXuRQ-;v|aUy1-IA1xk?#bxd)H_&3dB~ zD|o(Nj{SE19&x>=w=U@3&K25wefmYsx=p)Rlri=Ezs~bZGVtPL+oR7WYCW!qcH3RJ z#4FBN=-i7HlI$`&=6CTu^SSVkQ|m|8!3@W?WRtn=hd-(Q$y7DI=RE!7VxO!TeL7i3 z55JeozIAzJg^UU3mg79@-^tElz4$Uoh;PZkhfG@8iO<eCDX~V&Nx3^Lycu$2LeE8+ zgT*b5CKvsV2+!&Gy1`@b8nwv3M<p8=)@DY`(snKqFZ&~XJ~Cp}gqwfQFLT#A{-1Nn zF$1@WODFDmRWA8%;l`UuR=!$`)7+x<x{IdlS$@7^Y5R+^<Lk;ja~L}fJEz>f?a!QI z_{MO;P32lw^?TF4sq1b3=$!LzEz=_J`5^+Uj^8xs6P?`oR!DO7_I@q<#y|}Zm6c+? z)3P~JB1I=Kv<sOn<96GATi`$nPdU%&oM)al_MMXLs+8b8W_I`fOhGr{IVmzevT;3) z>Q_6X*8BB;R|)xOVA0udbP9*T4K2I3hc$%O26X#5gcxxwz5Q6@z_Gr}56QLp{ugsX zMCWCl3XPaH+bg^{`(8=*jW5YBUoKuNvcHFQ_P-PTx*;_>(_8DyIX6f=DC@rQ@yX%N z$-9<YDjMnu-}-xr>D|5=j6YVaxU{Fn{-n9w%*oM(BI+8QiC;EV7S0SZvY2y5Ryk8a zC~~Rl#F8wd$hGWZ+dV2j`5sN#R(NBs`}7lm#}`d1NV`|O+RwV3^HkYPBeu$^ahvA0 z={~kd4o<T1+aII)%Kt)ZGRxL!E>2Sx1O$7Wy(=-}){+0Y4C=`d)<^bm%Za|?Z0uWR zcVeyQw|UCBVpVHn52|`>Ua9#zHu+WI7qg{JSL<ye4V!{P9%>r#O0B;#;X{$A!OqU_ z)v5oNo}RZ#@XrS6H?KaHZ1Pzyzis3EbInWV$S-4ARmWxWg`p%wYWcL^6@kusk6Al7 zKjqY73Rpa6`fIg)tnqh`JmivyO8&=w`0V^MqJb;9Bp++sdz0ciPyWf{3pFxN8`kHQ z--!Bs#!pP~*!oA`R5K3T^W7S{a^A7%?|s`f#OECsWzWu+c+sS=t}(v%Z-v~&D^GuC zvU+QOK3pF6isxvHM$y8_4SSc0U19l^t7rD#qI|PthHJ~0x4#T_d~Hbj)VRTLZ}fSe z|BMCeglbl?hCP(J8Tzp6N$Q*zMzOyFSb5g2tDN#~+uSq47guEMTrwl`_!(V}9rjzy zn|ECn-6fKKG9xWHd5_k)4fA%TT6f9c+o$<atfcK(*44UcvX<uYZw)rdbbncP_1wSI z-#Zs5+4kiWHx`&~H8pNgGt)AQpE+*^^HMFp_G?-qFZr)@)Ky9A{^m{(u&X%am+|gd zOr5q&oxYU3|Fsi8bJjn$iJ#lQVfHTO;2T<>>yKSD@UqE!<aTUxY+v!7#E*C1T>UZs zhrE1u@pq9cN9Mn9J8y1v@5E2GWBd1hKes>pYFA-?XLU_<(H`D%i{B3}o)&s{W@gPM z%h_u-e!g7IC${LwWA$@t_s-g#Yb(qx+}pO^?eW_<<vVSH?{dn2T;R@XC_dUzS@Cqj zoV0U!zaH}QX1x7$)GehdVSZ-?zvcXQ$8CKTWjy|~*S_*qer}t0Pw@6$&y{7eOE+|B z>%56|@r#h1^Kj>>9P@9@J##tc-*}momB_0o5c1HNvstLZp>jI^GKuEXUyoc%P~P{o zGU?*n*ShN-&HUl?zCa+a;-P?-*yl1HFR_x--=$70YJd8(tu?jUMz_JZy+m2)PqfkM zz|^TKX*0J-xO0`h)0ta7Tkf9T>+i7wBK9kMPvo7y<SKAzs?OEPUEAZh8Z8=5w{m}2 zUa>3i&fYsh8Z-ad9egwILF)1~^Sus~?EN~;GlSpe%fdzRQ;NH5Ti3SNF7;krzhu&@ zt>sIvY~=M`yxD5$lXClpd)n~~D%&|%EHi56-~M3J?56O8yO`EJm=Vl-HI#FEz@dkp z6W{+>@FivTi-T|PT-$c~&mQZkp%=a$|M~aY%1zyK@9p`iS2fcw{Fvpb&wcXmyW?a< z{=QxJ;onM?RB`XvsGl|)e$B0MFOuPTkr%zwxOvHPrmM@!{NISZ>3wtHd0BP*Zr5s6 z>w=Rd{QqkMqCWP&f2w~u^OQw&<-LE8|9%QT`?P*{v>Io~jMew{%FcP&w<NN8WnRFi z^GdaBE4o-!>+PoVHn;}8o_&P(!KtX1MHx50F1wv}+vR0JGK=`8rL0Ss>k9S>oX=vJ zx8C$f!7JStmuwF3pU^q)p_%1$y^rN-UU+PN*&DXs`9AL~E`~RI>7H4$L@&oUZjR)) zEW2r!Z`LPW`gLZl-obveOdegAXChOB9zMA%5o(gDFB%>)E9Wxj)~4ouZ)^GW&3m6W zd`f=yL3V-39c!LBNB_<EzOAQX!pG+QWhYNWK6@uB_~5bchtd-VcPqG8oOso<O<YAT z;g9j#zC^}-2R15(b0}O-tI<6(*W}$R;fL>e+tVIrh8F++dVBSjqO=1S-pu<m`)$GJ zWBKk+UR;e4T(B+k+Vsu4zD)nK;aBJd{^~WAZeLTBAN5#0Qrh<0hIJWxj@9D&BCnSc zE-zIUl>IjUFI2jwI%maWO<tLe8(31D(=K^>2fi!WyyDGUR_Edqa{sOv#Lew#l~a;@ zlpt28`E24I**^!1PsqLV5RaNPZ`GROtde4pE60tuT5U;Kzv%Hor8Qa8!gg03{Si2Q zT}$ng`%&+|ul-q~VE3?Z{=@RMmvmD$+&r_y>3ARO_4I?gR_<;1+V9xEKEkHg@{ZrT z^%8c|j-L6k?3U&q%>z+7l01uVZQ*XaSizETvi#j1D~sSa-+rG7<@)+dc*9ql<k&~a zQRY9^-gB^)HY!=|B)$JJyLyY%Q<q#G)+00LoevT7%v(O!TUcLk?&+4!Mf!HU`Q|KM z%+u>{=Kk6L?&r~4-T!|pCqH=J`on0NyxiB^ymkLx)cL0GV~LZTEVT5Mfa-zjvL9db zuU@ISa>wRXb;*y@ZbF9dKI-b6NSbFcamkgl5f9dOZ(lk!jD1t#%)2rlT0-7OYj88w ze7Ll2)2GF^O)qtQSU78k$d;gjYpO+Mr`t_KpIw&xQ8j7K>L~{!b+lh}+<R)&xU_S| zrFC_?H|%|J+Pchhj^UjH*Pp)<_ExL2TsYfu#)eJPZyYs<zkXlOZb7$=_kneJOiW9a zu3x|TX7=mlH&cF{R-4UxA?eAa@_C=w-pl{K@vpJ&;Y{iB=$;Kfr(3N%VOFK~Kk&EL zNz>N3$9of3y*qwcaQcJYD)C9luT8gIERlbEIR2&?lf=hLp-+~xLY=!67o=>i2}x>G zIO}A;`Ka=qzdZ>InylZ_wExawli9h?@I}Z@nT{eU&ES`*v$XWp44nmDdqm$&+IzV) zlu7Lri^0h_rZmeo<^va<R`OkYEq(0n6b{djCsMy2_3WCGH6<%)mVV!E)j&f*r8Atx zvzD!1zeuI+`>z<QgwGG{ERtU&FVnun&0F(H;`^05{Xg07t~}iHUhJUDs?AJ$xx}nK z`4lfL?Xqi*-JE_ueP)|wV%4)_c{X48Kg{(wvi;0kTivM8l351~w{J=NQWmx|Z(eG4 z^t=TNCkEUso49Vvy<0_Iciqo<oSgdL>#on~>;IPqGJK2u<CJusdsbL?yLi;(_z9i0 z?|oh^`)hT%zWqn2<(VI<W|4UrTi2fqG(DzzdM_*IA<MOIW(9XyKFz-491>=JYI26w zEo+aw%`K`nYrpJaD%rO2K}n_L`}s3{_nvYt-ezk4Psd4DS9EXD>&Dopjx~q3l|KKq zBKNV{WNRTNnJV#qhRqoQPb2s8WT~H*dc!FA;nV3#(dlR2{n|d;qkWoz`<+R576nO| z?3v<Hl`6f@cz(@$!zWLcEw7DwvQcGo3B$uBu5Kr?Qs<oE`?zFRgl^r-b?T{|PByIB z>)JPReL5@oPOLd+?paTPi*+X$G#96CzZaX9yT>|yIak8;MT|Oc4H}j*ZtuP2ebi#> z#E40ET#`DOnG`3veN6qn<NCu)F;1Js8m*t?l};<}Z1PIq!h2y=?BrW9MTT~|i+DQ4 zrCls6roOSh_Bc}9(X_iS^6BwSiMJCvzqOdHa=K;cy2huYL@6n<LTHMh%d^i1icDhX zaxvZHo)-N2Uro^4jeCOTeta&R{_#`S<cfX1dD^E#BcuK2yqY$<YJY{yzLRXWr;FlJ z#P?TyapU@2`i)y%`bP3G?PE`7E;OH;``%b*tvp|TKgar@2PKNS`fFBCIAgzh>iOHR zOr}5EQI)B@#@A!rk~=;uP5VFd1u{LHp}ouF@oD$9cYlhX)IG;jY9g_v^m6X>v$JkH zB_?dToW{CdcHuYul?lr1eaByOx~NPpsDBgs=|KOFbd77@465Vj8{B@Y^I+etcSRpQ zED%2*x<GUq>-yJsT8d9>RGr)Nwm37PQ0&9h2(KHvj|DjQ2nOE{(G&_}SatdDoc*8X ztp0J%<evQjoim!*9n8meC~a7;?yB|j>1IEU9d9D?CtWz))We<m(n|eA(;O!OBW9_K zEXmK!mCrr+vGnf@aX#LeTCBJJBvk%=!y8v@_@Qd&`ycy+avEe9*n+C`ON+P1$T(=a z|34<ZR$aJ4ttij-<hlP3-xT-%&%3Lt^-n(hjbu>H&X<#3^mp}XW|!RU-!X0f)!)mG zD&K9Jvu*mk$c&j&WciME`}|tcE20v5`mAKdnk}!rP9FB&`s(oe>~Q-%Ych5(3sjAs zuKzNy%t-1&#J%%n^PI1)JN;h%!dm~!w@c!#9ax)hZ))=E=i|$+++DkOD=eKUR8YQ~ z?Z@@6i+N6PhI&d}X63dGT*FtTGi%z`+!Y^oEUc&xh}Dky7Hy}wv%$ghTv62BYm>9i zPo4Ve%$Wn*_dJqmd#4axFt7eVc){r_(GmZS9VmUm)^M}($&-wl@9)~W-yA+Yt-q}; zs_v}Yrp-Ua_5SSLR{!<=<)c;yP870Rgs0|Azq9d)RD<kINx7V5TsxjE>|c5O2irgH z(+i&dyk2`~|IgEpFMGG1pS!N<`P1+5x>0JTU7K`#-4;F3U9{ol?L*h{#a^!nSH4=T z`cn6Lu*V!WkAzzhpUZfs%sbg|$ylIZcDcZF{v$C)CBNnDCv0(Er8qlsV$F0V_Uj>j zp4|qLf1_k2-Y@Hj{CDZUcYV*3eKS{GG{5lV(6KMejUUW=bN~O@zaK=e)tlVv`M-(# zzOCEW^vmqV0za&D`^qKr&HWR7wsuUj72+?tu<+DD=`~f;lEdqGc-{sWh;%RIdft9D zy_{Y5qrTf!>1IZapTR{Nr~F^$5@cYh_HnMhu9ReAO3tH<pC>Y+k6+2Dy!)cU{q~nH zZC5{Sbb5O7r|XM%&mQUc#W&sKwO`Iy_?30)z4o<teYQL-UEF$S($op9M}rQuttq@+ zsGg~ERPp*N|NUp*$^G4G>m)BIYRvXiE1KugA<dSyErqiS#Wg!GEm>JU=f8!o^6e_M zw@wYamG;KPd`wF&K6?B5&!9+kRrA2$%JYBj%-B_*r5}1tIY(7^mZXo<Y6*_aUX~>8 zcIO<uf0KN@-oJQR_U}fP*E@zkDsO-NE4DA~{a#a{^89?w&;P4SoxewXG)awRO`5kv zs{ZHE+M4~UL83FvAEz9vnOU1@(p2hS=aX5nb&}q1eyJb7zQ0jiwnm-*(FxgGvu#;w z-ep&(mw#aTZGO7q+xpCRd!3I9BrMOgeP#0{t;qFu`lMOQ7blzA-<@7!GFPQ=MI^7c zp=5%^^Zxk;;o{lzoEsEx*FJjHyM5*&?sLxS?xu=|=f^He7WpPq^RhCn@?b-cT!p3H zeObRZuD=?7#7KK@Jk)8>b^le8`-I~`Y%UxxHfFfkvKc$7@;-cNbuquOPU-hCgK5i{ z5>9GANp0kuf3@DG{NeJoDKkYh=4{oO8!$U!yMEu_@6N09Wus#6U*J3Pvw!O<zI>7G za{DGl-uki9<5TAUi0j^Gt4<w`%(gzV;O2t9-kSxp*@Cp&y^l;^Cfn%$<`?(ncl~P^ zed<1Ry*{|sa<B8LOySod#-(a%a(_flFgj*j`s=Q*7gzD?QQajYiPi5{7mBO0uM}sz z@$&nM%0f3GiFYZnjeK8szP)ex(pe|!jqu6|64UIN6WVXx`ORlj;x=7JMN@3@hXbbr z7_?94{xXTK*}glx=Aob8=cA_Qk}?)<Twm>YYu|}#jmSwZ_bWuo)j2vg+Pw8=Ix~OS zZF>&oEfK5t$>eUZFPyXUzsrrtZ~MM(kWPp`A2s{*!oxA<&$b-CxI+IxV-*A2?u&oi zquxF(C_lTkUsAXFpX8Ms{m123*jg8w+Ho)5V)tR`KWQ<s9tQ8Nj5+7`&T3|Qxk75v zxjn~9=D*O{Bc+!j=Db(mYU;LIt3}psyA}R1k@GdnOsBxt-WOGuiZn5`di8$M*tlw| zCTCZQ@d=)M9k<p^Z_?fTu6iDx<>a%5WA<~whw(|#+2KM0Cl>|(ymwFH!Tx<`tlw=; z-TU18(AnSJRl1X9eWNpZ*KfZPe%3ZYME_Ecg!k9xssi@1&Fpqd`mSy6XP*BnO;p43 z=enbv@n7t6RL=FMT<bUIH|tkBzT;td_)GS#mz65rmC+{y!j9HlPW*6Up=$h+V;6Hi zCdWOy*v4Gwy76t%^ru_-XWG8qFFNi1<aI$D=h9eCPZtOms|sls+9tkov8-(K>l?lC z67?P%G{Tm@64c53@L<E4q6%Ge;b^}tYCGEv%O`GEoyF$Hd71AO-)mmx$+yq**=?RJ zHOF-3(I40P4k;)z7|pV@wa7P;=klE!H$}o#g(p7oTwinTS05hdbJ>Qh(I=%m?YtgF zt#m8AbtybQ>oy0^qbot1rw4}y^FH44Pi)RDJAqBk)mnEf&NcW&dtP5IJ-OuHy6>AO ziX3Qg`g1Vfrz+=9{Lb247k==bG!KuAyy39kF3T}n`^|@?XAaC_IJfwj@8{APstT>A z;<k9qFWq+Cw)UEi^XhFZ%||oO^fLZD9OG3#wd<O^e@j>KnH^c$iZi1_u3tYI-jntJ zTz-H5`A_q#W9K|?y<y%hchkp9CCk_-<>Ktff~7mQ-d*+Qz%Gsx4ARfUSD#w<?ef9O zITc|u`oB#rc+&Fq$ij!`Z|1KkkJoRgE^;_;zI?Ix&HXdnHvOM|_Rs4p^7WGsUfHo_ z>XdBNO6B`kLhEnaYyABknCpMqx9`O|r`1teR!i~^oIUmAfXp4gb<ECr0eW}uZ@+5i z8Nc^Ho#yoC48QMH&x*YM?WXb7OBpVw^d1~7?RPP)k6ojDZ=%=oLY>Dd+^1KE8)w)3 zzyIAt!}j%ESKC9sUzh$<ooe^ayuQY2<`=i^f2!<u%I}%9v^wpN`OXhllOxKt_Ubdo zo#}WQdmy^^@r+lxcXhw|aM-9w?Krh6{YKgIV^bb#i<lfeeJCSf?;F?sM~`(UmPY+} zujY7$_vKcli_*Nli?*+u>akR?NH5m8@cWTBD`wSa@w<u%vz@50pWDgL;^CCV+<4(k zqVOMH7QwB17oV<-y5*Y7UiWV5om0|##QxV*wETEp@v|&0_;Hp^t6K59rTOU!Oq$jk zudVEj&D_I!MC8@4XP1JLKjyfppG&@|w|?oDCDnU>+orroKXl==tMsSi-x)T4J+i+b zb-KoW9^T-(xo6^@hj<>=RP9;xBP!J~N;N95e4Xy+{Mfy3_RD4oKa^#^8Mt3AJEH51 zg>}y#xrVo5zNst!Zu+Tj7#LeMRdb1~^+Kjhx%-bYTyy;@4tj1_vmxH?>wlqN51Jn~ zB*r{CFY(GNHFVL9<gG@|3+%i9o&9uh70Ve0(afwv*#gGbva3%oozS&>wdSXwxh?xO zUEgt^-=pFcq+p`!@Ow*5cKFi`Q$KBRYT5bb!|}|^nos^e|NERfjDO`kn}S75e?wo- z>%Lj49PNDdw8^udKTqhr)>~`$@ZB}$RX2GR_b)i{@t=n6g8xjrHXS~^ZgsSG)#_E6 z!r37+t*js1o_scd!P+2G@2CR5z@5YljoDu>$}w0QWW00r_Byz5dWG|kDa$L$-fz$1 z(_%ebe|f_t#_i0EYo=WOQCRl&?z?-p*!Mp-IXm~%Os=yg-^$N>+!k-r_xkcc?fw?k zS?T*GFS)Yb*mMWCf$nd=-+6BuS@~x7%~-Kv#}Aj;pBFYiV0mM5S9{;JFVRuFYk%Ep z?|ByM`YLzn6{p04snciPac^ECuKGVET1Q{iUer_P;cH8O<{KBUTWVL_ov~jz|5Hj& zOP7xBTG54{_by`o({$1BkP;i4nrd{k6RSnIYgU=~$GP9bG<Gfa*RWcvpu5Iqx}UPe zo)z};kterwG{1>)d#0FUVi4b7cs;``Q~3YlVzulSR)U8!?c(M=V6BkfRr2jj-IvT9 z?wFvYMOQYP&QcNS?vXCp9GceX`&8iKDYKZr?#^eKt{s`Pmc?~#MhpABka?4?C1gAk z65qYz=_{j<!g;4XdzZg*EIzr(_uU86Q>Pp2K5=_zPFC;QcW%*aTP{9UW$OmvIbBQs zTcsxd)i;aD=(v4=U&PAjUAg<(g|FuK+h|Xle<DWs-M$xkQfFpnop-zW{KoBzZvsmM z*MGOFklD+Zx}#~j*N2OXZX|3ynQ?nd<=rQzR3dV1E}5}1ada)eUcAHn+Vve=-_s8~ zVahGHm9yA&=X1f$lEOV*ufFj5ZJo1D%lf2Ms>9sA9~!UzU+=LpzEFMa`8&_`yOsKb z<<k2qU);>#{rg6bUwZGX*>ZZ@r(d(xULW@7#V^l4$0lDq@K5l4Sj6klh?x6*mU-Go z?oAQrJp3Z<j#S*$>g|`D)?d0M|0zIiUE9sME`R0oj%7`o>H2(C<JIfz`#f`ti!RS| z?z(%dJJ{+(Y2A!}1~tcLt1Nw>$b38akEy(G={kn9bM8O-KUez4<DkGrms(v6p0C<F z-OPOAx5(VB4=(S#DVYB7@)nb0%dc)dbpG3hKN>57*!O2<Rb07t>%;ZKZQH)N^Y+$n z-DYZ6b;V?H=gfPO!oh{?jDB~tZY~d)XZB)h`uV3bX5EYYn*UtJZ}saLJ_*<7tgmAE z($?Jmsius#y5r4DiwW~4&(VAHLXq?M#xyJQUGobMYbo!%>~mObL#?5X#U7_=mwEnJ z?6X+Lb>QiVuicX_U7h>;a{e8zg2ji=S3bCyd*qzRv&J_u7q<z?o_e$I-KLilJzRsd zbD#6oyq)%9%9{qR<aOUx{l4e-@J7InClXPz6}1LIyN<-R)=srwcW+Of^WK~ykJy4| zR^jz?3Q`!29m?&3jArX+IjzZ0o6)B%cXh4F>bh66XaAbBF8sc9SG~J|jF0QOYzBep za`O6|^3EkrH5M^v)$XjZGuwH?({h=fB+IfKhNr(yF#UB5<UZWu@M$7TMboaD`4_`8 zqqm1Kdq}@rzwbx>f>;mblh?Lw6|%QedwV4Iz>Y;b``(GVm>-$3RnygZs#4FcElOY0 zwuPzwQxnuuxEC+DiRpmc+6~e+hPsEjkMFv1YVzr{;w#@JFZaxxnDIg*VV2*%SJU?R z{#JjS6@A!l&xW)uYi#Vf`ERd0UigA(rlcfu&BKJLa|}%ntlQ=<F>^X^NA9C0)_0cH z@^|-NIL6_!>c@MznLGFGeKs|DYokWOX4n78)^G9)et1ZyofbT=+dD;0?8d=_rr3!p z^At|8?sj0?tnBqXv$g6rQ`V|`C!fEXQxg!r{IB8Ge%@{I#hq@GfBexC$-RGX>WQn| z3!@YgH+<f4Kq74e!*6MY^(_--Gn-WG)!D%OM`7=3<C*F&9;NDAL~dBzeJ;3r)oZZ} zmsj0onir=US+)CJ`psV1UZ!=*CogyLUQ3!Y`NZzz(A!5Wr8AYTbFu`=F`u_ytT27| zJlPdd+CD2H;(xrVYLfL`-YENg*&%1g?rZ#^)wZ^Qw{*U5UMqgw^Wd8KUAGvns_pnN z$6e#kkC*xWj}L!X^s|A%!Zs#DL-X=&)8(toye|o_6&GWi(9GC0MfZN|A^G<Sf1Yl9 zyI+KH!T-e{`G2YZTDm*zjOfbupKgo9#4zl*^7?}-?<dAHueg%6o?dzTYf<!ii&f<| zLM{b?M<+ycq@>%{yM<_3dGr4<4ft*yZ^3EvUsrA0pXo)vPjAUz>f{hp8R#AIYf<I@ z^}qKQbNp1l_xx2)youb7+6U788$>=#Gr64@Q1#hu=D{NoH{GTi2)yfvKe@ATaY%m7 zq7q}iNb}zdWsQIBOV^#B`u9$V@}I(w2ZHmwPZxjt6!R>&khyr-PyJcjH<#{O^KA2) zW1D-f8Gq6K`+r-)VjlJPeyiRZ$kil-7xrHL6Z!J*%i;$MckAh#<KBKcR^msJ^7{Wv zfAgLfjto4XtaiU(>BNclOHJkan#!HeW-E%$3N@Pdd;M;c?`O~3{qcC$`oC(r+AIcn z>$lIi*A!*_{qgemyV(A#iT^!2wQP1=b3amc=KfXHw5Z^%-lsmFnH?9{GvWNjsD6VF zYxewn$jQK9Sj8t||4Yj9hUxcOzmB46m0Rck9Ndvw{YGzRma|ysniaO5YZ?Bxr+FM> z_$|&ecXHFswM{w(%YN2<x3{fdo$~kEugh<(rwAO~S7%n&R(EunR%htZUyZjv*d9n_ z*qy}M(6P(4)7{|DPhqx4jLYV5#&GFsZ$IFF&2{PBwRaVmubZ25eb{&V-Ooes7<;+3 zMOJXJu43Z~Yq(?j!2A2|x0e4CZ-1>n7+@T*D@pb7<=2IKpQa}{u9~}e(q^F@TPCh} z!eLY@J9X|<_dE955&e7XHyt{E?g`V?_wO`|=3I%G`7`l=S#;MoM?urrw{FK4_U4NS ziX1u<s&VRNqs7YG{0%Rct?!jzy*uvWGlqGyWX*5ac+N7p7w*I4rTilF{F9u!O+AM$ z6^PhxnH_n>EbaL{1_3p#z^jGQj*1ErZ3hG-c$)mTpNcsh{Kf7rZ|GE^<=%yb4}*XE zPVEcr3HDp85o9iV;c`Y9&%701Z>UXOxOk#YlH9i5soy0h%*d+J;gU}fD~v4Ei8>#4 z`dZ#aN#`el6|bxgTv)Q@?5(d%9=}xf6z%TZeZl9jvu|fn#QxIewM}y`ZxWuRknSDo z+wir*VVA6K%og7F^><IzU2|PtKDEx`?eY7%93m;68A9gV7Ja$?&VdDsgg<ZF7ajJk z`CZgrmt8-M+c@ir4n{M*T3YR~|MZRUj<stmMDm0A?Rt{_Boru`EfbsH{?T;#jIDu& zb^3w^F@h`{4t@K+M;^bjBKfk$0*<^b-CtPG_}t&zYP0;>!i&b6mv(KwynL7IIpgPd zx6X5AnQ}HXdewS~reNKT7R?_bnK!&W&-Aiy<DTtK3{@_lmE|{SguPVRyQ}g|sN7v! z;R~;S|FGkGuciC{w}jHWX%kt`oKi8lpnl)%(gE4&WoK*;UbUSfu`BM4$uEJ3`nZN= zZlcp&L?%ZEb!@EAnl<H;&!scP%#1(gh;C=on=W~5*`IDNgM%$8NzIFtE9%yT6fKJ{ z=<!rLb?n@All*x;is=k@Eti+qNNj(^?sffJ#7%a~*?G1HQYM{fZ`vpsc`qd1o_~+! zg|FA9KV1^kBoNtbsn%yv<;7)S*nB(whDxT$>IsUrtM*1m@yKRKe27&ps(mFbpIkDn z;olOD8;;>c*B=-x`22a-YtsVbH@8wtrpmCL`P3Y8HQ)P_U36#8(xb}{2(A57?pL@X z#IQTQb=t~L-vl|YhD@n6o5OLwb~|h8v$G{uwi?#G{V^Z(ZBNWty|n1RUH=WsVADg+ zzMR^g-K$jJ=`Z9xeQsgbt}>N<AzuT6xaT|<x92>+(`oVVhw*B02lvl9`(N(=^@fn@ zr9UG3)9-%qE7@V6{7;whf$)<*$JlI|?*21kce}EcF=SQ$snBONS9j|ipT_Ky|8tY% z+EU}?2RmL(IQ4Fs_tFELg)O&3>sM|Jn_!mqYeC*Kj+&*f47<G3f;ne=x$m$fC_{R| zt~pv;L&UEnE_o#~Lu_*0^z)e>5-&V9Uvk(lbu{)(qD`;F(Xz`Wk2M|Y6TBSkCi*Qd zE@J$=>cV#!Glf{!4PosqKirO#nunH)xh&k<$m|h+f3pPRE)V?`!W(#BzA~J>PyfuL z^9Eaj6M9R2=q@>YURhS@)fa_RK6dHe-p?8xi!LiaZ!c7JElqAb``qp3_s_0kTsqk& zWj2Sj^K{%zb%@AX&BL;gQSONH;-fPrii*vjx$Y#xl<j6A-~Jk%Zad&pS9x}+@z>CU zLJ6OCP7P`56N;I*;N!!#7Nc7`_MbJ%Uprs>hN9qQjfCJ_hvlO4r1vzYENJLyedDmO z)Ld6zFxEk;Ec|bYSG(_So!|590}j+KYP%nQ;K4pmzf)`SwFOT+zZe-}Yt&)tT`D4O zd4V@rfopBqmMORU_EmRo<aOk<nrpXWcIC618(+B=iA+Be!=dzg_hA8@{j<+DPJKH6 z*8CMywDU^KEDB}(<l3!ciqg)vS$z8!!FD=7p?*t8ccov)Rr43xvLb8lrSI!)TzT`w z2Y%aR&RF@i_xTG_lKBg7AAijE@50r)_uJk71}0g4E%WSGu<$C<n{(*N$>Jmzx!fBi zoous@i$zvWVYvO_;)zUiLmR#eXVtjEel6Yoq14+@`IYoKzLlTCcS-F{<v)6iNju>e z%fv;6Kcn^8x0lrKUYUQ@^3TGOGoNCUEJNiM?^@9KbeiSwqC*Qh)V=oqUAin<jp^yy zub&qjVb~_S@kmJ|->GQt!`~-2nQd~_e-aT>&~W0<gjsQ~%#!&#L+f;I>fG#f>T;3c zyU<+Qd0=6Oe{zQK$FEGx8f|$ZhuON0|2f-O{=$h-`sm~&@6v~i$tuE2Yu-7Ys@<;g zX7&dGw%=3Oo9#TVYUDBhO_WRCRVb_z`$i-6KBJrw<B`)xJXaa7cW2BzF2*Rgf8T7c z`4QLFCtlro;ET0wp``YyBY&)=`tO%&UZ~?x-pJ>XlFaWJT&JU|!{Tr=RA9ECOF*ox ziPqkzYuw$r8p;oz6tG1!H*HMb|8m1cgH>0i?vhV5m=Kq>CiI-In>Fj#d1saUHY@7= zPEnexDi*@o;xoVLW!~)|m;S9$mu{xF@LVvt%(f$I>hdh}k7e?VhT0$Y3BH+9(bu#> zTq;y~;)V$4HL*wUxK&)r_!XDXyK!$qKuAWo18?&6=K{)4c;{uxeU+<d+IXt9S2MA* zs8(Wk&s5)p;ALuB+bu<o3Nk)jp1(-JQuLaa+xhPfyJmCsb%vGfu?s#_yK76d%J;>( zf18d7zKC}#P2Lb`BgCry;I^votW|Au7xcc^-jw{uo>y{@gbI(yE6aJ=(@k@QXN6vg z+I8E$&CAVZxzfjfMYmQvIXa1&nVj@&aKG-D88KBW!O*6t$;C10LKPp|ul5zZYt7y~ z3a|9tG-0jw+#QWt>(sm2*lHKEtxP|AQ-rZuKjfq1jXNqm0q1%&KZ?bs{aw|hD?7!5 zRn2E=dxG+fY>DO-UviqP{MMYeayt=ib9vs?>H~7>Tci)B^GNURS?imyeWoMl6m{uh zi;WC^X<SxQUN4@q()Fd;ryUPoEt22#!0=!5>>Y1=4txx|8k)0aS@e&Lsr~ZHigw2> zni6`gSiQdME=!6_{+2{$W+tt+@ADWUZ)}miXQs5^==-+sD_^7uA3a`hI%MbO1-%9P zcdvXPQ7?Mvh`G)srrl@m&Uqkrd|Q>_olAR5gQN8qNcf2dyH_7HGELgK)~!p^Lwo&i zu|2QC^VjIG^|3iJyNXXL3VGNZ+j{fBfh9=_KUkKrv<DnM#`DG~#*DF?omG{kZid#H z?#8<;H}$s~+<mi$>GY~5wG5Vt_kKu(g!kthFW>wqqRQImqsUcG$A=#byfniCLWDSd z3eOz0=z7(%<iUe?XXZ3*dY|w(L59b8`GPmrahFR{PP~uxc{ejRi-YYs>xTEiV&)ZQ zn&m5Xl2QXDk|mz$O+7ki(*vtw@l#C+T**9#?=0Q4qj{6UVF8|l6%xxXetQzdeQ1fn z>Qm*di=}ln?)tJG4+<)|6B6tcrto%J&<EMJBMWmRW^e!JBsS$?)uM>#5A2DTqRf?d zEVAOX57`y|`fFFN-eZ^c)LYqa8TpSCw=u^E_OC0LzB@ju$E9^+#_|RCChydGbd;NY zc8OS9NKC<p3vva{dw5niN83CwOc1zowfo+L<fCV<)rqJXrP@4qpQE68bAGex8)l~H zL;IeY&NXlOb<!ll|7}5-sD?&z!h@hyP9J_RV_AM6Hpr*Hpxx$BvW@P&W#_dP)_GQ_ z2-xo{O5^cS_@}S^aQi+t-8D&TeI7L?u4%om(YkWimQ3a;O^RNU>@N~tKk?0Bnfq>8 zoAg1!mPY+9?_Uc}&oNotad_%Qn`?bPoB3Yd;F@)V>(=qMw1mUDcb(1cT)3((M6LU- z6}<U%8FQv;$@WuMBo62YYd4>^Fzx*6%Ne+E_D!25jgCCaU1a>Z9^8umr+7g=rsM7s zuPHBd{(tIM;P;xY73g(f&f0BC2UiD7xbN=sddtP{KlI)e^>;a*Qg~u6-S|&+;i|~V z7qvVjpICV<5RWaIX?x=%<J~45VGr>oCs%xTVX5tE2wikCL!!=F@Tz^2{Wr%szo*x; z?A?9oYH{O(ZQ51eQ@DR^c=gn!j$up3!TT&0EG+-TRGc?=wH)90E@-<I_v$y1cg;_x zzfqg+!zsA1>#5C(znRwyA3ZS6Yf9Xj;Q#-$`46@Gk8anr+t!yF|Er(Fck6QF!KwRF zLbzSxR^_Y+Sn4*H&EV`$k6XS1_UYP>@4bzFbWLCN$n1UFX1(}1?fs8?we!TcWEQVF z;ab1xLGr$b$9jWb<-X;Ki+r{IRVP!_sy!P_-NSoM?`bpG^Gki*KMgs){eR~_y0P5d z^|F9rQRkL_-*|<W|Fi#g?~%Y-y-7uTZiF6|e17fcqri(dw`K4>Wsh=|KgMXfa#jB; zb7i0XM>rN(tXwwZ*V@o8iMQC^6_|!vugrYmDjFbtpy+sVOITH^!|mqB#lfd#t3SKl zzAjmA85lde@8iCAJ5KI<Wm)oNR)3CO347!g$Mv&UAFyl9eBcrk>^f_kzT1nl61(nX zz2n=vkpD|--LC)d8IBiKFPy6D`flIaJz>eG;*`C*oBlBd8Qo^#apJN$lF*X9uUoAC zri`gjd|2?+Sy9(>HtKB^YHsg8oV|eUYJ2<bN6xPfp6c^fitDxVI(X|G^S!nAOIXfG z`+xA;BdPPhINEnt$h+vf^ZpvW*>G8J_uHM}udl`^Hs~%r_k3;L39p;kEw}f{|B5X> z@2{n4d-LM7-T69gH(zgkxZ$C7ebr{EeEo@M8<Yy1RE|5vZTnl*doLzaDqhaOtt`{+ zH`n72r|+$NyDm5{{M^ZV_O1Nx{hz1E#Hi15zxsA<!){skaJg-2UsiKZt~-BfN=qug z|J8-<-|x3?__lJd;2-&r>K8V_bs^lT0V|!1{;&Si@y3#AN@CujXD6%PCF&pkb-$(8 z|HhM>8$K5&PTzlMU4PqMwHF_cb$!k&NLzXLaOBSiA5^aHKW}l%B!0_{%8Q%NUQ%89 zbiZZ8FWJLCre4|k_szTix4zsg=a*Hk*8kIV^>OX~CGm>q-&ilW@#x3C`x?JboUGk1 zuJvTcKj&>~2|pa(uU!6PLXPZ*h1;gd*`&%nnEv#@W&V$!i+;2IR*cixzqv#1ySsR5 z*8Gga%ry(Hy|y{o{^Zn$fcp2&Z$!S=yb>|-$P|C__u-`bhOb1tr)3IvpVRwrNa%;$ z_Knkhr>_3`O=?<pRg3set@97~G~e!jlD4IcF+8Py&i<48PMs_COkAhruYbaLkyqIZ zslqSqCQqiy1lRtvtz?p&t{%G9Ce^!7aeJ-IUhDHo(~XzsOW8P0xXUlC@_8ro+Q)}- z4c6G~UNe7&QsA+hsrL_^c<d}OIa=`JM%^Rfw>Ph7Kk+6>eoK+hkIw~N^3_qrcg*FU zZ~3KnZ}ElXy>E|SPrSxd_3Z76O|cETWR1=V^{d94x_*&6`dC`Duf{n4$(GsYe{L@_ zuFd`RwpO|BWBGCWueZKvU!MQt`}=)5|8ge2v5q|b{QI6m8}+LnK1-|m*FWFi!gPXp z{f3{`>tFm|_Fww(guoTQb}DoKU2A#do&B*2wZEI#cJ2r?@3?p_)%~|sxLh^Mr~B`k z*KBF)-v2%S{VjJjb*H50?|FaM-K_k0d``>1e~CN{w}jj8bpB=kFI(Wo*z-sKLd8E{ zSq6rF87rAw5&u1JR>?<XX8w(q$Z72^zrp6C>+*DUG>3Gs><3f%$}QW(wpd;{zTjEt zr!OJDJl>b-)!x{4M03{XqKDs-{!gefE6CzpG3DAvvqyXG$w<8k4i*xhP%eAz_2*Jq zpGh7ogY{d(zk1~KIM*ut(TvaevcvXE@uSRT>r4DhZ69B>j*hR`d2dC{hFP=Bvt<9j zlbO8G^Gshv{L3BlmOp>JL&rVmor2}eJFhwKb#7V}Vc)r7b}(;FO3?4KHGaCvm&>07 zygeBir!TH`>52RK%QADf{1muY!PmV+`B>D?g1E(#m7<Ps*{ZF(HR?Cd`VIfqOYA%^ z%Q%()z3XbTNAsFpR%gk*>C_JXqcPX}SdDbI^UevktS7n~N8Va_O5dS6zpeJ+kHrr% z-|cLeJL~k(>rH!KAJ<KvcID8`sjbT%U2WBl|0s1?Xk(_gZB<Dur%KQ#lgKdJTMzc! zZu46lr1f-VyOZYRZuQVLO}15~=h)|a$%J?N#eCN3Slhbw$1InM+AUM$cKAAP-TdvH z{Lvzt1=kcO=!jJ|=C5RI@cVS?^M2tI-7mgh?3lxRnYoj7l7ot(txlTITuI}fXTG@W zTiiQdq7{5`<(?(0zE8aORw34CzG&x{zR54nOuqNgY}y`;yPVIG&kOh@D4B26%$oCQ zhQ}70FEvjbPj9d}9X&Vk;tBt*n{PJjt(&;xk^B0!r%q{yy}x+7TP#ZMj_t}8{`BNl z6#-9|^XI<Ft=hPtWT#`X)D|0^7YZwnC2v%TkJ|I8ykq%%&q=Z;vsBLLRkX2R4zxVF zCCcF0isw67J-m)Ddr~AdXZj@{;|IHW<U9Unwx>*++h&!P`Re}>PCnMPL9<HdsMtkm zUw3?{wJ_|fTE@F4Ay?817B7(4>0!0TF86hD>D%<@xta~mO*gMj_<Hd8=9}TN{O>g^ zvL{uGz567wbl&RtqNvy%&cbiI`sd|WEV;MpP+H#ojZ&({n?4Ecut^S?um0{GcdM?_ z-a}c-V$W@8yU(Y1&AN1cqJ`V%4R%RW&fc|V*YCelQ{d84#s2z4dW&An>q7OHtJi(s zv?sbhHel2FyRP9Y_dVNkLRB$4CH?Fap^y{p-zV)6T_IJOb}DS1wS>5g()`=m`LY%r z%{!X|kGwVHdzA3pv)xPDdr#?;c}D{6!Y9o3=BhY)?t^laRy5n?>9<AxeS5R&TtjHD zrPjPRJF5(g<pe6f=1qK4rkXKz(wfIAAGXSwsodD=!F}fYhI7huHMhN5SWq?HZTF8Z zt~60)(We4zGle1x18!9~T|TsYTiT@36GfVFu~T+7eR*(%EiGZ0l=7K>GapN=694hw z-d4k+e``;lWHj8Q87}(W>-?LUo9{31+_=ET>NHQ}o*AAl$u>fqOShRFSdhAML9a@b zCAaF&E03n`e-vV?tXjP7&{9_a3I9$Ar@wmj(a`Ph3#G{W{S(gD|N0d9`sLNmocCq3 ze>t^3(oVYYDYVgxQCsjyx8#->)hk&?g_3{V%XpGBA^U4$?U4_Q-^E{!)VE|k>vBac z>z#J~iDxeseEa<C`Hjs>ShZMxY+fOdmbd<D-jb??&PD(2WT&lXn#vTV{qxSu$447I zT$F?+cARlNrciEmQfsr;riAzXR^^Z9^UZyFitU}X+^*g3pGE(By0sd(vU#OD`mJ4b zuD-OVQDEkjxuW4y9-aJm^kslJ<C>1(I@Z}+uW;V|-D34v&NMRq(Q2KPm5XzxxVPST z!7S2!G^uk(g+FVM&XQ(!!_?R2^4%w$^E{NaEl=fqI)Ck_?CP`>*-dATt?n*reZc6d zD_eYI?yLVVts5n7PFdZRonuqnvGb?>y}}q%>+?4~m}Zr_ZZCMLl{2s9s2Jy@yd7t} z95Q0rw?2-Njs2ay?%iTthV1Kgz4Dv<R+LVhwd<LE!RF~!rZ1&_7+vSu_slzwlcRd= z!e-NeqHc>NN26OcBCr3MB^#f1;nByV?^)%hZ_hfZP_>_V*%F3ZkJ>z$PVZrUbh4$) z`Ssg|$9%l)jej=&*A1S>e7qxi^0Lm);>`xqS9-GhId<(9Og*y0a>MRzp-~&#^Ng9d zfBT%Gd;ijVpMb5KXBrn>`Tjj*_m69gsa`J>6>mfZzPYNz-SawB^!9{{2Yz<1KUiYW zB@lDhASodJ-p2m0Wq|^zL6PBdDeSXeg{r2n%MJ=%&o=uj|I5_7OX9v)nJs?IbHA<U z{iAuht3JfO-lW)?V;;0^&e2~9mPhY3-P$zu5ZmunJ$tVvo(?a|U-13H;nHeH=?&jE zs<%#S68YW`$TD@`Rpv>1n=KaE%(l@w{dSRs3ER_!D|J$ihq2G}FpFSYF=ffp=p{3s zNES@EXBiih&HP^_LPExKlcI%bM(%=?z_~x>*Isa*JDK-@Xfmhk>}zalw%2dl9MlmF zS`-$$$@$#MFU>Q)vn^9xdOQ99RB=PiSGF_eu)WE!cjxiDc`8T3-7Igxtrss>7;uR& z*2YZco3XISmeIs*F|W+?pL)M-uISGxys)gw{S4Q}ilk$bv9tFkER9<lx6s%?+wg~$ z^Gw#%I|u6~#mmMp)o+VREL?0m_t~B^4nCHTrPpszTrYOy(I)p<MP^$iPO0p=*O@QK z{>-YQ!DYFM65sO1sSYpKeYKw!b0m>xuIGuDV*3@0ETcD78)V%4I@7a6Dtt*%&Ev@T z^ApPs7xdil<~!wR;r3;N*qST7Grg+#(^UDAwoQFodg)l~d-Z=7LODEjx7==D<1F7@ zyv3>i^qGxkCG6F+?00|4x^A2L(faY$pRX+Tm<v>0{Ngz0gTndu)>bZQ*6Tk_-SM2? z`g~kxM?|5|-n=*)pB;rC*PiCpWZ6)2`N7}0XKkV@nl|y@zJDz7{nF_6yWg@>EWYkq z_u1m}y8mx)EZp+m;a;uOeOBwTr#r<gbZXLsElyuDce?U-uJ1eHN4yD*w|35+cK(oo zLQJnke(k-RqH%j)Mdm-<`7l0W;ezLeQcF4;w}e`$$|lNeHs5d{>hJrg_AF7~cQ1_; zB6@EuE$shSart@SFUG6er0#I6&CYK8Q|T)4eA$^!tqmJW3UW>Nbp2e+JN=Q(W&fmG zQpbKPT)j2peol5w|E#-@XV`ttcy-fzf26#+uVI4OvYCbw;(t=V=(WZ(ug<!^&+fZ# zY0e+h=7~Mc*TZi7Uw8ih)K)RxAFHJ!!+u|0zbJnFTU+hhhflArpZfMx_B$=N`8QXe zx^e!YM$NINjkg=KzgDdgc|0XP#QxTcp8ri7kDDE4{qwul=Si{LzovilPVbz-_5Vg_ zlf~+FH&4$vcXECE_Y=3SCGO{XetcU&rb5)SlJkE~*WCDj?U<I)H!s<>FDlw!3BAA3 z_eSrm+b6U2EPoSZ`6pc!)3_adJap>!YwMM#hfJAZTYP<Gg=+Ntxw%L5o?cL!a;mdn zyHepY)wdu1AC;Vc$wFDcjoG&5$qU0r^ZQm`NH1Bk{>qPt_o`-#g9HCH&1}4IxuHbV zX;DJgN}p|9YLoXhxt-r*%%ofNQtiO<$1(nYB7@ZCd^-00zE_83<(jyxn<nor<}F!% z;(_?%Bi$F?K0SSC%2d_c$KTAg$SS<}K<~ulGw$>6pAuG>5&Xg|XKw+sVQ<psBi9$a zT=?5t#G^_{HB5`&+0!a)+1fMnH<=m8C)7?`+%DT$Ebx8V9hOSbPxTrmfg)>vESMDb z$AYOZC_Z&#i{&Zij*u%WR=Tc;UVU-(%ARLeqx!P`21Pga{j(~6t+)8M{@#PP!(aXT z!QH@kHM7}Xa$SDPf{ScB&up7r+cmQ{E&f@=Dbuoh55)g<EQr?#-Lc=}uypC`RX5xp znXAfq>{B#7SyP)+|5E3UZTIFW_cz+KEALaU+@iDE{>gC><0-zO8?PO|H8Y`n_uj|r z|Nds+Yq!4jYRQVr)6S(?)IWH%<@E1$=XU)&n0q2N`1?+|d!H-rU;g;{%|5nT8-@?_ zZYj%~*UH!ZwPR|MEGzVBn=W9v#8}ii_cr%CgZi*7BI>P+T=b8wRG&5T+`4{A8EMV0 zzSC!KzLnFNmBqWw&}zpV`yKP%GlpM(yj9)EfA{w@nbGI3J++BAs<o$jZPC{Q*SiC+ z_}(a65}~6y$Nfio$CD+dDe{`%R$6)OG~8O8pLr}Z{bhtgw%USaF}ZBs`mg1-dB5T- zQn0AqIjK_hXWq*C6$d>ZcPvXeyDiFwb;;IMT(9(xM0QJhoSQR6kyrVyva<SS?Q}(d zuHzHd*L;}Ha9QT$LY<|1R_8U%iDh2%b5=mSiTTzgTVDm%+zPYWV0E}u_hN07|Kd1a zQ=k8G%$p8cK4E^EUR!*9=JH3}rtcrbull&-wu$B4<v%5L=V$(P{oPl3=8fW9{TI6& zzE7>nyHGu6-`QXPl_WC@J};^Dm-u=3iu$tm2E|W}Uw@bWSM%U~@V~uZCcT|7lTmDy zqksmt_W^cJxkyLVOXrLi+<v1IelUH-kypD6b3UfDZasH9=}pnMe!U%flJBhE6@L;q zasQ#Hz$$_LO84Dd7b_d`C7nxde;{+L`&hiSlS`41?xm_t^_pD{=e~UAd78y+VP?@^ z{Pyw1U2zWSHSM$Zu=;FOV)@#_)Dn8#O**uCD__2#^IVI--KCvnYj%6;IP|ZIyLGhH z`r7?Wg(}XM|0J%Ni)Gu~VEMkx=XP1pHBIy7U*|Z^E-rGsmwit!Yo>om^Rs39qrKj> z?R@^KZYn#=+T{oP&Axcdb#t4wVMd>^aBA5^%M`^!Nu5g<^w08-kC^#vb7lNIos6%g z*{9d0-&EM<B>Tl8r#$5OkJb5{esaI(Jv#sW`q9`O9>2YNOwZ_EC{O-byym>r>`Ui2 zS|5DzAoGOx3c(Ut`>75mu2u)t6a|^DnsR1}b;zFGm6wXL7A$*rC;0rO8<%A+@)~Iv zOs%r8>|b_VP%O;MaT}Zei|c%g1b;{K8TR@4X`MT>Qz7ajOXb~%%8%8b-nV6BIplK8 zb@I`mBTrQdRF<hsUYfF$bI;-vj;F0BpLb-?e4(H;A!K{cg0-J|yV$2Hhl*Y`HJzSS zeS+(&BrkU_fA%r6YeH96$+h0_iT11ZY!7}OzDw>>?)A$V0cKNjDj0izKkff@mHGGA z=CkEOQ;J{BQMZ4+<;k1cdAG{mxo_Wb)zm+}<X>{NT4<fP{E33h>$h^R*}p$#nS1`( z``2=>_r`y)Y@W{@eAwRm{KoiwKkg_T{60}pRIt2hAM<JZq`&@eLS%I2JUMJy@c4ts z!O96L8pd(FB~tPI43ii11xzTIdZOorT$@{r`z7BjPdoR6UK71NU1z!+_4_*WSXf(f z@q-H=CUdBEM5x$4kSep6>%K7CW#X0=rAen+p6NPod9~Q*Zq~ikdk?&-%&q#>KKE$j zGnr>6FAMAv`<2D|=sK6pdZ+XLkHUqjguEvmnzTGf>XO5y%SO*mFWNTE_R~78a?SP3 z<;wSY*SkGf&u~BNVKcwp(kzw6S#4IEtCqV>TDDHil*=Q!O!j$h>E2b=UgwMUPX8L~ z8tQM)d?cXbq0i#9<T)Q%)i(JgT^2s8V>ml)-4UCO1y?U+$WM<rw_AH**0-BayMNSd zt-3YqxYee><l^aTQ>@u`Km2y-P5t`?XA*ZUZtm;<xvfV17w_-5C+<!2)BpUs|MJJ{ zdj12M>IU)$fAU;aUQ@W#UNWlKt1PR=%8%{2+=7Vh77KSy-!tRGZ0<UNozq1o9&K>e zyt#hbZMVBjm8<F&EL^&A-O4pL*QWL<T@Jg}czx!Y)#2NhsAuhM%leYKXcb#`kB+(B zy_EjUZp+E6N00kx$L`w{*4Zl%&H7DCX7;a(PtGsBel+!0Pwl70JB2@2M_)7FqO~n- zYvXmEgzHh~cP!f${X8c&ulwVoNh~j2vNn32*i*IV<d1Jt1h=|+Ury&S%CLBLYLnxu z?BcBt?i>zW*S-AFXR!yjIM_V`Qk<SXY6(#~|5|+&gVuM4AI^D>=KRtZs&~YGh~#kW zc<jM?LQx~?g~=Je8098UBi2>cCE2UhzDz5eqv`FdviV+?V|wJbjcFTxu9}^){!zrE zDKg=O>hb+u*D7qEJDYD|>zrnqmc8jI|Mi@`VpI2VY{|A2oFh=R^sh@xbo!DNbJxY) zt=On(JN40Pw&^N<Jk^q&rn9n>Zco{lxoM`Rc-+p$g8ysFkJV0i(5*gi*KhZZ|M#kG z<yoJ)dW*f^_^H)5KbL=l{<Vd1?b~H0>RWD{ALQp1Uwp=8;qD-@8`U1RFRVY<3q0va zT%mKuLx*phSf8wB*i_|GzU1}0%D#E>+4yVS-!zRavG!tYA-k^Jew)@Q^As4hY*)Fg zn)-@WDtEe5i2LoS-?s5>Ubp=E*^;uo{?iubH!k!!+`LT5M}A8{(!}jD*{!$3io$c{ zw=BNlyXE=D`41j2w_oY(o`3r9y6^6<-rv4{wD=x}0E=sY$UG&@FRa=Rea+6FtX$2Z zY{tdg={Rdb?vui!4lhGWub7?f{C4z&`Si&CoNIgr&nv}K%yqZNmCv;em{oad$MTuF zwv)fDIa!=v&G`3}-4C%R&Nq}=j6y_Bvd{3^$o*6ERC*ccWpmc^g2iU3+llYe|Lkt! zZ(Z&ZS}K{<KIiHuyLN|wFAHSadM=7wxpd{{uU*SjUsr~%UuA#VVb(#L!}^kiQrxEV z^2!=_a-BYD#~Tryc{jOymhJS%U-!-Za{9)~?e`~L-_OGF(v?T~O#h>W4XOv21Dy7l zym<1%)0ZPf{mIWc8i$0tgl-=?6VtczQEBP(UEN1S-^>wdFKOa=c*-b5>H3lfl~e9q z*%`X@)Y5eeN}Z~A?S4^KGXLeuyYG#T8HI0HS=>-$`84b4vX3FB?jC*I+CQy6UO~Y| z$xY*=)@hyPoaL)FG~M{*xT<IEvL%k)LYHUfUdXUG#A3Gd#GeZ8+iME!%x}*~-F)ER zYCfYm5kKF(?s>JnxqjLDVz~uIXOipqrX74RtxCY0{i&nv9)9^c?MB9f?b<paGd+qI zO=>d`oSq+3yz^dr=!CM#yA|#);Mt+O?A>g(=gT#H|8JSWo58;9a81(wh~3h^eZwEj zn;>`oFN3n$WNv;r+jAR|Hcs2vy?J}Vhr&(8nMKCcS`S}-@j0^k$<fZ~yz4nXi*0+T zJ@db3c7EDDA@PnJ%@&<A3bQoY^vd+sX~iiss-Aro8#qs{an%DB!;-G!x{a&XTv<}H zbkTxmPO{<7k;$Qx%g%mSzgKMjwHC8IeigfYxn4<LiC(gv&D8CG5VIs(<mJb@X_1S< zS~rK5U6z?sdglAuJ10Hwd;j_J`Sr@)O~2ePHU0Yh<#EZ6`6pd=?oFw8e!Sva<k15s zs(pNJ%n{Cd6SIjuyMAYL@1(CwwpjmKy=Hw;*pq$J_b;>Id9(IZY=HX0_XlSk2o_j< z!N@=*!hU0T;i>}t2ci$APh25undL84f6MLa(=7Fy%PUiAPXC!17002Om9HqASv*s7 zr<29(8nHjBO%99=65&%qV!kkzoPIfL#fOzWtEysn_fNUCV%LPKF13ZvigkV08oyPx z?Ozb~LY>Xt$mH;bqZJ~d^X?R-9XFOQtUM}uc<a8YQ?ANNhepeb)Ew>byw|=qzGiw| zu6{?0<O#8L9w%1%sx_{DpxK>KdPH-fp6m&?Pw7V|8?D}T^}yCMrC-c`?MlozGjmE> zNb$nfTbmMnH+kMte4ESX@28X=Dqc9<_<D$W-gfJ9-tU?HS?4FD%<78guW7x*Tq<V8 zd`vcs@tvBJ+$6><?O)CdSk;))KRpy$BRG9R-lW}et?T<%IR)=uaMCJD!FE|~)~72$ z5o+tFE`PoG>-Y7$biRf3*~T>7ZkWF4V9etavwET*OuybFK0|Pd$S&12i*19BPx3pn z=*5a%drI8()$UH3cj0SX=BdK}Urj|;Zj-rP#A*6amV<>=p;hU~)vkrUQ_?2NoZ52A zKV)SnbJnA*+pn%g=|s8TO1HYTeDXZaD)-mk?prT!w&AIK<NUAw^!;?R4`$uv6U9IM z6W?l=%=0q++EE?(UWNM~*@HKRrJatnlup}!enHL(-u*)HDe~9$Wq+R6b1YpoY7y(K zcySK}M+Ti1{(aGFd>K7wIx5=pPg=Ghmr<&eQ-#B!eO2DKW15<34fA65xP9in=l}Z9 zM@cp=E{4WC7Ku_5o_JM1)>-MPue>>fPix0B##WY%J>Mr){hlUNYt%bg;i|*e*XF9H z{>h6eO(^JKjO}~(+U@_2WAC(M>gWDD>L32~D$j@g7w@lT7Bu-@sG##WWoG)Du=(%Y z7?M;j82`N%*2*|<r|*Lc6P%edL&P_1{g=D8$su(6FY_~b-<G|(AI2&0Xx}Zi_{ly$ zHw9!JU7)DgZ}X&bGS8{1+7c6Qqodg;{tE87`Fi%5yl=&u?u7AjiR@R;m^R~6tVSU3 zpR=6q*P?5m{tDdMms#d|=jNlAnY;VaxfS0hGsUgn7xtv>=*51<7n@dvy}kRm*RSBn zytRKzxUSCSK04#@tAoy7JHvS2h4QCZrnp9{v?ok8vP-zddE%h%uYyp!U!TAKe`WkC zDq`!~DJiWtU%X-4cHBVLa@*qzvcGnvS%sEl7}Tx#TX@;K;QIed)tje1-_G{l_RE@i zB3V<@m=Agueeh^L&31X_v2`nav?i**ZhbD?>9H&7_%?-~-OG=kdM%Y>bGP~n@1N^y z-{qLC5MAQE)c*gz_@&0Tq!k|gGu$vQ{@Y{k*`NM)T3z>5Zj5X(_}sPT-N~$kUDrNb zzVzVG{j~K3qCzZ;yvD~?s4$;@8*p@9^MNPI3Wr*!nWsfgcbj}Zvex&PPG9hp^tU}v z9;$n~@6FqF<Jyy-S0<`RZal2-v_GrIbc#!&+Kps2E=5g`6QPbLit~>$u&iQQ*4;hr z#0H&SR}RmMzLx`1I2U`)st;u{ea9c0%*bu5lPk%rB>Z#trD^72<%iGjeG)doMqg`= zLf52OA>TGCyhx0z{N9!?JMYHc-#31}J@w=NHs*sN!Rg0>j%>59_0-*ap!?Rg%$~hJ zo}7?vl-^OVqnv&z*z(?nV^Qur=PvB?teD9xRAjU){QCP}%>S$QWZ2%%eO+*Simsre zN1UX5ca(A8>qfOUyA2_Sm#ypJQ8;kIP?=$h4bzNpC;u0FzB6jFC^+ja@BKO<M*mCB z>5V>{tv77`q7%EF!R)1sUXP=jkWIoQ?Zzqo(HA576D|DW<!0_W_<52>+3nw||81EL zSS+ae$Q;<RK|<SjbEuNess>LBCEv<(#{*uMPM^A6hiBgPd2iVQyNh;aq+i=!Iw>Q4 z%`vmCMG9U@*Ue?FiqFw0UQnj?Wp|gF;*s|ZGS2242XAiYR~6rR`$O=CrJSK}7u;5C zJyiRuUbwM~=Ux{7-Hj240$N2{IC5{dE#%Ua2vTHSxHQ$tf8Csej-UK({BEA}ms;NW z<v`3Dw#aS4Pbxn=<#4QTDeZ_**`A_$i6JXmi$ke&f%+rou2+87?B+3@`P=uKfh}6; zVvRqOAd`~X+NY~u2X0}=UdXdPSvaytJn~bf%)(p$(rP5Q(_S)7*GZZ$eRk)T>^0Lb zo%_G&_Ay~LdkJQ#^fhUw7Bwml3Qp^`N9S3}@PWuXMW-K5i{@*OUT1mn;g=85XKUpm z?Q;s0BdvZlWHF`O6fDn)*)IRuZpu8~YcEzf-pWrY_|cQ$`$>W=DS0tR)}Q7zy}grH zFGzp9p!v#H&7@=rg+C`7IP+v87~iNn3&_^6em)eoVdF-7hJz256us{|!2RQ3D{t7n z;C;(7^4GkZba-#;|IO$Bhn+7Firi$liREVWlKKw8+K-O^mK-m16^v9&IQArDt<!?S zp5U!A6JII&CK}F5esDeW-ID1mmNPfKe0yOfx3NKQ)(T1AGuxyOGcC^Xzhg7eZ%K30 zt)-p+s=~@DHpJ?AeGlxf+R~OP+Z&X$^xfo4u0u<<s|rkcz2S>!66b{X>?K0Hi<otE z9~ez!yYkv)={%F`SK|D??|72`=;*9P3+0Y2&YxNKy+_$x>X=qSTvF)^+3?h5TULB_ z?=e-;dzR^7VQ`{j=M1UoPo2cL{VJNzZ*}6%xtS|G^R~;gBMY`pN)qyEu=A2FSd;jw zmfb6fRf5?u!m(C-r98ujr5Apc7>PS)uk4#`RyE<X={<&Jo(~jWi#CKZg#Ya7VthW! z{XXlBcNMPBUw5DXr!4jIMa{<d+})DwyPK9X&Dm#v+Fx>>zw{*CzZP%!*RM4_Y}KJJ z-Qiq%_W`djZ*VY6&!dY{8Ee)&&q+NhvP3pJu)CmO*YV1F=0p44^d027`zJO&+0!L+ zjxTeKn_Ix?lJa{=3_H%Gzgx5}+tYVF*G-l$pL^Nn^0)6{Ul)6&WnRZ|2kWK1ZM}|* zU#?#>W5p>(+j#fIQzTBDjnrPuUbuD6wMo0Disr`edT~@<^IGqPeH}-VC!VdivoYs- zMei34x!l(w+?;>5DV4EBdgqpHnz3in+Q4(}YbW=uS!(rr+P=B2_b(Z|KD0(Td*!)B z*CN{&U9&vCXXPquJG0H}ZG4x=-~P4k=%vjT$`bqJu8L~z|0Lni@?k#fnFmh}3dSo( zI7{Z{UswMW$Y5-7IHJI6E5iZ?Ke0Jij&qbTp3ck{sNm+3DBya~vHprP;~X1{M~CFQ zQ#jYWVE85fDj>Zo<*lOV8mD!c7jC`ex}wAM(`L~fb^ULqS)ZaDw{-LVP0+Zw<=gc) zA4H#aoj>Hmba!&d=1qRrj-T1FXr+p?y=>8|?98m~lPW?tW_QQbv2O~9(<~QUpws?B zRNYwjulz<AiJP6rUY^hLTqVW+;qT&R@7hkkSMM$}c5OBEG*=Y5zgEQYXT*vS(Y|}; z;X>CBY-pEXZ@zfJwu+V8f^JN;7GAefv*2aF&)*F8HOF-r?RpoBMohoKX6C>j+dhT! zf@T0`Z2P)Gr|XKTUjm9WBxTh@WVFh%`!C)6Tk`3a=e~fJg$Jv{Uvo|U`SV;}zeDu3 z&M6*(u6GW~h_e*TIl{>`qxE1w`WC}bMYr!IzCodt`&2~|KkGf_(B{wi)9*jc>*juM zr-g;L|0~Zt<61cX*EGJ9(abeVj%;c@sn~k*(5z#e6K<IQ&GuS*FC;y!cI$`jZ`CKC z-~X}we%=3D54Kc!)@|CH^g=*qhq?C2xyN%`-P7NdzyCL}_~Vb)Ue|+#>tEMBZk)LL z<5bg(>gA>T^X?id{;W28V{qW`+#N;>KK9?`5dN?{{p4RCPyQwMIXRa(tuZiuzRclF z<@(EOe%o{jtkIa1CwN^%^Nh>{Cz<WO-#ooD|HZxB$gY{Mqxt`F_g$})%ex)YqxS5& zzOnmNw*3tKnw5U{+Ey?zRd{=;D+E2RcDk~;yDZCOW@2Pq@Dh~`xmN@-HoOUBG?e4Z zX=CXxye}ja`Dm(Z^GPf5YqMnA7FM;DMU@^lG~>D9<6D1Wdg0!m7gD+&Ub0YIy)M{m z;j<gNe=hsT%(iB)dV=Gmc6DQ&$;PiVPwowOG`!;7{Nmy2Wu>2zlW#Wfi>|VMv87{P zb-)(xr#tp}G95V)>^W!hv&I*#o!lBnIHt{2uVUjmmK!tK_KQ^8y_>qcx^4k374xFl z_>8Bm_<r#~+S41H-79#eS0sNlHMp6)a-QBNrt=2NwYH`-oI32<pAa$Sr|UAAknXO_ zxmCqqvlBL5FX1_CmV11&EqgwnUO`30rnbqUmy3PwmZYV4l{>UaYM-|6Sj@uQ@NxV1 ztI?l632})T>L1?98*$4eTk_@0!<u^LhP9s$Pc(S3d2%18YRuWA9m++v9xnG-e3pop zC~+xqHy$eRZ2$5{y*D(=<<fz^E6ph?%!?*+{EXftBiS%dcjA<d-VUy+ZvP(nP1Hy| z7Rj0yqB+MjfTLLN%+AOw`|nqtZIm(a`OT4SS0134u-fI?zu$AO+PnymC@6I+TK)Mc zFGp~dgP6(ryLWCsez))O*~D!n$`WgYRTj2*a_#9#a5r@c4pj}{I}&0t|HCGkwZX|> z_T1a^tZ|vUpucvBpm+JQ_WOT++Woz0ooBk<{+n0d@pE^%?&>MaF)X$^u4U@sekqi% zA!S}ouEd|2D);t8>@!MZcsF~~Tzi9;=^u~xEq*-xYgud2{Yo>Tb5&bqxK{l3e6IAC z>EY(vj!iQwL?8b-vR+i?*>2x=Pd^&on{voKHR9_Zjxx(%E-yEH4w|-PkE2kV?mNRJ zPwL$|u5;JsMNMUSxk>zI($e&$M<PUwdVVfjBED;~MfMMqUq}Dx$Zxc-XP)=u+fMP_ zWm#tv7F}@HH{NwL`M~3+M{D-E7k%9OyV&sgIril#LRw~1-=y;vSG5+ZH%eN&C2>xg z_VyK<;vAE$%PzP7+kUdOKEku_5yx`2MQZbWbG^=Hv~4*e)TX$8g1B;<*#yQcj`gX2 zJ8F_9-ICanb+#^P&P9PAAEt<QuCDTPo0s4d{QpnOis>tV_cv};vyytS?{?we=7p|a zyZJubSmr<5Tg5#qiR(xZ-}K@qnQm?8A{A9<SL|PS(eb3;ue%06zZ{CFdBLzVN;9@< zVch?P{O2YcfAN_aX(>NvP5<L1u8mg?UKUx*E%UVg|GxF@t;r{6-MG27Il%C5jqv%S zjhd|HE~nEXeYuY2Scp0Ydx_m$vVMnO#>%#pzZN`Gx>Qk-_VtRB&C6$1$BkcIjk2Fs z=$2_3Ul+(dD{7gy(y6(1%U*<kR4bYqbganYYNFug-ZhG!mDbMoy~8gecG7mkbem1t zbxdcMD<4;Ski!>j_x`)`DWmtB_Z%)%>2BTX^5(N`lCRdKqiy%to@lOQe0Fqdp6rI7 z8&}R*!C4r6QsSzTSCsNIYqgNw-puA5d^3)!C^LVU^zI~&NaDtq`@b?K{G8!w_~Gzf z#gE$*rUzX;o;YisWX0BU&#b29b7ZcbTb8_T<@Y(?&YgT_mEdg5W+fqdE`HaP-^JoV zMX#5=JoCh|K{_%xaKDp8+2rdH!6%}pgx|G3+t0z}d|`v8!UKcT!VHsYOlPv*bt!0; z;p+M)cI(~pYw~(~<R&KZ$6SwBP}})$`}afBj+|f$v~tdn@l0gb`aCbmOJsqdLVYgZ z)fqoc>&`7y3cNOZnzyxa!knZ(zE>sNpFY-}DW$~z$JIr2LjJtwwK<F41z*iu^y*dk z+Z4tk7QS|l;Jp#+3>FCWPn=cwEBePt+fN+Rgv84ZglW#;Tp+A5yVc-bk;Y4D3n{fC z!`kXJRhPxGSI&6Idn7h}SX0mI&dtf@>mYe&9j9#91T{t91=FIsat!KuOdqdKIDc!a zQ?H!+OOYDZhQ~7U3k!0LrKe3w@|-Dm<Lak-RjjKLj%_-{^*Kj)`;8mQi}rIL@~ZL* zs`0w&dgJA!L%W~ZByvYiaGhZ0^U<|#x5?ffW{GV_?eAwLNOke7<X$;@$)!xI%b^i{ zXU_REp1f+o%QWrPPUDm#mA|HRKihlYY}1LZ%lti;1FYB27i{Y@n0sp1=dX7j=@r!% z+19DQNn2LKoVSv@-Z`pD_RsTGtl8&YYF3$iu26K@SE6nCwRiUSRX1Djd7iT8&R{bL zwmp74?(eg{T|Dpi>DPpCUUC)=t>_P(@jF6T`GS_Skb6%I!|s<`ZMj++CH`wo`Qf%* z;pw!hQXa80BCZQoovGq_oLr)&X4{dZ>cE~fU*-1vquWfcz4=|#Jw>{2S)<T1(FQ#| zHEGQ=XO7Fr{B=#;e4$bJrIK6J=_ntghUC)Klb6ohF{xsGl;MR}`L8q$BO?BP$zIE^ zQdw7?5w28w&DSCQn}b8Yop4xG`^mpbPg-y9Xm|P7dgAI-F70ntciDSRCYUF!f3v+# z+UDr8rk=k`CY%bmocL-{Pny#l!S#0?uju#w{j=u6YrFnN4j;*%&FbQ&&gPRCXHGKI zFBFM&T{BU0L5O_ErW1XfQmwulgu*7N`p?L+o4{nb>Wty-+2yytc}6khoM%#YK58i9 zGc_vb<B`%wT=$g1H+0-!eAOX1InOnr>3LqxHXp4CPtMI#x|VbyU`O>YzsvqFi#NSF zDO_L8_xP~<nXra$duF}lo%i4EWhDc<%HG35ccLSg2|65^spKWfe5A^^|842Fu<E2u zcYnC8(iY^F;g7j!(aWp)J7L|<F7}Xni&obxyJhzC;z<`x?(lTYv|FNLC80bCTbg~H z_81=jqUfhu6YOeSRBYGUWn(2Lwr%0s8C%pArL?cCFkE_<wY_CM!`*KYH~!i7{_5It zrQzznwO6Zr8IJhad^mXJz?*JC_4g)TRiTp63047&Wei(at6fe1n5Z(h=5vY>$My6~ zvmLRV^W{}66l(jzGB(*>vRv~`l=Y0x+0(kQ*BtuJuicooL;vkNC%q~+7v+%XOCG+S zdh#;v#%wodYqrR}%KLHX^)<CqOGHz5vGzS<vANmveeLm#Q?F03tyhY6`JMG&ZsYM@ z1H~QMHBt$$`*iGW82Zbvl<arEQf}q-=lj0vUk~g)QM0+@`e%<$Rk8P`XRXh^o~bJR zO7%~&y6kTM85@_S3BK)o$9Ok?V!_h;s^$s$JC{#0STKc4LiNH?^M```lZ#pT3S6hm z$liW!m+a-Nt#$TS)E3OOKI9zCbWy(Zn}+&(fnd|EGk+x%rk}pXb47>Y;ITg(z6WJ? ztc>8e@x||UmGlx0#S`KMf}0<8^q=_`(zDGuFzBqonKhShu%GgOyG+ZY`=HV3fW&EY z4{4~q55A_gb*<*>wa%75lr8yQO!%5&y`O0s*O`x942}iIlv|bxeVzY(b9b)SHS1IR zWm=9g$0WCSRIc2`VV%5WcC7odM~MsMJL^0rX7>soZ(f}ras1GR=<ZWnm<?m(GH&0h zzA`J!c*!mPLtQ-27ZeKJ`h42SCp1oOPQqK^EZ5Z%6JqXh>{C3Mc79dvvqjsIuPlA{ zh4F$BqhMHz+M)v<XZd^+cs-l6^?pn)nJ)3p?P1=Qz5{xf7iVwCesk+g+MA8JFAKA# zcggxZkP`mv<iMD%)F^Bs%kpv2f?t#0ZAxD<f8k5H1&^i{@rk$n*zwEX{Bx|djpvnl z{pm?f8s3W>*=Bg&_*h^(p{D+4{W_6A5mydrwk9Q4mXi}WtUQ@|7CcwvjAgld*X`Q2 z@3&6!F)weheEBZn+`f|;zrreY`tSEtBrX5{zWe_^>r?CPz4lmmTuphCWpLln)AP}@ z1MjD%&FarjY{<|5e5h*sZ(oh)wl*TWzSvcKGMoKwr{>n5db^*@yrTF(AX{cvLf?`# zi+)Q)xt?V0G+S=D<4mfDQdg3oR#nk9o%cc4O#&Hs{Fm%K%;d7{diHVYr0c=IE~RXm z_i~>6Qn7cP1wGtasrzP5KED60`mvu29z77@eR}=d+r6`xoo-m0ZHzj-vX0;Kt=A_W ztrgrmAKZVRqh~Ii$k4G}`(L!0p~2K^lO`-Yaj|@{_$;l;@OLf~>f7qq@+lt8IhghN ztLynyZ&quIeLY+Ln*G_c4~2bxuGcc$(l_ZaE??@|6|QgK9TdXcDLN}-RkL4CQO&K( z2>~AZnzwW7&i@Y$3_W+eF)gNAyRstw|C%tbAN_Mh9wnq~je53cQcSYMVxCoX)qfjq zYc@_hyJO*|rQ)Hs%d>A4%F3-?9=(6*tM>jawU)2<=}uo(?R9Bo*z=t^D%n&1buh1r zzjd~0-93GKZ#yL^&pky47TjiQImp2_OPV2R?XwHz357Ect=8Cg%lq~t;}=s?MWop0 zHGehH?nx{R4k{{Gb@0c%?>m0-NB1v3`E`-{>yKGky~}2^er9iRRsY;0z@gc`%bNfF zKds8$`G@`pHC`@?le(fRE9IG?^2NAGI7)Ae3~P4OWG+_ir6%GFm69S?S^p}YaJ9ax z?1Y4Ke^ipkIY0LeNjH?wT`lqUm?G(XRI8+W{i+*sccy+&`S*5C-^N|cB5iTCzBRX( z^nB2?<CGEG{`B>Q*Mb|{3-7a^v6%Jv$DM?A#+$$2T&6w2TW{GBk*~Y`{~!E3(R}%r zsGe<$PG3s?)3d8&`7|jRulr|W-)m@eW}anU!hTp~hAeLe+Xp`<vE+q<%v@8he14{N zj-j7{{gxqPJM$iPnfrg+R#*w8vu<8svh&i!=jWtsr)sX3?S7l$8&=yK8f4~DWOU-C zgv3UJj){`&dxdQmKCnHoShnIopxmDwy{!E0cekZ@ze(D-^}1%mTzBmaqT4py-FCXn zD@(eav1jRyt9h+Ydl(mlKJ|R!bJQ_P!LqSwo*D!1;cXUW0tQjvwVAVh=Ls;ZkiMZ) z<aH)h;N;;i7Ki$FcLa1P7`AG##`!-t_K@<*E8Qz)o9i|0#KYv7S67w3-oKIe(cP6+ zx}PTA?s&ELl}DAn%~lbQ_lMXl&i_1hqyIU()rDq$y|{1RJ_Kb+O}rnpMSf}A@^gn9 z&*p_sDZai&sJ_fcIH}~vlND0;A8xbVUp-af)b?M`)9=-;lVUpZYJbJA^JktYFFu&J z`uWQ<&%Z8MboGYZ=T9f<_m&*B-EUM?aCc(PTE+RhBTK#KZ~m6j>n(lPTK7gTWAU#1 zHKpAP+Us}3X}M4TTGn_tdq2a2Q07BVPMqAvsAr*|lfNxdqv`pY${xWB=QpIvFI2xD zS(iW4Z?o+ByyotoS&ScQJaXH;@9uFv!!@bQbbi|U#0}P~h3)s2omj=Yp7nxq#Nk4R z_{JKy=bj2$-d2}$jMs0@-16m{w(;AF(|zR+{ziq_%jNrid;9d8v*vfzx*tM!qb2Q< zOrv(C?D)L;s-pZQ-j%x}?@YI_d;aupro@?6YZ23_6Lwa**()h9-7UyCspgQISLA48 zryg`U-mmXs_x{2)%VvK6zDXnPxV%K{U$$K4vJ)oeWsjp%nA4xGvGF;myV_jY_4@ky zZm-{mX3g~FbNmpjF=zYzt5xD0O&66r3@7o;mzbJ%NhH;9p6uc%53}{9Dgx^x44Wj^ zpL)OSF0<3tsP)~GtxnEnNL(WCv)!fXwMr}JZ7~7KCl|F9o}6&x3IFc4P=tNg*`L1o z&H0%^Db-?L*XG`4TwId(YHeidDONKL!JW2!^BX4^CuZK;b8PyC0ENz;Fq^5h?bd0r zElQdbcOG97U_Ny=)AgfAb9-JdpK2MPDEFY4&3<W7jv3pv?TOV!SI^AP6ggno5q)lb zYNFY(AG7bS&d?WajjG8xtu3q>dTq<IBc-Z_g1o%nB@XL_+N8fU5m@B6@wr+4gj<F@ zBEPs2raqkOZ+S<jZ%^#jci;c6{&cP0c5P?mk<M8!t>o6daao!5eP-vcgNr&MS<i%= zWk~ANI;|pe|DbWJ8-wN<kx&5_*^DO_7v_3O*(^`vyl~~fu4}5^RYF;|uOB{I7M1vZ znsW0_i--GvhGg6L>smebi`afl*u(0Q>%Y*T5}SLLvYQ_ty#8lNDdW%0oX)m&S063N zsa$_OKE@|8tKeQwzrXN{$EG=~tqxgRYEBxYOfOrv|BsPS_vDIWKbfab<UX>0;-5f^ zY>_}t8I{Ay$|8;v7kb?i5tCg}w)SlHWiFQ+o3-Neq|27<lvujXcY3|{YK3g3s8A{Y zhaFZi4}w&z1idV#31w{lnJXMJ$-XKiEw<&+*EGfiz4k*_PkB{4DJF;NXWeUMx-m84 zOrgxy*&9T?&VBNqWa|}tY~IZ!e7}ksZ&~IkuWew|zd2D<ZSU3}e>N}FJU8=1hDOlU zYMrCX$FDTG=y2sf>iE{Au6CPslK9Mp+&#NnVrK`h+P;b<)$z~|=5qz}PUPKYU;62S z>-~KfY=6!AmGet*VIlXmlj4%MR;h1&vA$KQ_jP*1>ZkedN>Bca{w{Um;$i2c|IdBG zKJ6%Zr*P?Rlt`l&Z?JcMS>(l26ZY)z4xb+!Ve{g~!93BGMlSo(?Ba`r^v+*?!%=SA zo}qKdCT7$9={oPqgf~iD7npVH(6M(XPPlsNE%nbZ+Hp%uXo0*H!<Vyx8z=n`Xj^<C zs_$2#;DM*jXPVAie!g@4L*$3UociJ`7V!kniHwL{bl~N>-_coJhL@jduG3?GxF+ou zgV52*4dH^8jPo3|=J>Q#UJyLP9OS}Kup@2%>O=8gIE824|GWFCoMsvOsXW$nP3?aP z48idsH{S{#Uvad<r1g;K-?W1V!|x<99o=$3(eSCzGQC~0f*VhrS-8M(rd)Dn!Yi*G z89~bp<ai4L*CcpuS}ilHD&+;odCBssZuOT=E!lk6ZG_J-zGz?P6t26y%l*FAVVN8S zktv)`9~gI@`tW$ur{xJ3uC|D!6sc)S{mzKxcIN(KHo1QH3f~3ck$cR%SI12fs?peF zxadjYp51W|=Qwq*4=la=%CApnc1O#_2nlhos?xR|uQtA&=gNbE)AzBw*Xq#^`Csq5 z`DFEmb2sfZ7H^L~?v`n??#J5d*5}(d-CL#dQAlswo~@CWJ2R9rWIxWHlloWk`<j`P zrn#~fI7UydEL160{lv3W`{KRe%IPkB=UWdq9xd!J4?DkJC{JH)>69$dHN|=vW`}O1 zmmQtq{>&#u#dBBp^Lb{=ic=eBI5GAlO_*7^v~j}H3B^%~9~!qQ^$9Am#qRs-Wj$k( zn_k%)u7$;gksMvTC#x1PbZtzLeep``!HT~Pof#MBYBGJd|92p2>AXu8osX|)*eth@ zI;#`uqIKJ;N6ht@K*Jn^T^$LV=4GdNMJ-i!cxcDTe2h`Wr22B}j2v}MQ{^kXi{_kM zUgVeAcZn(Q%*Lbx4DUJ=8ReOyvj2xq+|GaHc3s}G#PxM<$3q<2b2sNECw0wGa<V@8 zhGibBr(liqyrUWGJT{+L5#_z4U7wrB__pGY)Z`*z9pfcG(mtMAc5vcP?sZqv9tX7K zU*XTMWm;~@a#^c;rs>?wXQw3fjl#0L*)BD2xV!0>R{r`qb~~${ozhLJ`D&(NFy)s} zONVfuN0Hj|KZUo#eU*-QYlcruTjDY2Uf1lt<;KaSrz-ch`WK&gx>@%~;Krb7ky7nn zMT(D{a9F!0Zq3iQO-ifZc^nlJD+{%~IPY=R=@Y+$>m$y;kG|QlG$A)Yc<xV@2Y*+6 z{2~*iSInEg|KX~Kj9b4SXxqWie6u<sbDGD@$N;&md+g;7bGk+EIHLM2_8fPJv)g9r zy$@%YUC!BXTU}l@cGp8)s~u8`Q8JT?7rmY$m|z;gd*XY#f`rFSg@^}?XJ1X{y7{>) z!RXVS=k~M2CQdrU!=iXCimQ9YGOf_fGuP~7`H^)ezT0(SNbOt4n7zFFKE?i6weHay zn>y|NU6S+O*w>x;R`ut8%%1d=$I4{^Hw`B!zPfw-L|VeV`gGg0DrWJ+mmVK4nwJw> zv^@9DvgQPH@4v4V**_+#_*+KKeq{Lba>`bLh5{4sjcX>h&#rrFtD5ckTx~+l;u)F$ zlmw?9{G77!f||9>!psL=)6X8TXxbLOLR7z7{B4Ek_WSI?TLl)La931gt7^>Om6|(u zZ{dFD&i#{b94O!aUbakl|IS8*_#eB1(i7tnr>QP1kQcALx3A}k_B76S(?9TbzNwn* z$FwG1`{C}B7EFTes^NyIE?Ot-ekypLem#q^x+b9S^`8g)Oe~I*cV)|z?iD#6k|)+0 z+0(FYO{A0eypVHR2gA;&>1Q5Te2V4g)qg(%1Jb_mrEb`-63`KR&{!dV>C|&imT>yc zoKU|&vOlk3RuJQX3A)E7pJhzg$lSKO#b;Id%vr&ccWyt=aWHCI*a6MF>L#ng0++TZ zhw2x<45vu-v}A7$?m7}(X1F0%wCZ#(i@5sbN{eY%-*237dPyepvK{5y4LdnDN1xic zYMCdWr+BF6KFjrmcM6{wzJ2~PJ1}WW^{L4=?@w30Q2I9e+vEjB7rFB|w7PuSd#)9v z&C3(x^S57;Wl+Jl@cExf*K@uxJ<3S=u77NzSJ1P^3)cVqS|Hr{W!<|^^?QtqBP4$F zFIE*%e&e!@vuvirrgd_x;eEzN#?d#D)~QPVe6l6>w(9mHLN(kv3e1xyL?>~UX;_K) zCd$5^5D;-XYL;#0`dNZgE9yi}Zz!nRFngj>S7dL`-sf}KowW7}a2v|^{o1|#-U`O` zT4o!*n-yw#Pr0EsJ^iEj8~cuZliiG_?0@Wa>8#Tao-4MNYA#7rHZE+<POMThnfyQH z($gEB3)b{r$`9!Iyst8OtAgek1rsjmWk#v*FO}a{;e51%r|Z|J=zV?r9=^K%#3XjV z`OnSERv&z87WI5i^xF-_6MrwgFgx=9jHzdyY@EJsUcK5oUbpZx)6C`N?RWS~Uf-J| z)6yUO@%ZJal~-SHjj<JuRy%)b-TdeBs%L*bzx&E=?%i9ew{>H<!nKMGQvRNNXPllV z<hA$WkNtZ;oj-oo>DQJ@`3CPj{VXD7hyT9Wc{{%5abkJrf<?>)4Gax$zFRm6d3wGp zlD5^KcqmO`w$h_tH`sn3F51f$>%@J8e|fCuf?4Y)zS?!XqC<J#d4<#&x2)zwSKP7x ze*Ay(?w=;5@pr1?_sg{9Wju~|J1wsqTYrAucNw+mHA{^dY}Cqg*dKhoGBqwK_~`VX z8}y#9b4;oEwvzREMC$EJyUMaOKYL|H*Bv^3dD8Wpy3fV!_ka9e6#3?2cm4PM^{)-g z6>^VGdtiS0_5BqbdHFhXDs-P!E}tA)-z@Kb^+4RUuR`hZPiF0{JAJj<rrAVbibBAS zYe%x5*Kf19F{`g)9^b5_2=>D{{jYeppL6%|4!$1ImwtO|<YQSGr;3<IZ$jN#mrUO# z(5>Jx>yUu&>b>kwuOtfH>|LY$_RxXyatWDB2@{v?^4K<$!P?@>wNsgY?|K$peXMZl zQrqKsTlT+Td2!U%?$GbE>bcQwZ+|Q*t7|x(Q?y9ge8y+lhuyofX9fh_X|TNW+~iW< z)5@A}oL3khPWgZ3%6{cD&NE+4S`ehADt<D#uB;+i<wL^9m+a54)SaEP$(n=VqM**K z<WK5%_Qt0?cK_bqZr*RRL?m_2^2YyF+ib+WHl6AI=c(GtbtZ9IV8Q>@^`C#*Mw=RK zsW|&|pM8kPM#I>CA#YXL3)-Hubo2LAoNVpSE7`E!PySv-?)mEXO4X~EJzn1Y+u7^= zcKeHk-w%9w_@7^A!>&IKd(HoxZ28<?V)mB*%cH}SE2cS!Es#pE)$_dF(C|Zg`R{MX zl!HFJVTiGA6OJpHbvLbZG2iP?0fCn}Lm6+!c^;lFR<u0eO2F~ru4vYzN@uYO2R6&4 z&4(;>PtGzGKbOUHK)dO3&{E0G=9^PqW%6(Sd%)&k<c?Ey%nCd*dyWP?bf4cmJ;fnG zwB9n!f#n9r^Xp5@lsMk=9OvocEjd+qH0-s!-2o;$(_gtaqpqyUuYI#vO~*@ey46J9 zoCd*VqF#%VYF|GN+_-6KEXR*8FAhBldR(+EM9nyJQ{ja3mDfJG%innSMkB~EW8t1| z^<A0~NB^r^D^Gj8ZccDdeLv%uc}FI!u~ieldHwH!B}O*0ZV66!kQu#L@$ahkS4*Sz z#_1LxW1n+3U+Y9<UwM<|wzqwJ)mILGyZyXjvE1a?JavyCk=3<lP6*U}*dvp2F8qp2 zK*OcNMQMx8Z6=-c2>MeIWT897Z@uc|;*VQTU%MA(CLYR_?pkhjIsE&D4Zjcd>us&x z8uaXqU4rkABd03fubUbl{(18S*=rVaJ60TRZ@hk+-|k(qwB^(fhDTzyq-C908uK`8 z@{yn_X2<I0ih|nDrsmUXZ~a+2?bh6wzluru49QmCYkz!^i0gg(_E)-IeEs{q)(QH@ z(yITga_K(m>-GF<W{KT_g}?9Km~=g^I=o6=`r`w+i7%qB9xx4!jL&(O<Wu)uwl`$< z{D}MhKaY!?Z#yj8XkVkfV}IiHm-hCnUdA(CopkTf?u!z;<lS65LcTVour=Pu_>`HL zz_fB-{PpY4I$yrf`?yJoW0K07zA1k~pIU|rseZ9L=g(8LXIjmjW80Qx&U$wEqs8>4 zmYL@=W6vAuDjz+1XPL6^)t6PVS^K6I|9Y3Rb4f4b^y`1T??3;hDJxN)n6P1<Q?>Sv zUZy3ASGWq>+!y^XoN{yBDiys`+|x^TXDz>LA}aWHg~X{@tNnvNZ`Ji*BU4vYxAsp# za-HytR{unPkBJpe?t5K$A9*Qj*}3H>x9k^BnQ-dThfCjV4|?AES9z8%^qIe#S*(fN zr=uKaHnnY>#yL~gM8<8>dJXA>_{i98SEo(xUz>LMR!L6Fg*>*^%G<5amv&E+pD8Ee zY!~|?dt>JV_Puc@R)lx^yw9{TJ=c>tTjA0=1zv@C`_{R_H&<`yF+CV(vn2LF-=_|j zm0P6V?(Ujqa<FNC3IE;DZMPOVd3}vt#!@WUQTJJT!_`(ZAy>~SB}!Zd+jsE`$u91j zmK-qkwEKto6Bbzf*%sGzl$o33{5dTi7nQC@BL8bvsJ@Le%H^m_>`nOV`CGJ#vGwY5 z(fw-<_OF>{TY2-vvk$tfKSzCW^sO{^t(<;%XIaU5{rMVu#Df0WelIiFzvRyBCLu-3 zYwi2K7)wp`G~65aq<j6xBi}1T?uKpqu&=E2hM(I0uZ|04*Kf#|y77nY(GHXT;%66G zr?6j+Op*B~ocNsm>k~_{?zOFP%eVhmKEKv3eaS=RyKkDEMB7#=b8Ww8`^++RR&?+? zT}PSc_tI2TbC_SrWE5`{OK)|svTmDHY2G4kapC)oHmhzQ=jq#inT7A$k;Bv1xQkJm zqx;`>?J0>7Gs1J`UEa88hH_1<s)j%Yr_hw+x8D~Z`6s-$=vrv}8N*Gy`*YuQW&WPx zA#$dv<*#kvyP^sA_XNzk@@kdTt3Kz2QmVHNt{GfYx*bqHG4;hYzx!rgGv~7T{OB`m zWq4|6uMuD;%fe>2JRvyp@tYv4gEwUjChq@Z;2!Xg=U&##cW=Y)2PpR%rbxWvyIWP# z_RcdWRr;90%UO$;&s}dAyZ_aB#{OMLcFAlwJ+E}_>2<uhKd!yo{ZJ|Kk<P})h4XS; zkG$Yc(R1v!Yp>bu*ME7rh3>j7NfvhMu@m<3n|~LZ^l6ga@$Lwotue~wDv_sWoZGb8 zWn$*ny)OB(#oC8!6}`^I38vUGiYP9a8OZcH#!N4b=QP)e3F}u%$`+Uv=g7yGbR_%v zXBzgO49)Y<KX=8_{@<-0*Mgg|#@EjL(lc0jdx3}lvRVeiYgczP7)CUIc)0$@_VO*v zyC<G^HD0>h@#D>-_k`H<PB>L0m!ABRbF*ku^_O)%-g`@{5BgiK@sRWsKj-vn(qm>n zm$Z9^an9xe=W}A8t()?)Z@G2E(xu;R7RPl~Z*0+aG5=B}DWrEg)A#!GIVB!Xqx9u< zR-AhszVI-^^wZ%56ScS*w{DVWj%~LTjePgqyZdy)DKq(?nb)6NG^hwM$nx#WakRK2 z`@yy3zSV-s)n+TU{jHBavS@Kom&>KgmUjLfd9sHeK6Yx^TV?fp_MCFZ%sKgjo0mO& za?8r!^z8DIsh{$?4qq3#KI77-b!Ag~wtux0a(GxWp+sQ$V(!q{oFPWu&wCSsu67k} z%=<EZ#fQ0^nTN`lqVzr*DBbI8{$3k>eM{W7Rdqpa%*(soW?X(4#IeOnZrPF5Uiq14 z&x(CnC%)(Ez4psRx0$AHSud}B%RO^f_OxD}^$s`v8dhlP%TIE8HRagtW#yIY4DUrJ zta|w)D5dqq>2FM$5BMDT=1j=laoFL0tdpQOCx_hcf?0cnnpaE`?*4XKdvUnI;+@{J z?pr<j_44)W-#eD|ccj>wb^l#>se7twjD<wPI;9s|rm#+*aO%0(yzE(Xdj1Ih3B9Zr zF`-L*vcLG}7vChMUg>2zadPQzY}0o&tr3stIToR|$?sA2zJ^u7@jPtHWdl6_8?TPk z7QE(>cjJ?7nE#8f&)D2G7S%rOPvVsRn(*(9{yW$8wPBe-Zzex~l<=US`o6cb?PqBR z9v#J_Z&vY~tdg+kIi_PNemHqX;c}%#caJx(^=_429mLa?Z@*mUl=-E#QzZCr+>s9H z-&~flinWqase8h<W_feP#hLm0H}|W0d2M<BB|cN8R$%TT;lHs;p)1#B^RHsvDswL8 zV}(k?+-<#2(k{K)>NV}k3s%J~;u94DH6tSwEML6HRd{e{Y30@qd#P-p1#7fcbBSm~ zl^X}PXqw3%m3aL+?gB%3My;G$eQrL>H>KCJtmCXc-&E2mc8{6(fpOx|ozr(d`td{b zMh5RA?zzfImv1>;<51Un@b{kY*+WMa9<E(kUd*9m%jCIgog@px$5-7Pq0I;EKe}xe z=+1OHAlz^{K1lRYxUl;D!=}>x)j|OhY!9c|AKEV+(bnd?BqHqF_O5RhRb`C4J&z41 zO))ccGZt2zrm>GTFjTR%aBI#3x2$8?%{qq3eHHaua^EH>F;~3TyO}P0u9<I2&GN;M zU1wO_HZW#=aM-Z;L-6u^KF*lqN%N8)%M1PB)S42lRQ%Tey~(@c4Vx32BTY&w{GagH zxchl;n3mViTKDq(^UY}-3A00uPKyP6Oj`OTq+v<f<XVH!UB(voCjM6B(TTaLu5`Yy zWsUA{g`b92Jc$Akn!yX)SFbHF+;haOOfALUPqqF}tJWov7miwAr}L{l36Pe0nX%$f z=!ENLVTYduT*&Y+@#+jJ;jQhA(h=J?<srklQ;|C-+8h_`dp5<<(EGuLe)a5c2b_<v zpW8bnR_&92TH_SsALkY<EWBe}$HIBE%HY(UKRkTg{x$&|BDNpGRJEnl=c%5w^=Olh z+Q)Y*R$h3)_Je9Ut<HbU5~c45xVS82;@BU|opWoM<UG5j*T3DE7q<3HT9zJz>HN6U z4uYv^K2at`n_EL~-Lb!3naX@jIy@@vH8<PJOy2sb?!VObvS0l4`Uj7Ln7|n&*66ux zQhT=Eub*XP!zEPMV}0`W4cD_XXC(933G;Gf*ap6}$WY!O(d+%JEB8p$!JRhFo?G`h zvNfGMIQ`VUW9|KElcSD4xy$&4m7hal(&H2A_BAonzP+sAD-`eF|K7jVL~OCqv5g`> zHTBPY+gQEx{_RH=zU*O>k1Nb7<c_f}i843;@>J@!7yEyX^pN9U4ofUl+slx2j!)vt zRPpUe>kXK-8?_i-|IYm4TQoK5bJ^aQb>|oFzq4iC-gy;&C8uoB)?B8jA$!ACp)J~X ztwq#?>YPBfuvqh#p}_~_7XL6<oBlGhP-)vHwZ3WLnQlx)3pBJ}s&z4$E%<TqY>b{v zpG#)H%5SC_vt%RYvgJl<Ut;r|WpHqv(gPmL#$yvK)-I6A+H>b~Qc~lT2JhoSQ>L7J zU!2!3q4n}IWBjE@H`)Df8T6W%&MxUc#1b&!ect`)>rdR7_^z|M?Dw?{Q-!q0TUXmx z|9fk-=+5=`JKY%$nXUhkG1Yl*-KEp_SE|b-Ok_%^EKoQ5WNX(b)%PTL_EKwha|cyV zuGXu!CVSYGm44#P=R7d`yP(i%8@}retG{j9em3v-hu8N$gd4;MzS?>@#{J!g6CO#0 z+z+ItaqqMf>tMIc%Q-Ha^RBEdnd|qg+m_}<c?lM;3+@$5zvbI)WnPrG<gPBix@Fcy z&YB*J$u}CmO<h`;CR|^;|M>gTMXB?Z&HlGK2{!-hp72e|*QzEZ=*+p(FLJUc<h_;_ zc+`E~HE220@1wJBnXA-9>{+#}WxrZ{!J68q8FxQcmd?&!Kd)@vQzPbz`cpTe&$#}- z6+TUK^S0zg_uk)sm|Q(!(bBDT&laCEvzYahd4VeH)^M}CY5CP3R(_q%xXe71_vg0# ziy1ac=+|f6(YqhulK4;Y{q5_QR~|O{(h_uJ8uPl<fy_ePMiJ?+Z`VFMB@}mV>9%kl zUxBM;^>-%bD-`5T5?vg7!E<}et3uxX!c$+*)UsckHq-e!&+Ls7qH|{dih1?a=#Kmp z&5Myvs}BjuzPtJ^IKnYcJ?M^hdqR_f={fiElUELJv@K9-k!;_zygf51i$k_`NtEN3 z{uQA<=gM4k<?izQ{*%bh%XZjFvx9Ll>&1hoCw`pM_2;XW@Q$(<R?k;#wyNvcwQtw+ z8JCj|=|uMn&XNhTdS3a~V%6-k_b=4lIk@M%&AjuvXRQ@YjaHSkXT3R^WPVratKW*o znva*m+hl$2t@@nNFQc~Pp~>&^bgRoxYWZEizvVh*@nX(onHnBtgOIF8(tH0bny05U z<MaY&<&Yn56COQQl(hU^IQ_$U*UJK2b(RO~Or#U){!~paIJE5Ka#r)J|E_0bxO|o= z5v<UjvE2N^x9NXncf1Jm(yg=&j>}KeuPI46H+}k^_CB+n3qO2vTe5!^ldY4Ex;oG0 zANSsVl`*=oRr%v9-Wl0kA{LGd^;e`l4t^Q>>&<<Irv-a9nD9m0@!a=4dd_0`+1p0- z9u;qu<v6FV-!}Ddp`x6{p3BM~?h3n3dD64t=gH`+GJhsa5%+R=#r?fOTETw1(+9ox zzq`-9Ue$W(-{Cc3_cUCUylvjyE;g<a|B-O`j-12d4|%VwgPV_TJ@(H}MxKYO{q{F* zugA_4B@bMgH+z|-`POGEuJ?t`@6AkmrTE0?gyj?sota%0m4b>%JJrn}CF+HUF(+G? zos5&Nsa1NC{X6zj$?1<x7Ye2-Fa6gTfBo8ri<X&|u1_qF8N6d>7MDHab9c?^XD8k$ z{3tt?peyoPK`oT~e8n97J>tp{pH_Xf__8HPnD_LqtL_u+gba?oNQ&lcQ=hBH_2SLq zX|V!9O+gvkeH4piG~JHtrRuJj>)0|$wJ5HTgH?6Ls&n~UY;(FfJZ#R`Zc|EH`ES~a zsV{d(&VQ`q5mLf*=F5Uoj(;{RQ#2jeGA~?EPv#OdFc7M#nceNUA*ufRjD5SFJDg*j z&?!~Hv#<J&;-1Z^Kciy~FKK(>ta`ah&pP$(r<NNZZBNxlY~Q<c=bcWwYgvBf?`IxU z)V-1CG`nYx_uFsw&dZ84*J_LR#5z6jDKKqVak@bxCXACYzvlMb*UE>PavvBTj}3cr zAY0;V<NOcWQw}}a_gs0I>6$IAo4alWh?i`9YGDx3K1JgF0#nWIX~BBNbuzOYJU1Qs zKK+fNz|-uU-r3Oy8lw5_yL!~Rww?>ERMV?9nff8`5UcCr0K=V<e9X}^BhQG--u+Xe z9B<_z^FZ-t)4SPyGR2uc>orc6zUW#0+IrijQ;VCmALQL#>aubH|FfXI94(3cH@1nN zV?5bdte~#?@c20$2@mt53~_OO%u65bymx|AgwIg;o7Ec0(_CQ*8Np#LiGs|>H%(ib zuG^h>YmshK!mUNRy9~dEJX^$4_uWk0IZUNf>*#N%+F!f3+&m+>OZmE(nB7{o$yYU} ztc=ysxGJ{4Nxj3sQ273&Ra?rpmwT?*6L%)KMaog>$(@&M^G-jC^qX*Ov&qqd5=Rl1 zISUj*o=nhraO`k^!;(8|)wGtMo1*scC)4#QTs4dal4*%ME~rI*>2+6PoNx9zxmvOK z_R_$`<zGb)C#b%v<(sim!O~+zx^7cq6YHHv(hd)r_p+|v@#6Ou?#EY^zS_HOt}K}% z7*Hp-Ao|<3%pW$ru?qS-C)k>Hnc8uDsjMszyd8hSMg0HKw}o@PI$f_zOTP_^E_mL$ z_VM1@OC^ntvWkn}9AHTPl&F@rI%xG;j!O1Ntu_qTlOwXk4mAZXQgIdezwYV2G--jG znPTS?m3WUft<%U1F|-h!RJHdw<JsaO?SK2jx0(H_Sk0i;&wVFu{X0n!O9pjW54)Jm zES|;Ii}P7*XTH+AZ!pJjlkEO4wa+`bFZ^fwAJ^9(R2<%W|J@ViY3r3Q{`Y&(e<<SM zO~%D`2i)@(hBGf(w@Z2VwJmqqeDB=bs4;z2!_A<z6IMjVDcyOL(=NKLK_*JZb?(zw zTzmE{-^noj;nUNF=hpuS`!4!M&-;J*zYoISuExnPH%dJooOtqUYa++-^!M4Cnx@<3 z47KMj)vn~2e7cIyZb?eXSDg#SIsX!u-fWKVT{AuY_Y$$nX)k7X-O_YFSGI0K`u#~q zvfH<vSnQkQ`{(QiZ`sUsuPxM@4Ak=vYwl%IY<RsSA>O*7U{)UMt;w2;{=ZC6tDQId z!>aqwPV*O@`w?2?5m>=$eZe$*+cz`j4SUqSzy9EOfOTF&extnoyaJ&)o!^8zb87D} zFgO+Q+*G@8Z}LlXox&rDoG;4{#BZGwwyIYzGV|)CRV|CFcG*04=1h?ib2|2<eQA7w zfo5N=m2C5A)p+Au{{LSc-<P<<A&QN;=7lnERFSijo_bERZmp_B&Z2<#g^}57W|_u6 zkehH%=WR^(yz`awf{bs?*YFV9*SKYR;lC#bnNBO~+4Rmd{$X(8Kll2G`x{Oao3C2C zs#J`PYksHA>pipm{GMKaaii6gf2&^4^`jd%#96Z+J9B{d_I!(XEbl+g4}N&h#b)!G zsEF_Ed<k=uCANIxmvU%XRaX2bvS&hq@usvNVn$zmYb@;kJ>=eG6mf%R-HU17rNy%z zRUC}&J}YVWwZd`6<*(J^C%A8CM&154*-cx!_-nVC)aSWxZiVUuupA4J*5#`D_CsQa z!kraAT|M{Bd-`?KCH0kO^NQK+{Ci)SUtQuR-?w#b@9t9@ID&p&Iw0i|5tPz)fZ^lw zyv|!4OAGiHa2(oU`1j1byT$9Bmbtv#^kDaivwtpKUJ%3Wz2ws!L&xOWm$E!<0>XL` zdWy^C^UD3^)$fj+`bYG7eaNg$kJPlcCz$nKKD)Jem)E%?H(v>`-<N$OA^fIbMn}&T zp2Q<cclfMrB#e2^n8$zB+kNEBP66fVXYNh@rZD%o%*2kv4r_YMs~4_&5pZyRq;z1U za!cl^y-rT7AFnK7{&M7}ouszwkBxn7LEXJ9>D6m@SJlo5k(d<JqUR;2V{rF))Pe)S z`}m&BaS7Vkniq92_hiEk72ec01quQ-XU%HYY)ZHs^JCTDRjF%bisqEFzW#r93*&-p z#;51i{y$y6(<J(Hfs|L_EA{7R-Be9;OoI()Z4655I=i*3SKn$wqK5h%e#VV~)+@As z1XiT9eUPeO>tMP6)-u-Xa}Bp@&YtyLOa0!NO$l54c9}A0uYDplZH->(_FdV({#@a3 zdAi@y?0EUQLJgM%r<U!@`SI)7SM3Kk?%ZAG#<E3<KhL8if@^A5%>w}g;c45X_eJS+ z23e<{zprPfy|XeiL}`7}(a=qM;$_S3pWOfJdsgOgUe=in@2|bMQXq57itX~+(<>V_ z`22bH3P&wqFMnCGsJub(Q+M!$t?!=v{%snzatR;T-6<2UANiEIpz7|zz~^~W3=0@# zIAssyiC);bY<HFWr<AE*wtW>|TyIsS`{ID=qA-W~!snZsS5D=6z$8{UO@Eb;ESKP& z7)~W);fV(-`%V?E%Zbv=zqGQj!*AZ295LZfC5A!`a~Hexq@8pZUi$Vl_Y}*c#%B5q z!P{%1*8X*P;aWQXQ;E&Ld6{|>uNdF&+{AHn#q`hOst=bapEmJ}Ufr|h#UITik%sSy z+ZL-QOxeQH$)WemE-U!%CwFJ}e=F;oxYk7IZs}@xKR2NN+IfTB4ZIoiKAWDoF{8K8 z``Y$Xj;djo{0;LYCLPOt7C!N8tGx6M^Yt}i$~^kakA*ZZ-#qkdW=T@pkAK$+H1r>O zn@?n{<Q8$_xj0$2Z(|E%r|rq(vP#>y&T$zSutuCyDp9!;%F_64{bkiPvuiJTHE_By z`L)TKzB;a~9NhKmp<ifYA?N3?zEvrUf($H6-Z7cZ*(QFX{M%+RyS%fjF0R?2o-Te) z`ZU+<MITS9rEf9&qb2q(=x600;|Z$H0j4!~nbjii&f78F<9C+*WV@NR=XtXK?$2F& z+~AK?&Kf-?TZ_xhpMrI(YL}EOPteog+oiqg`&z-+3o^6WJHM!QuiNMQhiAq~BfY&1 z33IF7U%2~=?Q=`To3JZIUTZI!%vd<{f6Gn(tQSEt4M(1c%e1|`HQzkyoJnW3nZdhT zH7wuyrGiTZ%iKIn>;FY%I`Wxp<O*Z7ejv5j=EQ-XpnJ-eGka@8l{On%*R65X-yXd@ z@Z-OWuNS6X`@Jr6%3qtP^S`dn<v%FQ^D@QpkmY-ydv*SS=kxz>4v0$cmE9%#q2u_f z^&QOrOZHcn#&Z6;W;E%~%D@?#``-C#h~3K7-6YlQD4il2wfNn%Gf%Bb7OFP<le)P5 zUt!Oj)C-5&yJRkG4e!~<x@VGvX=+zb$irWO>mE-o)n~kvw8Xn(>MgGtwVQ8l?*80# z*i^6TLTSy!`#vWhoXAR=|1R@N9ZTcldsFz=bwAp4SS_b%_0EZ@)|u)vH*?NTu-~1t z{Y}~ZgPW{w&okMv;f-N!OJo+$iW`B!kK~VUFmtQCVqGv-WJ>#+-)rVy^E#-sbX843 zSYe>fh1Cz=<Y^x`I%Vl<=2skgSw$BEHy8PwHSOIfm9p*R;oe_K(@lTn^@(iTJm0OS z@HP9oq}|W6rmDR^UzUA4^6lj<|IV&EwS98)oXEv`{<kN)srqU!I5Y2^*iP@sB?a@A zy-wVxDZg%K%gIkaBlR!Gd2N@xzA?t+`1M8nm0K?Eul}1D`c3A@>QAcdX8ES)ALss@ z_VCle?ySD+D_4K--sSEUU4GZ#<^_|OXqI2gT}^Ioyk>cNRu%um7jK1?X9Y0u#@~qI zY)-$J-lKKHP^|H#a!b$>-t^vk@A#K)>zl__`ph(XqTTa{$@<JK4;-rWHe7a3c$xLK zI%M|}f1jmU@@9M4>P}VizbtOtU-Wau#%CMtOTTVfyzEN0ZuQ$e`D$^yw{e~4d0y~t z=eC$2%{edfza8Fbb1!4nCp*uui4)E)I`wC6Y5B5EXH<)i{hsohtwVv&D8>BwpL2{t zvwJ)Ew-(NJymLkGdXQmRfbggO(4AAG>hyOVe5mtyVVCdJ`ej+4XEK}m9PC`HH7V_9 zj?~N+$3xOZaxI4JEo(RM3TN-k(TOZLSgL22WWGdizr&iRn>HRfB)aJv@88<kjoM7p z&x^da@Us!-TiV_ISzw>W%KgW^<NDTr^Xp?*m}9JTL8#>vYl6LigHy(RRT<|UN0xEl zOU=}rbI9XF!q$5`^t|?ceUi5Qwu@uW*TpQqCYS41-<G(w%B=QNw?j-q)xsm)JYV@_ z$}j!rn#pdG$Mk+%Omgtf-gEWlhqwDYn=`HZW5A-@H|{!kneVIfUHgP3L&Nu_A#<xS zGwZCx*{XB)c>1r}bW-w!)7MRFZyK!$ZaHxwE~eX4Xm+Hx@?+tyYe}0F_LvJZNoiX= zf7tH1T>X}Dm4`_%>#LJae*N!`ww!t_7<kgO;lWqEU8ZY9dnAJU&K`ZEesHhPPj|~) zo{(LS@^?qa7cO7eG1u&^cadL7@ydVy6mom|f19m;oh+5~yXv-M*XrA%VY|aV+cO-U zlAq1`YM-6s*#p-XvQC@Kp~Gb16A|aY%sO5C$^pMw+$`%qL~W>kl__a4J>K5^?TT|R zukd8-DUMWmQqh~=u$y=N+jv&*>kpq^`uc=v{o&6$F1T;il%2A5-rN@xKS*_WI0S@W zD5+GG<J}-`<s5x$((D~l?F(JS47b+aR^PHJ^yT73Mq6i|<;Xo=#<4allqYF*w5;dx zqSadd=6YNCG{PQEes_98+r@&PffncD6u8ec8|W{eW)^qY;Iq$!$f)|%XFaZ5vweK~ z-Rf@H>_0qh#m?>3wntN@d{LWmCsXsv>WN2vE-SETDxaU<bbgvbOb$a;`8kiA2#5a~ zKNt&Tm!96fL~!#Yal;a)xrd!BLLOK&N;mvd`R#T<F7P4WysZ&+kHuDRa#@q1$)p$X z?MJ`e-@{K%eh{+q6jt@TIOn$U^5|Ti<uBZlm)}bk6gh0MvelmJa%F*Pa{a${gC5yC z>ul5hy{YM~y{^EMmX>O``Onw)=bt|9^PZgkRJAK)UyA7Zm<wlBO)k9KeqOdPC$amV z|CgDbhPnSuuKx)8cUpZ>>fs5RPrg5>`ZnopbF#zy7ra}mmK*VD@^VVleb5Uy#jd>E z$J%cvyWY&QS(~_w<Bcyz)g=~hC^IMt@wmkwAY)^AKQj1}>_%g+#r<d4(>e3j@^VW2 zj@|SASycO#`Fo?@+~dEu^=4^JQD|hg(c(~{TG8rL_gwO2d!r<tv{_c2m;bbf^UVo+ z)4+EP0*5#8T)o(+ec~5$)afkEs}&#Sg=H_EeAi7|aNo&_{r`L3`@EI7d3#yn!$Ohs zzL%@|CLVpSsqZcKevzBYPGRBV2gfXP(~jH!c1Sak_o_3H6l4>stUl3cFL5&FPf)Z| z;u5d=Z_m`L&#e}gdu9JK&XU=w<rkOFy`Wf|SjpR`H|rPKyzN+c`H@L)wGUtBnb|rm z2h4u8{yd(~D8nQ!_2h4)X_Wb@d#bm}#Owoj6;h&i-Me!kB;yu`l&`&ll%b4xRJCBV zvi;RHB>~4{y97^6D%rN_u-|?5u3Gul7h1<^#GMo}Ki9sGxotXAm))n7LydbWQ}ogd zhPMZGHvfDsH}S$D?bla&8hBV_H*+80F<^VkecYtme3{Sf!jpwg@;P||QEl(7=eZk{ z#LQdudfL+LS9+BOsw@9CzxGqL<*c>p6EfrCc(sz1*KfV!4%3J4Tdei0!<J7qTlb2; z#Qv4;!fT8D+ZQHgty=Z6>PO)|*`S~g8&h;1G03$TH7h0Ts@pB_v`{%zZ`Zcu=)S~V z!6!=Qsp{M=u%5nenpbJPyEPk2x$x%ufyWC}lQkd9_!c&;l2~=X_{u*u1=o4W5{^@L z`u^V{IrZ#TFQJ6QwAAw!HcFRcMRNFsGLHW__pzMW$l2t~BpW%+wACv<%}Z3BuH5nI zpNGVs)BTgyw>3%0iP`lr&AL5N{NVJjCo~;&f>`!^F>cwMX*}O7`PyZlBa6?~)avRt zZfH0b!}e}fjpo@o$2?C?UTa|ahGpXO1B<WZZI)khl*L5%*CXF_hQhnjnq3T@X1UjV z_;sU}2-F{#x+i>fLF?3YY^yeW@)lg@WB2FG;v;%}hCIm&UVcof=#RK2%B>&}*1oDw z?dz9c)hSM2Y~T9sa!KZu`uU)6k=)Jdqi3bgE3RQ^_i}Rka9MHrzOwqDhni1&q`2iY z;v|_iGtcaF>Xndo;#`ySWX=uk*Ug)jHd;pOD!vk~y&%D7nR0B?ijEf+mIBv5zWgn} zug<wD{Oi<*{;~7-b|%X2{qJqQ(cJ#<fqMlv`mFW#34hsp$a3|5t7VLPib~GNoLH-| zETjJSiyq4t+n45~b+Gq;En8=#aY)U1(vsg5hov=ykCcC%eA&WN>8$kEX?qW|{R;bW z_;7H&slDrN%gHfiZ2c+G8a*o7I*wbsxZ-B-P4ru+^=8?L^#)5qbzAf&t)0+P+s9VN znI)r}E<5#5E_b8hWrr>9buVKw&h7c|U(R5)#R-A_c}Y1BzIOPeO*y^zfX1cX!j(t9 zu{&+<xE22}c^>=GhYRe3<0l85Ipg{K#ZQ%Mv0i87|9|==%)UxxWv?oa)mrY4|L62F zs@$kuv1d=yk8S!Ba$ZN>GJMBTEv0!bKRrVAN5T9JA?bS;2Cv#<zac)Oh}n|obosQ* z#$^YJjh=c>4%#dG@VWg}p5wynA`4FQKJb0|$uK?eKW~ZM+w$YW2W~v^^W$mT7#*dw zF!8~hs>X#kpNZ(P%d`D(pF26K=~CQ;zxS_%9^T~ot}L!vllvHFnfUyCtJ4RUymGQ{ zTzzo%C-3C}pD(*EI_4D|`%3DA8b_VY@_!qmE_oH^94;&QVKl3N<&~+oqkzp-*5i|o z+r&L>d2M%{Q&IJH+S~J2PjbsyExl0aA$9-OHMcF74n=fWRD^9aTKe2=A%p+4Z5BS= z3sc`bxbS3U4fE3o<LRfT$pqWYH#OP6)aLi5i<TQg9{%n#-!!Yr{ZoS4#NOG<*3FhU zxyzw2ey*Uymb-ckY2E2!oDxY)xA~uQrG+d0QkAh<yIoC1@#*?MM@&B(y!m_NrrYm5 zW*7FYuT!0VcFB%yVtv1B<2IC^(JZm9`zx_Hw7ltd;N*98$KQwjT5Qmf8CDm(^55_L zO$EG7^O7?Pjs@JjRxm~7Vuz#P@!5|(6K|fln10D(b(H0@t}_ba#Yb4v>i7C@|NSSu zXHCVq{f`e>t#z4`d)jdC^IP4j$G?cp{4TaLw^8NTOLo(O>F0lay~C^!=0E-6)JEB} zlRhjo>9h1+)%wKdP}q;vGoM}f;I;mqE$2(7Ab*eDQw?KR<ZZr}`_04hm;I0TIZ3Pk zUz;DfW%*XQeb%u$SyP|?e7AEQi=lUb=boC>e<BMw>w4Pm+A6Hd-4zgDcjx@4zk0Eo z9YXH;Ye-zK(C7ZJbBWpw2R+Z8CEr`0C?!9?c-Lh1!OAmsYp0k?bbkACE?Q`d<*SQ} z9%de?chi~6xzEUbkIUOVx9+@H-*MvV_OJ`{+^$r;TEHaO?vu+h<M!(Nsb?*I{EWE$ zcx7zz0;g3QuZF44ZS!&FlUu=G{$PHP0dH@~oQRttH#F}}j?tSV?S4BbRJheLZ_X00 zi4V9e4%TNq^__O3gI~*e3cJ|^mqzmkp8r<HivFMYw^hyRB1dlOoPX&zg$q+AeV%pq zj>@@(S&<7i%6j~6Z8{&8<9Wz*xy$l~h<D1{OO($Suc&X)$i1I**DU3?yq`5|u^?xM zIG0%Hk7-xu%vkZ^z@!)dmoUrjI_|^V{9)_nJsZS+nXPpT_dD?5>a3i?L$fND9M9<b zvEYNs{>KJFU%p$`@@Yzn+O~&PeE+dnrNM5$XP{!H$nG!KpE&gM@BcNqM~*$|W9x;J zXTNQhm|FPO=Hn&)NotPEpWR%u;BQFpl^5TBZ&r?|)L|%z@bW5t%QX2x_k~SW#b>sJ z%wyn6aVfO=<iy?gv+0SLzzjQ{=VH=AEsisV4j&g$6lv*U6<I#LJ)}Y;{l+wjg%>~6 za5hH&o~(X}Z=qw9H^;wc{C}U$ULC2WA)a4ezG~6$lBFMHo<3(}P@8zBTK8#K#06fC z746U5uD2fP=TV%s_=RUqzNP=SGqQ%}H_F-GlypVqn(Vba#PzuBMp?poW}(-c`cwqj zg8C$KR()<dBe1|~-t)<Kssa;zo%dVSeQN(Xv-JF4Dc-+x&9~RzTO!}}H}!ez)NKbR zvIJFcUHRmk%pdjzyDvId{}5boaZY0EMy`k3q&{{jRiAC@EqT)Ys>37R*tq>d5&Q4p ztd={L+pB;29*nKM{W8uZxQ#u#UNU6!${F#`Tc#y_Jmbb8zjBJO^Dgy?`+}BjZ}~Lu zPLpqTl?Z1~y2rt}(`%C_iwOCozYI-GRM6|@TDG}FVA}Q*liqB-8F|<<bxQqH&yCBk zw3%^lc4)mE|9+D3!4=AyA3`^VuKUy|{bc3h740h}Hg-93-45K;bJXfh^@`a_o6>?+ z#m>pjf8KU=|G!yP;-wpXbY{K&aZ~+p;pDW<?V%+zQY_T_4zz{jSSVd}=sj{W(jlOo z=}>uy;|mKF-)6Cu7lJxCd%BJ?-EVXkiY{c?*)*}$J4Y$>fjmoV_J_&2s+`ANoWFLP zpZ}3ixtZy6<<dDj4&3MY(HE_@X~wJ@wNqx#jT2v;qJO&J=%Yv0t*rmkpN787dG*=4 zO88&ZgGKYBqaq_DOJYv%(cN(Qm}t0Fw3y6R-9zg(Znz$$cdq-r><!lWYFE@*Gk!;| zj`@B`OVO{Pj<+<&`q7fNTZ(T<-rRDOY4*i1nOgy?YR;bWP&9t*SoCJIOH=*Ykon=s zy6*z_#uv}nVbSGxBBE&1B}TS?Nvrm+Ym1Wje(S+}&gzWC7oV)|zj5lK@Rf@)+_RR= z%35@dPjbHD{5OTV_p`3fmE_&5cV^dC*<v60(v5nx+cLV(7^S}6lxOLm**l??VG$RH z=)CNM7I!bb@!hEAB*da8*#9%YqC&OW*`tARy?1K=1r4UlADZOb^&%`BVsu&)4qjNi zAd1;z4X0qLa$|n!`tq3Nu@!Qyf3MD3b>eIZQ_<o12d6j7YF=5@>+v~#%`)kg{i(O# z#3rOCdUnhH*tq-3{$0iIdl!b6m@N^})NZJ<dSqcEHBWb;*ovmz9#yAZeosB)+8|&g zex#|QM=Do0@V%1$?Kt~{et{F)#6+%twBRq7c;?A*Bqa3K4h4scs^@O9OwHO7^I2)$ zu`SzP`h9%%PwOeewC(lV9cp)TO2^*ZckCF?HUDK#YQqc5_jc%CIFY;}aG!AfQN0bb zD@}K7Ffm|w@%p1$#P#?M36I`cE$e*u>-pWY{448&gw)nq^F7{NH*tEmh~U%%Os|&7 z%q%*$&Hnc6KejKXSm>?TzLoRHiuEO$xsNaBUrad>Iq#}P%w(4Ql!eRAe%xr<qUwIm zvhWfcPkQm;o1QfW(^YnGrP-AmGDP!arWi}|*xY;QJ?-x=-&4l@?aAIY1syXUoO~g< zAnOu$keSkftABWHA2Gb1Cc?!RIgj&SP=T&aiN%zQJR;truh+8M7BXxPJNN3t;#Y2F zd-6_r^@Z9_X5*2miLolZ;FbCPn2<=Kg5k^!i^8_t(zB5HxGH3U+{4|iW*gX|IRZ8m zh@DyWE;9MA=7(cUg1SAbMS?Epn3o1!U9r~xVQXqcJkvEX%@(=KH~#$4Pjy|n>w+>D z<LBuyWtopQ<k!BwH}7TEb4|_u89|$8EZ*9_^GJbE>*S8w=$l=&-`48pp4M9Ruq5HE z=F_G}s)`$=vM&S$o>VQVRsB6zSS6)jrRMbhg0}`n*X{RdEuX0W`r6;4SE42}UVZcY zxUTpFmgIhcIrW!c3wWJ5?s<FLC5G<`G1nDa=Ui4|ip~pNQ*zNkpxK4-M5@VKv!1yR z-TkT(u4kW$6M4vRdwu2dD~o1}+z4yqcT;ptc*V(4w%>A<vRD<1$o#+m7oXCTZu_rv zzv2G%v$0S9$S#o2J^ioutMk*aqXjuLdzW1@)b!8We0!rsX@Z#aPPK4`-ATJvF9@}r zl>Y66?!0)(yz7^b9=x@(^TDeS*GF0w=Oq?Q*}P;*<<38wd=t8FBx$PtTx#<t<)v2L zpCx*x{@?Db^;{)0>D5I8-{U?-GPBDj?6K5L=x#E#R#DF9VVExSdg4Tex2<oYZp?V; zv5eu2LV@eb$qnn?{7mPlHx)j7aMqOzTdu`Tn)$l8e7@hqrL~rwzh|wMm7dpobnhO9 zG~b!~rfu1H^7{8vt7@N=g`HI^?OrW<(tL*CX(<MWrar%2jNVKfGt`^1c@NwbKV<sz zsM4d)TdM9Z`&X~fUG%es=UC#FtFzTkeU`1N4%1hxs6S&VUwnIA<kH~Dvz?N^KDFVi z?VYDD`R<kM=F%DAJZD;VFOJw%x$wz{U32TtT39SJxqp$PGsRdw-8j2x_trI&f0y~q z)>K&-?x*!AD|dZ_!{=$T%7LXU-WDa9%Q~eQBX~vrtzbMbw^K6Qcyd!y;F)MO_lYN} z6Yd|{uytSYhRHl4SInQx5DBnxzk24@&XP%Xr;-g;9~b)^@wmjY>HqKcvm1OhbBhXP zrr$juG`aX|<wAznZ%dAstu+)3I;^_;bloGKPZ=Et{npKYvd7`v)%`2pZRoz@G>!Se z);~XjjxZ_}UzhZa$hJ9gL;liozj<Oon}UtEc6Il4#k)M3y>&a&tetGVN_YM($*Z&q z<I2*sobqgWT*>j$?Na$u9RvTHUk!b}I{o$8k|jc1yXH*Q*|sS|-17Lz-CeO;y4T!N z-F;<~YgCe`^!(7>S>c9jlSFG?N3e_Ee-&0<UH2?M-h2Hama_%BZypL->s#<U^w6G- z*M3Y_kJl0N?p_-Dfjv@l-@QBOH$$|f#r0lF*43=P645vJb?k-b2G_Nwt_U%VP|!(a z()jlOoL1JAO~=(z>n}_RSeB%?giCU{!rr#W4|-0P{L3k5oFr+m_m}p1(@iRqGQS7< zoqZRcKXG3{v!IFh?%eNZ6?DQMzg}=Lv`)=lxW#Zqg=9wRoA`5{lW)9=^67tGIlZ7& zS^aPGYq|e-r)$S;4YIzh{p-{G65B}Al9`J6O)FO(=Q}@fn*S{EzlD5Tqe820`-iy+ zzxk4#t}9|W<%E8#e6;1)HH-F@l`gNDw64gwcAbP{pOR(ulC<Xu$G$8RwJ7<mxc0`M z{mbi%{JdG3s{i^<kiD<C?N`Yup$&31R}#OiYtXhdIbAs2&Dgg0YLc_&vOp_Ib*rLN z;wO_<oxLpWv3TM&{e>+TB-h<7bBVlFEZA@=_Vs-4iBlA~G+ZZZ@it88O5GB&S@e!| zE^F`<$tUK5*Gdj_q`&rkboN&E_GRWa_jRwZ`FGVu2lMhAc`<2IrPuoz2MpEc^JGl- z6?2boj<YR$^IT1O{eI88`%V|0i0Km+6V!Vq>cZtx`61AKi-d0sla0mND>1hc55@X4 zM_e^6{+F|2QD3pgtz)0|<~*I>nqkeS{;D+SPWq8uf1a$LoqXZ(*GG12Y+6E$CtpwK zKj5&#C-)A^?zdaxWvnMITOskP^}zgH7A;X0K5J#qP2VKa_`-=VR%oT2AfL}HmSyK7 zwWAkx|E|6NWah$JpOZJ|CZx|^_O8V9bm_f$>l!Mn8a4j4Yh<$tf8Mujm65%6pLI5$ zn>Eve6=k=62rfKYmlxsF&aZR%{qH5^E`P%Fs%PC;9a3*rb8(*U>2Q;urxYZo^==G4 zT0Awg=ypOqPvVg}*>I7&_b#xketYuKqnHBo>+ekGMMYlzyQJi{Y4ZlBhxLkQE|_eQ z5}4$BMt~)@Nuj=U;i9I^9QFN6x&uQ_-6(X>U`RU@bLo;wUy9n>8VPZ?O>dUCEDAAB zKcZy!z46Ge9sQ<;P7dl?+y`PLHtHM~o)jar?z!1~SL<~elT<bwi3^*wcq;F@Uf;VD z`J75arqn<65;?0qBP{#zCJu&Hi7!S6rR%3Cl=(C5>wGD(&>*;gd$rQ$YZLkJ2`f$S zli1w-r&T^$+4}K}*zGgYRG;!L)BknZEoWlHm%dYKraBEAGcqUbuXC#6KGVYNBrU_( zFM8mw&$8yZDqhLnW{-`(@F-n9Ae~sd)Lq9b_vEV%{;kmrTiX=>NOT5-Ts+N{z36zS z_LV*CB@@B~g(mnjUk!0@7P!Or<^kK9<~6!+6-vS%Z_rr%VDl~8gS~v$liXiU_BUwW zw4u!V@tx&e>EiQ>UiB@yqRV$tXc6B-+2?<+FrPE;j{a`4<=1x3@a31&PV*o5_xaA+ zFWYhgUupezT|PT7yzpgKdCTJNtLw~^uf_bFEZbpseA??3GmED4@UEWl(&f(1Q*|Go z+3^@S9`HZUsiR&Qx;M7Pa@!xJ*~#Aox^=^EiU;-S_D?;YwfX6;+-Y}ogP%V%bUFA$ z>vz+M(Cgw_>nzlL<~+Xm^=Z?wqbDSb?%vULKDXevO|+cy^|vni7V?{4Cn?_#{MLD0 zUBR<C{DXu2nnLewKfZVOu>V=V?*7rT&ToZ`Q`&p#=Sw_UHO>0qg~Kenrm)G)wGi-| z;2|%6<l7t0nT1Z1j~%(V=!<8PmxX`g(HR2I{_7aLOZwTn*R$xhw`J3+f3GF#9OoBb z<l0jEiSJg`mV)@N1{;5D_E_ZK7WZoJx)rr~S+Ay^xX-h^L&G$CMrm7g&CNP{qk>9T zZpAadh2%K49A2SkBam@ngQw=7|8Bb-y9za!&j?KGJ{077_|tL&6BU`QvywySpDM{0 z)@bTHSX9Z*_Sy24U9Got{<YhS|5v?>=YJ)&bM;cOqS&7^Z@m@%>St<YzLI%U&`dvp z?EMzznh^pYSIt%Ty<W<uq2qVs*a4MmM=X^Xt^XOvDxAEa<G$&QsopM4uf*C;yPpQ` zBG0B9K8^YOD=Yrdqj?N7{S>*A{#}x3SUi8jhdq5tA@Vvp7BQA>yk8<8Oq^5AUL0+) zV1uUF&c89<GMv@2*Ur3}d903qktwU7*TT;xADHL(tl0RLyUwt%$#MUE;c0i@^SXR; zQ2w8p-WZa1a~88<*Qqt(bMo)`MT-XfUB|cZXO_?3cl&a6)r{J_ud3}@y1U|{;lY}_ z^%G=r_hldb&2Zy?Q^o4j;@h@N+OYM|>D+DilV^TiHscs8yIYXFoLu&AC8Lh1c?oUz z@5N{I|9<;%!s0&5KYtF?-+s^dy;?Hs=)B3hmM#-M{NXqUgN2A*rLv6bZ_OJjS~eWp zq6`bN<<7mRnpB*z`fbd5W36jDT-TmqOHbJ7vo-7Z77mjN<J~hC?U8c*Dpzv-gJ5v~ z_b>cfsV!5Sid0{OiWdJWORbLD9p3Ze_TKe7>~pWZF5E0@n>xjL%?-WVN7t;K6O?#q zTB_yC2!HkRYk6PV@}6^-JuN;y+cci_?z2XL{4180>#d&ddaGV_&9G0kYT=Kio|8Z5 zi5J|wu=elbGTl}0ZQr~#li5&H@lf{9oX>j$>ry#3_B}rp{YBlIwN^_nXmQD-##|xq zSCcOKGzL^YDZ9V$Z@^Xl3vPmCrq3-p+<4~4{57@^?b~LZxj>?rar;{z(G@Eeta`Oy z@>-cdPSN2G?zrpbGionqrcX89lsRR^MVYyOCiCCg!c=|Nu5&(H>!X$HGZ>pJI+Kmk z_jO1eZj=zeoL{_G;`L-fm9?40KYKRuEIoPO=cAuusP`J{OA{xvve!72e_~&~&{-~L z-<151|M~NrqotRJrncKQ?+`t><?yncEF+F&PYG|eR!;?!NoPECo->}~m5w+3>#}!! z%I)3L*X7TdB_RD$rTAUi#h061>^A*-81*sBFFZ_e!)}kzrBj-_bpn#S4+d2|F)Y1x zAb8rL50<NU8cF)U5__BWyM5+2{o}T;BD|6umR|2)qpPp0v*eet^6s-`zdP$5+_B$( zQC`qz(d@O`H&xAVSk3#O$;j3>ZcVLj=%<i*Djs&%truR`yrMX1Mfjwn8zZy1I@T=_ zzuU2>`Q_4dJz3d%^=GHAY%?*Makbjdd)itzt10d~9!ohad@{?>;9Sg|g^4FcyXybt zL_W{^Cv@vhqDBJuzny){IT^1xTxiZv*QxXTYF>WP;%sPxV@!wA;+ptQqvPJ2HO1zz zmKZ-x6+7gvCBnn>QsU&Th`HxC6|qHf?GnD+<n{fVQIJE|r7d+AOw?pORG$@}_43|- zQDv*zPB&%Ol6|qQQ4BiT6HaEGO61J`U)3UT$00^*>k7Zs`VEmjYs)Sq-_EsWoxM@A zC}nMS>?6aZbT6U4#~$6=F7{V+_%NHNhnqT|`{0#RxHU`CXX%x6n`L+NH;eMdv-<p* z_y51-hAnyd)%W+AZLynP-fJvpP`9$#TQ{d!ENrgQE9MoVd@U>6)_ZB>U0HE4VQY`j z!JMjg{`D*q-fs*(mYvnJ;m*CI2XtomJ-=J9DwpfV#l!9DiA&Vf>M#C@JUBaj)m=M* zX*;f!TZ^Ah%VE1KcZ0cW#x?!F>k2}5SEugOKKpIL`$rQ6)=c`o?MjfPVPDn@*&_!E zRcG8yIwqVVb~@>f%98`RIV(Co1WrGrIP<Gc>R$WI?4PQB%-&8**UtO2``VBD%hK-b z40$-?nZo-E^E;IIQ}@PAQ+%4pAR%$OpIK&)C6`0zy|~;Ioun6W0S-=D*)w#H=FIxM zTC6$efbdHFjDC}c=l7mF6}5+9vhc#M({e7azu<bX%K9UZyWaF~cP93WvHFW|?X(Qu z5VbdsFV<cyRB^rbm3iWp684&Ec`-rP8?UpkPY~!`6d&@p;C5u{v?yL?S^XUD#62^1 zGv0Mtt<kkEGVW{!kIkd~TH#I$T~;!Q`ul6jh|m4`;_#mHilHsvxfrsoe!pDjwNBz^ z=M0{o0-?X}%hvXUzQ1EH+pbuDm)qCuj(^;AwpWRD+mB6OWxxCW%9js~8&|dp9G5&8 zU-*!za)z10vDc5Uorya4tIg-eB5%fJ5!1d|WiI@<bgR9?hOcg&y31{pm;K${K66jO zRHt~EY45~~?#yOtKE$(`>&PW0hhopRv%G718FT_fIU@h-vXobM7|fs3a^5XI+B@^_ zf~!7!l1okm`l%>zH<s=2GF)f6DTSlyW!~u`|5ZUh`*@8PzRFme#CSlfy<bv6bCFPm z>W=>tvlu=c^ZCx8&XmtNNAh3MjYG~mxPOMZpI+YY`hAP*p7#sVwY)Zczx79D>4YC8 z!qXS_G|#-cyZ_+S(<{P~WmZ{zc;Tk4W_bSU#_4<YEv{{G{_wY3p!8EsQfs@vtI{^c zm@b#5#2lH2D&I0AZL_8%h8;h-@7B7QPe(3T#;i3ATX_A6+|mr^488z`?T>aSEPkJv zr)Ig&upwfhC&P)Ny#0q3?>f%4M6~B#K>lqXMjeZ|;xN|sQzeJq9L$;jF2B*`$gdp^ zZ_dg~=XacE3D)rI+{j@4%`<(~Ta`GgFO4Y<3JX3O=l8NXZCrD+Csg9hqK3KM{ag}P z5+@fNKYV$@Y9Gmiw#f<E+-H+tf6iF*f$RL6Z{EDiH&!#Ls$V?0hId_(PE1Ge#a)sM zBQ9&No9<p$xKtuj^!q!TE0fhf9gO)Je7`o%YNp+eUms(R<V`-zV=(v9#~E)odwxw8 zkYSwJ=wQfQf9kp5>>VyiTa+1|`^~+3=e#)=vy^tX@@2EmE0d;0_;4JS+j5GjV)dOV zo5L7gx7a$^DB8#}hpoN3^})H;to+N1PCB;pEtmBE6qH%7E&ex<U&uN_N4C#&!^3&2 zCF}S5X?(lYDdlpcYRL+nWY!6#s!x;c!oNRYe(WNCE_mwSNEc5_ySt2M)}FqsAf&wH zgwC}}cK>jbOqK7`uGw`ZDc)3CH+xo4)b+!usTUqLEdOqG>U`OEtAp)jrI(&t9TGR5 zdTMj?8J}4_iMveREiA7P6<l;}a(C>?aAW?Ez8Mng9urbHcH4fcvUn3%C(ouFF7fe0 zyQWifLYS)O@tZpn_&HV21$7>aoc{dz)@Cj3*PMsLi{33e*cWKKH}KBPtAZDHYK8_^ z&*WQDH9y@kG5d_5R>k+s?Z=CE_xRm?5t^I6I98KcaEf%*iG@4Ywk|W}p32D*^p({z zOIlR;znzcvVLtII9k;G5IL|ey`m*~er?~JHCQWSzuWX#Z+AKrFFY}^>tb7Vz-|J&# zvg)68PZ+SDkL<Cu+s)tkc0t?GAoKbVf8Lg$)d!~Z^3J+^q4K*}x6HiFlAk#2WrV7o z*n2)*E1c47Y_51@`N`?pOwz~XcD6e|W~{%m#Y@(Ig6kLdE`7_+pi3-VWxiHdT_2nB z?b*WgDlJn@zG%kJ=J&JKZa3K5HgoArljT!h%4AuZa7C;Qim}$xn8&p-q^Pv>{Ed6J zt5p<N+HQZ|@{Ro)yNk=WQ*k@Ze@)DaUna8E=KuZJEj61DB`rKwkyKE2>)O=rc}EIw zlvLe~vyGWAdS`BSfsn$ihB>NyT*kN4%6C^CIpd<B6`N3cm+5%tua0HYQoAxjw8TO> zGZkyT9Y1aN!KsT^Tl1hETiTJ>oZmKkr;BZR?RG_J&qnWM|ILG>U+jLaw?59;GCy9D zy`)6ai|29#pY$Ywg%a}fawk7kEVpIpY!zFtUhuR?$X4V)?88erNwGgp@GVY1l$Cz^ z$u}R*tVHuK?A^|Hf5&vx3rtJNw3&Uz;-bL5h>PnV-o3UpWKG4RM}}YDJ)0Qwk?o3g z{+n}ZlULlz+Go&ZkvnVW{k?Pc?`aZx>-M#Mn|#Dxn}XBpKgF-TaN4N+;=8HWZSpS1 z`g|>rU1;Jwzd^n8*A$u4mc6rn$6Q%_`B;S`x5}rwXBjUzLzUN07TFy8UNF_wwc+{w zt!oTD-d0yftl74dJ(@eb>|dphx6R{f(>qsQzw^7lzimfo46luKWmKTbvRFGyJu$5n zHxK(<7txt@<KN-MhL(JbMckIHm5ogjsy{ES9Dgmre&@&C?58~z$D9_M)+greee{vt z>&K6I_7+WJnwOg~Wx}f+MoVu?EG;z@@Ay0=ykzyEOueGVoBVt`lU|$%)xVVB|L56? z>Dqjfr|k__hP*WYX5Mvg_UzrRUHTh+I(;~PmS%9StZPyCbQD~9Eb)s%SM=Lo@q7Nt z{w=(}%rj_DuYLStLzUxkFPDXfF1hqhOGxP8)i2SZ@gMiR?Ozgd&^(lDVT}IzHCZg~ zDoa01+~_6~7a^IeP_}4J%HG-Y;`hCrId@`Bd8NnI^@R=Z#b(`b(LC#IJbjmB?4<h3 z9M=w>;YrI~zxMmJU*<noUR&nIJkL}12KSa+vplOCXG|`rmdB_GC*{`m%Wm#r?#_O9 zWnJS>d6vu7y%D`R@0RFqXf+J@F+an{`)SH^wmEVMZ}v*JdER~dTgsFDWZM$e);V0~ z%+4Ckxp-#5$*X!_uWbB(@1C91t&N|B0!8j_*t)@H@@B85&ZxtB)>#)$_O<s+jA5?% zetde?rFS;5UyqmdEEhZT|G%QzM3?UlGUbm`I<Kft;@0}wE~LTGwB>iBwZfb(g_uWQ zMYA}bajwa5DJj4ATW|G@hD{86C4VF*GpFlawm;C_w@^y8-ut<3XZVHV|IS9=4{w{; zzHn`Q+})OrkYoMY+cSP>%72^lN5J9G+Y8TYCoOsW_v7O`PX+(ZU$rdD+pR|aYvR7_ z)U%eG0;S(po%`$7>#+UZN{L0sFRpfGVhwIm%(Xlk@H?3M#f+c(-uxB(v~F45OP&V) z%&$A$?DXRPsY~8g@r;RH8)Ni8$$`PS$9u!0RhOGoH_TKynf(7^gxc9T8hm*Zd&K%$ z><*;AxT$5R6lR*HxiRnYq$vV1@=q=qFL~g9xox)a2bExpK5HAcz;fNHSILG4d?sGg z_sfp|yV0;DQ6o9Zb%EA*n`eo$md&2L;Og>dGx_b8MAKX%kN5AtBjvf+JHXr6+}J`$ zZTV~^7oFHyr#)s&eSB(RIkWBAi>qJS%)D)}&EWLbWwVy=n6!HvE9>1eGP{M$X3PIP zqnls!_Ti@)ot$$04~t!@T7E2boUx*3^TfS>x^K5`@O-}~{lD_p+@vSU1!+&BFN7bM z=KJh~Us?2}4SEN;4#+W0+3~7M+MV4Z?!4cdmcRMd?W{6N=KsPjZ_vGSE9d6Cw;Rp1 zQ%)y!Gp=u2dScF`PunvK&6i(UeAGEy!$8;Tx#^Yt+RLs^J(^LzG&|5zN9dx-z3C>V z>CK_*K5F<y-tP-}t(t10)p=~quBVUX!!JMm_9HpV(7(Bg{bHMvR{EtRj<xe=S!@&X z)=GYE(6gd(OVP8ecZE*PH+Dw19^2VbaHU{TVdOg9$th}{x~5+&(xbu{4_@j@dX}R& zZ^07vM@R0ix$C_7`kMHhh@De|C-Ajq%nX=$?(N>TB)?S~694ry2lHnMOW#=ft#k1a z_i3A=BIaHD^8Coo-kRO3Bi7sNXD>*<<rHD#sAN3XfqB9ThwK%elh3JaUOPp4A_H%b z;DXfxOdO^^`WiQ?N>8bfHEz%N_IKU_^?4Vw`hrpdPga~{E?{AMd*P4u@#g)JH=oFd zp2%(7WA^b!;@^!kKR;dg$H;;6^C1m!P4`c=Vod9K1nxQAYr5mp`km>IsYS}+qTICO zv&%RHdy_M7or^e_d((n9&_LZgYRYQ8q;Il2tmVS@?p~F~%plY|v0;PT4X3E{wV{$L z?-Wci7JK|vq9XQbK^X7<?#aUTr8@2WM=b*9-ROHXHE(aV#PS34;yHvuYbVUqb4!?* z_4($#x7-^Y_$nF9g1q&_t{X*}D?h(2@ng%nctg1_EB4pMxZklq!se{3BeP}o=FcZ0 zmsp=IG4j8>Dm`!S{n??`Exq@mZwp^+&6UtgFWXbP{Gz(Wf>SR(3us*Nm48@uHHw`z zFZSH*%<|296nuR*=S@DxZCt-ebMj~557+m<*#2kAMmNXg=Iw8v^p&%6W-=?f?L4HV z##m_bnk(A#%JX|IcCM=@-4))cIxS!gkC=ClpYp3d&5fSRIb7C;uFgDrGBWvDjZly7 z0{y?m?U(z%_(%j?{Oef1_W8<F&RS1j*xs1rcvv}qQEFLkYNWeYV_Lq(;>0B#KU2le zRbC0cptzt>C1YRM@=p<_XRh2{edYcxzdZ>iXV*96eq8zQ_etY|CpO!YRg;4jDY-tn ze_r--o=!-QXz?4jKf5xVZj0QGiGO)}Z<#;{>s{{Ca<kvAw~Y1ipKr6W!Akt&)U2(s zYK3jptM6x&-~U%~ds9~J-&NvsHZN51jQribZ;qJc<~WbjmUb_9+BOQA-iebbz1+W6 zyszOxaMQL`9(&(rC`<b~AGyYmc2|<^o;tTjP3!ty*IpQ3t<<|bHLxbedyj`7tJ8t! z;;j2*mP^l$P;PrXw`X<P@yf3c4a7sO8+J8VKR?HmAn^U#^xJo=G}AIZ%PN#FOgC$n zYe<l~U%6(-KmCVCmQVk9_D|3R-HmZJKTRX_N~bED&Uh9qc6HyyYj!&&I<h{STjpBC z268NW^|<7R!t3x&i<W)xk?$_taM<R0!St`U)S|QHSDn{<KcnY;bbQ0dJ2QEn`H2fG zs#e`_j!j53i|?jR`OcS9KC`?`;F!7jT7|$lqvm(3?z|ArUtlkONN%#tvLF86FE0$6 zIZ0i4%i?W^f}bvk7Ug0O{Gqihbh_8_u!@YQUxcOZI>{_nyH>L%`*&fMQFR1QYn^24 z6}P5Fb<Jz3+{N?q-3xx+S6EXVC0+CP@P>EuY~SrLOH^PD_OAXMak}}$r9R~!TUSMC z$=KCpo!)v&A!S2iMONVv%fE*+O{7h7e{Eb;lqJ?>o$}}JNuQb(9Ni&ydi?MA{*LQN z|Dkm7p~_-bu`{aYBJc4<`W~C`IoTp|@vV27chApBjQX_S`}mn)<L5bl{!U+8{=Hso z!M>*7L94dr-u(BS<6NL&wunTZQ1QV+m7A=)3+?6_94~I_<G$J>c}#h4*8Jn14(-Bf z6W=XAt|(Ahe<yBUqR#VGKTH;}omiyGRdV%Kdb`YnWQJ2)-<@Nfe0H_#>)4B{*S&nO zOIqov%t_@S56gGEznQQJ_&)YitX7zrI^$G+;MpEe!G$LG-uPN-U;nH6^Z2FTi=W8U zOJ1s)wm&HAsm{^Fvp>6jW*$tov|K*ZefRzOW^)!V;rs2^ysJHSXJLx|^r~gM^K|Z( zSMZ$R@MC+zzFbsm;_MxvhT3zZ-tL|-@0w0ac=yr6cWPBG2V_q+-J8pMO@-n5WUrNX zbhugj-MP)2buM{5S~=faYQ_0b?~>=&9gCUL=H8x>pm5*aahvze{)?dtQy4eS*p_-O z#qV0znzR)6w3Pl!f;<=g-p$Zo-0t>G=&RiG&^dQxs>PMoZi^`}=u8vkc9|+47<suw z{K+i2+d00$yo;|}PMLamxuP1^eeNUjyQkOoy%(^Xe%h~Bde8Y}Mzusw`O8zvZ!J^4 znez9J&52u~lPk6E`ae@$c-T|@OgMXEP1N)rElt(sRlcm&KgH&o+yC%>+@G|5)7oF^ z5f`2n^SoVr&GGtS0q&B`8*DGs{WRb!{OFg#>F>TX+)r#*%HjKZdGqp~IVP1WRb)Tl zTX3Ic9n)5ai9I<67D?{>4qqDWjhDUL<nZTr!o13Y{}<=k1U~eYUis#nf`&X}LI0gH zX4c64`#2@$e2wdDHn}3_b3i!hlF<Dd+qXDPlUZyuecALU-;VsfabwMuuYcZrc)3Ao zr{dJL51L<Wu(=*0)lwDOxXeFjdVc=GjfJ-CF-OCqH>s)T-phJ!$C+?dY>nT_X~rGz zP4c`>MC*rrFaEgbl6|EihyB&hb5C7bd?`nFCuhd)%rD%cQ<vU7|MtewJsMZ}@5TH) zn)hti-}wKhGWV2md6cYqf8*|#4S#DE&t!RYZIX3%c(nHkwJrCquQa;A^}KqKY1Wyy zMaRD%zWZ{=R_Rxn)m7=v<pKAWh`;V?eaz1>@3!RElKD%tJ_c;7R-2N0dY{I%!!vd{ zC(Yg4du^d`Jv-lNnc2Q~WuNxH2sQuVHDT6`3HREJwk>~_o`3&tWYa0tnR|N*6B$HY zB(rDuoj-n%;mBSw&9>X@+pLxENj9137jEq<JJIc2==MJ0w|bu5oBuk|ue2ka6Y_8W zde6h&`gp&icFBh$jDMNqUkk}`7*AUK%k=g;Gl4!SRm0nT#`8WNlDgUVKJ=lt#ib9w zuS(Cj7cCk4{ph{LpL{nS_I-YQcFLwD$+Ng`?+^dK^<eq3D^*PWd%~svY^q!L*WiW0 z{hr$W+NIGu4!f`1x@?MreBAyh|IZ3ftt{urxyniLSWT^xdV6v0M$vTRHmL=d51fe< z;hNhWdgYI&<>`R?%RG}>t9QoNlm@&nW?%f~l5A4-y9M_qimlH2W#ltC{K~bP&(>XQ z?%)38>*?)H3%mQcKlRmYZ2eyDpCtV<u5^Eq@5`*2pH?lJy}x5$@SR`(P0P=wRk+1z z{5cuDWZ(CKwgX$PhuzINwb*B`=XdwoZ>FK|G==nBJf=@LuJd@!fwKK(${R#jMYgf# zDEUiH%bBO_psu9j5qdZM^*)yGUXFgo-p_uX*`IFn{kh)hOFzS!-(8AYY%ihjTCB{} z7U@#?qFjC(f8r0LJ5w@mNoAG>8~UhSj=uE&QuKoZKmIS7+qfh@aMjjC6=BvbZ|5w} zU=EBr9y+Pt=4rm=+UKsP8nq56=pSv*EtxK__Hx3F+UBM1)(Ri*PWSyB?kRI?@;0rP zLEM|RAB&ah+3Uoh&)VL0h%?~8^GYGbYcd<SmtOo?w=STob(;24VUDuxFQ#X3MI9>b zY$%?%>Tdf#;qB!+gHG1Rq$qj?%&1<gmJ-eIAS;@6^Nb~~qP&IGO<WbB3@bmSOwxYj zBds98deCP_vEHRO_KXTkm46Ai>b4|k-N{rB3+<7g;4QLX&9+TaY}2Nem_*KaD3E!K zE#FsXLHE=2>zC~B*9gx&_T=&L8<TRhtR+}Z)KA}C^~>1y^`o1U&t^B=JtxLv@Aj<Y z|Nigy+?Gz7smmm6GU33cEuo4BjtJy*U*W#>>Iwtr3{F?W)Z{cS-t5yeX7_)+<=c1C zSpJipYvC1+_|Gd}cPP0h9!<HiMZ;ZltB!iuz6SyIUB>A?3Z067BpkT%&I){Z!CkY- zu2m`axcGUqr@bM~ffu<~WH0YNXZg6x@61}o{nL~V8W(zBWPi){^H$Oi1t;fD>4vpg zsXN?yvQw74tUj*3Q6^>U)sWSnoL~7w&9^VTv96f&L=a<KLd6$_OHCJSpM@XP6=~Qb zEjT?Z^R0xib$o&Dmx9u=w6~A1i?cBJJbZcJ%*t0f51MAXy?(T@g@>z@Juvhc>+Q>P zzA_yZ%bZgbBDV0GW{z$56#J|8o5UJhmhfIZKRH5UVUaM`GU>Gs%%U|8O%)1a3s;Pv ztf+A{>%>xL*(k4xdS@1$v)Xgv*vlA|RJ(i0yNYL(ix!=WyK0(yVIAkfnDwU}l0CTU zQ(ykrmn<I_-ly}rD)ETwUO#Uews?=5Y^SzsEiUX>DtK1vdY<k7uw)ipR!0`Oq=}t- zHbmQ7mu`@I)m++Pq3wD9(UQ*RTyC<LB=?%~xIPa!sJvVAx>_MitKXwptlOAGYUGx* zE!J$_x&Bb9ui~veZ!4o*6Q8B$L|W(SG8iXCq?R)0>Ydx>zDlrfveQ)ty%jIHX89CX zHO^-dDC<5P-s`=7PuZVkd&|Fm>`3~v@Qo_d^N7b%BH_Fz&MaQFD!p=n(OS>r4ZBt^ zJ*D%=D@5vi`eAeVny6sa``=#2G^#!hT_V`Ia9h;DgvIZ#ObD|)He*iYnHI@2ez$jT z(wTpG3f~N|or2t%#Tywlxlc&V()Hl@b|zzS>6?_Wjr==*zg}X(7ZK=o<5zb1uOv?i z!(OqVb2s;1+Z1)peEyXwE@E{&3I(M+T<sb2OSf%$xKiQCho5IfOGBB(KIB9)8#cF| z%y=?KKgvE@MahNjRt|Gf7z<b8gfGilcQDoNJ~yZD+c{><rKgT<iTD%EzqRNAXH4LB z^_ypot>hANESNR3H+GlE@2`I*$JhLPc3u47I?=^$8(m&r5Zz$?^5w0m42q$TGV*q= zo7{BicX`ZX)5MAx6DxJ=GUIt~l$x1huKeg(>~lzUyU|gFo%x&Ce@@-Aie=7<XS06g zJw092arWisFB&gjF-SgDV+wFNyx~YFbI#_j6<1C%zrCSZeae6Fe1(nwYp-4Xw()1t z$BU28i#w|`w1uUcpX`{-%XF^w(z-9{R$piG<jFNJ3-t6h<TRKzOLw*HihvVm7D)Vv zF?gBe%FO+?^!g)(JekOCA&v%D4>X)OQ=n8BJL%Ddcei5s(xu<r+$ekA%*lJ<(wT|d z1cg#vSgtzQ-~2cw*Zj^_j=tyL%+6Ks&GxtyEZG_Cu`;MJ%c5U1ErC<Vpyk>xjZZT! z8$|wj9shmXKl3GL-uA51zAtgj?Bm-)xvjOkw49#xmuf^hc(I5sNjF~a71pxsj=P(M zz_C`t9r<C8jLM7uTwiatKA`{B+mkP*?>6(lbUP`a`}E&`{oLxkOC;{xSaUsFNJ_wH z@AoIhx&g%(<;>($)AlS%{4P=b+wkk}GdHi-$KAO2^!D?0W?%jN_xNbN51niFJ~BDV zM`?Z3+OCrdLJ{xHK0n#!6)fxDaA8@3-!#D~YMPQCK1PKYuBoi(o%GaDY5Bt!lfOpj zSDjLilbL>!lizLivnyQkv86sLUpr<Ta}_*hQ`p`1Ed3<w$$4pp6UvN}Qk;5LKfTqt zf%oZ)?n4~%N8RpTsJc_Hvj1IP{;}LQo+V36-ac5o^Wf6yvlVuhieK)3y;ip};B(%@ zyeIjd3N5c(`p+Nwo2hj0@QuRA@85i<1^jJE_dcKeV_u$pS%e~UwnJb`)=jVZOT(Re zpSqk{EozouZuE(Pr>i)d;fvYES2~New98(c{&*|p$7NH4fAzK<{ohw_cC7X<yCQQv zOv{Ps@8R>i)%6NaHch^;<Hp(j_9vBvvbU7nT<vS;7rSo$K5egAnZJzgJzrL5bHKH0 z@87A<*8kW1$F<coS4mCypyj@eHs>07<bEFsmd(5qz1#m5OG2)rIk&)Sr;Chglam;B z+L^jta$6u&k?OGAck*+Q+Q|ZSJhq`X)Yk>D?lk#R_WzKf;Q3oz;=hh?T&Q-5Ot+7i zaZK;UsRcWBm1Z)yFWj2HPbs3a(`I_}gH@R??*+V^#qlVA;;fZBmze1sh+eZrYP0>; zYm?h<1hd~f7RT4iB=uJ%pY^0={pER{H(aB<t`=q3bX7e&$&n>D_ad82*@qvQzXev+ z1utOObb6t^Yi`!+UZv0}xxW=(X)s&Q^q$3?RXt1klJ8ITR)wgWyOMXR=e+pQ`nW*k z@~sDErULKS-<`<om*h^6w7zxc;=3PgGy21P*ZZ1J`ElEb$tES_{hY?q7R9xlyMH`M zPG7W&@0px<%3{HrTtOeb)K*j;Zaplfwd~EA`sM!jIQGqxy~w@H?~Sg-{x|*UnKev% zWX+!WH-4}+5==AO+Y<cCc}|KR(~R0BuIu;uuj*n*@7@+)73T0kNvCV+vj>l&9DR(1 zEHXHH<To;0c4J-ZsS_>wVP45DmOjmo?<V=}5o+%FUcEl(m7MzDiFfDbX(yhX!hCH( z$hOJVbC+aBhpqGo(XhAfWwz0qE;Bo9se*~i^xiy!U&4WtS9Jd4jgl>$y{JuU^(3#m zsdr7EWL%!hk*b<475L(N;Pf5ORy-<|KmG8W*CT7oyM{l{_&aU<@{B!7>3ry3qnalU zQ&;$|&Agm*O(*4S)E4U(=d$@%NFO$5Wjo0KCHaWpuPw_gSYC!T2-G)p)=twjG-sN^ zoUm`#XPG}U%ybp`>@Ga^TIX)_s`pE?>k+k>ZK9{=ZnO6YYh*EUd#Ll~<;GJ_w=XhS zz%e65vU7j-zZ{>ixx5>g5+3qB;tw}T2(?*%rCObl>3f^`t`BbJ-{0q}e?PnHa@+ah zhoA4r+`nyTZKi+yx!i5{gR&ntwZBi;wX*U$OCoau+nZB8A-le785`B!kh3@FdA{9H zepU95OW!5h|GA(1d3wQp+v6+S?AbI$?&WKHCp#=R|90M|pW%W>-L8!J`verq74sf_ zPc8Ux_}dmuvqFCUmgz^<m28O1(aQP9Z>8Iq>ABJ5cQ)&jiuYd_ywjF6i754XsdV|i zy5+UtXZgP6Cas+-RX$9;|4*js!$l^p6N`OIh1I3CmrR|yb7!$Z<D0oGDQ_Gkycu6v zH0>`lNs0^GXrP%VEg^5cr#|)nqX_@x<n-Ahzc)?WdB(je(TcgwNc>Z})wI(wvbRlY z8S0*XTQ76GpKFQ3jgs`Y+_HT^y(!CIKmT+{mdD5Y<bili;cdS@8ZUVD?Q5Q|XQ1Kb znuOQ;cI=ki_SnC0%fV&5g_qVdFSsQ1<$=HyWq}`_tkWIVoK{v0SftIC`Tz4r=JY4W zz6dnW-`~^FB%J%*@_Yy1%(C|$omzMDpB?_V<cEcj=nQt1E8G1Ny)4$gzNW0XFMIFu zvb_)b&ot@nJG619c+j4+nRAvMy6Wf|UC3tH;E`6$8Z^;G<In@gjZ3_a#ovu#l~>WT zc-8cNjW$P%rBI{6rR(N9yW$RrUz~g7$|0FVCDw(<lXZ3+x3@L5GcmF<u`#f*va&PV zYkurlig592o5rP=9~|U*G4Z;pv|7o%*Q`52rS6(I=dMjvP;I--r+Ynq+V+zd*jcRB zExNugD1&Fy#IvUA{S0TdjNZ?Fmh2M6>XY?#$A+1oXGsV;{``7;7t7%juGOb<j%8T2 zG94+hdLycEB;_^dPZPyW3`ZANDSQ2V$oYcLX4b*ag;ARiG@o0!!0f_=BBPz$(_0?v z@~jrf_c7X*Wqf?Y^~AIKM_3ph^At*LiCpdDcz6x><~*gg$o8)GM^h{<`Hl({cl_*R zn&x%KS6%Uq(~aKKg_1(&ICdK@3Qhm>>{h1N2j<@or*?0)PtnQPb(hDrbXh?4r!Tj! zIeTWD77F~n;_T<CF(OJD@hXee+pcq6dD5yHsxV94c+Q-+Dd!JwmN=@E6144LMthmq zyIam4Jnpys)mY9aTZq*}mdIS)e*T11bL^G)ebGPHFWqsqShMZ@-z(NHf;C@F4Jdoh z7~dk>dohB2uGoa?|5p!7n9Nvyw?_MPX^qU&InP$4+MJyswd3r=I?D#Jb$JJBzl+;m z=aJsde?I=^(o;{W{$4#JA#z~O*P1`|-qq3~=8CePe|Ek7p6p*9!`xvv$D8SI;Kjx} zp*e>puzrdOEp9uiyoB{*dtZf8N$!-uO+I!j&SxZ@bIuiFx$7Zc<T&kY5QB|Oh39LN z=4(nNzarJue5}t-k7fBV;qOMtqC9)%pT1AN%dj6^IOCk3gfREH&!<?6SC-6P8b0}d z>?~mpuE+?MX|5XIjK9B|^>udc@9vU(-8!+>1{n+XGV{~ZlPBA6^LSx-a_xqS6@@K@ z$3&g4A22_>NZ%>_jLa0_kL{*s74$Z*EPu(QCiGS%;bZc<3eT+z8n?U@n^g0%<b%$U ztcHi2x=MT%mP)2AS88X5d&teT(wH!DL(-(?$!qNAa!l_Jueo|k{Q2Xj9Y(39pA}x& z{-~cGesWW3*U{P2Ki<21uf4T>L*a~Tby>ePZ`@9(wt8CYVPm7Fxzl5Z*kglN7w4`1 z>ej@!&w-ICbtXH@vNa1BYL0w9xvHYD^iz#&b(Ej8<@#pzElW<7N583FaFk=+1e4b) z#*+_7c0GTbdbL368B<dFp6b)vuic!Ww_tIUZR&|duNjS2)$2Ribv_K&4>LMqJTtiX zmdIwOSIZ_$n9!B%CD+hg;Ib-c>5+mg<yYF8t4=<-puNb4??6N;qmD|;nu$@pNy@uh zDmV<Qcg(L9IVBv=^=qG*^+CPjsSRST>9h3&db3v-to~Y;$?LqM=-!gR!>1lh3*&pt zawYbc$&uDq+P2QW>fV_gtE{!+Gd`@5vGei6fWWwI^Y(jk?ho%e-&gx?zuA@Bm8mB) z)*b(%<(58kLu9+p!K*><mIP^Ef9Z1V=2@>B>$m%*{y*GwsHFO{+=@1q>=o1IJYbDE zcmG1e%u0c7$u}>bsyXg3KCdy=%lg3ff^%~|n%|R;d-8RA)4k6j^5v;JI?Hw&hje!> zO#HWOT8Q4KJuwRpKVISTN6c(`#l3b3wjc+-lV&pF|9;KC|Fhrw`Hz1$(w=QEe*0ot zvGPyV14;M8gs$n$tY5I=_J@P18V%{;uU5<!PI~{h?RNd&1A6~g=pHs<DG>b0#MGGM z$8_2{e!_<X7I&tHs&1Ct%Q5-mPfd<pReR+&FS#37zDViqUkm?9=gU1JY@h8mxazRS zJ9_q^T!Zqv^CC~YTAltpc3oVBXR71blO1YSR$DAC-Y@v#{esoXKD<-p`76HIhjJ=* z;wM>G@y!TjO>(O@{TR12a-Dvb^KzpHtNy(zK51=!AlT~J&K>a&)?05)6%woS_0&DG zBdq^$_ig9i#9z9*r(I*1+QQY!5YnG`X3f0cVYvsJgRlSpeZ2mMzA&$luT9_a#%D|V zCqLyXI`Hr2Me7ocwQm;OncKah?)&GPx{pQfd3)A!%?RJV>W1N_n{Qlm^Cy?jjFT`A zX`6ETMTPG1+0qW?2RE`=HH0-~n`->J$;ePIvF1?I64{@3=j_z6lQvbJu4vjQbm`K> z=<*9$Z|)WM9zK-s7BAte;`gj;!lAwkznJV9ZgYN$C^NmdbVc9!An_St2Xp7oTpbo} zvn2e^n&q#;?$#CNS*ae4N!+Z*6<D?C_R;Pv2cxFzKA$%&@H(d@6!-pM)P#i04^yTb z;`3NGL9C$k#k}R4I+o2Avwt!<;duIsmRi57UYk$EH+~7tnHaWU?a_sQxl4o8pYC0; zEK>I8*_T=3BF{5ISjBU<q!|1&(x^%7xx%`8^Iw^bQQ;Y}4>qb4NcQbI;@+M9>=Aot z2IGv=A=dSmL{9h^6{m_ah#b8bxR%v7%wb8wrn3U}X{A|wsU4vnhj$0hSobUcqwU;h zO`+!*98_kQ^k25=e^_g<htaB6_l!o66o1;O9fx;5{II)wTjYexDQ-f4BzFp|+jW&; zpUBFB__LQqbu*64o6zjLGwhxD_sfzuE%ybx@lL<}GPZ8#wO2jva%J%mn-)KFQ>>Sd zVwlrovODhY?*HvIv(NlUsJ7soDzx~m8t2w3i+j^z=dY6dJV)x>?3kI8?``m3Ry5^x z(1BRvc=7Z?pU5eK<aRyyxwaKNr^g#6@5AD$`!^=bnqgzikNJFTC(A+p2~Kf0VX- zd}O^?{qCDIsiKbFd%oUV<7RhSY90yYbLU$X68|Y7;K`ie`r~saEL(ZyvF-P6*L8Bd z9M4bQd!-ZUc!<f>zBO6oPsyg1pUq+2l5H0Z>yC!&AAG6S*skYS#_Uzt!1#L7*ZptV zIvM+u<BkVTPWEvY_IqJ^?vcy-9X&<~&Z&aTcB>!1_-S!znt{{|mV|fArV?+0%#@bi z-!VNXTJ78>qwtakR{c{uv#hPlgfHl2Uz)D(5%HI~;Mga#nNxGrWp|t|%=wj)e4*m( z(ckk9zST1cTh7lb^Q`&x?U!bpFAuE!^!10F#%7t&kL((W){6z!6)2rMkbXwwmH+Nb zzKd6K$GuI_zV`mjfkSLMQ)}ub^6qzgct`j6i#6uUo~^aJr10Y8i94I)p8uV|ec*4H zkM$?Tq;J=z?S04b{na_Oa*=5zEb6(wy4wGWj|e+BR~DXjD_CQe`lnmpX2<u)I@J#^ z-z-o0edyZE4A$dDZerov4z$WMbcUU;e12H8=bP6F&8WFndyc70-tv#(nQq4fQ;B2i z?AmPBXa)vN{rby(4d2!{<5n?&ycRp}+^q8T$p;!D>V64reU!1VSge6v%$>1d!VYfb zC$Ao_eIU~z!(jE`TY_-u_Lr*ZyDa)!Z)}TYlDNP3{5tI&o^zX8m_n`=O_n%cw><A- zwaEsKj_&{84lbW5#?tyvS|Cw;*QHzePEVMUFCN;uy#Ica*0S=d!uXmz-j{rHr?U#y zx1Q>s{NO0(x1jLSRP7+^r-x5YV_$xaalYGx$g?gN&s%I?lF2H;_NAcNeX(l8qL<w5 zc{-W59TzXmc;TJB>}<pFH8n3U{?tGGkilcc;*Sr09$Uxf>(Z0EVeQsiTgpv#$}K8w zopLHIK_)43hfE~jy?F~Wzq3r2yi@P7jA=vbmjgvUVUL-XwAn11EBsB6W!<8E%ykXy z@f^Ne|8UH(k2o;luZ^hp!-lOQTOwx%-#IolI;lDOZr-tzD%WP-X`Hr%f1b;JyS0W~ zO`10jFkBHVy(j&+M)l>~t5amdLVmCDF}<7@e>vsB+7yo;zyI`n>51`gue(@#EwcJu zVzP;P_iiJLexrw9>wFGd_&mKiH9BC=EJfMBiDw1Gw6FdsR_LAk(Q;=%iIEteHn;m> ziK2a{^5$s?t-HbQ`-myCG|riu+hG6qN7vMq&7WKrtB%|KHs;Z1BPHoQX|m6v^QM}< z+jwlR*vm_W%5||TayQxK8>D(3bqbuHDxf&`SD5kRNx|pmZY$$tpEf6Z_uK<NoEaSL zQvdhtKm4a|QKCoY**R-J1&LMsKFb<v6p<Qs-aJ>?YRTWSQxhkgJ0oB&-=H88-6wN_ zT`RYAk)HLL1FEZ^r`+}kXt-v=#FfM0!r#oQc1M5Wow(Mgzdvv^-afc$ZuX%Y>wl?i z@~T$yKj>xZaW>^#Adl-?$CMU9%cca@JsrQkF>>j+`ZfK|yinPsb*lP-rHk(_UxPGP z#WgLTL^hPw?^+>TF8|JJUd7#cFN4yT`LLw~oR-o(aA11(otU|seLlo(*G=*cOUn~e z==o^&I@FbgG0{=qvu^VGmk)|-*7usPk6NrXx9Q5t6G4okW%?mks`yy{-gZ89Y>Dcm z^V|;aTOD8UtxFD>89nKK$)&H^mXmVcHt>Fy$d&lQti2(4JquTbf$CF6%e|6}n<tcB zK6|_A#%`u-J5TJJFS+)RN$#vmy9~oBET%_ub$K4HW&HhmVb;#*-qS%}FCF9k!8du% znb`Y@tLiR)SM>}m<Eq)DaUz)aO}ebq>=~tx>wiB8f6&SIOTcgT!iANy;)=`HsEW*+ zy1?{aadIF>V|C$Xrs>vBeIM<XXa_D)aMMZWxG4Bas&mq`n%yZKi^LcNzDRnm@i@{a zGOb`2&lOF@my%0!j1$zmu5N5S{4A1t@~OLyVrJVzd|%AHd|=hj(^j$Dch5GR*mg{O z;+L&W+Du0BdDBi=n$&5<SNy#dvj1%L9P4wP?w)P!n&Qju#5THUdv&s&&k9p+c0c8o z`{fy<_8JLh;l`)atTiMgylNlS{@NVhy5HK?Z_h~+jg^_duE=nSrz)&JHz7Ro*6PgE zcCJ$g1=^oq5&fOJt2CQ0q%VAXW&K`{=KDsxX(p<3JwF_Z<qKBw`FSbhSIgg<_pa;R zS}}t=p-kXij@6&6Z6E$`lt|y9vVEpH$MJyo;w~<8gWMRHoBy16U$$x2-zQZ%Wz)7; z8}dA^m~fDVsb5pk>W4s5tkseIx_gz~9=fq_@n*iGEwwFC)9OO3QdF~%@t3XVdiq|b zttj1anbpPJ&BBZG?}^8I&1Q6NVt!LHb7He)O~x%jldGa<IxAckJ28G_Y%BX^$996j z%qc5jS;`mRBx$R^0t@{<{QsM>DDp(e?II<MS^uUUwVJV1==2NYrtVMLOA=&!tTu-C zFFJ9#AudDsqVn1YD?BtkHYlAvx~Who?#ii?$0l5|w6)2O?B-dyST5o`W5Sa7T_vxW zFaH1Y;PH9C+kKl$j-4)@`+09qPW<#cA)%HFoKA$g{^&TTviOaA=f;N<XKUI9{q6aG z*08v!aE|;;@8vt@27SM8S8?~>%Q>sXWAsjonS6V&?ttB$84L}}U7QMLEsAkaFc&qo zp6SL=UEL66v;WBZ4FZq6XDul^vVm<yj$FlDwhD&Xt~t#w5~>9p1mn!I&vIET<4j}> zJ6>k6B=q5&m)%#oCaVVhT^O=^?I}NvW$HdV3?8nCJYV&N$9?tj$onP?j#fNM9KL&x z_3dbh;d%1ppY-&oT^~z!zHs{+D1M)<+*s;Q#<B+uk~vIAYM!X*f6B6E7o7d-jK$GN zm*D-<Hqxdw-Kzxd-xCm?e5#y3xmQv%bj>o^RsU13e&PTBoXv~t`Mt~8vQHP=i1W85 z#RPtzJUNu}_oGNNo?l1m*FOsM-N$%*-b%-#Yzybv{+LpCHsh*mVu7}l$^IXyvlI3{ z33^j|`M|QLwXv^RXLRb$+Q)WKh=;es>8HZP%K}9|N{h}$9h<fJ>5A5)`Bp5>Z`QgR z%~`jq>sswxvsy>@+Xo~AB|fRG^IRJHY4@KBzNKm+W%_KEmy`9Xu0Oe?z-X~Cs%^@Q z<R%FRu7(AspHp=Y|Ld5u`qau*X?BL0GNFqUW!Sg;D^_H?*Ra!y`Nob}hi^B!KhqO5 zjy)r_Z|w<B(Y(wjTNjF4I-1_Jx@xYf!p8UjA+?|e{q>(T^`+J)PU}14-8$E^>WQPy zoQ?@A?Y*_`v+ZYKGXK^bD0pb2X2DYzu9jzdM;|J!Hsab6`0~YN_36SvN0uGPOI~?C zY3hUTHfL8)J8~c@@u>4wwa-2`ruZ7>p5DfDVH;oYSNA15f*-VnIEJsORqcJiSW~;8 zVY*7gH0G(XA`=uMGA+OC`|>Gq%5v7N2}k)78{<7TDy$S!-?aJZqa(ZW#Ew2%XS}?0 z?o|o1tSj?5Rc}9z-|Eg@_F=A2K&1YU;>oQ(YQgC?X>kV~Iloz4y<^|MHX!Qb?-PBM zWnX`7E%7`x>F|Qog8};UP287N_Mh(6Gh_<Ao8R4+^qRYV@dJa4OSA%~=;nSa%C0<f z@j<kxtC$1Rs%D>MOiLQR3A^7{4PVf%w{l0sx9a<QS{`ob-q7>Vr6@OGfx(9F4=WC( zeGz3hn{rIVph<2On<nF-Hs1;EhI0h71D+jayV<~M&NnTMsVvR%HFK6j%G=uMJsk70 zKb8gl7wAyFb1A6D*P5+KC1K&MqgIWli<q>NK5t)rJTg-|_`ZBa)3@gJ4$PaRm1fS- z`c+s|#2ho#ytH__#wph9-L=cNc!X-}T{TvYeJuAiwS|>aX!(V-=T%d7eJrg!vMMio z-=3fAn7!<BQlDiwZvFK|qRf(~cJ5czd|M$ti<~NjxodVs==_+#7bJg%Wx<n&(&r>+ z%`0@fc!kB<tZiFQ|B9m%Hn`2&_FQz@j>|$5+xK#9nN$8yBKLQwtlV8`f%`x6*X&uj zRWvSmd7b=^FHf23HM{zKwl2Ij)%esp{p>`aODu2Pcbq%;elpL+caNJAYNG?~ig({y zCdW3D_wefo)#wu{haOh2vD80dlD%WSx~VGUfS>Dud()dN7EPAzT62~=_EGQ6S*v>A z$k_K;Z$H=DyJ+65OPh|(nXWv4&Kt&!mw6Y5l+^BzkWtlpB)nj+pRLP>@1IY!PyWj% zef=qGa@-OBr`2cEyd5j%8Qy-V#GCw3x2i{Cf=5Y9vWY;g<H<I`HH%^s?8;Zydwe!I zJ!#E*i*>Jemg)cASK~KhOX35kYi>NN7w+SzwR1Ui`L6P*Jdr@=&yObAp1$x;L1(*< zzV6EndwUbLZ@k-h+~Szg=dwe5ksEoXH($9GsA-Z>ymWnf-dv~er`pZdvtF!UBmT}T z);EETWmoN|>kEHBWo|w@b6s!N|HZ*Km;9K#`;PMLb=ST9E!N%%`Mz=Ct()?KU#B>v zGAC4N%h<x-C5_((AE&wQAh#XFHE3hh{Dmf8VoUfzia@=S@BspI)4_|GM5TRqx(Q zTQX9Lm&qPj{zQ0}dsaekj(n`{E(P9IZmt3rtrM~&%02}|%02mh;t!|Ah2L-0md@RK zxBhp6M&6cJy;%{fO;`VI^uAXeWw$NIB{VWqY-gd$z0=>G|ExZ}P~rN!`>~uq<>r3e zB)vlZYrB8jrYj#3-yS}D_V-`b?TsZ#TNhO`)<p;Fbw;;E9q4e{`Pa944XdAYg!9*+ z;Hwui!p^Ijm6Q}%-ORL8Im5hVX-Sj2$dN_2e7D!ifBzDH*XzYBeoupz_b0c0dXTk4 z{qVcmD~6jBnOsb#?CtfL9buWVEOEArQ<LN(^QBK4e1FO>J@+KBspLb}&bV2!M%7m9 zoMQEMUwIemz3+Bt^r`R7(<TKMHf%4L;1+05=(N}S%z^E{TU?cnw_nwm^7m-n%ASiS zer!qF5EUpdv2TX4sCLhf@{ks>SL=$}WV=LP7B#GDRuI$RF^Rv|%==WXxZ%{{<88tp zZO(cx2$-cj@5Jl_j=o8=tWRFv_ven(M6DMYTuTnuKNk3GTJv!Jhj5+a3!Ytenp3*X zan|Rlp0z@!&#%0m)fSt1?^Mb!i7?q;d7)m3ty-q9y<UlS{&R4@5vpO`u>MTp!-93Q z^r!7#P+<9d$<bR?y0sDtj#GLL$vKr8ZPZS(c9oS|%W&>-xb(7f%OxT|Jl_|xwELx_ zjlg}yKHJ_c689Qk9bJ9%-*$eb-m-jyIj%8VN~3JFgtQpT^?y8LJ{sJ?s2X>><F{PJ z-i@)7=Pz*hc_kqyDJxCh)q-a~>wUHf^1>gPrzGDH`<hp%R4*?1s&>Br`|W(j2W4L$ zYnP5Zp61EUq@CZ<CUuOh|6?hy)tQ%<xdRp^W^7AI<A0f^adY;)_o25>urXM?i0G@f z<<Xb&&TRW3bnNufb~nKz{}q;$ta($|xqK6MpY|T5AJg}n8p_)FCd3>vwthS1`eFO3 zGbcA#SH^CB@i}kj!Fx<rI$al+P8ON^kUhb(OLPAO&JU)0&T23CeaTX4+5Tt0n%+n8 zr-eJ*x|DP0?A5n(ucWLy9OD1RDroyMSF_#!7f$v*8NX16xi~e)_Q8(42f~WZKb^F% z?{k{+tmw$Orj*bZo?6Euk1UIB@awzm6!dEKy}yk|7YfhW;x2cNdCn?Xrh<SnZT`Pk zA2XM2**lT{gPmBO=F{z8rEdHy)6P%s@||d{66w3lCcJU8`=SMM{i+HQYnxh)cJVDr zp8YslW&N!V2T!NgInH7Qx1-)`OuT$4U~iykWWV#Rpe?q$bC=Bebk$E;Vui&Pw~ql5 zi<hsOmDktCF?oizi{i`|3tZyPD<niQ?>%PcnlU3<dUMk09?OeTOzY{LS}KX71{u znj<Y6p0e47YIe=>ly#b#bJyeWoB6v$zfb5po4vs8Qj5ug%)kGBtp0N@{z5=dh{y7E zj<2=POz*k)ZB}^a8iN(V&d>8daV9lH{8!SGzwtaVf3<eb2I~g?$>mS7lub0x9sYFT zqs*u8w~H<0uTJ>;`)b0hYoY3|)PJ{h-hNjZ{WU~luO|OzmlaN;Y6~-yLv<N0u6z?O zQD)M-`tcI!>bovWSQwt!W$>3AsOp}et@e4-`*YhLKIHq*&m*$!e0^U>UAw#0EyWv3 zR_kJ?&tLJ2TRrwkdrdCy-fa(bzN~FLyCEypBkt)d?pp_=^0T&0y!PwmlvTBXMhw4h zJ@D$XylMVj)zWy&A>o7id3Q~Xiqynr7B2fDuxoF-x<`1GmE7d~7hA((=k8h`nzH{= znAht=%zxH2%$y`Pt%d1G(+BoN78<b=CFi|haeDUeoW_K(%q~IqE$<v2Ui9Ld!tO6n znjCnfX2C4)76EUT9~O&dye+(WqovDJL`BK>K}xny-NOk+#q3*^);vAe7jC@VcbUhM z*}LTV#XY2+eZJ^BQEc9K{uyUCNVZ))y=YSD;S-uq9u-CebM9CtP|2RwEj)kUiq2~? z8agxm6%FQ|sNF7lZMK|{s%gY?%k(6kZ8^JR&h=L^tb4A#bi>Q!=s%8*2ST1?P6#S` zw9@LCMuD*p|5oPGMZK3}U2P85?9Gs}*!rYS>F1Ou(<ECwS5)#YW_rA?+;}ciL2RC; zN79$8!j&%mEKdJjdn$ZaZrAQnQEs$pmpzqsawp%O_Ri$LH!R(6**<x)gmJc~PWj8o zmnvo~<p~_srCT<#UY>Agi`ka6Lxlz(mQ6GDX*+d3CGJ$ro?W-%au{XjF;0l#+kA<a zrH5;V>x9r3k_!taubc2Vku4&q?0Mh~9h;Bdg|)lh_k5P$bwqMPdR*0+lnuY1%vAa9 zwn8aYLx;ub7YFwV#)}?V{Ok$>Vc*ym3K}fU51u@0V|3<3CCBVLGmkE@ZhhzK@i+PN zdgj!vA03m+MYOhCt^R%8zN#XZYt8nr9ipd{PQPwEbS31}iUYf5pW9<0v36}(WY@uY z-i<AC9{KzEYEC=7E-OC#?fyTDn^lr_%iGctKW>=mGg+owTvnuuyOc**s^sANW>?LJ zYk!C&x_AXF<g44g;P<lR{8nB+nLQWZu*kpJYIbY>IWvpZKT=YqQ;z)?TU@eF;#-rz z8TZ4-HnkkO&!-Tw`d;AXH)${T?R`A8ukA`&WNy2W=$X`84guBiEAp>gUo>ll+yAW> z*SyVIrO6Q<^;fcT`2wj!c8Qlv_POqB4)|JmGQR%Fuk-dX(=tt0hUB?Tm-kw-DP>XC z)Wr5?x4_vK7kTnZnOu{fcz+^S@Y0_<WotX5u3Va}WMABu5OLl|L2G5@w4;YA8jEhc z4!O4Lr}8WwJ5RUQ@0;KE{1IAYSYo1k_VhP%Yx8r>UbWft{6hTI8TU7}Pnhm|VO2_a zt1@qUq1aFD{XzMWQv#>Wbu7@2I;8vW+*+;=(#yjfAM9i}5U9(Vp%KKiHuh*lmFL64 zMDN_U`wBw~p2VMuS+PcPD(kk;_m6Y<($v-mvV5>(b@$w0Jnu(P^xCKb=5VpKv+Iiv zmOgJ_65Hp{X{>y{A?E3<RgFh3H@~q7<Kc}j+K}oJAfor9bgFAdXqf7}D?1clG+lkz zTz2o=XTg0ps{#)=RvfsN(`#OI$t^Wxx%2Mr83y%+-0e3^gZ!#*TKJTA*F^4~J-cFl zdSniNg;!mxZ|LG4{lDJt4=^Y%b6vSTO(Fa&KZ9G%eG}F-ZN^>}yRT}Pd=j5GAxUGi zW}KJ%GUn$-MYD884zI7sp8BcFeM!=1>pv~WDnneHyC!_Rq457`Fi-4@YfF`*O!pcr zE970;`grGG@9rag*|+yCe$C~5dCm_j8*%IDwb7ep^;K5S^=r#{ee~&y9B<XX3Hf3> z+;*O~T=35?X?L`t%)u40>u*hY9e47)i0c!{*d3qyGe58L-E6b|?@3*s*pm+D=QY^> z-oDJHFXi-8H|wk~$F)n;8d;r!w@>F6*y*D4U}NQ+M5C>p4tmp0O_j2ZwG~#L`eU2V zhd0NM8A{HMtbKoay7z1=FRxT9&A8)|&hBom3psy3cF2AHC+go3?ceL7c0ZcB_G_KT z(Qk#?|0KT5{95@j?L(pJrwvN;SFXJ!F<0SN_@Aneua_B}bx2&7HIYrE=ST5_qq>t* z({lD|KU^_K?a$MPVJ8jm_iU6g?05dN^XlIFGQlitN@~s$>jai<JzwqDeCvW|`_?Pk ziOX*uD(~65^-U+gY{Bbl#j*u2pSf)<tMdL;nzGN!P)Ae6=4R=uKMCt(A5UFX%vr{9 z)a=;xz?ixA7mG9OId^n-9W(G3P5-vka8vq`y(@OU%GMUmzG!&I`-PD4YqPBCum7d) zU)pl4#Mth?`Gx866E8WKKI{2=P~lgGpp0LmAJ6+m=2ooE3|><mT|}F|<!@1qbo=-B z%-ZIMYu>L4c(g0wicui1QjP7$xtek7lRFn~@bkElceUW!nwcW6*Dyb*suyO9aJY4U z>-XM>6_zm*WlBOmT)Me^m&&|N)h*ncGICE!eFzRa|5@RT=GM+O!9PVC>YQ86*2HS+ zc3UegT^qVtrfgSW!?7y|t$6%?=`Ekw>ZWBHCmVJ{X7*vNWt;9iyD{h59<D<NL(*>P z%zUa@f73|oSK`yIW6Qiht@(3SA*Z7?BG7-bzj8tBiz6`-n%){+lT)U}K0NebmYh#e zsmEiDPiFhw%;H<USsnAP-?BJX%yR7HB=?DyYxe#7DpUF)zf7^kwI|47DX*1!;jZ6V zy?p;;9{gUn<Y?TIWEIyiv%+(qGuiDdT}9k{l=X|&7v6ttaqQPlLH~mjg1QoAnmP?4 zmQ48+P$aiRM$@S)QR0+$$91!WYqw?{4PegP!(<r#J9<k}XQN)pS#ei?pNuBfYkJ`Y zla>U`xfkap6DAXGFU+wa`kan^@f^?h!AI+k-dia+Auc5&hI@l}&`Vk4h?<9OQOhJ5 zeYf)~22HV1*A-l?E6_2&cV$h|mb%EhlZ8)Pm}GkgrmtH*<%jV@>H7&1)}_UYzvK?d zzxpv<<j>~d#jzSXz1J<Lyv%mKoSxE|=o<QnWmik^a<ffe95`iCca$VC=LgPOba}=D zja})QMGA)30$!UsoqqG=)4!-w3j2ayulv!-FKF`k0B_oEyYC#rHcR%|zg^FEe8Pv2 zdd}il|F3ULS6?~ugMHiaWeR?F&o_Q~lKOt3r{+Zon`@uv)YwRUJoU6v_1&?V#S#lr zZn}sc-InA2<;?pqX^&^KpC5P`f38?xDa9yq+6uSBo)5lVeSBF>-!eUP-nE~}`9CHq z{ApI+#yw$n*Si8+Yel^|nv2+lN*h$3{yaZd^-`#hc;sFA+g*i?HTw!}JQC9?E4jiy zy%Vqh7{T^-E3<8W<k<(01D@T!9wonL<}CiKh1>Ejcvv}Dm~u!2Flv_1zAkPY9VBq~ zS-N;EBg2lCaP3Lq<`ew+BsM(cWzy#LmT4{5RhyW2VPDhzJ%$r1ZgWZHCVemcd8PUp zA8Va^)3ys8i;Law=NJ2J+TXIXNaFLu$7;SW0|nQJUl&OA$@`r3_D4pXS7f$;%Fk;K z36m$5pB8UE_nvVAL;4BZQx+9p<Gv?xI|+aJYR$HH3)?IQhVTi#4RY`IE{LDEJapmZ z7r!)9wU~2_W|w*;rt+8GJKU-gQrx(iW6j;W@_t3n$|4?Q7^eNuGV5lWTj6VdSUThJ zvga3{@t&T{e{gBzp_lL4RPN-k{qA=7wl>q3&m!w>hy0<wyBnn6OexzDws8Hde9LF@ zQS2>(>z;RqbOmRI275&CIaa@v-DfjlszG#s$%DPiRw;)nm+d*bPH6{E>Y^t$YVSIF zUr+K;ol<UeSh@4{Nv{gKn!jsqw9LEN9yg=HZKYv#LZh=>&~?cWv8d;AOXq1AoT%wh z%5+gsZ(Wpm@8p^fm(GM{ryZU+^>RRJv#sgU+qqqruE!`%;?Onb(FmCTx$2yTnZaAr zZFk<BvRKZVVo`oWev56zhILzylnFY1+Z5&hsmIprTBGm|R^RGP9~tg!*}m+_jPz1= zJ4fd&5)GI0?<qa_+rH$2ihNz!^2afa*_94|?rXl@b*cWZ=K5V5Wn|bUY^to%;5bw< zL0!LgtI&aWItIyBBDI;kPubE|^glX(znSIrkK@IYUEh6Jyq@>YnVt6ihc6xH{21xQ z6TW)cQPa<XRyJM>TAweq2s$9(9<4Av(%q~%Ub146P4?L@Cj)O^_v4@Uxkfzw{l}sm zf!1{yVxMO0efpy|Le!3@a;_Xx=aQ#UyQWUKwfoJ_8A0a+6F)E1NZ*opd_txFoVI_( zl}l|)tgB*}Tvo4t{pEvDz`Ki6mG*NUzkK9k@&@)VCPwRK%vc&G`{Ks@IX7}AW;5Lq z`M7?v@Wutk1#6essI}btDq!*Cz^Smj+)Mj*zhihFx#{`a$~3XaBV3<9l*OIPUe)b4 zYu}NsO`4M#GuJHS4P=`V5E6EIO^Lo?ve?3x-xj%lO<fZtUZ8#K#i7@Mr~0lfj{dO9 zEdR)jiaE;@ZLIdVNbWhi`)Xv;thS<qk<#sK*9te!+MUZSb*$ZwS#ir5=A6a6M#5GO zK^nS!%IYlLM{av=W*0Axw6uJEXRZv(N(ND;{lB==qJO04e0*fyuaWh4+5SalAG9Op znIz?$)UK>ilzM&A*1#eA$?;#MQN2~WpNfkXz4O}HwIyq7d)TdO=VvyZKC)ugciF#Q z(GoH|4t^}xO1^*mQGeXkI8*+@)}yJ#X1C+(mnTbCMJ#>tB{yjL^{e~V#V?=G#c`d> z_xlu`j(xZLZ*H99xKXkGcIeHXXNx?(MEzQuoK|~&>HfC<zKWSWT?fNf#2h)B5WwvB z+pq84VUyDrUz*9x%dFvjAzZ^3cueJRiT2g1u2+3#I=jNXN~deZzjt;#s?sl8aL8gi z_gr<Q1&S=^F8y6tZ#nZTUtQc?<6g}RFRnd4-0q#dM_X0r`JU&Obe|+WQ@ND=>E71n z$z~33y)AtG&aS-CbmIA0|Nl(JLhCvHz1)A`O7gkBR{@r<{I9a^d>~>w&)c8r*W9OK zZE067t(o<@WI|-8@65k`ua^9IANN(~RamKo+gsLB<&{S2IRY1o(u@BT#LQf7VZna7 zX|`C5sCPw`+U$!3k~g1zUvhf~qqXI(X)kX)nY=$@&QFs>kJCHPTD=Yn<o<1{6?<n( zV*!K9O7Wr&f#d7!&S%MNIv@BtqBU3h*0sCaL{qsLKO}oBVbwYuu;7r>JhMGtLZx@Q zco#@;c(Tp7qhiu^_=8CV$EVf03`MTrHqBUf=lLW<-=%B5MEvq_+#Baq>2q5zC`{v0 z{-=GLOrAV^mf9pSe-^7TlkrK{c2ApMF<19yY}$HVxA}qiQTf+K9dRykYhr}dqc+Z- zC2N1e(r1}ig^qsu*^|+C*QxlvIv;5CBd&2zv=m3x6Q3_{4?6Mu4mF)`mA7w&@15N1 z*~W9vl`3u9bm!T=;M4MU$EtcSC?|=Ds`5-zT<@??TszG%kY%dQshDd=e?C^-^2D+8 zZu~PA3#O04lawx%Z0^oW+5dG<z5XJTf79nSH%sceF1}iGqxZUAvW(f8l5={tmUHIH zXkIXFkPYK)m^owf3lD9-N#QSlJT{G~)M)GD|FQ7mJHNuiT`!j`**Yg(_Ec`K8W&5j z#6G3T?+*yh$>vz_d-s3dS#9x#Rn3c>-hLC=``)<VVo)5Dv{!<D_1*7zio9x7mtqy) zE9T4Zcz9`gqRfWikg~$Xe90VJjkWtK)0b@dl3vX+f72vhZ>zNhik7FkCr*6da8pRz zU0|n2k<Qn+Dd(Jw54%g=+-7E3z}&;wFWa}VGcL93=Y?X8)Vjr<tqm$7GVZpPeM?>Z zU5_~`OrM?lw{Cjs0iVd+6S7HvkFeY_GM;ng^!!40X5plb=Q}>Lwogc8xG-bYoZGBn zC-S1?b{r6T+)`t2uzF$WbB!zJ^)h9zm#Z_^iDfQsN}Tj~rq;x*fu5@G|J`QyXVaeZ zgyF<PX7<cft$7BT*$?hUhpD_f`%%(O|IQjmEw#MgDSpa58K+Z^CI1M>Z<ra(!SzG( z)qxHhW}zD_J`%E`2F$MKoH@mIEee>b>1NH;cQ!HC=JC(jcDn_1B<B8oDE`>b@UvL4 zX8bd!PZI978cHA1j$f8o=vTHkFZqD>rNUW<Eu=kJ*|-xUynTd(e;txO5bY5El!g6; z_x&rMWJN@h%ktW)bsCSAK2n-3kyg&Gp%%4P>GZaFQ#YhP2=JZkTGG3{WA+RFV;4Mn zideSDM+N$>y&9D#%_%Zv($gbfLNd2bnc;tDTH}%&_E6=wW_u@RTD#p%dVlZt>f*k# z{kFE(i_aCv9-C&Qlr#6?++O2!s~2qB3xkE*Rk#lwXy9tuwQAjRx#?O*Uk07il-nfZ zxqZW&f@3|_H(N#gS-x0K`KGZ&H0;N2)}7m>GCV9+JQwLaG1+t4w$tLWb7UL^XR<Gx zraWy%$i!7g+NIPxEiZ=J{WI|Ce0nI5-$^g{teWw9DV;Ai%<d0))3e@pFZeCVxz<uj z!++*JmAEHUL;qB+?8|4C<bHe1`1F(0Q8#Dp^z;f>nP+@Prn#~EoAA${D_h#ES1{>q z%au6Rr__7!rMk(Vqvw1l*6qH%fyE_b(VwqhAA7B3kzM1U>&DNv<WuzHn*sanWy+54 zjavLli{;4f*&j}B<?)x<Ahl-O%Dum}zPzg}uiKb%l{annt+RVQz7<y$&YH#gar0x1 z*nbg!t^}}Mc=soEw@mSgLpKFC<|zoj{<T!DU)9C$z~-KnynC+n{&{i9c&}Va?#r_B zImyBYIG7lv?|x}N;C%ST#R_p3$?peDOxiETiJAT`*|PIdL`Q~O;`)?O+xoqXr%$Uy zrxv`oIlSljl&@D#E)UrpwO#Im9NW4NiycjQ+}?Xv@9*R*5fhfaWN@JW_Ez4hAD+nl zVtU`kbC_#?(Uu#Ye4D?_coNCCxMb@Eo5l6h_oXFo2|65m<$K)sIo`RqJN=*ht#ZrU zdZ{{e(yiJ1ua$+ozO?JsG)31XDpp#-?lDKNZIAmLx9g(zy4Vo4#|4(=YoA;?D|{?` z{+@zcOOI$D%AS~E;vT=hNn^F>>f9{9j4F-dTe;6Bh==LCz0S<LR3tZ|p*Zu;&d=!w z_xww^`BS@j_Kbxm3|3hF{kCy}vdawDy6v82`Zd!P#PjYMnBRQ!y6b!IFTF3Jdp(4& z$Z&5Hzj=B&ccSb4%1LvpHW-<QPiv4|>&#-97nC3?eT3oiH;I3Jzve1k(c5=um+}w2 zt-g-m3%e)3S@NxF)pUb*f(blNx->cJcdzR3nzb?eXZ?C36^4~t^?yAvU&!!ZZ(|sD zfnmnnr_2vLSCn`v`8(d2^eLMESJ=Bp7jE+1I#|@0vYA2c?_<Wyt$I0m`%ml^e5JdN zwVoqcT;*VZwsM%vwmkt8V?1nHPBPD3ubg4rnkQ;CJA3u{-lAu^_m<sNPmg^g#ucM< zVq0g}qLkpZT^V=Z@Tu)IySgfFOOV4n!JVhpJmxe#QT_E-T9lC|PotpA`trtySF5Bm zdiVOpSvdau8`LkBaKm5xz_Mpw-*`%B9#dEvbM02z0c|@?e&t0x?>6#$kgNVS`)I-i zSA}hM5e>fcBqhHk&MH5vy!pkl{P=?cFAwhw{Bn+U&ZXs#&aU6|!yqB}?Y}VlhdvS^ z%Y3ffs?)0W=&Rbwxhv1QrD=a`$l0lPg5#gedD41>aZ}B&p5vW+tO_(`x{LH#Za+UP zv1{YnAGbv!TmA+dVCD6)>*;6R^Yxu8|DP*9vMpQknQkq$DB1nGbLN%Gzo{=n<`+DA zp*8X7yK8GBzh2T6P5JY|Ky2l-EQ6j4QTnn|U1b+9nC6wc{>GOj%hz5}<9Zaa)6Cbu z{Pr#<`I&8fyH4no1}~ao&3L9KaiwJY?6jS-4{x50^m|z~rCjaDT*g<bxiW1_>mG?` z<gMSZ^4n}n@e)?oTSmGsrM{$WSblSx-_PWdHw>59R*FsSYPCI5p`G}1p5!E^_n(fQ z{TY&CIp6O`fsxU^CD&5E{?VOUV%fSY>Ft)PwW2q7*msNc&EGcR*`{}^vrV5)i1P7> zoA+^fm9AewVRzrsrA?a_#CQuZFHGAi7^-9H^h4>$+VZQ0&vO-g_Qc-Jw{xpfyRh)< zlwC`T8{79Ad|G|GRK<?>yhGI8i11Yr+ukj^y+&(pu9st;=jR_X5jpnDA{V&dSC?F1 z{=tCdB+J2FZ<jvVbmYY^slwE2-EI4hyxaTc>xT(Ei-o3%9xYq@u%IGL;C1HO;tAUy zM%wURJ-+zyxp<x9vxNgDx0ud!ORRSLD7(esY+u2|dGkbrOS&g~+x4VIQ-A--1r~BP z<%iGv3Tw5_b)L5;pnUezvkwnH6FP8m=7Fm1Y5R6EOUdSEKb-n!L;r5;mc2hb=P$KZ zUwUHx&8W8L>ucAXy<bqgW2(;be^*L&`X?Um7T+mn+IPw9^IiV{9wzy9CzW#l*{^!m zvX8Iu^Wuf4bprB^Ij@ud<a|Susnk-&&!}Sm_kx;0ty6V%SF89A8_X@Kv(dZ#HgVt1 z)5k?N#q}}?Xg>%(xKrg_;+$nak^-L}PAP6}eR;3zgO1(H7cM)`YsJqyTy!A!+_zWx zpLg7-JySk=&SrC=4W5B*TbY_}oLOme##-tA+`HHM1??;2W&X}ev{Bl3?(9;VnxKy* zwVp*6r%ybfWv)KSo6(Ai_qk8`<|PUnPHE)Hx_r*?5RhH_yQ1X!%OJsydv5HpM{MFd z_I<S4+stJ0<j=xy`UO1qFRZ&h#VV6=_tv+w61OhV|JYXMvi{qv<dXK8$*Y=AxmK(G z{n;9-o)+V=uKRBL*HxD~v)Z$@Dq@xtudXg?JXCv9M_*EavElgTs@PYKtIWzB&1)YT z9G&Q*p2>Q=Nc%^zVwyqabM5=bw%otH^)OqBYeZf^zeuatCxLzI&qs)`dELlsfAZE{ zYeLD|UEd|$gkBf<rM`C7$a{BF^?iihlAGpk40k%W`#*h_#PH#$5JO_yWFCf|YyWQ@ zZc!=XvD4{SNxgXZ<=o#VzB81~y<2?JawmsD%Z)z^uc@xjTK1;;Y;Dp%p;z{)c~Q^m z_TJjK{p;5j)kEKU{r^79+VD@ZT(;RN{nx&%Go4m3Z~d1W%0Bx0?C7aFnJwF+F7IS< zY32BN;P0pPdYns-Y@N@drsuzS-~I!omERtJcC73_Ur;*h*1`<uS-d>Y8X|LaHO@2@ zpSioV<gu1A8^eX`%XO9S++{3WYWynYowuW7V`WRiwVJ{$idzHD{MN|4&nBPXAXWC9 z(d*sc9e<AGANy^#dF}`1uS$&fKFhYeziD&(49f@J{VmdJ=RcUPy0c$Daf0OY_wQ!B ztbO*HGwAF!Cy&D~+C*%;m)$T5e8#iS`tQ0&@9O_*u=PHBz2U$ru0OxBPTOxemit+G z-h=w^(9Y5<SBq88POh72o9@tSr2m0`i4xbpkGoFEB{gJLyy)rJ_Vr3=fSNytQ2Yli zhJe4ml}+UZhyC6x@xRX=vt9b?+2oh?pJa}|Wq-u7k6onu%L?nO7VG7?BIeJ#rdpal z*=4)Ch_2$wduvX=x*8iBcU`@9*ICg&nzsV3UCa3ywREA^)Lm<Dek$I)LQy(6dGn6w zl%hSG4zvVqh@5?NgP?be@tv9p<u-~R8~=Wsx<B-8=DrQN&IimScl&zFny&iCnUxzU zzCeNbMo5*zamG)_XH5~gJUxjg?9!(lCPg#7Hebl!tq?hJB6rM(V*xwv+=-c$FY#Xa z;hy8W8{#?UnLOj4W_niO$5FKt9;*6hW%k`F4W5~PV$vRtlhvg+-p-8|?(o{+{=YYR z&*>V8DO=taNk80~^>AlEPvGNITTiiQPq%qgd)wT`yy=UwFze!J;n8aL>l%(ecrxSr zES}@0d#}}>KXq(hSk<cCtC#6&6@3dc^nNBWo!Q~+8;7z`2Hox9&xGo#PVf9{CC5}# zW0>bTdqcK!^ZK8cTsNJO=Cm@pd-iZldIy_?lY*9r|ABt@7$y6?Pfx#IzrB3o{q}c8 z+aDV6CSG=aT(sDzhg(Opde_sUKcANCYs_DNWX8;b4#|Ia%(oxQ*c`~Nb0oEn$MR&@ zW*4(7k~+(5ltiC+&wA<mg)i@K{F}F%npW`0@s@pi)bt_!#I55|*LPjuJv`gu!I6G` zMyG2j{w#}Q3nG(0Ca|CQ6?>rM<lLi&U!GwP|2^-Jz|Dthfv@k(%dpzst<XNZWbfoP zvtDNC8cp=xnw-!#?esEzuNIq>N)d6xYhUduj&FVuA-(5B(j`N0Ik)n^uAUNh_HCxy zR;oOmk-TBj79TFw{=+7MPXAp4EXzE8eUFxxWT{wqaqrJ3`aH)~PFBc%SY38@M;cSk zBJ*m#e$Iok7s@R*)#nPVwyA&o=zy-F_x4Dm>l@S5ir;28Yrd^K`t|gr@0a#|k4gM0 zx_CmW`r&u;*>^>}c8HWan-#y>Pi@1THTpflZv8yWbxU{;ZC~LazxNDNcy^ef#qY!a z4y?+twNY8VwefDPhe_A_9YuzFQglN3I@Q7oo_}~I5~%w1<rKGk8PBK}KRJ%<cy>v4 zTEyGSA?Jgfyyj_y7;pOOxvcBRY2V&3k(&_<12$bcbk1dGvHQ(A4XWMJ0<T&g&YAsu zgH}MQ%F$<0fqN&VtT;M#(Jjx%M(1A7P-b4SPot9O?3t#?qMH1S>rP$t2|K+}(k19! z63czxWf!;4bMM*jT(>;)^or@Xe0z`2wp{!9inX-=lJoD2Eq{gVb147zYX8$)R*n(E zyX1-<pLX8Lb10eLRNbWO&LVG_u+B9rZ<l?_73F<WYqMSHdCl@W<&{F~QjfffNxTxj zC)4>1`<3XM3Dcf;doMkHK6B27hgXuX2v;Y~h+oQb!{X7jRSm)`TN}Nu=j7`b37;`{ zHj$nBb?bt!vXX`j+^?sFT;$)lWTx16xeN8H*E8+>kRt4D)qGTnIV^m})p>ue_#R2# zwBBX5u1nqnkDopXzkddQ`u8B1Aw2DvX29BG`zOq7;hg_>x7{q^0PoT@B}I?!th>4L z=AStdEl1n4M2#G`g!TE|+M@c=dU>F)Z<hLz=bP{S^WI@-66v~ASE=C++uy@M@1iCz zOWzw;P>|y(G;dOCspYG)V(0g*J6WX^bjhJeM`ZoHzgM^`Kh{k7{kim6=oaT~d+&AK zu0A2NL^nD+Od?I@)I8p4$F!_lo{FBi_4MJnx2@?M3$)hc-e<OwxSAzY^-wHiwJ6V_ zzl^NWu`T((>My<A5dBtXde8J5XPUT9{%<%K_S|u%+r@K%X}>35S{SL-_-zA2xp3C2 zWi#s=CMHk4RB}jb-PT1)lN1iIw7T9|9w98iqHa?XGHFYixRpxvj~T1q$(C{d5cjvY zUfOMM^0us5W?81`p9jyMZ@u`~=JM6OzqtMP$YftpcGwiOv95Q1%-+EL_wK$cKJ{2} zrjTaUbQ_tId}%ECT$Wb^|Gc@-XPTSnrTpUa6FvjJ7agZt?Yde@-#N!dU!CW>Rq?6U z)fsm<d``UhrK3>dDR)^Srt5Nt(ut7A`WI&W>#(?*BhhK>*0P|g(%}(k$-q(x!?%aS zQs)`R)~wju%y7LRVy^Mm?;1ipFPjrj@00DFdcW?eWLL0gxtH!H<$GI~J=nG3;qfC= zw&fgrbthtG((c5DD}71Yf69C_R9-#$IqR_I%NZM^J*&H(dYDb^xjorAY+su6&Zsg) zxveu#ZT!@?=hKf;*1rE@6PLVw)IBrLUt{8L+f)8FS6|v4IzRXCrI#l(eP8Yi|F-qU zU!CheDjuKzHLIk#HhmkP>~p#K$I?IkUHkAm>uQ((txwz5IL95&et#-^$E(w|#&)i5 zJUiZQ&zh}z(%{jJ8ES=hrskUM@OrR*;iW*I?VD#!yB_Fj5N&s_d)=F=NXyA7JN&=r zb7@VqkoDCm*E!x;Sfw)g!^-K08$TxWukU3sX*qgFRNSrp`we&A!--d3E4x(mZJoX~ z?Z@m5FQO|e#LQSPzN*crvpW^=bo#^}Et8xUJvjUB<Hf7zHoTs9PyErV^!4^%7H2T% zDKE@_5byc@#{p+1FE$NkqrU|#feD8+j)>P+U7maBgZs*FyENOn^X9zUAEi)o`qz1n z3oiY6j}=@J)cC)BvcJA%qVMxp=XWz+zxrAH!M<mScAx8gFSLK(7xmdHbGN$t?YkyT zzl?uu`k6i{{OslTS#~RV?B99q_L}}pH@)PE+~YHUBEk&=)8^*A@z2xxoR+xH>yJi^ z#<lY~$5kWlDlE^|RqnsMU7<+X;+c(J{j5p*7cG1C)wa=X>zm|xrwvsEl4r|BY@8aF z+?3(l!MQL{;Ergj^(;pb<>>PlXS{UV&(39;x%%336Zfp>6`k)NZE82&7U`WN!zZnl z&dsbK>wV8(cKd}p|DzR;B&wbcyS4e}<~z#jez$Y(zP)}`X@75uZbqT>)psFPOq*X+ zRBTzNGWY$Pul$=$w>_{^v@D)}q`PhZva_EjcAVbLclUj>LE18vmw9_{O7s0L4ev}g zyO$pu<(3oPH`CzvDTBisPk(1Nd{@-_ovAQFE}u2d=(wX;-{RWD6Dw<Wl<l5yEMQ?| z?P-5G)&qUn_a;C4eDjbsdyZ_dipI1>7w#NOKWy|sC9L17?&)^J$48|Ye=g_CvRyyt z<WH4n{o8t#Vj~W_ZLa-UZ4kq4Ai`84cC=~tPo89_q`(P>m}+lbI<d(n-1e`|_ABdF z-o3Ci_QDstRY$KS87eM17+i7HdF=|TuHL)9j0^$~`<=}xS2f%Iwq@DNES}`kx4I%s zO}(O{s^qUGW$*G?5iPK$d)6Fv-ak*uSBr@jt-86}&-J0TYm&Fa{FKI1lOBE3a5^)q zEVS=I{>8)3?3w<DEVQVZ_oz<mBkO{u)tB5Smjv(e){I|Vt&po@uvqnMzi#rgtFon1 z#j94!`W@+bdV7~31M@+#wT6uQV%YBe(|j7>Qaa%%2XA}ZL7nZDJOzs+!nS5{|7Snj zw7n<wz(d`<LU(n6TC4g>?v-I>JAa;O{i8kMbdd2<TOR`+MoouJUpqy$`QHgTmK99; zI_-4&8tIAGZ=72d?RR)x4cisd`<E|qYDwjEZC2p^&tSrqC%NbSmxzUi5+<L{oS87g z=YQvc)i%}7UHa-}<j(!@F8=ptj$p<17wgVM-}$W@GV#Y`$;|Kf@BNL=`B|~h%hO)Z z=B(S(8yS3)Cpb;gbKcnL-2G>2O<~a{jlzc0F^ZR34)X{bi1&9C#2>JTw|_3Q<9_Fw zty8__K8CmH{uDKz_<sFz26v;_>3ftTSfuyJ9nx?*%B4Be;)(n#k3x;qf{C|Zcjs7T z2O3YapSz@I%FSDK=ffobWlwm(@G1TF^}RpOuD@Msw~?>wckE35V9B8F+&bGc3-@Qf zK6+^C)cnm&+$U7OZ@#O)bSK|&+tZB;&5m7WN;r74A|_ivVFSx91%)SyGa7|W^f>)y zPxCD@ZcwVNwdkLdYw#y=R@Wx?u&$fSj$Gp6)>(Ra<$;+YXCGPAT4%WMZ#p{Rv_gW+ z$Ep=QGVPhWB)ubiZ*cV+1otFuV_BKI|It6rbOp}?-ep<Ki)Eju^&OJ@xT62_+W&VX zrF$mMyCS8#)Jy!YxAHn8uICIl<o<VL`((vPER&n)pYkbwMy`T-l7{7^HI4~?o+zw) zcBlHpBzra8d$<0V@Az^p&EmoL-Uywv&$;%?{sq-}?(c2%{xicafB%<eWxINnckRx{ z#oQN5f4pK|eLQE^GI6QgYqfvR^=+--5$5@B6J=)OH0ABrB~R0O3<Qt37+$Z`P<<)l z%&yL3^Fhm}npN}v=7R>)<ty~<W-t3aReytU|HY)q6E5l;OMAK2Ywgwiu=9Hi&i^rc zahM@?qRT=9M%F{zz7cn<&AC|9LTud~W$y?V=drBcx_Zv%9X@j|%j@V}pOT-+-Xk4v zzl%-S(^&A&txv{t7HDX7pD+Kn)0{Cwy5PuE4VxeDiyKz0lW+QLV|8+$S-QJ`_-n3* zTo)z7CYaeMiO*GEWdG%{l5~B%{Hlt72P0av<<?v)js8%rFSdDU=(Qi2KjqI%D{dEc z`|bJk@_(uOTih2<^SnR%Ijc0At55=eR_^-ZIjcodt<JhneAah;+p{Up*)Cl;_J{lO zx~-P)jY~4lo_=QM^wY-3R&a|;%zoLsi(fXaws60pQ1fkT|5Mq@a)s$N={vJG`+2W^ zSNP_ryLHuh<=?5h`jbVpt~?Hqah;ZVYVRL^UnL;{+2>35vcw<az4H98NuFz!d9we* zzHjGuzjz(N(lz<nnOL2L-5a^}3%avp&gXRe@o)@0-PpTb@zT`WchW8Sf{PM#KVI4X z`)GObo3rv!TNYHxuQlPAwJbvLR&mGv>sOjAEHD3!FKG07RrhYg%{8*u&%b59xp!Ot zkC}fi*-f$+J$lghton;YO@`~sC6W%E;@EPG=kSL~W^89p-{NOF@Bi-~zteev4Qn^) zuT)Z6eJm}0(oUtsT}j8MX=$&@JTGnA^E>#4?*-Y_jg7`{JN;Of_&wjYLA_CxP0?rh z0$<guoGPw?a~ZT-EB!tm+0b~TWzPSJa(WsiQOA`Q&N}>vFQGJeO~I)pH;(O0DcH^| zz4k|8&2kOS4I2!n1ZW6s?X%23VjpwR=r3bw&MSsz8&f7nZpfT|THPac+r5O0Is6NX z^8T}?rLEIQTH!CP7S(k7a-NUyxs~T!&huzQJ$sy7DbfD0peF3hBBAQ7te&iP=k%A^ zEsnl2@#E_~s-cM|c^@3gli+&)<Lumo<GUl)On6vgWO(b$jr9Rt|E7gW{IEKe^84?r z(|u_U8b#+_8Mb{?EB$wN%TI$PMf;d%Z>aeZ`t0t{{YE$5^Ju;>sQUZlMDm1g!;=q} zeX093@4Eh`7x!NVvU>`q+}>BeL~e<AR=}?#sRx87>b!H7_q`vyoi#51=l033bSEls z*Hy+ox^;x5am_sDuah{WwGDGOzZL17yu;F{IM&$pkey`UOhc<_YhU&4$`t%R`Tg&# zMxEbF<x&%hV|Mv-NyRxGdb_ps9)G~(SvvgEc8@lxb2_p;IGg`d=E3@hC-yDXaZKi4 z`+Kg5-1M2ccimrou!vvJ*Xg^I_4AX4pzquGHRp*%n5daQSX{)b^&ms9f65fMZ3T>f zR_?cEJIprc)Z+6YkCuNDxXNPa+JBKrVS(47A|}N*Qx>KyKeqS6nJM>w>g>_4cvOCR z>Y@C7Z+HHf*#02r!uEV6qx#~9x}1hqUtM-;-QBT<XVU+Q&gEO`<My)D|9-vw>BKXp zX<O&bjDHi@lgq(6)zvUZ#rf)y6IU~iv<W;Yy~=+yq4WK{q?51f?uxiJ<P-|tytnTC zw}<WjvhvJtRsX5;czg9%p2@Zo*FU82hM9-51&2;fPU_)Wk`jDC$lD_)f%(I<`s8U- znV$FExN*#4;gSHMBeSllwB0(u*7Nl0I<1<Eg05kVGsNAs7#&l@nT<mJF86enW0KR_ zbx~)fM`Ntjr>k!+wQk*WVrB3e4c)F+)2Dhn8b0k>*`=|3iNu-7HNB2$Dq6cOmvhW! zc(^dkJ-1x-YxUdM=P6O4bFTVq>|bbQba?%7zWg&y+y8n*PoJT3$)|o>QQng-`6G@K zb0oKJ`uRP=%u>frMe~%+O_|<Vnl)y2#mDBoui`q)F(*N#i2F}aP>}YjeTBKj&3C;R zY;77h<Z3sv#@FSQ&-{E+rSAUR2ZjDmxmU@oy6LSOd-?6|savW}eE&Lk|6%9$pIoc| z?D!yh{)NWs4J+5^?wrs5?qt@-;=QMK#jKT=UnagSXwn<cr>!$x3SX)}$&S^?o)mLx z-HKOt1MMY0KTD}l{JG~w^`X<dHp~u>nD+6om(#nKtPu+5S{W`Vdy1XC(43O;!KU}< z)rb5IdAw3@7o7fhF5u};i}^2#KR)t~YjpeGarWY^6Z!v-%y?}qcucmX+b(v2Wg)NW zfr-pNuOIsT`f&1sJCmX}SIBRkz3$mwC)Jv+y@iHp+b{mU`XF6*lAC(ZgL2-)wYm{( zFJ@<)lK-Mt$X)DrQHJrY=bXn2<x^S0Lys>h49~USY!a^#_Tu8P@2S5FK7abP_}$&$ z%9R;AG!Ncu=uk2$(zQt}T&?xAXwsQC3-3kl`j*RdWVYs!6rWjc8}B|j-08p2cHiqS zE7sO{cJDEL^#5_9%xU(tt=F=@UuP7o3l`ck<BZ8PMIWuZ%T?{&!}n~H^qe<&+v?Cm z%{Th^oZ8Y}sP|7fvOOwh_0}AR;~#x_4_!FYxopFvd1)_GUGA1&c~#)E>u*OzG{?=J z`Rn_lSMJ>&GnH?p$%C@y3-hilG5q{_qUzI=yXWy2oD=@ON-OXE?2dm;yWgIA8<=U} z<{x3<dD~Cw`mJdhdaF*fWj-`7y06jK`E+4TVpOWn{|tlvpv~WW?E22v?Kz#`d`9#0 z$LNzw4xf==d#ziv<ap(p&I-M{CNZzg0aNltKkJnyvTW%UEv@0L@i$(7T;|2R@P%m~ zoL@Q>Wwk&4sK*-@zp%ErSbIsx8qZzdcS_j?@XlM#dP{A_>!aWL-0J?!=-M*1<jU{2 zMaO1zo$u0_a!aURE}Us=YqI0<CBe5hzPL7@;fzh$!&6_Ic3BqtY%ynyC|blbduc$I zLF@cQL5#AK%pG6K)_cEo(-5@Q6f9S~{e!1M@WgW=ajgJFp+>1zk$amMGoJh`sIXz# z`0nrzo|<Tmx*NYzrI!kMh-qwhxp^;<X-~vw)7eXHyR-u59J7vOHu=tG&G)$Rg6yi( z9_BZ`X=(+}e0p~6$61GR8RVJdpUk)*Gjr!Y&qMQNbK062OpD(LrJWJ7nf89wloLV> z`sZ#{3F@`(Rt$+*#4sg)>ai|`@?{l5ef<t=^yMFaexQCqckA!#wZ`m4vVY4YJAY=^ z++F|d!YzJ{xupSzSI@KZ<(tX#Cz1O@K~%u>f*Jm`7E5=2DB5k2cwn!7K;Ap0n%5ES zTF-)FPQNcrvzYWEY;%;iX8M~?4SgY>&K}8>|LCdPx!yBF_i$m&>`q}zi`Uz4Ui0dI zopE@^;e{6)nB@GTBwBeEZQ6f6^Ps}bb)G>UJ2PV{4X(_Xu}tzoOw^=pa+x*TY(#$? zlM$Ba{Z((9Hh)gd-XAf4V-p=RqHdX}G2dJIw0uuOfXD9I?VlEZKPT3z_<Zs#g%!PX zy+2;>eeTRI_w8&PZ%OQ|ACs-kB2VuQlb@|U_1dSsd3SR7{J9s(Pb}CQSK)WxqwPWS z#x!9|ccZh4hc=m%T_}37`-z&j{e{ALTx)w@X3b|iUl|_%rRCMUi!8!=FQ>owt05Jl z<)8XS=|%b9cU^&ZZ}p#4{$_Ee^+m_b-x66Kxf|zKZIYL}B~`+7>8jgw@2-n(&3Uu< zD{ON^vX54lT<W;COWk#qx2mb&HLs(VEH}a~eJl9(b@jc5*;76ne>04%otbgS@b7Ql zMICQiF0apd@_W<o{23N&O1~%mSK4m-sh$0ty4|))7q=-VXT7;K=Z|iK=5y7DGw)Yr z_bcbLHgDh)&w6ZPe@~O4tX}4=(1qQ14fj@@l&o8RtmNma|BX%-@2@jBurm~9Ww{v# zRqg!VExD9kdroTl@eY1dyJ?z6axQb-V;Te2-g1*)Rhg;r;c0<=YUR$IlUK%ORBI-$ zI&S+c=$vv*i{Mj_E3+3)7oHpF_V(^gvEGg5`^wfEzFp5`alR}*w(R$gtaaCg=dRy$ zciHRQJfY3^LPPa7*E-L=siSwfdc!vZHmeObI<F3?c%Hg@IF{}7>|@`R-nR>F({{^C ze%K>%?q!qCp6hN3k`YQ#a^HT)oCu4Xems8r4m-b(rG;Jh^Ug`H7ykc=Md`<vx147F z%UyM|C%DBWZO^x#;&bDnT}s8SeSZuZgQHEB@vzm@W~HuNUKe94^mHF<%%S&eCStQ| zrm-rjeAzJVg8vG&%S$$CuKMrRxO3y;g-1`Ue|)OVzw>j}N5|*u8Sd>_Tdz6)5VynB zMZqT`UTQqH2-~PzP+k{(K44LW;l1r)>n&Z}UT8lS+nO`ctlOrGWoLe;e)HjPIiJ2J zt@O6@>&tlO<!G=icge=9qMIukpFdyOCb8g5vE$GAk9b?!mh@U{&0R8szw++3mrv)* zeN+1{u!%{ad4s6hr?r*er7y`(`nuk5#s<qj@3`ti&bS}>Jz@TS>BIxBw=QT$t`70p z&c}OtYiibGh4X5WKRZoMeCbU!YJH*UtiHYN;J%Le(?u_C%{wofU2`VWK>36n%a;Wl zvhP-8_y*@>eF_$dIbKjB`c3Bl>l=MM@nMTp)ucC0jhCOL5cMMG&4QpOMts+o&H4P| zW99s-GxFx`GCr{8_{PX*7gIL8`nphUv3av_%p3jtDivI1NwK{4AM#ZC-fSp*oN|1k zduZ%rk&89rKi8x>@dYN^yUo3r$<uPaYj3=YOwj$eGtckNj-2;D^WBdofg{rsw{Or9 zzb>^eO8&*~ua6#Pv8sBmiA*&-<Mn$%M&a8k?(fQ3`%-?D1Rvd<ea&Fev3K|X{<oZ{ zBXjA{hgE;&&mEqy|Cwa}+t+hGea_zJ`Tzal_TX7-IaN;C%vagCtWw|N-<)S<tLN>T zb=y8x&V9f29Y;&P=PLXCqj%b-GAs+a-P&mCu3#|pOLrub?12S-Vq%XieumX$%$vXP zi1^z4?Y-yxuNSj5R!nr)lP_KM<Hh^SF7GTHBc`eUx2SAbq@8f!kkR_9E0xyxlxthb zWf$!KGgnN%G4Pk_&lM^Wo;d-!3=Zst?-GvQv282)sw*<Nr%WWBS$~G&rXTXLFEnrS z@O7+QvZdxz#MUQU#3e6!KJN2(4V>1&e|(OL-QAr>4W4YZdQr4?($C9@YA;im{{7O5 zd=wFLSIv<3>P4#^HEMepTQ+T8Ui>eD<0!vk)5G#rg;EFJ-szsYNMgsNH^pDe{w^^1 z{n$b=e%XbBKld;F)%&6N{C(bcg~anGA1{~JXPnF3e?jw%I1m4+`;7nIN9jJ$J(0EG zbMM2w_qX%^QsP?h(LTyV!(i1!VPCb3r9x$|FWvgHc#7+!smGM3MD6&}ka_8~msX_B z>wOdd%q;)2<MM}o=BZ0MxaXIw5{qEVx|!l1SnS4eGcQT?|86H0u85pZ#~+2ID%fim zv$CI>^?FX0rhc9AhIPHyPTgNV`*cXZC)16eGi@@M73&-)o>2S2qr1Q~b;}%mNzNUv zuWyKQh1YN8yOy=++Sl#;T<JDHxn9q#m7DdK@dy*kslMgQ|4yE<aWb3t{L}9D#HR04 zOv*71k92KL<)8hWe|7(DuGf)&uQjBX^ahK55<KJh`Bd}j{4X13vAzCv+nnolOl|Ae zHFW_iL`$Qd{0j&aGpQ^Lm>aCB=2`fg?W9cDy~TSjG|y-$Z+tkd@Rr$2e(&m}gl)}A zU#^sge4TZ%bi>`o1wreXg?g-#HZ^R`{Os?}(r(gm&@y<{RfRQ6m8STXYO?;1dMfVI z+w;8W)M2$H^*nwn`Ghy|O;0PU$rJ1G5sKTm&HLB{Cl2nKm-2G5iXYl|q<fy6`tG4D zqkm~{^S&ic?kBF<U+40Sp35_FQF&Lt@TaV^5ie|nS1ep;YI=XlZ;OqJp_A&}nSZqB zUOc6_{#;}GiPar@)fPXw6SU_ZPuy|iH;UEMq;uN8R_JcODHmJ%UQj_(Y1Z*$H!q}H zNOLfo#C$!k<MH&|pTb(>4HY76VxP`T^_;338soy3Vq3=5{Nlc5CxdtP->m-2Yt01W zeU|l?<vLe)vrYH%Q!HYS@HsxYV=CLn<Vw-SeG}$>Dz;pzSG@A1`Bu$?5nEU6{60Z8 z;STq|(xZ!39WA*3)^obpojHGME4rAK)w9fJ-ioMXJ~lz&!6fE28q419?XP-PBDLkZ zPgAM?a@T0L?_b?3x2)lhxa%s@^W5`jfPQwH$mwmbn!`6K&P`hP!f(y(>^DKLk0ibn zdX;}={bgI%U8`PiyPtWstt&%xf=H65<?~xIbM<B!lx_R}w&?7!byKnhu13^u63JNd z$A*zHVcz0zzyBAM=<^1<FVdG$@~&HOS@?2W`<H1G|4fPacl<HGiRDito=M;2H2+Tj zvLo}=rI~5FZ@%^P@4kETOYPnx!OP|^>#vM#n<Zi_%KU!5^rjbOYm;}*SiI=%YpcUm z7MgoQoXhVo;M^c3<F?n0ks)Nt6;>IB%uizT1Yb|j7WSJM@nGWIlas%6?_-crGUo8i z`C@%F<{N*=Va59E-qL+}Y>7TgB4uY?xjrdz*0SIlA5)e~uGbaSb>IBC*VVxryh60& z?5@Yp*=DR)pQTx-`J!?2@=7EBbGN!VHG2+ksChO+fA-`4vg(NsD~+cZnLDnp3z+rE zpk>GX%HQ&0YZ@!Q#998@XDyW^m8H-6k6(x5@gbLE)#uf|cRijbG=*CyPM}0RBk#NX zW~E^Fg2;wRdRyOdRULa}usHkcI@XP1amDAB>s{~su+&^(-Ck`4o`AaxS2HEBZryo{ z<=vO=27~`ei++YOIdYi2S^MtOpATzx>ioJl<%4JfpXoHCRjW5kwmh0xYCXTua>0Aq zBmU`LChwU_lXqCDREPBKUa?}!Zv$u9prb+Y#-^VSC01mVcs9L|%e-uQDs$x?)|DHs zT=zNqhS&Y#w!4m&6}=2!A6qWzTDmVSC^*mAWB$dk{-|u;H7ma`KI+`Zp3E@SATZf8 zvtfH@+7wBnr;OSBC!gBZ?Nf8$d9?1yR>dEsE1gp3oSxo!b<b{ti(BtIuRE+dKh1Gf z#f5$^7u5$J<~~o~w)K4O4i~|Q)T76}D^Hley*TrAL8s#8w8WLtt!)7xXGd~nXy<<2 zk-96pH}~Y@`qi3G7MXaJ<is0w=z55H|J5)))$-xnPv1_iKr<Fs?M5HXHT6^O{#jG8 zy3&Z(x6RXR{?AF@9DiOB{1~z2AA{kU=|0<9qt3h(zZ2tSu;RI%0C$H$@aGkuPF`sF zzxj83C7(yf|A`LEjpnBqPW<ui*OBxMhwQ8qzm!dv^K|&_p6F22>L0K)TH}CX5#!y$ zjs^3bWiqb5j4Bel@aE<r_Ydpl+su}gpDQVUK;!?D^qSI5rA~SpEr+HR{+qdg<9+IL z`EL(n+duqC{Fit>{!I1vZ)Lx=>aNReT>s3!vfEa*{&RIjzbBW@)0)b^^P(ms?tOoF z{jpysN*WzpPnqt0R>su*U3;pK+e3@<6HM;f9WLaMJS5t3%6odW=;YNev?}N6l?a}0 zYs+$a9Q<)_t5#%(=IrJ5;@{Tr-%E~vQ}Lkqh}(JJc>gP$n_s)JoZ69QsK`6(*v*^U zLpZ8uJ@ph&UA``iRqpgxqo;Qk|6?%fPV|^+EY|zG%vk0iN1$A}d4+p##}84??@Z6@ ztK<DdgFmmH$Ugb;-{6yHz0^I;<C&Z7cl=Xuu4yVzpWDD}aOlAox%jh-eB`bQ?%SWm zcxdB}(49fc*;~0BvlqX8%{p5xy-dGQvq*n+`O4z%_om^Q))9FwKBxJ_?j=~{xter0 zoDuIk*>~rB?(1CFtvU)jYB$C3XocO#4C9r$8frNA(yHr;{(reN9Y1F{oLFvRceefT z&GWO(;!G-Czuudckgl>fc>kwg_jJt)=Y0^0wv6MsUQwK$aNtMBpL1mvlC!@ao4j%< z+q&zQ?8SvHx-Gr%Pd>dMZ9}~O?|<$Rw-UBWEqk-g(01|BTTKgYzInYkRc%wU#-1kC zMVtqM?!A_(TcW7&m64IL`eu{WPO*t1vrcAjJ1LT~%6rqj2?>`s={;hUtmyh;<7JZ? z*~d^hjnN`2Pr|m}y6VkF-9-5YL%CN1hko`gh<Ove?d9c^&l|HCKk9i*PhL^+VMXn_ zqKtr+D78)Va__#%%`(|9Kc~h`X>Xj>-Fsi&?~P;k471!)yV!u`nBxqd18oxO_c)t( z2p_hNT=8__?pwYd3R%Vr^=2hqlokw8emrB9q*U9fX(^G{xK|xq{qI%B&UKC1ubt)= zyqM5FWtvE)2A|IHV;Lm@LJx~RYjOxhyy)D-@TJd`?Z3Lgu30m8t(OT}$PkllaKikf zZr4^@uk^W(g>O$;Q1UcqUnSS>KbGhAbG%sJ_lo)S@+av_HQs*T*!=M0&iym{kKS0X zDn6msLEqv3{{_rzq-VXGntAHln>4-1&r`w|Z(6^>#9Oy!o#D!~>$?BrcP9rOv0JIU z?^vGG^d)%}hi$LeS{_#WvPZYd!FSWF2NpA*y1wv=?I^L+5$9#_vfjRa<*xq>U5wAf z!U7YP{{8&^(|%ToG^fZy_0~ttpU&1EDxCK>Hb=2#hwt-8c7k51bM}d^-TV5fd+qCK z(<|TqeZAMe|8Lb!|NE~ezW?|7|4%-TYiA$W|M84ri}kiX*ZMoKHoM}7XUdWOD$Adh znUdo6*A51L{>Lw;Uwib%w%N1!C;WI=)x*vs-nnnh>Uk2&v|{a^`^=Zz{kUts(98Q` zU#@wJ&0V$im3)8OVH@7%W_Eu6+iPa<eg0@1`1E*m*~8k45ARnfol|?2wyr`_#OTej zu&IZIOEq^oJxNbnc3{0q<k^en?Xq(=_1%AXyWDWvwr{Vcb0i<l-FK9+a6-%F*Kz_U z<AR>g+z_f*Q)JZNK4E@E$Ptg~D3-@Bnj$Y;iV0*k;F54u)9G&3DlRo-pY!je&YF^W zlh~t7F6(T$m}vG#Cquo$YxexKeP^}pj+mTYf5OpjMuY49kofeuuhO^o#V(k*&Ht`R zI(NOa&ehOAokuf2?X8}a^Ee>*vfj^U%M+O7E9S?XzWr>Oa7NbedG{XMA5pI{{L#6l zP_E?i{_N|YZ*fhTds#Y3vHM?FpG(N;N2aUZs;`m0JNrd=$`lVH6TXM~+zl&=oR)7a z&h__pN&Mm<n64v!_{Xc6$$in=IX<1>Yfn3N=;fJHZ_b{(I5RhNbz&>i?xPo?l>b{U ziOf^$6QAJm=2~*#o`7V<?YG~j?T_1`{yFFR!jp&o#XWjbI`7i;q^NZai8-2A940y* z<>j60s8-gZXMR?6MrW*}v}wHE!IP^N-LUlF>%Sg)*fa4`qsY^}7ezGEM0tO@e*M@Q z<NN)@^JZ6nt>|+z*RVuv{ZnE4O6hA>)`wkxx2-)WU|*B+DO$*M(YLef)Q$K2;!Xa2 z)^C%qyl!q-aCJ_qrN>@fm!Q^t{g#gYRd&9<ck`}D&*OTxU96=};>?^EJy~J}hOgJm zy!1)tlo_AM`GuKRHh<n0?eQ|}uz`!8^Uha#X`xTH7})Y0th4)2`T1=5?P!<tDSnl6 z_-Eb;J)srd%@OjtHL;oX$dm2Cw>h2^7gz*;`Y`#*6Az7>{2#skEcHvtUGT8>k#xp^ zy|r83M>Z8?9bKAwB>tlGlIeTmKi57xf5Wo7!T)gv!<6T_?4Lq(gNjuz#Xm{>v8_{D zb;Yr1lkS}8ee*qZa<Yl?&c$E4T?GHWsa2SBLegMk!-YQG{mI+Q4#+p9KMc?av=F*K zCGpOzgSxLfqZS;Pc$uAh(*FBAHUR<hDPCt1jCt0i>Mqc|^3jj&xz-<@Rhfc6ms+mB z?_FPP8L;k9>uF#2$?*~Er#W{_U;R~g=G5)#`qEj~%x20T{c>Pe?@?~mjrL#G-<MnP zNkq(Jv+#y4v1el3y&G3gVzwzW6Wr|?Z1wN?Oi#wx=S!{MnA!+CdB%LtePTAFc=o&V z_ckw|n6>w&#?$$o1s}>}B_~^)+_G2XPV`2rvPsri-^5Z+Ib}c7DlU}z|F^nxi_nt4 z{^=Xebnr?v7#??&H9OC0k(bi^?evGJX<<7Rz9nw@XpuH8E5xNc(o5-Y_o>-AN4HDF zcvhLs;3(l{5HpyVc<+b7KaDGK$@`}4wSIamSyOYlk(ut^63sN%^;^$m%-_luDCBJS zc6Y=6pQ>JZZ+KdEzfr9dPw*Bn=(&_15-=@9^svcsqb=W-bL*ZH@-bY=bT`Y@%gsZF zlfmx~2j79K=US#TrvAHG^3fr2*@h2?&jf96lD|49lUv(OFImNIpQLidfsF?av<sZS zwSnL64fhdM=e8d;+wy-OXgjIf`|sD@$=`U*W=!3%uw{}|q`sDeT7na^tyApdI~U6= z8kf~-MsE|dH8>WXoFko+dfN7C*50yN-)w8o^zz-3`pzIK786nMM585gdg|P5UteEs zbZOB$eqyKB%J_GJ-|Ek(eq^1kuO}X7p1#>K*Z;oGoyn?+5^7gdGG89za>$O(&T?~k z*iySy>`W_boritO{5ava)0zJJKHXFya!cv^+4KD>j+-O<E?0W+{oemsbkF|3o!8jD za$M1nR=?9&yWp~A>5aVQ8_eGpNxX{m3UyvN<=zE3hu^8!3X~`7hc9{bIa|}4$NjPj zAJ2WJZg>0KSByc~ITe%FuaFZ8eq!sUD4+euUsGdEwi3s?%(owR_=-s`(7c+xV7cQa z-p9u8v?>F=_CEhomNs{p>(dY|#sVKrx2IcYHuu&(akMOXZrQ5vVUqe1?FW@|LVHrb zmj7~{5IO(Y#>|k<DM8!Mrp$7?eaNqGRp=~jRrBBCo5V5?osnBrT;8`#?nv~BeQ#$y zTTm_i%b1TNk?|N0bFP>w_ir7q%iEl0u4S6ILo}D?;SU{7uY8FJiM?B!XRf$e*3@j+ z|0lVXuT;^+uGb^In(dMAhKYK;0t_rcJJmX7^?k|`^qpI{Wz&aeatv)Zzg%Je&cN`7 zu~pQwUgI}6gVEjA8y^G8f-~3ZOyw`$k~wqsZXQmnOOBayi`iPM<x>n!StSd!Z{xfb z(cR@6^?|K@;@?v4t3KXWw|_nm|0hDj$0=;rvh`0JgaS@ms9C0O`@T9&y+-YhN%pfR zhZf9Y)$>`o)#5vg^@lmOYx&%ZHu)-V+5E}EsO)BL|Kc^GE9X6b{Bgx=gCD7ORcDzU z)T{&<Jez97+)i04wYE%XkNue@`N1yqYN(CQvNyYX&zurHk!}}tImY(8jsEeM{2wZh zbkEe=D64l<_iW$1&qb3jz23&g+$^=K<e)QKCHuqvFT4wxYiIG<eVZNCESSI6k6Zih z%rfh>4;If~JI85in}_i?kLZ_M-p%t_veh)&_r{A_MgMJcBV(@j8`{~OoU!)6+3Ldj zzMeNH3@*=$pT?j3_;u!n$6pTIyM3d?*w6a=!WlC%Zp>0)wr+jBD7fmYQeQ#gM59<o z#drHJ$R+ikUb&*nL`KETsO`ruqoSyWtoMOjJKspO%+>L=3uQ3$IBK=?A;a`L+j`W` zzbn&abGMmnEq3q1kLya;{?6Di`^w$!cJ1?jR`pC1U;3Yy(Po;9_T=wVKh3CWFi@ZQ z?|uINvTg5oAAfY~;AEdCe-6FXxsm+kz1q2NYp0wz=4c=D`oODWC$8o=m+}|Hoi6+T z@7C56$7(XqF~0dKa(Kqkw=27uY+p|(>krg?Id}3jNBj3Vd#zXfm+tbfjV)hT)@9S) z#<*kFYktXHYo%JQ72fdPKH=C_wH+#pq%_uk+dExth1_M$?pJ%?T@|wxJQ;ODf_3Wb z(#jbA`CmJ>bGgUsgb2N6sbut!`*-2E>^J-Viw35AJ{&^){AQ61D~k3Xd7CG}@F0u7 zeCFhLECI|V=9{_LgjQ_(wd1wg?zG)evQH+g-p*FFH1j5J`%<-u|3B{C*?7~VcyS>U z|Gk;sJ@d6s7r92yTlzdAQLp&>l3>ZK`n^+vBQrH0&*j^xn*Afa&?d@U$<t1ZsaID? zPfar{waYNUFs*`tr77QXuWU;h$5K7pYs%s2U#1+6&@9cLseGJk+G7XH^<PT<X$2-S zm-iiruv}kt!sB8_`;mk_n!)wYZs@Bn{WRI4b`O7<HGeTvJj;U<p7$Af&3e8u&RSw1 z@-2_4V%Kp&dE1Q-XBCF7J7HD6kEiNTqqMio`>m^eoIhv;EYIumF0#D2r+U^&uhV<} zE?pdxK4ZqsY1>YmRXYFu+txkt*>*k^GtLN<cX6Lt?DN_CA-{R1oWYm&x<_qZEDl^I zosU;8be#2TS>7bg3pNrqZ70)ZCU`GA>FM*%$6tl>PV4WDKTP{g*C{B=#^-f-1qJx; z30=V&@Og>1-PQ8R8W!&-)_m*e-DV%(^ubg0-&U?_RTG2TH79nOZd#mWabE1&uX$39 zi)u|BQo4JYo?naGq4<Q)I%<|e=2u<cnXm7*-<4nQ9P$6s^5TQHA{JUM_$j<0m(|Y1 zH-}ZS;_UtThb`6}Ie3<B)_O6I)lnV+pIcA8-z;Cw|IqdK?~*guZZRCVy)Ag(A{`<1 zjod9Q4(-K$!Ff#bhBk4*X-e{TlkT{M9j$Bdv+z4<&apAQvS@CzC;!srhMLzc1>Va& zin$)vDfq)F{Z`pe={x76u6$lG^PjfKwI;V!ET__^z0j;}*Kn=mzPF{a^;C9@8{g*@ zKRD)c2d{h0y*c*EXa7US&9~NUj9Rem=7hY&&0nOuWs>&9AFX?uy1immr`)0UIq$WD z>drY9Jlk}E!`4GNNBFU6)n=xj;cmvs*HY4A%Fa!nz`j^D{Fl(y1xug!AMCulKl#(M zS7#Jg1Y}+73u$0H6?EvV-V}Sc;0BA#_dD-4ewh>B!?|G1!(DP7hdxd=EA5-*eCzMV znY~9pdHL}jH4?e9@ObnQ&L69SetcVyeq^W2hRnIMzW8Qcl4JT=!hb<ec+r9FYa{Nd zyb}JiCB$#8Q>sw9ug;^RYr<vwb%p;Fy+2>qwI^@JoGI-Q)(878^Sa60H$Oe?Wy<Y| zUvtE7r+$+=*><yfNo?Nq&DZ!gHQzX6W$o%$`1IuI>CQTd({vM9{1so_I<zNt<8s$C zA})JH%U-dnZ{z;PqRPOd!790J@7lN9c-Q8hF4$GPUHruR|G`haKDX~Ra6P8CF<kh_ z*5~KafAwuBRCt|~kh*c5wMSh0rs>C~#B8wSU#f0e5b);X#Lc-o=d|X?t&0D2->k#d zx7k(y)DG*J7Tz0Qi65I1%;!2m?%frGB^?r{1myUdjce6hy)2gpNl*V*XluOrK+clL zcXL<OWV3Y$vKfR(?hFr34$h4|f49~C{HDTLZdHFT+Em?o{a47H!(Nq-Kb7@ep%!c8 z%bzOSbXl6Oz6pO5`t?fPN8V3MeWI@OiFKWQlEkv-{O6Nvons=MC;RQapWd}P&7X&L zm5aij^fKXkuF32Aw(c>r%bn9($HU^^)RTDW>%w`g`xYO6&!%XY$FK8#!9J6JQM*b^ zmwkWRCSR7`tgF}9oK`=vr*)OoOwYHSbIxzl(bp8>WYxa+F5g95qv_#_D8W^>^7mFf z&-*dGeOmKQ;o7CfvkpJ~l`VDRp7TbQmZxX^Svv#Ic(qD&&Ju~S*WzJKu3oR2^HIsL zKS_7<#M4>!+Fl+TBi7Cmve|n`@aXeHKAx8z2!2St{`NPM+LN;DUp;>?bgqB@!*n8t z^`RZ7PrT$k`Bd7a<|@zE9qOv@`en@KAN?G#JMlrV@=XQxeIDOF8M2;~Qz&x3>hbSM z@B1hJH%xtg?W2xuyy)Gx8n^h9Ex%b5*v&bT@w}<vWxHel+dYYWnKugJl2yfgm?eDf zH(9SuJj3VW5`RZ9!?sYSd3RAjWv)v^!i}s(m43z_FXywJo#t>iP1nLg$9BS$Jt-;I zHai79i&PhTQ{H{xXXZEl<6N(L_wz4U@%$p=|Alim*~F=AF#P=P^}-#KzHd8RBX3h* zks$v?QEz9Jc|Gqt1D|&WN!e*3Cpx7HJoi1b@_k~Gxph(Kf&bqb1SQ{}uln@(Lw(Lu zl?l@S<YeUzWyPM=&M}V9Sj4EI`Q!#uT12V9()9@r#~VVYrQck^CQ+fUd}_s|oWl$b zr4bhQ4{4b+9yb5M;asZ6)Whoi<-h$Iu?15E-xqtnjyn9+tXjVD|I1TBxo6uy?cL^k zgYWG1pfg@4>*q`}T<9*SU%h#TyLVQArux-m?UicJEB&tC+IKZlOewEED(~(_t9FxT zq0=U0Om?5y9sb_bJX(O^pQ-%OorlkCT=UEDw0FifS*<wJ2@8)HD<qzn+@vdJIyEuz zLfck8JGCmMO>TGR|6|N%(o0glJ;77$<^d_$wWU739XUNRL0hL?vwD3Yx9jxXT4~Xc z_^tcjMQjbczcg_7mjGY3*>fws?g+36W*<;3%5@3N2(P%^yk}LVRoCIk83hZ|#n!HC zx_S1%93F<SS#FQn1hgBkE{(O^J$35j$RkRd{)f7~{msT6uNRS>Exh{K?PX!MAJ4w% zcVZFqzH{QG>aVS}XF_LhDB$wi_}4G$$=~VOv6n3musmE-s#6>0U3jozR*4c%VoBRU z&t&P@LYFV!j5(%f^7+V(=`E)A7O`!G7Tl82bGMq8v7fmsEG|}``P*AvPx>kA#piX8 zYlN!5Zt{}4`lnurMQ7`Z?cRIloL#Xua_jUop0x>Q!(2bFIPj!o&;LEOc{Y_+(w{B; z(iewad7BXS`<3mj{|yJ{+yCMCDUfr{e)%Ks)bhC9n@{fbK6vN9O8p=I|Fyavx|an1 zSsY(@bnmro|0PUz9WH!s-#GK}*OYJHJ&&2*@_&6;p|!bo-gKqad3IOYQnlyurA_Vo z+^F;Evhk<9Tio6Db~3v}IW8&cSKXYl{o&yQCx2c_IBp|VFi~=n_$8J1Y|Y<0BR4sE zbM4+-_SNErtFYbi`@%}R!i)#rBsv~^d!R`_VRG5ea|IXpZC=ibv*Et(fA9VIE9cpB z>y!4KI^!+LdY(_=@#WUpIb!z?OXR)ewG`>OC-$9XzTcjW7e7@Q`LnMTKELwNq1zG# z+F9<K&LtVXiQUm7Z+|)?<lhChnD+HPlBbv+JDS%on4fS*-k>qYEKEIN9ed!vY40ws zN}H*{w18)>wW80WpG}@l=lgc2`h2oKB~)=gX8*=(i$$ud<YKcgJ)C`Rqlx?>RiSy8 zau)g5aqMdB$uTdy`+CCm&*78xj^_6r+`0L+=<-}PvC|Sw@4a$Yr8V4nb;y0oJnj44 z8ww^*+QzV^rz0WPaE6OS+`)*lsJ_GY-cvs{tj}e8{XzP;=BLEs4_4nF3MSfm_xExd z${p%(KBQ}O%q?f;#;r57lYg7d@7VoU+3&*BAK?Z3pFeHf%E8tUwL&N;RQH^4vdh+u z;=Yp}cbv*Jp78r8?|r7%6F=_XSi#<U?aGQh*USH%-+JXm+SP&|M{Md{4}@R7yLrtP zNuS?6=gLlbEz6Z`TXNY%>DxI5!PECmRTXpYDi-)`tX*u+Y1{o%d5+}Fu2h~MGuJuF zaWbzvyf0X*Giq!8wvc<%CtYXCb~x4X^RNKRk$d*r>z#LSn(xVuz4S5vqEE!lSEnMQ z`E_KaI9;cdpGpwySCWw_E0+(BVbuNUlI&P}`+3fRl7~gNkN9q#)>VA?xroK#Vv&|T z&i58S%n(|`(A)Fn^b%IdwdM*3HO*Y#mK}cBdDfx!h^6e(C6cZSD|{~gS4iL1aeDjZ zReMCA>zEnu_d7pFAta)fUsOP8snFEf%-k)p!UZeR53pSHv<Ti3@P20AsqpH>p5Ir_ zx1FKqSovz!kzJNamgx_D#lMSR5j|$@|D+|wrsO1lLu65^kM{A#L&d9p_&8cuMP9!5 zR^+~FT;Y|bT7%fdyRw6ym%J&@b=BX!ZGHNZm9}#>uHF;*P^kNtNt*5wDKD+w(7xSP zes`8F+4LgkNvqtoZ5x;>xi5qk=bf;Wsm^cxx^7}(nrG#n*%76R;fHtTuInleRhLgx zDh^DNH`BV}#wwb%?R44JkPOisrTaqyoNT98t>cklc0XD&`TFbp-!CN@kG)iWUHk9i zW}f=D^Us?fP&s$b;(f&2_wLv2ZM0fWC$Y6NZ}nmEJe?}W+Q`HD&ZO<T(i^?A%%Zs) zpFJ@vkZ^u|#b)!u6Vku0d%7RyD_z&O@BG;=>6)W51u|3lpKtG9zklwN3EBUP*4|n( zb(+;~#<baMms%<M=l{x{clzF=6EU;*J!m>RMLDQHw)d}>jmX4g|K+BUKHn^E{j@vn z?>w{Xolj%4+3nf$nfI=m)ZhAAN8@th*M#e$j-6#(Hx5iXcy+ey(aF8s6_*v|e75fA zi=VFaF;S{CuVTgXb=)EI7gp)+`&c}0jhgJtBH>B06}!Lx)4rS){EfNl=DtaV7XyAd z1gR~aur4hl*2;=uzGBTK#Rq%_hFtBAOa|}1Ye;lB^VU{xp3r)}@6AVs=XET3>JK(d zv{`mAe%;chb=MXM_KAhun0@+bkR$8YIjekA7b$9b3e=r{6Ptf}I!9vqstF+h$M|2b z+H<UZ?#iaE_pVmzdo9^_xmSxzY&ySOtjqet2E6TWCkMJ^d|TA=<95l;jlQay(`DO3 zr%XI#<~rr1!1Q$c-vVD&1=;B(^*nW-W5aoN-aF4=mPKFZ^cd}DpRO%#TDS22`_t1d ztTDU3&rGNH*zwO+%Ub0RZuxrdnP-Q|#VSAd=g*aAS+6;J|7X;8)@wU<KNg>}M)<&` zQ>DSLSNlBpHqn1}==#Hahx39$YWfzqe?FX0r)+Dnvi4$a%})!qsah*9s7wk|F_Fu- zr>1!O;KyeHrn5LxkL3II$Un<>oPMh7cx<5X(!!;C3|@Dnm~ByH=F;diUF(_WEX|~o zZpp=<Rw<#ub7c~zSCl~579}wQ5gD$sjeBFIcWRj*<K1-5CcpJ2yI0cc6GneLYmaK@ z?Xus*cCg^^uf^A|eQMOu>^k$&^{e&+N6V)HjXbiYQ3hf~Q}ymh^?B@PU45V?XhrKE z{z)sWx8L^3keP4t%y5rNytR6u%;bq_2VecX8Gkv2<#X%xf6S~~|DC?y!Z1ti^NeRM z6PuS`Fc(Rkw(k3HQ=z%)o7B?EIhGr>hO82ZvpcD$V<%Z&UF&|eH161})|h<^uZ(!D zc~~BM6y3Ub|CavWRhCkw68~gEI2zjjHY~3$;E{H656|=cZ}|bVMpkt5QRaUS4@=34 zTsZRlrt7^^)s^eN7jEyFE~&EQ@e+AI##3_{80`EfCht3GR;Xv5r2hKlt-9%%tV@am ze?QxBx8-qzu6Esb>lynk!o%cM<YW(C`LAVi&cd<Kl}+gJ$JIqW=k?@e!ghZ?oAvaA z%ijMSZo9XND!*B3^I?1M&zPC3E=Bd2xhIAe>NFg8Nq-wVv!r~XTHD#Rh1qOx6`C3z zHc!0x$n2D>)=K&O`_mtvwb|;yndFhOAbsD}o3)=>)AXe;Za47!<@5MLiT1_s4-D=F zlm<Va5WFHtLdVSeXx$cn?!9Y|C`SmXpZ<PaiS@a|B)$Vrzt_ao?XCH?b8f`?a;x4j zi;4fEmGx$EW*+!jHC@pwin(X8MdoX(7YYGIZ_*`9?mgl<X7%bxx59_aO}^20XEaPM z^PG@!@`X#FOjwc{XLj<}x=)$eS*>gK-w9sZvpPrT<q30d%gN>JB4)1|J+AY*EMi!E z!~3!9)*E}TIC`b#*bAnfxLV!6+M&6SqkMU=qM3d;*GaZ}C!d~KbL7E>FP9RdA2{ur zzMucXj7wj4tvel9FtOF__1d_)Ywy*U=q<Un;KM&An|F3|>uXp_ZT?>3_;tduGiC35 zyP&{hGd=a(vLf<x=l^*dzqw00y>b!XTCP8~h9AydXmwZ2_-kr1mqjlxZr}B|%ZDwN z-)j%hn|O7J^=+RAQ`g$dK03ek?43UOJCTi^pD(Q6w0^}4{|8ZwmbcazJzabCukybo zOGVcFy_LXp(BVf(=*BY(+V-8iyuCB=2)obT=PmxHQYU+y<;Xa{Z&P~4+H1Z+F^)T? zRxCF(3qGRnVm@buWbBcf&l9RA8(s<Un{!=F;z$42caPn8y<PL``2zkaGb>MbEa1_c zD6w;c$B9C{_or_p`c86vHHq!g`i1<5jaPsA6td;kKF6mMd@kLtGHG(;l#lzQq7&@5 zv(I1uB~Q@IqEk10je7P>pL~wXXp61i)Cob>&UW4kA5uRr*Pp#Yx-<RM>q9)OiPby9 zCoPw{-<fQA;Pc4~AOFhSaS|{L=iX6ZH1k&f422o**?1KgV~T#PP|4IT=!%Wne|+W( zmD>r4CpVnxtO^ePlI(r%Mq2%CDXBI0rbb^{BkE`U_nt#{-yFjSzl5fL<_!B6wtmt6 zt9urS{*zhSd{y+3)#(_S*GbEx6}9(pdV8O+EWRb%<*YX|B2FlHet<GlPk;UAw`M)F zx87O$=3?N_ij`$cQ?|sN6yrV}v-5BPr{LGFJKwctKj*#@^Q=avaQ@A^OTH)_*d^OP zt8L?xNwKL0)7qzVFW5P0VZa5|%_|nl+?wJj%5iL2<h7+<sW+d?8$>@_IsZjmK<-a7 zi>kWz%5?TqUqv;i{``G`t9RCodz*gT(T)7j&#m!XV1{f)?dnj;wP`h<Z?8%%uCy1+ z-4|A;wr}1`Cy({t!@ixgJ%4uIqH~h#ziw<yP*#z@zV?{t^A*v82krcH9=*(CDmwQi zbHm0A6Qjw?k1d$~Z+7nP6=Ipweb2>dL>J%x@t|vCkIhNdYEIjODhs|&a^pR?<i_fK z0n^L7`<AnQbNp6#H{smmHRh5(cHJ~xAYPJRaC`EP8|CMVk_20Fim$3q`KPw%(Cr=u zCG%L%<OwFPPHwPOzrVP8h40*k&!txn3RLZiOaAjpKgM<I1AVbSVNafvH%;9h>(&)| zBGJz7vuE7*J07pf=C9G+TdOM+8FitZsm|Q5pVMZKedq42ulGw%QVF!H_t*RvrBZ#` zAmP_io7dga`@*Y~H|&TxmX*-%bpJW$rTB2x_^ox}<-d}$)r%jMzWJxG5b4l3lif0Q z{i~*=_2;?j<IWh|`y!gFrnP!O)|Y;}@IED9t=rd^I*9};32^^?UjMBtflboZMR}JX z<F&5KnOlxOxRfwQI4kwq1jerT39CbWcZN1_GV9m21~6m<?LBDfzOk|SR+-DWh(nsc zZ|<~U@hRNNwV3gM@2ll+Q=eHiNABT&exY{P@#Psk0Ue8Gd**vQ5P$tRShQ(Iy2jBr zeE%JfYiUW#Rc^7A-IK&}sc40k=aN+Ct2<WDW)5Gp)c@w5*V=x&7M^4^7V%m7BlNyQ z_N|Krd|&T2seaJ-sCD{S?TU&B!#Q?|4zF%%B>!C4edMBw#tg}A->biPFJrA<5}<Ui z&{FYQYxp;P!>5w3dieJ_&wJvW_hR4fJGR$r-78m@nH*it)xY{jjmxs<cOzqOUohFu zu<ib=GS;G<4+OTHX_O3Xee$(kbnAzSUWspi6l)9lB|KtMKEBvx?|qN$9aGva_*|}t z66$^!^0a|%fr7xPNCB4(3NrD}Zm|Ax@4d`AOQkO}d|%?RuP37pT6!d@C+Gj_aJaR# zDe{-jvcP>iZkNa>Uy|^j)y;YNK9kPYjYn;~mN%|se7=H9EQ^ih>h@17W^3!dn*VO~ zkw=<kg^yj2${aD}xf6I<GsXJ8&OM2LS*vHPu-kl@$;6}m{30=?@Z%De+11R&mAU;s zW(#*Er`OGxd&$&bNrEM7-^KRdQVKVti<7htDs5A`*{3l}IJk!A($OV4lh~i#dh_Mh z*MkjV2Y+AQ^u#vg>Y|3-(^ob~t+qA@UHz)EgX85q@e}zO>lFU|d8E^CyEplb?wiud z-x$6uoT$&fb5ifMXJ0N<J0HLIs(alPfu((UyizT@*RETechT#;+PfaFtaa}tH}BaT z%Wm?@wBPsNjU1z2o7H<Orb-EQUTn>-4SsVbJg+i^Z|d0(x#DrV)PJqoSNCV$hst$D zbzhd{ZeM*^e{wx%;=iI@g<m8->2LnCbo1*Ht~Ha7g*@2G|1alztk2pF$!FNvt#4Ls zm?W_C-kt<0jpc^3<CLF=UUIpZ67^uuHw*s^*-f8~moy|VzkhLl_saYH^V%O;uh}z2 zBwM9O)$<Zhw(y$2I=!FkWc3}E+x>lI9d+cj+}gd>qOE-EV(rRbJ-MkJdCiiMd-kS` z4ZQMCvn4;BV|7_9B>Db{JJXpZT!9B}edJ7A9Jw_3!lcN6GO?)5jglUvuTL&qyeUci z73-$Guk%Y)jr9x6eJ9H*>c%|VU?a$t_}TUT>m<jH5dU)lT|Y`o@+KaioNWAg${lyV zcbeIi|CUbp;`e4-xvjJxOY8SD6Sm%wuQ7{QCGhvt#G?Msm0yos-ssXWcXq<=oD*kK z43lRt-dJQhZv}6Y;Idx99j1-Bo4<(&q)j%M?ZX)CFvE9K&ZKkKc{<k5U4KKVNn9bX zAXd|e!+Wu4hQ`+`$DAyVwMB0(b$O*V^XuAvrnFXe#Z4aWBK4>9n_qTrO5FK7Q8xZx zl1SmkqgvOG`rq7gUa{u5j^;Ma6v<0TD_#^TM=fT#-FqrIZf0<NbJ>eLk<tyN{`yr% zmR2d|_!r0BysZE1Zhz@5+n<N7ojtcR<=s!$)&|*adGfuLpC2=Z`?Mssafqj#IOl41 z(~|SD_2u~X4aYucXc(_hy}ZYLV|nlCJ7<#*-1uqgq3@VJ&!5NXEOXisy`mRC-pX=Z z-Wyqe;i0I6!0ZV70zS{*s;x1pI#sC)d9GRV-pQyt{Iv1*=gHe8d*54oUDMDO{`RtC zULWIum#OKR4(v}>O$qtHZmRA2Enc5vhlAeab!z&Cu1Q&0tQQ|#E0TRzUL~ybT;tar z-x+6itv;GGd0~WlK+iE3M$3u2lzzxfay}LLVSTUf34Z-z{do$!&sFA17(Lx+8@u>b zq~P4TxgY+shB$iWZ(sj!LC^_>oFfHJk6-BSa#^}jSSa{e+yv#FF_lNF1@3>1k=8uR zXq~?K(G1_0zC|M4;*Z)ie_XV#?qA#eLUiV*1tvUC@|2HoaWC`JSru?pOyu*NLrbqt znf5s1p>@q<i{5$PSM`6pol|$mBw$X#;!7|4w>$p3=DYLaU%y;VTh(8W)=9dqdiKq` zF8>Cj$tvl!lYWJ<L^^D{A#NFAy!}aIxZRYyF=-QyuYc-f`7_Aq;qp&kw{ErB9V;C1 z??>Jo#T=HPh|FmJq(%34%x2s@C4EW9+?VMoVj53`x2(5k<*mqf)|njaT6eF&nD1xn zi<=$o(vlx`bf{djnGwIo|4*dFr`*7r0^d20+%)udr^R32b1toQbxF1f$1d6KRg&2n zpG6Dj@Z4bErOr8Jr^DJ=tQ;vHeyG>fKjPlHMYtzDNnqKf?@4^gatj|TOKxNnSiMod z)t8Sqy{2YUQ{ZDhMxOS~;YX$Yggec?ZaDd}dith&PCpZtP4rT0bT;od{*YgPq4Y^% zo$PnbpS^n-^H`a@Q_h}qNi4nXz4eStNBt5Bhy8J;rl+|MPI6~{ma_25zo=5DiOQ;T z_Ifv`NJOl#5cR)Y{x5O6*V3(j$~V0b;?28r>jh`Q0Y$Dme?8W33tl3eyJv&2^wH!Q zllapLH~veXrPTdK<4ySi`@PrqTwi#lWag=d+S@B-B`j<Ie_7cV{{GAF*z*$?rO&=S zzt&;Zg4kPseO6CREjRcpE4I`7nZEFj)-Sd1pH(i~ru3>m(^KP9YE;?hp!P=w)%juf zPU-IXKWoL-Wmo-e+J%qumgPy#36a^~VOlHtC{wIw^AZjH|Cz@77$!0K)a~W7e7Ez+ z*{X%A@~RRia-S<T-%9(pwAg}c`PWd1T?!8mecX2-PuC*opVyi7UsvX}oJ(F|dT`s6 zh}5^6KitV(XDXOI=l^B9`LEbsWq0Lj1_}w?&3z=C)O}vEDd@u2{ofPgc3g_E<ul*j zbp537Mz#ar_N>36FR|bh>+Q2URt0~4pTzyoI_-nrLJ6^=y}A)|jqhB$l^J(NW{YZe z(WWg45ee(&tPP&*`l&;u<ACE_NmXr*xBVVn)24fi8U_4%pA|Iw&8#}h54OQi3TBjN z6ii`=58yoQ)+qMT=i!t>vqIAuE2N$saGqPW_09^n&oNFqvlW%@9_Vq?mfqZ*?WJ^W zvG;nd)a-9f#eYxP8(7Ug%ivSpe@@{t%Z;Xa%PxMp(|WQq#YEy`pY(6@Eb+>^I&H0- z?|WCIebV4tcaz(={h-TjPxXH54K-q{x@k-0KJ8ALE&4NKVdpZR?H^6<&Uy6it01$Q zev|eF_4U`^ZY(Y?maL4m|1I>3OXnGf&Sl@=B%O(;1s0kaFDjU{<@<wDvoDYM4<GB- zFp&Hp)9JkVhx$Sj=a{hBdtSMQ8~r#Nzt7@o_2Q`O^SwE{|6Y=?i?L5HdARFPf%lG< zZkLZ+zbOm+d@(U5z$@8r-e-gR<~NfR|4nFj%=MK}T63o=hdW)TqTGMS^n~d#aews{ z4eK=~_#_tO9#iPGeEje5kC^0XuQspU7cf)Tl+8_{?dYqbuDCfjo6@FjoitS=C+l)p zdcD_b1}U4?qhicX=M>X_6dZlnb&+A=n~-h0*;ag7BotV3ds}8}dYnS<DV0+!$=lDc z&Nz0bD9S@}=G;;hKdY7Y)|R`E-tt+Ne(2=W*7)q1ZTStilZ?Hm7%#P|op$J|`@NGd z?l;D)f0fn8qM&<Oq|K+y-eW7{p@<R*Zv!Xm-YfYz^VzOu-7LQ6a_7Ka&Hc+YnY!7_ zAIb2Fva!FoIrsNgJy{-Uw(g?EQ^k(lWIE@cTRKxduT?I_=l}JmeUj5Jn?2=I-K4+l z0#_ej*%ABN<J~z%PZ~|TLT!&1xvrcvQ|`!S4qnzj6&+GHvJ6V?7l$ynGWl5sY|P~T zbG`HWt7u)p<raU}sBlhSzc-b$=I$@`<<hNA&fn`kp5Om(dR?r*|Ht?B#NL!Qgc&nw zPMUH>`SFjfue6kZ_pd7C*!}A;pP%l`5}_wa|BGECT@qA3e9qxwG?v`ABUEPp2E{p( z*}0xgf93VTM7L{Gg2fqEJFD55lSNkS$vOCDXQ^%8(;S<Zj>iw2cYb`_$UE_ukN=;W zzvXAHi<+b3Ad{oB-n-wIN6XWCzoEtb+O21QzBp_pUlscP?X(2Z&zH6sc4gdAcs8dm zIbzz+>rXDcny^nN!0Gq(X0CU?F4dgUPT97lYLA=e-|VOdJZ$IOU%sp2xHZ3h(QO-T zR^`bWX~s!`>)-#J&ikua!f4I=pSG(Qt)rJ^Cd(b)cy4Ex;Hr(Ygjm=-SCy{)K9g<6 z2Y&HZ14kCo3&*sDXD3z!ifB|Rl?A-)_qiIpyVSt?@Zw36-am@2Twb2E@#|NU#=wNR z&v>V<{=V=ece`4oQuBcmD`)oVe7JXEtsnQBg|h{gdBr=VESRX4Q2s_yXx^$x_fka4 zg5DOV@0@Y<$;89UK0a6Gsi^&;y24Q}b>4i_$k|W+Jbt##YQq7BNeO#98{SE+?#sUt zy0hrin&oDCOSHe)26Il;c)kAg3$F7l@oL;zFY5P5?r%80V9$4hDUZ+UYHsJsxL$nO zkY$bWkGM$r_?|jXdq+LJ@XLP1(_)MjH!q7Rm{O8%x9$2ptDgTSH*8$Qa8O3!ncWi= z#u*>m6@@I$H*8wBnMq$-eMyz3w`S9%+_U1J?>)JbYtAA+ar+#(=+G%9Z-4K8b?g6h z`_micw{Cm7_V;T!&p?g5ZS!AT*?WsG>o7mls#R7F+#iDTtuvaHf6B!viwO4?y8NgR zn)UdXjq+@7(Vu@7a@?!%y=htNlD|oI|2*lIxp`;iOxr7bXA_sAk@}O{qU$H<e#le~ z4QX95V?WE6t5&DIu3hQ5`mOL)VE;qoPYVvm$FEgzI#Q~})p6&pyDJmBfzRg)yTV0} zi)~$IYj~n2gk|Twu*;uRcxtxHnwI=^&9<jc4`?@pGx+nUs7<Xr_4?qM<J%*7E!L#& zF+G|1@66BsEtZ_qx1Mej3kjWiLa}Md%-23LlNc7B-sTc1*I-f}a6I?(rdpZb7bEu_ zbNq5zHT-hcZ<aZ`)K<LnYH4C<x!ZZ-!^f2YHZJ>iC(Jl~^ZLz#PzBG80*&i*C7B(2 zk__dnxE6jqbLrjYQ_Lz2!4J0G^;l-&#k4BY=TJRg*1=t3)wz$E83GDk?helTW23|x zI%ofZi}Et!t|2*#b<N#fyTWu|{n;kI*6+FXbp39ox#fCJRkGE6-~a4kG+@wpvso$q zld|8l2f@PbK1wXp`xQAGQVT>|O`qgl4zjqxba?It=e&Mq<CU+9lpAgyx?E@#z5Hz9 zXN^LYnzB19#rSyzf1i0@w)120+rQiPKGiBdBYsTkvt)M9Pw4}<688y8Fg$4eS-<;; z#a!1fn#X0%KYN&Zu3+nryIo2%5~EoptvSz3fA=-pVxj0h1$L(Q%jRzO{+ze(L)fze z+!AqbPk&=xSZX|9w<7tahEYl7>)lD0XMcazc+7h7&bu<J(s=(DEUB0N9)8AW{pXJA zl@Y4hp{^w_wI;C5I%LyuP;l|@Q~PG8?`QFQXkT;Xg;BN*tL-|QqLRP$@7xxwZF|on zf7iC4DZ5htx|4^vR@$<X=N0FVK9ArvV*NLF!|I1is&9EDa%jfBnamw8R3NXntF3m^ zJl!oNAFDpRRQn&-GF@+9w^RyOEU%&LYoW)?y?>6aQZswNANhTgT>Jgj{oh_KT)-q{ z+8E!?9_cQzyZmV4g2=Qj)~sHap9XA;iKt1Ll{F`&_4xI@^L*6GUG7WWJFaFEAtv-Z zrijn-3$Oq4dj+*FNA)!J+{$<sI`@J=?D?tu-?fq%eRJgwNLboWs9Y_ev)8;uG`#7H z$;@?^kNCY{vVU=Sk+J%PsGRvte#@2Wd48Q#u4nTs?B$HR>p#)u*9rN@v3okVe_*?J ztX*Bt^7p(+uUFg({Mo<b2-n$ne-b+M`cB@7<OtuX6C!8X#8S9kQPk?=&&R8_Kbt>e zMYZ_*dq?tkRyIt!=Gk7*eDlP|hQKpSPSPRON5jABFIcS@zdqSHX3xIwY%^YnFmYMV zwPmb$6m9fZ_f^pZ)~k<ujIT1si=0k)C&YL4Z`hj$6^8QHtd-aQ?O$fF<{0zu%I3KL zk1f<p9_mN(Z<^O=-(LOj>zeDE?mfB6&a3xBwm;4@U;MeE<V>aMxk3BP+Ro1_`PG^- zD{ixK`_FTYouQip<9c10eT8TH-uBAe%r`f%Jyz0jj)LR4AL13IvweRr|5N|&S$MPm z7Pk4x{`1%_$v^%a82Z&-dCz+F-tL&~TTWRW+xS{!?^gSCJF_>pzvgh5z4MQI#lTdl zme-pqFkjn8Smt#4V+nKHpX(pb2>)<?&F@J6!+$?SR>;3TyQaM2Yn`&#zjF)B?}{!z z_&H}DzvI%by-V|jzBbL?A9G~W*(JTd-K+NQ58WtrFq7~3l)}?>`tM);aQl*>TJ+yn zuzhNKoPX@c?nt@S^6BxG@0hooeb8Hd|Ae{zvU8i=&xOgG*742=UF82oBmUcRLmj^> z^VgqAYE5)!xKk=@8S>mwXr9=+*{47LEZZ7$^2#syS&h{e{}&w=vRJvu%=gKPJF8ND z-OoJH|9XMLoontYtQYon@7ikN*>oam+pfE1c0U(p-dSbU_1o*%ueJ03+%IH#D3fJu zm&iDedC#=cJChl2t}LApXZSNH_k;GC%a?x~e7TqRquaCo{k~?7`(NA&=lt`x--LZ8 z+ppPeam7Dl7X+lKn5ABO5PnMGk4>id<cP)L&prNGWE=_q@@CrKu0GjoJAMT*Py5Jo zKFoXKoYxW$xVK#N;bH#S6T4CUr&9kGy9Z`@cg6X$Yl>>+%Dnm(^!Ghp(7pNnIUeCf z4ZpcoJ-#aX>yf3xZs!*Dx-+YN4o>q+*BABqR6MoqML+XxAIos7xgE>3FaLhYxjis7 zI8v&3$=72q6(8^PHT)JJ>3Uew-QyVFy4KU%9;UZx7;M{B7rR?3LTJj0wZSVtpN-sm zvwIf9{;U5d+z(r7m(XAT>$~6TBYaj*B#&&<UA-&fn4NWA@UyqJ9pM49>JxHizFs$Z z>XCiNUj7QzOn-BEe#dj2!c);7(#rMrYJ7U}e`&?Px!3;e7B21on_T;;*Hz_(wM6fZ zj+PBfsSR&8vrD?p*S4C-f9@Y|fu_{g*;#g)lim66xk+Y53%b?ccsfV#b4i%gls{Dp zI=`~^-mhu1=?ap$Yo{%wGv8O_=>E3m8!mNI=F8~D_x`rBSC97Lzxe%fdPZ!3DO+8m zxX`2Pu|ZWo?#wu$TEqJ9@`~>V_iqY|to@<>L+ka5kG9PGdd)ICw^(dU-HP_CkeL79 zwp06C&dre0sm`&cE7wfB=oZVa{gidxm$Qq1zGznI;raTxWcB~fi-qpCZ#J~sR3v7< zm;0UeXL0twi8Fre=vo!}`tG)sKeklOn}0mvgZbgVe60HxU7Qdc+F0@L`n5m#!lnMF zI(FV&Cz6v8x3cX4+wJC}hfCJ{>wfa$&$aMRC$GL|uo1hU!{zLuIlaKHw$^#!Lfsd4 z5=z9cd|nVU@mKe!b1wN}*Ro@SbtL2`af_dly00dA<~;w-iA_p>R^F50o0wgZeSX*M zuLX(P(;D_vwLWhS-(IP7DB8B_*`xUKi~H)CST){Fa2L~>Zq#|GiB;vD{Qs(w=m%xr z-#NwHx%y_}4f)7bPXGVDw^$n7!7)q7@AJvW|GfSz)tIrhG(7mxzmIS3KQK1xT;6K$ z^nZS`pY~5Sn>!beCLG8r4&lhpTgemq{hCI`3@?_2pTZZZOSGvZ&Ja=iz>+`z(v_sL z1Llmz=MLCvK9n}lc5f6swfmB>!@29?`xGCTrklUn{57Yb|N7!*?X{a&kEJyodp9#m zH_hE<r!tH6zTmz!9|aA}K1HvdCGqLi;qJ)?+aKD@N!UC0YiQiwNj%l;?Vmc$7vH;K zziN7Y$~5=3ueFL5sol$#?~ZtKLc-E8{F>##D+N0<zhD0OboI3I^S?e!iCio%U@H0i ziuOI18y|k}Jau8Y|DzMk-z&dbtuqq1`*`w?oL$q61<x7^i(kANcIJ@qj%)kY?pq$| z`F}}b{F?OS4HfnuO*U^&O?*;nb39^wa!s)E{>`gA-ToT>(fp&hr}1m#+8@gpYgUBD zTiwW;SIrY&^wek8MFZOto+>=L-(vTyJ}iB)P;lq^Wo_^D*Twig=DqKINBNY<<lpUw zBl|yZF}^K-UiSKT=}ouQqTen%zJ2$z=s)w;*tun{%i1(^=Ns0#ExK9d8||fjU*`Rt zW-DF!@%Y=lmphJp{#X|Ie6`)P%e{;KZ?x<E7|Z+jeCXM1w|~19mM4GpwXS%6X5Q`N z{vU*y)%TyW+cPV&B-Z%o`3d^B`}p?DrbYZ%_x<XXf|ug&q#XX=J?Ha+U5cw%>g)b5 zX}QJKc~;hfn#GO(miIUmpJ7q`IaBtmg~|K5%?~cTyR$ZjId1WM6Sn`Z{RS2yk>5A1 z?KRouSFw(tx#nS6u5ey~z1M&56Mu{!JdWFY@+MpK8rwCYKZ-4mTAjFICAETa%ay$C zj~heOgA8r1<fXqb@jd+E&3)NL=Qk{PeC=H3kGU<=8NL^#S*q@us<*7Q=JUQv`>S97 zeH8La-M4%H^_ZtdXY?hHKWKcJv1{`Aj618M%mvTvS9;<$<BqGrzk?#hx87cy(q_f| zWXo%#^S56#^1j=sRkLvZ{D1eho}KDkwK_`k^v)}rQ*Wp2jNVW<x$I=j+0T!J^LAhR z-z>S~_^O4TTf$Dc<bAft&@ZTnIPbl-a&>K?a(#&C)y5ykY*uIWm7nbC@wH_+EwXEl z*ZZmGKYq#W>3NyCX4U%B(PGJ;b`)s&FLsN)|BUs{kN?I@dK(@t{?HJZ|KXMG*_|J5 z7c`aLdo618>_7*zb6n@?&yNGPUP+7E@r615a9Z;QA@labO`rM#S6^GfYUSADw)IiN zvXytF=YI)Pe|PQvWy!0z^$Qor9MhlD^6Tx4X1{J-qx&(k=lS1q)z4L5cry0&nMuzU zmPaQ}oock_;I7ES;)-`3zkil}V=~8?O^NkQfy#DwS&R$%*E%P6tgY?5^8N0f=)be| zrN3RSGP61U+rNzSo}1ck_U@uh@qBwvy0I@`DZX8|Z25baqGt?Rd$ZYWFPY2lI(6Fr z*QFF@kFFc<KeHb>=n>0dws&oDg3}q{$7!=aG0*+DwtDaJG=^`dWLl#hT{CfMxEo*- z{V@NbV@1bTv1`_Qt3Gqt+x${i&-r=a-zugsR-Y$Xr*66iy3Tv}r!Yrr_lm_Ftj1cE zrn2+7jJo)WV;UB<TByqOy?f06_my17_50Co=?~NMr@yKC(qQ)4?eR0_dGqcCv58ln zdwTa(@uTGhVgh+D^p9R*T9jRON_o!I65pFof7l97)!8();qqHI$@~*6!Fn}HX%ExX zXNG?8%|Cdy)bz%qc14jL&-!}*p1r#N*lOONd9ot^rn)ORyGa~bn%C*B=R89q(!|(A zEUIwt{7YHcf7olcP5i%iRcGLOyDP>o9vuF_xZY1<f85<k2c|im->ZFX@3Y%`bSH1> zx!KlvV&d1^QBqT%Cq6Mfc06zXl9(g;)1R>CtGG6Dn7^6ouhq0?mFM)R{|UOkFa9?! zxV<`KUZdGHx0+KMU%g$fv+7fsOP;XQqE*vx^RG2+J+8ZF_E)ZJ%pdan?{8DI)-jp+ zBz%_qF;Vpg9nSmb$ayScUv~Rc)QN(9;eCCZ_^kcP1lx_~3vP7$a(464^Ja<DB|9Bv zO8rye`!{z(x96urnrih++-&aD#CF@<DY<JO>Q;ELnWxTQ(1K<EX{*y#{PkS*nO9=t z_9lOA{tzv9ceB=m-APB6PcDD7O7y+PyO6cz{_$lUc4=F!7yA6X|9_Lot`}>Mxm`+c z+o#}Nw^e2NikQGGeaVAepPLn{&R&>pwEu<b9^UghN8)~532)qdBehj?-NPB{AKKsk z`?2YhEz_k?$Kx-IyywYmxO3>s^Nsm2?*8@a6DuD|UyX_IzdiLy|DTyR7azF1M`mu@ zA3K{zpA$oWmMnT#cu9KmEEW}ZjYq8sa*R9`es`zuZJv|BXvq}t-t}7jl@<A6n;&Y$ zec!)uUGQ`VO<@j^b&4#)4_<So986aH@V8>q*#*;#xBg?{wC3tpjo;I_X#K|76~C># zH5Pn-W1PG2b@oFs1=jNqT93}#_@1GsS52T}laoz_=$-T{p6lZ>3=VQK_f7RbY1$FK zM{-xo{hJQzH(!UZn`4p4f43@o@&WN}FRmwTdw1R6>#NVHgDVeh*}vTRVZhYa?>d@d zZ|A-=xf0#Gto`te{g3Szp8VpKK6hW^rB_}O?FTOzz1u&(xnl1w`NFL~IpdpBHXQ4< z`6>H9ew+K^cT0jlN=^T7R(2u(YURhe0)}c<+cdX1=4EDE{-tx->hk5i5k3EX`!ja6 zSF40yy9bIiuJD%&*c!jITJwg%k}ngRP4`Vr+tpUHwXaw3@z>w{l8dcoJglg{!kk(1 zlK)kv8f(IYw)mNmoVSD;&U$^EC}QzZ)}FJX*z3pYiU0Sl%8+v@j4y0>Uj0Gl0;{xY zr;~kg%=gc`>wnoL&w4k}qkC4cokef|C5Ioz&u@N7Ul6<h%c{@L%xQKX3In1puAA4F z?NM_%DO~D9$kWT6yDZ}kj14L}tAkhk_q<v=Z>hpU8Kd?0grCp<Aoqh|PxDv1Yrh{j zUb{MTUE9;?U#pJ2?)NZ!Hu<EnljgFv3mevHo;e|RPJQBZul_5p7li+9Sk|{~*S)O_ zmli2&DJi@-dLqwdy|Lh0hGmV(41v>Mo33)<oW!ZO=yFx+n`EC>haJ)lM(+jWMV9RN zCOUWWy~G(CRn}Gc&Ivi^&L%N$-_c`>rp|onqcxAqclMQ6ip`fk8^~9zD-$xl%oy9t zIn!dXSErt4_OptAHO-sWZPdw_uDxT+N&l~Ut5v_fW)h$Gy(p4n+M;hF?3Wg-_m^+K zGii$R%ujQ!^UKUM?cEl%^W<Kc<LZlL1C!owe#~e8=}O_J;DfAoOFUWiWGW*juPBTC z7*~?&-f-jhoNX#Thg?(Et9GtS2)*2TdD{u|<sV8L9p-iSywqNQJ-_NpLB%A2Zd>(3 zx9<D+MM!n0{?&fyQT8Fp?SraI`5e)Wn<oFrDOFWp-FbcS&(*t%wwjl0-2GA5sOeyN z_d#zv-Ycig&rR@_Y{<@T$uytj*mun`U~k3YFP*3QTe(gxa`8Mk<<pf5-?EoF{QXw0 znYC+Xw%ZMEUv+K!g9i)s4^=FE@crMxhx0P!)?5x)B*ydar~KO9w)>rVyPh%6_m9!3 z>DUw`)8TM%b;xE>lQmw(KO-JF>P)Sl_$yx6z@BN6ciZM}@87@u`@EO_;+S+hTxaEz zNgKEGTq<+^68AhTbYjJ~x;U%<8UM8wAF$bOF?r{i&}Sc}^}IP9`B=kV-Lpe?(OTDF z=UW!HCa7r7GCOY<_#iBB(t^P2U%YHSsp+xbpQLu=sm`f)vyPj$)?eTG`{|FM%6(=J zR$c$Q{^E=#xAN%x=Qs7|@YEaJUb88}{l{YsM&4UzH*Z;;m}a`~!}`MMtha7A+Qmdp zR@GY9clx*V+rINRuPdgnE;^mztz%|t^yT)0zkv^58qK?ZYu0_U!0#Hjd$zq^wj}AU zr-w}bTi)jEUArwl3SWEvX2N30FXzt&KhRD&Y;!BZLR#F=wefv@`&o`WjpNM9+#mN@ zE0y<1r3d&ed-i?<V-(AsRtFD`h3{VdX>^KS?OFHl@I{N%XHx%L8>N5lUp*_}+bjM* z9S`y!p6|7Kcr{vT%0uU4d-lZa+T9$*^G4_Q9ll4BBAX<RPuILTg}3hNjFiIn-p7Ay zr!N!bT<-Zxey%;sTd}Bwb$*s}tq#p!?wPUS3R8E|->IvYt>d@-mzGjxcW|k-?02c3 zy*<w^ckW_8RjG5D@26cnhe2GuLMK;5=+2tf%@=h-d5!Lcq($w2U#_`EG4=TVt@3-X ze!TR1?s>^<k>{T@o^QIZ9l1L!a%qRRy-Uy0_&i2WvzX^smF>jLHcN^!q^OrMZLr^H zuc*2`_>!(g>(R-x!!N$R^WVk(S}?ceq-O<otCBL~cxM}M$w$7u#NwoA^kbg9TDIZM zbL$t?{yi)DENNA%%#Ue~F&~qT?fClY$8`SR(;5tW?{*$co98P(vn9ux?T=#`bI7v< zwhO|CM2*vWxM#NgGvM!id*sGx2EB|d-@g}jq$Tle<6pU_CP_<bw{Y_NRi47Z#TRb~ z|BWg-ecI~A>P26sd~$Q+tYuv2mE9ja^~;1zgFt`g!V3$!o~mtYT4#CDR({K4QFYGS zF309_ewcSc@vuUOw8OruF2|jkx9MfX>T<8z805J8ws1(biF?Shm|rHpy%y-awV!!J z`Np?%QFqPiuT)#ywvFDs;e{l-Y3?`4^jUYq=5xpT&cD35^UCM#ch7e}&e!igVCX*Q zuAkUtUG|0A^FQ-V$`n<qX$x^XrTkS-%xZV8+A{uE45@ChcWj>4h)tPsGfzmtWRa)e z@)b)HA5UEU<Wk_Lh|@_SrZuPHW_7ha)8+`DA@SCE(w>qOQHPvWW-8@hq}^;HrCs;< zofVE<o+hy_{Ee;l&YDwSo@FzA+@<sX!!47V3TBz&=h+`V+?>U2`RV67`F;VO_Dz+C zUvIg4$29B5+`AlKe7D%&X!#~~Va7vay^{rhJ!3b=pR>5Vac}vJfZ5v*9+LLTXXF)K zC(^q8-h0ujw@jnrGq#!EI~pDJ+3)z&Z4ndhyyj1lPZVa=5IDfxd~?o5Z*_qPg)?kv zY{dc$|K3<lfA~!J^Zd_t>$kp6ne6bX(T2^wo~PsXnuixQEjUzi*<!NhkB-_GU4N{X zZ1}#rNc@sD@6&bsYj=O>@GwZ$5N(!xU9Zj>ExFe_R^_kZX$!{XO<Nv66W^a0aG}p( z@>;p&Tb{?9_N>(VC6M3d#kKW$!~W_@-xu?q-kYB1<i9z+<7K|(;}ZU#-hFw7p?=P- zyCd!!f9>yDmNI|V#BUo5(in~(E5Cf=tzge`t(Esy9DBV^Z@Hpeo&J$h4i)wP6Rusp z^nAutW{%vYsfHq4t5SnLZM-TFd*ihBeAoHMTuyRNeKNCOw`SFwRxR&uKSe%Im~>CX z^OwU(F{_9-Q<wKY%`-L*Z!kS~D)m@H>H1fE7F;qCLASPLM|wEOvjtAvwov4Afnejc z`|8>X?~0EIPxjrX+U35%SngJBaP8dFr`IxcH7+Q)F~{MV)P)Pmzm#^LW97cat)QT) zrnE_Xe$Q&t62mV&K|VT3?=nJS9YXeWwzIoPKge10OOwyB;#I-Hv@_giuf)q=es%Iu z_+Gy$m(uj6J1%hAvogNhA|uv2aJk>DSz@^>9V8M2Po`<i&7LFbw2q_m+lGS~UL7tW zUpzV<dRMv4(2sb1L?@EX%359FQ)j)##p@F*Gv+>=9e7&Fi1W0tMxf&P&c!FVj>(JP zkUTJB=PJkVF7r?4s5ZqW8n_3j_IXdTiodhGL`vTB;9dW;*YobKdg)Q5_NQ7faM#<0 zlOoHMPakMvxM0P2R5Q0~wRmET;__*Yy%%;UoY!BLWz%M(x%mNi^`p)por^2_H~CD> zzc;hLOE;IHgMC?0Q2gAp(x<g1NpDsWk>m(eOgbX!?Y5SGXTi_@R_Uh+S6`SNTN1Q+ z(u)FzdD@oE9ZIwAe#xw~IseLS%daP&OD80qz3uV6C41RQ4VHxkPhKRlBp=+fw>?Pl z%&rBCH>{jE(S>zJt*GI%$}ek0c`9lXmS+{`h+JmQ=$<(BdJV^A<IG8YQ)-sE6-@Lw zeAtjzbmf-dU}w4ZEvd?rGET27YrPip_UoD02j^yO5}g$pH1`vS>9m&q#T!%vB(6nX zt6YC8sJ(4kc=Jxi-TQV=(+(+O`IdRvW7U51(Ef@Z&DpiTR%uANFwWMPF68y`gxi}E zvA#2F65gC*-1<z&pe1i|L-OVFZRuK8ZR{Io@>n`t$&l78;AxKe?tL_GH_wVWs}~zI zxaJ?fwXs(9L15jdhrjd=6ue!<V^n2*_q1dH+bjw7s?R>}yZmJXUPq`;Tvf)bv-w?0 z?B`YPQZFP;PvzM&9_yRNze;tE*_+8ux!3E(HO~aMs}-J{kvLyO>bC!~Q>qgt{rWcL zr>FBXG4nWm{!;Gbd_j%hMUgJ^^)sKIo>3yc?r!P)OVKxWzEkjCRC2yyj!x92{KysZ zkr!t_5Lf>CJ|T41Z|9)vd)ba#z5X<r|N8f?7mFq;c)ySOzU#%Qi3!@rbobu%S$}-? z(#k4s{W8tgmyJuf&L_pD#F`gfoxRihIP>;@o9z|%yzx4io&StSN@e!jKjIUkXBeNl z;AEJ-&co{4asGs34|vjdH2kp&$|+uaV2w=h-kbXiWrJs}=CoY!i?iu_EPEQq3C+h7 z{O@gi-TAfj{WcS>OOM1)s$Wr7*m`kePTgYJV^yb~&7J!8tA}KQ;@{uvex<1<FKs@s z`qg~a3pKS<zqZ!+ZxWJWp6a8r$I;+xX}$eCR?Zb#pIL4+?^-!=<|)lRZQl$Z2(f9- z4CQ%Vlai(u&{}kUMaqS_pZzDS{iM6KD4Bor-<@5Xn{`5t#k1FWPi-ptKFP#FQ*r_S z$FnD1)fPRgpQU3K{8~+}B<c3T19J<wWo{jbQ!UVl>y_ZuX7iO5+w=5!^&j5Qi#8!E zP2a2!Z4$N(KUP>%CR^Xg*=1O}^oS9A-rF}!6Q;$?))BwrWvwDy{w8|D^12t=JZ<-H zEnV|FXWjWvkv{)7{XS#6P)K;!V#_q!gNCu5lXm|7?t3}hl<U&UWo;=UrA3?z6T@$4 zurK<T|H39XEr;n_`>FN?JhgX^=lI1-eoC@kTW<RJzK@yrhJ(8<O`hzQw`S*Ejqi_6 zdK-xJvYd4ddUHEx-lVC)oBHHbUTbN-i4H!_zLWp#RQ_FxMe|Em?2J;;)|E;8vG9hI zigx^q;z`E2{8A5>t;@bUbLEXc62)pft-MAetedo_*(aVoW)^Lb(5SwHkLz*2(hi-! zdhT}|*v0LZF88^h(iuFn`Rlqa#b%?xyr`9N5lL_JWlyAjd-3dnL!PtV^vg4or>W00 zZ`6=vDZBmEe|g=msecO9`gf{HeVY-zNZ<SUx|pjXDsBe-mo9U>Z`hua-f*?&+p7<q zGa0T|ZrP)8?DMuaOr5JG-~7pE()v0-{amrv%Wrla$4^=(+3$G#W#^6WYfZaP7KKjU zB$;$&j{Hnf)7T!>)WtGw%icuj{b3DXb3Dw2>*y+#<P%4uV&B(`x|%8N&^mWQrZ+U* zNY_el&HJObUh4T=l-y)=$wJM!pQp4dLE)Fl(vavya-UYj{dJ!#ox7ja^-{Pd*Q6=> zL0UO!89|Khf+AD*c1<e0x#*&@hNxNQxj)AapLHv=<bH4Ti8pTT*HwoCnV+4W7G~EG z^-&?~ZnMYDzlzHv1A|N!$Jo7@vtm}2qj+%o<Le<`WnOFEw#mw!`N`A!|DCI@mrm`t zy{O*l<~56sM^y*xPF}nd|M$g<gxWh77e%K|iZfaLdE%!zXPU3>Ki3-^BYoPW<9?{F z)K3wM$oL-KlQ~T-_Gg*4xL*2n;hXo<+X5$-{4iO!CxSEcr}XUGT)&p9OtUH4A=Doh z@TR=vd{=Mqax?bNhfkhAxan~qlRnRU-olr!Y#tT950<<e{Z&I^*6MzbM`Eknzt(LQ zPXE{{Ajo@WYA&yGdYQqhHv&QGpQO|mSFG{*IZeB0*QKs9;Rw&I=l|S}e(a*J&uZX5 z$vKa8L-Y^zrIp97rP~~}t)BfpNBz$0Q<GzpnA+3ca4lDSsaT%0{UJNUYTdAsmAo(V zqn%tbwh6r6?i2q}_jID__A}q~%np9b_2k_>Kj-ttdsfn?H$Qngb*_2!`=qzwj_Ln4 z$X)%Ut{FJ<#+*oI71M0J)RyD7ZkTjSJ$jhFVW$?uhBq!E`|ej*z3SMYU(s`*xNWoE z;dY~WKUPf1jAveZ{(#+s2)_KQYZMMHeP$Lu^$15?^3Dx`ryor15-RYiSQs|<$&cEI zh8b=rCM3NsUuX1bx5;WZqii3q%!55&I(a+=7fEJz8@1-e@2m>yxxfF|b0b9tzbk9E zy$TaP`rS7=Px;LIlfmuhw+Jo^e?7_WV^U@B*SE}0yVDjVcunRkihg?G|H&Q;8OA4* zoONWT)&4&zaC=3hC8N{1W$y(PPyJamX?rirJu5CtZ=nrh=e~dcVEgHJWr+FgH4<At zO}OWHL#e;Yd{vwEjor_UIu6@5rnvsver{IIr_E_nOk1A4ny7qizTAyny-|H9f;L96 zs^_kKv*q~>@kg0=d6l@Gy^IZ7Qg?k>eAPndxAwG>1mT6jPIH7$JalDfY+STYsYGDC zMdi$J*~U(e69!96mRn^ct$bj(GI{dEWs^AP`O3QAn-+ORaE6BsV@vz=)61P*xn}Os zSvkQ$?Ulua=j>7s(}mVqR`$xvPH0g3*z76JSHe+j_SNvYPn5V*JJ-tPmp(5{?%I9x z+(+GYOQy<N7SA~TD>%phqRC>JlCJ#@*_l-?Jvof+YeJ7D$<ODLo*wh*_={^yZ8Zg3 zPc$(cVtp9$r|M$Ui(0kM?LS3rKALyT&fYt7dHGY89}^h0)W2-^3k?#jyqvc4@vp1d ziiMhGMyfU$r^H?69jG|nIpeH@*5#W;p3PG{GTV2#EV%LcN6Dwwlp^V{f1YwCy2gAd z9KY18^`fg9nUoJN-Rc>=cW(R}Q{&Bs&*ctI&sSEgWh-#Xc)M%Mu}aP)|NQnH?2h{$ z$aUD>JUh=}!uLl^4?EYcJ8fXho3xG3GC-T{`m7qyKEBFrce&JKcN~e@bxHcvJukVr z6Vwwoy2pKe%hM_$Z$4MnS*PlcOGy6D0}Lewk-u-Pd-}{#rk<0}aMGuFwRc%gUb!Cm zG>=s{N6+4)hVRe(wgR0mUE!Yp(%OGS_-y2qyY(%3lVa0HZsirvJcRyQPWE3hsjh4~ z+tcS)@|K)7cHI0W_1}3;j|U<4+YN8t^zSU;$oM;vTmO;ip2k$`tm?JSyphLlUfN_V zeffgm1Kr2-(`Or4AJAFldF9J&&gGqE8sa`e8}}S=Il!srJ!hhVTFuf;^QN!QTy*b~ za&=iomx{>YTKP7?aB*ADnLDpuT<v%K*aXM6yp5b2)@aWPC@NgBoJ&Q;nD4s2^~|Ts zKC_%tR%$<Ss$u!BCrZkmO+w}Ry|cQuTW$;Kb>GzRrFg00Ua>0|wK$GGxvuoMrR%EY znuLm+>KO+vGOzZWde2xRc4yHdy(rN?lQwVNX_>U8Dp|=WYiplTxP@c1uR8b1s3Td~ zbM<E}-_B6wyl?%S6Vo4;<yi^J@ceRot8JxWB{Owitu}|n+IeQH@_J`<w;!#DtK4|2 zy_@aF;{18nE*hFXKlx3lOQj&_sKm6H|NiRrEb&~aqbYx6vW%S*|5m40)-P`QPi74_ z=gG-<ptip_hs8hK%F6H4hW%TnuMe5B*I4iMxrDf@0%tQBx}F(6nLGCy&u<C)wFSN| z`8#r-dHg$Sy7bJGuWMMG9;!4p7kvy;vi>6HWxaX*j~s@=dvOaEuoy5g96imFxV_=- z{G;k`=T1pKu`ucEdTp~#@pF3ZL5}aj+B^l-{1+Pex=GlyF2B5l*Ykz-R;Dz*c`v7z zWqO)K_e7mqzNWI>()z>9r@tavU6%yT)G0nKb!+zR%iEN^0%RXv*4w#p`J0VCcf?Z9 z&heR+9MPuqu&OD^bC%M|(93Hc25(sFDj;|&@v8mSBTQKyyMimGzkRxW!PO7XXFckb z?7sc7TY6IMn#b(7PdBc*J^SLa@QbIck4|3qSSbAR**9hX>(x8@5U^OMQ9%MW5Px zwHnv-CdYE-@0)&|UvW=n$akq{RrdmoKmXno^V!t8y0-h*+V>A9CqA!h+nIL!iT-Ij z>l07bD4hIYV4E1VV4;%0jvES>ISo%Fc{`@8wCyR{_A_XLpW1qrgNJME`~R1#Zl1^H z=e%}1*Nq0h{JrmFSM18T&}=ZR);VI+kDFBmkK(5PnVDmCJ9TAQSmz&$`=z@R6oa3C ze{c5r`SzAqx697dg>kO0dt@;G##1Hv($E7;k27c8vT2r|y=2p;KN5V!pW3|t`Si^@ z-+gv%-1gIDXLoC@iaQrGCH?72|D8810$UvPmm5`V-Fa<a&iA@2QU0@69oey3^{LJA zw0*rie|%#;hi=G}IiV$WIQw=y$MRU2l}?M3e!8x_Q=|9r&~xqnlU<Jc3%EZ-Kd{+b zvF4z(1mEvX|Lx{%Q0<<+;iT-BEn4x%6C4h^sZ9K3`Q`Q2Y2oj5dTf^|y}YR-u+FFJ zYwHoM>wG6e4$pZVJ=N=Xto1Z)t({Y*)u|;I_f9+gdRt29MDar5mG@SwIRE^oe)H<w zJNEzoyl1vwW_(Ymp5bKT%J6F<EM=QZy<**$_oq2HJv9sxFT8s)S-6Tr$M4ypqo0%F ztT;_W|GE_)+~GF!!rhqtY)_Aw^6}1ib7sxX6)EpR|0b$lIcjr);T*@xyHj@G$X46* zx?_=_($2t)@~K6tpZYV8hxw%Td)_gXn=k11wzG7>)!9>zu30&+Yt6=KY1MP{L$BSn zTR4Ah;{!gHl`9t4Ke`_Oy5!gWeaqjNvn-nZ<D%M+6U+0b>+DzUe65+uuK)PMX0IJv z^yZkmimzCfx-h!wwAkICKU1BUZashfXZFSyR&_f}vVvWU8)JL8f^K?-_?sWHc>lF; zwMAB>)kKMHK5I?{ZDy{!`TFBNQ}c}){<2RK3Rhh{<>p#%#vrsTUgNx`8e>bav%s89 zAI(FPG;)6ae=pJfUP!(oc<;5mt{Jm$)vXt5+_6$|kMGQc*_ZyOtgrTnwVC4kGv%Xs zwJK9w@ZtxvK20>8dVlS*b9;NAHg^hyx;o7%v*uO}j*I3zIx~11muE)s<HTDs88c=z zADXhsk0avT{eMd?*S$%69KDJ?H<O#qM8r5cRrK^F7lp`MHWt%9IqImsVc9hGiSn-( zQ>ByynP<(NFo{1(Q+#6()4EH`=Dm3780vLtT366ZjnJDV&XU_2l=X6*m+oZvzNvQo z*D24K9-98;xYlksrH?;)(amdr&X*+g{W0fYTKe-={#4DkJGgpwugT9T4J?;fFgZ)f zZ`aBjI(N9gd(@mTpLS5cKuE3mWcR1!e|GJ9^Z)z|teLY?)=o{ltiLh*tG|E$W6zD( zl<T*$G#-7i_Uc~`Zj*}}j=!83ry8Sva?2&5#*B|<@^Nb(T(M|>`^CMLk*SQuyTLi? z%A#w`OO4n2Nx!(ZEI7~n&Sb%`JKmpvSu;f(zZjy)Gwqr3<>Upjig|Nh&s*VpKfNi{ zLrBFjc5}hHJhg~l^Lb{J=|z6GeDoo^HEg}brC+^nvbuKs4*gdpg}d_CA9?vaEaXrE z%Zb}8$xW*~4}UQBi@EW*(siayQ;x*Uit26qA3k-z9{XKkPxsW96Dofvlq4LC|C97C z$7%WTyL<m^n!T>fxaV=nTy6iuhstU)<o0+~7Rx-0dhkC|JbbRbz*U=9L2NG!54^9+ znQy06TE1DKV#yl0x^K$YHdF~dlD1Q{N=R_k{dnK-4&NfDwN8xJ%qMQQ|FkyzVns7| z*1zXB6`rd-it}G9*&d-$_kUJU^rs#6Jr}Q9d~5i!r)|UD%`xH1lU=S~sr|?;@Ig1| z@|O>jlMcVqF>e(A%c-Kc(()R^i;FQU%I7Aoyvbi8^3m~{%ml%;#lkzQg>sjy-8Sv) zN*m?ylWV^1xwCQ4lPh1N|2O;Il-^de@$mGNCnv5KuU~g?`7Xb^b7tHT&YRqO+;gke zOpl*EGuS+j8*a?$wA|Ntr$}^>`=-K++cwv%e|^=`Cu&J<a-OJ;{PoIghVuC{IKq4$ zEU2EADcibw%BKZhYeR*<-`crJH{Z-o|LgS68n;g_dYbHJsI@j_>BY{}%G2u~6-s4z zPyJ}?w=hTZ<wNsc1``L}!)IRjb#7OgANb#_WbOUQ>&1WMpP1gdlTRVK?8`c@S-*|9 zs9bHho_nLHPV9Hav3zas3tL@k|9yY*dNZ5v>^*_@Y0;}w+ao7_`JL&nd+E(O2e!S} zkLg$+3EZ9@@An|x@?TiImc*1THr_h&f6fVhbm(%^6?wCH-~8KA{`t@1?c$iv2I+Y! zBu$H0aw5@#@s+`oRV^F&8E#g1?P@>RQE$w0Zd0<#QlaBKN!gp<6qxE%^>km@sH2&e zuzKT>qV`7ZJ8vdwy$X9^ps|AI^$F%3do6npmUU}|S`^CIX?N|pH&^I*(iw@sn-U4F zzstFniDhiNy~As2j?0F-lQy~SI$XT-W2?FH4}oST*)^VF2en-%cs!`Q(z)_hhuc(p zraF06g~D40TPNh!+<9MaA(HlZ)8W70CJG)?vM8RsS^h%6r-$upJqty=ch=6GweVGn zegF9hi}{Xk;_`M+QT=oDVBu!VpYbuV5f7NIN@cJ0-CS~@b^6{bTJr?%_{yah{R*>p zth)VkUg6z?2^CQ(^`iRX-L20VUQF9^Y2v%&Y1&(>Y+VmuFo-nrV3+8+EA?qI=N73? z&!?~PmUOgKOj}(SFPnHuP^o8OR*viI*MClMi}ii3zVjq!(#GUVN`Zl!Rvnx)hr#W6 zagqItGpwK3qC+0}F0Ji%nVCOT;Adk}^gOvAw>gck9pHO>;F2h(JEsiu;<?cey!Jfh zZQ6fN`k9o-!_eZSyKECwR_+kBo-4dvNAy*XT|!gh8`V00gY_D!bC@blnmwIAb7s)B z{JZU{0yi@+e#+9cuK2R%(;X&{7mPbo{&PkKw4C0Pe(qgR&#i62CUUa#4?TLiihut> z)$Z?`F6I_%c029z`2HZ1$!Ej)y=SJjEI%k{B)jChT&wRhA)cgUD}i}8&pRs2tmUft zy}Xv``Ghdx70FxwFn^j{Zhf5j%-oPu>Nn#`AA~jVNyL5S;yk6zd|5`rd9G>n_D45; zI&wVyrVIP?<(f5DTTD;4v{pX)<;}9Q@eaqgU6yt`!}eI=$vq8$9kv&r@GqHDEl~UO z_3Xl|SiAG<|J57Z=y~6zUhy|iFR=Pp(VJDr-<q6p{Jy)|S^Uvshg0l6XWB(B6{UT+ z<$U0f-De}#56LoiKD+`6`oDWkjb1#jzJKz=|8w%~w{j;0uVec2u|}bUQ%b{FA^WHi z*Lh}z76XI7JO`9s9P|;q%^vjA-?L?P?yk!B2c<a@+W$K2h_GBT@!!9yHr-47A3PYt zoaQ}z#y-!gB;%W0k9rMjr*htBdxtB_(mO>o>iHVCNFA^)m~^axYwdo)D$)FZUQ;y= z^nCEyeSTh*-Z7&Szxi*~yq5VQc2{R!{`!=pA|1J@DWA@I70VvZY)?Ml;jZ~IZKKHQ zHBr7<UR$FK8@CyY-Ei%X6kvR_Aey`8Tb8%y?EJbTS2*oi9^6qsvAwTPdw1{h)&EcR zRMv^uo{&5DiuZ_|>|_43@7=fmUC7<_F|wXvm5o=q56g>?3#T&;omphBYn8sV6-ZKz znzQ%OlhQA@GOO1doXoE5{pQ5+FoP32`0JAlDhsQc_w4%a9X8kJV&?vvYf7Zbr<Lq& z+*|JTMxpO~^o8fIU*yTM)GuVb=zLeu?W9i=&z|Id>qCbRb3Vx4@K}jK`B@Ib*BjSf zOezyUzT(RA{Tsd=`l1oBVAtY55r6XHcl|vYzkS7_=kf37UyFLobk-t|FHHXYJIUU* z!-7(?1?y}R%pMe5XH>7S4oeAC+puBR3<<Vr@=re%Y%*()X7f08e+#FdVDQd^KN4i` zO*5+Kzto;@=OpovIb+46f4|Qu=kBs+U$dEWV^8VF_i`tF>^k^Z@B2P{TBsVaJ7v|( z2e<oHhAnmeF+)hCDQGK8dS|aQliae`zS7@k88V->pSohj0-=3&MpN3}8~JEW=Gj^{ z@vF?`rdLUsmll>?4Z85%@LV}}S;m#Pf;u4?#^&8#&7wN4kNQunJd$v3Mr&xopAQ%R z^vo9Ixp?Bb$#TXo&KDQ5@p=pHu1nG2ZRaUGk)OUyUUaSM7sCy8R}^;GEopF^e)Y2C zS9gy6dx}agJnZz_)O>f&q-I;;?@@pLDw^vUI6l&OdBxso^V_ZU>aP=jESRNa_u!ko zlXcYZ=16{Sj;kf74VTWS(?}?P*Exf`B{C`YS@N8#`F~fd-mCasbl`C7bn}{Taans~ zO_qK?VtsCBula4;Z#Q;Mi?qKSSoY?|u5iJo%a6HQdX~?B+N~QP?{j!@fAxEg2_p9_ z*y4ICcdh)h)sT0d{Fy%*Eq}#!ERgvBmj6{o)R{l=SCyBYUGvAT{NyqA1-C-?>e~n^ z`2QC!;9t%*dHU*tVqcG-!f3zii)R0w9(sGf=iWVxU$*SHp0M~1%Yho1xBimHr|)3> zvFaup$BkL?Ij_Cuymk2gPD3(n{mEtQOy@qly5d>7FXPbD^^fPPUH!G`#HK}(la1|{ znU%9#Rxo+=t9p8vIa@&eZ;!*?D+&wa7~19i;;$XZlatIfUs%03{hLo~;{5|pHH~xP zj^1Q6Io_<|^j`VSYsSs@XBa&^uK9YEaAs3`63_fcoMDGK9!~yhV*RrD$(@O|hYb&h z9hxe{WB&Kf>Z?mxu4G=xm{j@ov;fnc^WAakj5)oZzJ^rKTo%u?<hb7gg<V-wCAFgF zCO53xc4PhWQWJ}V4NLCc4BpN3X(D6Wsuz8teO7lGey%yrP%1FB=9SOS*t1_k@3Y?6 zarHhwtNYv*hG_S{O>*pZT>0G7|IASCR@-1vFu}I$q#Wb+4Xu&e|88qMz!fTTI-+f< z?z%@CpK^2-u{x!)cb>bp)|dN?RfcOqht$gNTg$G5{5YC;#<DJC`j2H3XGO1jF2C#M z<(lVT{v2aH`eW7o)w$CiK7PFR*o{3OJbtJP{+7F>>ZlrW`OCR`Qr8&+m$wG}vA$dH zeztsS#{Rrjy1~rJLaompnFnu`S^i*Fy3g&`g1^^$CZ#-IQ}EKF<X(1$*N(kEqPcTY zzaRJ@owL&Bp5!_cmCWr|Sl1n4a+^6t%lpr^AKZ)oI^LhzynC^i+STiVN1uI}xLdQi zT*kmF^Ps`K_HXP5_xZMX|1U6Tb#-CjzjNQ==#-yRotZKktEVolV0*cI_b>NjQCjm3 z)~)d=k6JFY%jaU8MAKr`gU^_E&2H)KF=C9E_GjwH;GXqPUs+@B3I+vD^3wCSdeHG| zF~5#!P)O8=sjI%vTi*EXS3vrvlKJUV{>Db$3YXl!SR{Djywo!VH#MBawU|s_aNdy7 zI2YM_YO+`i_m>xwa_Sd7;JKgsNd4f`!UG?=TrKOpPfgT0JFVF-Cw}8w_p@_E7Kj{b zaa4PuQ^<7uf%%jG!?=%zFO*hKRFwK+?R~K~MDzKrwp|f@9}oWdSi3*a?5tO!{WZ52 zNB0=5(bVZ)JR#=nJKpBtqQ@T|{88cCF>OhtNyxf`YYp3%-Zhvg!u)>kk$AN?VL!Jq z)P7m<x<2y6zArLU*xwbjuQI;&`LKym?!Na`>-C-m?SK1LGBWnc&AInh`<&VtlT~m3 z{@JYCtp}epzHa+c{Xq0}{I=$@S+V@z{mZ_8KF~ckB|435U9-Nvz_kYb)VmY7vW-`q zT(b8wyPfOY!gV3nzw7RD+_Ylb8k?KEPhG6~OMeGdW~9W0H1<qA{f_UrmzYKQ&IzTg zhiuYLoeawBT={O+oJ+h5txxkAdo0{^Tp~2`$xr#?N98ITpLsBv|4QXLE%drPsYc-% zyL2&6;KR@Vw>_A-!;h&^+A?K(t$=vCMdok6mBp{-%w4<q@lU7A@9XDjF3O!&c-du= z^uv=&lQ)0x{uBKx_w%auYu7$p(v`cbS-i)2vc~tgHYJr^mO97uJA+zQuM=mR+@2>< zX>@Z+cj6QO<kM9*TRRI5dWxz}nfxkV$8E>l;*1dI#>9{9QcITJnY*nw;7FZAuyoIk ziMBf?U+kIiF+V>1S@~(Ed9^!V?QMza|1S{pxw$CueyQ60`W*e}HRacDD)vs(-(kM2 zF_C|Il2ByqhnI@)9KWtNGK-lnuq0p4Z@Q+N@{a3olGc9BPW!i8Mb{$ZrdrJj!NY6f zjXytrQT3nipTN%ldu7*bHCZ1owxiqnjcC8+2kV<RSgR-Wn!la&{=T*i&kJVOZjUMK z!RziOhJVbnO|r6)3RupwWuNzIKJk_Q-<tWQj2>;3Pnt93<?Bx0g}1KF6bz1KalHKh zs@sLErv3HH_a^K)XU`GzTfJJ~McdznKmR_gHd(ObkaA7cfrs<1yw{q{>!p(VBKORr zmyPfCOqvy_rg<gn-Ejr6{Apq;OD8G03UM8&yU+bzah`xr+`M}ioHRpfmtFqJx_XA| zS^1iabGMvYx%A5_4twL3I#;)JC`%=O-|%6_C)4fcx68%aZhokho7H5#f5Xl%TC>+| zxpCKQ$9cK$cRoFN7M(Qn=TYU^`}h4?Tfflo|G(%>cbUs>XKs%*i^_e<lWF5^z3VXN zam`nS@&8J_H!ltNIP+b$D#LF%qxyo<=M{_RtnyZ$>98|$(f_I&9;T<3%3ACQnSD5e z;Z@N4HocjAY|`2fW4pH4RLff5*}EmmNBaHW57#4<dcH5)BeG@h67NqtuH~*?8@hXU zX>XU&*Ut%?+8@j?)393FWyknyos{TQ@i`(l<-7vpm)X7BUm$nRBx2(-dC|0E(i%rY zJ-v7jWZ(V%s)yHd|CbkADnHtE6qP+#I$bs_NB!(=ZO=2le`_|}UG}4>%4hz+Estk% zy_zAs@?t_k)thN;#*_cZi7Xek7XH8B@!HT5i()0$NuI|F4qtrvuy~hH(Jjd?(e7Vz zt(!S5-+M0Enkez`@HakYm4xN8lh1bDKl*aYe)X1HT>-n69Jq3Q^VA&u##yVZ-#&QA z{bb>r6=5%bY;jhbYdpt4)%a@fCjZFoPJ3Rh``jF5|8~Y1zpuMb%>T9fW@yH7c14G; zzYnJLZ?G3_Ke(nQ>aVTr0<G_F&RvMNx>&)oZEL28;*+!5EXON1-p%*_%(eUSx{q0} zrhmB9GV$<<J%`TSR9(e$-XtnIE2`wztH8{a%iNa=MMWQfpw8RB_|i4!{|8@(9$L4~ zKH*?xbG?X<l;nzQnJx0mPDEUIZ@(tk$6e_An_{1pcF%8~dR65vpX8MP+;2JK<nYxW zG*tfgBrkW6Ds9qr-8D5(pD%N&OQX*QozC_BH|u^*zQ~csRD9q{jdp42?FFWray6JI zOj+4BOZ;$rpU06`%tikeUX3@uKkrSb%9U=<sKpTtl`F2U;n!^_2(*|Xzh5TtK)Hnd zo-dEJoGdTAIKyozrr6jYAbEI;nyPq|^90ph;@JnAW+-2-G}vMmclEiJolNbT<OxUG zkJwC-xZY-VllyMRoPPxx&9kR;vii84o%kw%{YlS-)E&lb6}=a(e>t7g>QMWy`2)Yb z*xv=mdlv6Im+<*^7~l5lRh)sMic3#KG?WG&;*dUcIkDe)_LN?><w^eque{t7zjxV@ zRwvP%Rrh)3wir0)eEa{sIH=dC<JIxWdG#A2>ff?3yS^9r%TWLK!p+$qXC4jMEWDXv z_uQxd%MSDyZLr<eb*_Wwn^<5*TEUjQoR*e&E$02RtUIji+y$=*@ApVbVA+19>{~?2 z*6e$;|La$+e>-RCwqw_mmoEzHTzqPsvyIT91G}oHr?FPcdw=@&P%fI`V*i5xhTaWg z;Zf4AbqTBW{Kd>`1=!f{Ox@>SJf*4mv;8aKya?0mK%=z&uxBR^Ez|PSU9gOGwtk%C z17Rnwo<8n%F<UN}`7}0|tkN|q^gqg_ct!QwPrYq7V^@7@+{<5CnHw<w^(Xg((TzS+ zb$chA%evAcHnr$|#EtgDf*o3JcM{}<H}xm;X*94Kt!55dn!#Ex@tdD9_j`8dmd9VV zYz^1)S;#wclgDL6&x@jNTKp1PRk;(FDYZ7S_gp!9`&)UZ{ha6diZe9cIoz&cv#1X7 z4?n(6BY7jQ`Q1rjEsCy&$ESbU7^xfL;<+tsMnHy=Z`9K*@9j^AKCrl(-hb=4UDb33 z#_v6c<WK%DTQu#g$&_Me+1*R}T(9xBc)!%)*uJrJ)!d+sZqC*kOAjp<b2474XXST3 zpfFVPen@!KW0SRh*4GkOepuf9FYewu*VU7pyf0sge7aHn%wM~YSO2Z{K5{~;&Di3> z!wqiLTMfblDnft16i!eR7JcC8>KIWbdR*b_xl8M(i?Dp2|7y__$v*4Iy*lfYgTuVj z49db>_loOFU7AwTdCBqT_8kf{Y%1<vFh7}ntz$0Z356KvS;Z}jn;7-qoc4*1cRL%E z8_M_~PwtP%(*=QVE2i=@{pT&b^607d>6L5O>Q`@($xG)`JuG!)y>4WE*qO+mt72IK zek5#v|K}5T|G#M;=B|qiiVoABessOQg|*J92S<f%8Ky60kDq&AyXJ%Al7RC@Er}~+ zyz95<U#$z%PG27yTJt0D*2kys7Ce&vm9XZ1?(YTnl)rv|_2abmnLf$wUtc>;JNa?- zm1k!dtrOeVI-iYy-C<SU=DaOWIpvFS<m%K7iB4M!GM6f}*Poob_KaV*<)tk}Ixow5 z*#h59a#t0%IJEl6PNV$ROK(hVY7U?HzbN<jxhvw&A6|aR;$CH|U2;6f@R#AXt4xbe zO%1$Wxx+E))BVibhb9)vx$NaJ^R9~14b@7T7ajN`Svu9apmXb%uL&nAKK=CN-jkLr ze=gGf@wvdqli6#-g5tY+-0}}eoBE19<vE%1qq*^40gv+984mT`cj^;)Ur2ELiebt5 zQmA)XvQ*^~&y){Fa~%)*&0gso*Z1UcKuGt;>){T!jn7!V-}RV#wQfkY@9SOr6~66# zxU2Y@Meg>Su1?+&O<JL+=eD2TnG)T$GNpH4Lfq5|yB}N>+L<G^dn(uNZEYzThg`$+ z-u>Bp@{aE9Z+1_wRW><qynDyh)5=N0T%BF*d}#6W<hysSZ1ZI8XDFLJSy-TZd;g*9 zi^4fBEOXqu`}0=o;~JgC_qva=^v&M<>ZN|5`lO#q*NWe+a@uZaofP_9(RRXOw-+De zd0ymh7Fk^WSyjwda8_q&TdS)5#IVkmMa$(Mf1Ui5`|t0!AEP(eOb9*R+?wz09BNv= znNgYViSN(b-!~rYv}b<*gDEWLYbBdZm`yv!m3D>vS<g<qK6!1^(qCVHX|4|a<;Yu> zGmXEo!10n(uAR-ztTNtf^R`T?(tK1s?Tq?8^&;uwk9Rq~&4{zp7rGSsXE(FS*9THg z$Cy-q{+8YsmD7<R^<;BOj)scItrLZ3e=c${Kj^)nOJ`+U{<G_`6E$uem)S8Zv*3d5 zk*Z^>o!>k>)Tw`8#c+e0M93YLHF=HSdZeH1xS4;CQLi$M;llQMd+zYX0!sc?9&bZW zPxt*=`=M%W9uKqd=cGScR~Lqw$|yVb@7t*v5O~;l-i_8Bx$z<M-ZuW4HQ|<2)~sW% zD{lldG5dv2^jI5dy=2uB*GVToN$2ypZi;=oE3<RzukfmZs4oH2j)iQHYVw($|NZvt z3!-lp2=H!=d95MA_95ZF(fyCAcfZA)zSz`t)qd*Ie+RaOZ##Rk$$sgw=~}0cKG?Ze zCePsZPv;zqJ@u9mnueiQo5VZM*0_B>rW$-+I<xX)+PgTG(^)f(p8PzZCb8S{Pn-4a z7p+F$r<aL~-B)M(9x%biYUS2ly60b)NbOAv+^VxTq<EL?>rCyPSJvI0%e32nMwaz_ zvm;#h)~PS#WqUSHFxjm`RCOxn{KEF$2kr*HgsXcVXWM&~KU(G#QT)p1mDZwP&0Os{ zr{(QWZmFF;SKvCUVBg}UYOP-x=YLa5zm#|A*+0HVt}X0aO{!v9CJO%K=*i&LS=#@u z^^3^4hNJNs?0T)!W16S)NL2nW3|^9ArryqYR;|p>ByTQLQ{gQ08v$<=KbzlwwU6OY zmC>EmJNl0?2CV2;Ygw5*+g;Vda_VOLfQ3T2DG93IzRz%&T)Mb@=S$;~uP$!!hIe(Z zN2)(`;%N@zQQsy1W{YQ`=hT$b)xNg(R&@P-`8YwH!O^3KyL82y+ACW3m+pHX)@G>x z<*}sxUrj6br|)~4<lJqRW(KQVe6%~gDSKw_j}KE{F;8E^@c8cm^8&YuA}_B{14ldG z9EpdWz3&YTnX8+2Uv_A={`W<=;{p?t%)!aB=U>mY(coCwCZ3b`PtNk}o$beVJZ`;y zC;e1@{120x>Gid|)!N$@eoxkX=#(6^JXGc13Gpk6r*~@Z>pOC5i~Zdnm5e@pdoNw} zSXI64gvt9|Og=Z$Z}+|7NQpeXDLGmC@h0A*TeoeU8Fk$1`63>P$goW|YFE>YbD29G zcC=-0d%xnv6aU#!byr_rc)5SV%BLo0CabbO&rkXty?Nv1S7Onhcj{m3t6r7du<gIw ztYgb>tNOcm-JY|TT}t@2R?M|eN0dJ<xgn+S@XPVz3ubJU-+m;^Xy!wcv+vp7Jol`z zI~pvz(d=QcZ;kt+L)PU6CUUks#t*wScpe?BTmP{n+412bnTW3YlAQl0cll2j&-@@g zWxM5Gh2EDjdhHK<ENV2SO--qte?RHvwaAaV?{B)e>F(*SM{mFLocelikM9YK@`)Uc z(u=Nq{HhkF6Ea`xU5t%Mz3`R=XCC&y{<r_vtA$$s`)^LXFDCLzKBnaO;j(&@%=6Dv z-(_~c<Gtf|U;EpZq}6ZvqMx2Qxm)&LfS%++=9f?R|BOHJ{iM%p|FFe+sch%B)#R4; zUUj>7xB35yv&YM)f67Q~|9a7BoA<YGOdfr=a%(ruShn-kk3zv`<wt8Z{o@O6?3sPz zcaWV8v;3LT{{jae{BwWWS!(ez<_fDyVCv#aaT9D0c^qavlyyAjmve$akD^xnA*($v z|C{LPtL#ucmQ(I=)KsIvd+)n2v%aXmX^Q(~r2{|svisVbJhi^L_JZ&UHolZ8$9`vQ zjJ{Z5Um>p>_N{5Ha^A}&LX{6^tlG3SFgfh$N?WN*J_?=3rc3upIaenIpSG(@s0_T> zUe^3n&OBCmw%N*W)0ZXgntbZn&x&-%GiR<DEABR|UtG(OCoTR(vLkG^>*b(XJ10H- zIBVVYTimxw<1c$R-;CR?X)m>$D>M4U=Afyi@}*|3PxtJ1j<H*Ecgf4tOm4R8GoJHo zt3IMvQp<k-;G^m1Hy`>gVXi8boRa-@|NOSYHv{Hgnsvl&qW#=I3l`+<nOt}F#J;mG zcM>J)g#M&TIp{QflQg(lnQX>dA#N>epyw(%PrSEP{4uvSd&kxp?Mk!4SBoFHsUWZW z;PtcArOMCkIxj8S`SQqx?4GAPPBU@pC@k=L@Vx)*LiWH9>o08HHD~{pw|(AEH+hJ> zT-47y-N)@n>xxrO>)$81SInvSRdz#@|I3uAN1YGMow$6R$`O|johOfWAFuTl>g$^| zsa-<-UJuuCNwK2jlvgTN;-*_yE;+K~M~%6oeDI{_Gdj)+tKJE&SpD_v3Z5rN>NtJ` z>ME~FkqLF4da_(XI$;Obfo6t1wcKY-+)6XMu2ux<uZgoRHeuEl<XyAWYC*%f<^|WX zSkL@Va;*%t{K;>>&m?0h-%md#3yxA-@l79foNw4C@6wf-_b`81SxMr-gC4G1HpZpQ zP?C!?kh!-?%(l-?z(2!eXR482!bTN_*}WdioEl`3XYJoF8#E=w{{~NUhoV-9(42y< zS&RXUuRbNu>N#`yyX>_8N>(5DO%*zF_TK`N6oD_SCwTMvGXCg0w6P?&$?sG;R29rP z>!vuLWX`*a7ktmJzPTJ0wD$QItM0^iw&yc$w8j0st*vPP#Q0u(+;%1B_8rVuMSTCB z3*0Nav_XqKdFJ1(mrHbuuRTf2Tzq)vtLY3O2TwYruRL30{jbA%f%(pw-~S@q*<D>S zw->XVnR`KGs*Z-(wXe&CzufIu!^@!Wl*YK>^R!v_`p?HTT-#gLFy&{!<#`<(tzT9# z3ay^9^zHj&pSG-ewd<Ko@FVYQ*RH?6-*1(=`a-A5k8{h5qdPV$?2#?KeCO%w)F*tx z#(Q^r3$SqHe7v^q%AZT`q|GNjS={n%-6e}oubVC(z7|K`+qeH|cCVJnWT};VD*r2T zPi0bkA9QTfOtude%N-7%*c~{>wP-;HPvhPokI8c^bFwa<Y%pf5YH|I;ofw`NuB)Sb z%3PM`ScU}i!UX{rEG%xhY^w}**s-9%k=a0E;To4|&lvZ7e96CUBfE;l-Qw2j>hLB1 zb7xJz{cUpl@4uoG``?t5*i1ZM6?Sfqo#(feYn>i(PyfKW%qQ0NX`0c@U5C`#R%jk^ zowZKEqb7q}bKBz;s++Dj%UNYDt?yT6c{M$@VD*yjdp}r?*SwrwyDq>w`^%kI8^1rV z{4po$K~euFD}~UBKcxM4K3@Coo6W)(U%6N3d{`m1Rcr6=l#d<JPVI)l%Od|=PPp<i zAz84kw@&(%e%sTq^_gAMRIPotU*Ep{<<;*7mG>e|w|)_t)Zw5UfB)^>AKWJGcj`Oi zHn|?3G2b#l<WFtFm3_s2JLCOAUaa{mW_6#>@xPt1f=mlzo#AwbOB>n`SSIn8PF;4L zGvdJPygO2DOP*;+eEa?5@QU><e%C%vH+kZIS@ih-$HAACv)O%`eimH`7l_%e;rq+L zb8p8v<%4y_Vk<vHDCBQl{AsS_6(LjC&3nb4>F-Rw)oqm|@wXzr?$U94wFKh?8C{c4 z?ScAPemAG<uip2+CGAhm-<8~rvKOc6pK&|+`*&~scH#FrUaP{E&HgPo&F1a<<GpIy zNu{CJrasMxy!NMj?$zt=LaPHOil1VRDOa2-<STemr`Bno{F3wTwcPKs-yPm8du_eH zw)y_=uO~}0at7Xg`&?OC{$^>)uFKmyPs^Ea+OT}my3R>=!@m`A=5jtXQF8m}sh<6k zCAIEHxAU{GZ&|EQ&dXa^RKLCR|Hz4|<jHD&inqQ$VPh0;-TbxmvRJ?B=GU?j-}XiC z^_sHh*N5KOYzx26k5B2fo;SP9wAOx=%~wtC-2dM)(hmx4Kev?Y@#jT4J8ms_zGcpy zJ*=Kmi&-AdSlxE&j>dYW(0yTC8~l`?zgYJtZr*+do+}MW>sbw&f1I+==y@M=qd;P| z9GCLiz~BP=@QF9nbohOJR=H|Fd0wPg7=7>f@_zR@JFDM*)p)t(MV|Ski{E_yzWDU# z?n9#&ig~XW>Q)Q%NvvLwqPl3Ood2SWsw_T2pIwB)bvAusyrG_P_Nz#GiPEK|DaEP6 z3&m?VZ@suwId`)CRtZ^)X+iVE56Dk^Ue1@tJHLCG&Z;>s^~VGB9E)fBcC+96t$Szn z;kjik7Y@$6KC^34{<))${hbx3X5EpWX8TU+)=`I^zSPgmB1dL#y!=D3x6%5=w*z`_ z-Ou?1z5Vg^&cW}?<JYX~pS9&mo3+Pmh1UU56<gBt)=E#kYvvg7M9BN*{ikzIUq7|q zWaiws^;c&ntb1doUc~ykCGtXRgk0XPJiEpHZoUWSU#=`q{nh-lrDBrelqXK*w*new zI3=7cF^|Y(U?|;h?HD-m?8_S`3~NnpU61%0xykNRvhByK{_@tL*W)I?+<9%T%dTUh z+vZiBc(i)wmi{{x3clI$$$|HnzHYehFuULF_PtFjHod7~tKN65#(7Fg{SNW6**6Sh z%u_GfYpr~x?m9hq;r&x)(obS$$a(blr+#^`*lyO04&$SdZyvvuE|Bs)rjh?SIZN!M z_Pt&)zMRU{=aVmHKmMMPba8sf*FT)!y5`(C%38CKCsZwGzV+t=)430bH_r`o+c({3 z&dkYE4);FZY_#<BdymV{w7*ma-u=Gauq2+r?fJC(7XPBvsx_Ld8P$FXm@Rny;dWWd z+#7ofYih4($%UGf`bcIpUeNyc<5=VAh=aN7J(bM57}b+oYM8fpH3+%(`e#io*2`ac z$9SpHx$G_Lio08*BRAz<iu1R-)0Ob_fk$O{eg5a8zf6q2?RITYUo<7Ziupvvgm14- zDNhK{=eqXZ-zsoh_46-n1?4Z#>O6Kl&bv9cdFv#$Deq>t-l>hPl2zZDnC`y&`SrC* zdoquo=iBgTG0z)It%ZMtvM&4&{AY1Rq2q~dg6xC*HmU6a%u8oyDMnw{u1jaWdMYaY z&%)JN2QSWCxbVoawW%vUb=w43?HAiry7x=#sv~I|LpO&OG#<*_c51P-qI}8pwMoS$ z-z=*4{fthkt>fs|EW2}5QSO_7`JIi9|NFv^N34=KzSJrtc>TGBs<)i}eLZ_?YFtc6 z`nuP>e=kM9k<_%0m{DJ`eb3Pw`H$k?b*avHa^l{X-G5tWw4a`pHe;FMk#`2u8dp_U z+pgM~zeRLkSmx)zla&XoqE~&G)O_@yn?v0l-{0*2ch6V*b!}I{{a1^wmQ1dC!oE`G zo{avZJtpym1py8o54F?OG`4(Nd8n{orKS7$ao5z+`OS?RuUMO%o1P+&7ynM^=h;)m z#fx9gO<(2brFQ&ASoQSI-rDJbZ(k?p?tUfD&*<L%;_M3Vt9`cvEjGU0A+0s-SJjco zciCIl?<-E|+!k_2yxrt@-M8G$Jt9S(!K#fbcAtM`D<t=F2jfbICb>?dj(^5WBQ|mG zSaNbAL+!O(*XhYCmmE4(eQLv!bJwyz$d;HT2laj^YMiWp`zmA7odvoJ{_W-Qxa92m zzi*?8*Rqg{DL2YiPFd=1y4vwwO|l<@JCA6e_{od*@&6O`K5L2^uC!CTD-<Mg?3A>t z?J0H9$<~gKPW&v{8eDG?xyt&qA5ULyf70}<m3NLTePtnX#VG%z<)x@L&phXKZw?e} znBIJB=H<P2jO{m7MQVIk3-OpS{q=+iU2;9WZlCs+W?w%qBI|K^MrZ4<yu~|JziZiT zS+URWulmXDv6l?fUO6#6Rc*IfT(imCb$UP{(_(>R?(6w2f*$FZhW~L?%lV@@HRJ1r z1>)B}<-OT0UXc7==X_hu6zAUBLpCn;JEiXmGu;rpz4Ua0;_U5Ft2a%3{ytP@mFlXH zX|JAK`R{1f>blMGW6nii9xt7QZ(;Vuo*Id{k{f3D_W!uBU>AR;M%O{!#YH#c<Sr#o zk@+I_ch}dd)8!NQFZ<}~*u15vUb$i3S?%eOpQ?Y&&D^`HB%t=nnGIhSh28l2R5ixq z(w}8BBC92rx*qxZqWW^`iLaW5hlO>+FV26#*5a&M@<k#@@mr;=_4X5y@1+h{O?zS{ zmg~35Z_0%=D|efVC1&PyHE9~OFqmiNEK2Q`Yg4gae&9;!^pF`oEYr7jd{=lWGIjBj zWqbXm<{jU{bh4}c&9|C+oz~kere`eKD&_1YU^n-1Qma<^ZDq?U)0JnBew6tWQZbMH zhvaKPp-^YJ&2wz)*{z;*MI1X;msfL(-Kg+&O~uQdwO<U&WCIS1U61L!aN=LEc#BxT zZ=RNi3f^z;zcf4E9e6u?tI~xt4Ill5+N_J;b8zN_o9M(HTVZj^JoM!BYlSuf1^dtQ z{3=^#SbOD}+LxtQJPR*KwevskfAaFos#B{~czznpn{-`I_E2)@JfT0P-v#C$I6BM5 z|I*Qy3t6Tt-Lo+<Dd~x$`|Ei-XMghMO;1|ABTwO+RR5*z4J`kfQa|SyhwqxLaM;cK zY1>LePs3R^T^`0Rh*f#=^U^oVPivUp>_2+j#G0wTOp8fw+7EH-*{r$G{#+_)ssDR@ zug^8s>&#ED^L6dfvg)-HliY62KJ)YSdCyn0`F`t(Vq3kn_uV^>ZJl$4r+>~`m-jwl z@rF5(LS2*h)W?TN%eMJ!c^VY-_epeV$Fag60@9CvO*yu8-WI2jRrOLO-x8S*Oy?^; zD7|6dlA9qld>^LP&Dd!2Cd^m!;?uQzS{bh;bYJV;5OioYC)eQxYERCsmi;sHn2*T4 zxc7HX?9;D%7tC*0aG#m~-|PK$KRW$uo;619)4mfQX;EFfwbn!Xw;Lae;BKx7`Abi6 zR$2#TD<w6FURi#qcKT7qFT&@4d3!59UwD-(>)iF<+2P-3*hqT^ar}=vuDJ9O<Eh8@ z&%RoFlU47%$mG4Yyk!d%!*u-u1?Eqwd}MI@xKdJWjO2G+sp_S9%eyLPzFgOz`*GX3 zQz=hAT0M?AQq1Rj>~$UQiI<yCCiooU{d~GfuXuH;>ZhXl{)+$B9bI+LtCZ1-_ahry zj;o2_W>Xnv+ee!k6mm?JcZBVo!_5<a-Q(YuNZwE0PfHmzj$c?_;Ia1EzV{aU($q?f zPFqUztdM#hb9K@_=XYkE*9)x56x5eqS$ar$2a8h8jIG6mOy5>qKO`l3*WvoK#Zwe7 zKUyKYDKzue$A^n&M5W{(RXQAV#_hyGhLhUeAJoEJ*0~)y!x?yGyL0pmFT<zaPp5d@ zeDU`6k@ex(o2Tjg{Ht+)%ErBdC2O~CJzS#j)7fkuQ;W{;<uX?TS#1-auQ}vk|El)q zr^?W7?yoYbmh0C3d0A7~xhJ(ea9UFO&wFzn(_RZ^YHR<H@odpxeXY2?GT%UZ*VgN7 zL0Zhg!GhKYPhY-#?JmPKtChtE>Jo0gtJ|of&6crf;;rS|`_;JBwi)#}R8(5-XlY-R z9KqGiS`@M5%c)N<SLpj@i%XjwUcKkF&p(HKzn?DZDJ$Atz*@O?=X=e`W)FQlg&vy) zS>|^L8#{@6?sR%`$1U%Z<oXLb)l!r1?_X+NCHlSLh5xUf9ocSYGiLeeO<m;m>`wBt z*XuT#v7SwOEH`_#qwDH@5jsk>6E2)!*`AfkwTJEO;s(Amx$aK`jQ8H<KPo=C$4NCQ z^o0HLn-<^8S-rpRi)yPeuIZ8W^pd(f;cn5&6W08PKXm0;9G?8Fz$fQ~AuI2k^PBX3 zvOUiB;a?N<&BblkmcY2SKUv0U{srqlPGC0Kn;Cs-m7)7ryOQbM_ZR2SNqxvsSE|nH z9jE;BZDrE7#2b5d`3gph9p7Ng_xJl_$4-+~_gz=NoyS=^*Dj!o$<XN9PX()2550{{ z?xg-!U+8hlEqBV2-Ww+@C#$Sos_XyuP3_yi=JVgh@Az;kJ#t+rTmSPrv#z%vpRr(C zrkdY`py2j2A+9ss@%k~Ln%x`cpE_Ru_JMYEVb8&cpuNtL&#R)V4b06mB2~UGo&S9M z{SO}*)-L9_mG)uvfl7uf`ER~2w*+Wh`qFn#zh>51*|0UX`)`-TOz!>5z30?XmV2{! z%x*H3C;OaK->&7GJG)e4Zh~PSr&r$AOL5OHbgDl6S69BpS7plb`i33z?Dn46R`xsM z@|%~fpA)#;Z<uml-m<*ws`&Dr?O{ceI^}Eb|IL_o-6U{HW<aW6hpEBkNvv7BQV(6& z<~?bbbe$2)+sRD_ie=t5Diz=RaOp#4@a3W(E4SKsPTY0#O<aUj+zs~F7$2ieXAC^l zp03K8mHPVJ@n2WIHEegXn9;WBsoA@AuQtY7FM8s!Xxn6sg{!<Lt9f18JUiarh~=Wz zn=`iD6V7z*U{TE$6bthZ;7};LbM()|@;Q5j&tID;dh}8EIhPD3#a{_sLJyOcFTeir zMW=8?R|4xfR+THJDt(hxF3#ODMfHNs3Y&$#y`E<bj@YbT%@h6hm($_UgDhYA)VU-Y z1qD|2w{9@a*v{rJ?0$UBO{e~eC&iy@UuT>5mm&Qf>-^LW-S^pS&CS-HJ7~W<c|w27 z)>GA=pF}i9@~}EjjGR@Mv?({cFTEt^EO+-(1BQeDWW^qEOgU`5`OGoKvfG~~FJJwY zDeI(yfr;403Bh%)pE`YX+;8W6{B$xuH)PsFrkmNSk5^{2=X1?i(z<SkqyqbgPm^!N znRjkCEo;}FX3TWzz=q4wvs-pMwR=w0K6A9?k=~|{nj6pBuh?m&^B|r(g**CzeCfne z&77QMt}cV%S)Gs6qeJcHyUg9<bTB|5>)Ps*ZINexA6PVllWU9SV)MOE@~78GtP$0` z-*?xzwOmP<?{&#ODW@&dOdnhDF0JsJ*yfhPvHQcd^RCjGGIKp%m)uOcT5`cV?x<i% zS(hVsY4pea#w#=Z)|m!Q=zlh)Mf0o<L&)jG3v9*Sk5}4z-}DS#ek=Y{RdV>wEfVYJ z75Y?hMla735(}QbFiBQT)0H#k`peSi+pcC^TlMu)rd@pzm&;6ZgG*Q9W>sCDK6k#p zt;6!8|7$)i)_tgT->=N`Jd^X5i+;sEFAq)Gw=z9p!Sa>=YFNFeNWPI1QCKL)xpvEi zvk`i?+agMTw}0`TQ@V4P*lzi`W+hV3HNE5SHywXFlRtk7*XQdBPpvBVe4V~$x832O zr5k^**lj)K>{)f4b>S*!R@U9wZJsXvz@+xt&B-f7miz2F<DsW|;c>R^e74<7?0R3` zn<Epd)c*BtVb=HS{L*)OH2-r4y#5vPMcX|wFMj9c(<giHUNyA$Xn48OeA-s+Pjdbn zRrHG_9v*q*5^<dO)P@ubMyqM-RLa)8TyWnfC))O_q)NxSuJ@PTZq}$Te-c&tt>>>z z@T8Ao=93-vH_SMBZ{4Nyp+^7I6Abr1G8IW|S2x&ScKexAhSjW7U1z5?it#_bmQr}o zGP(Wx$|S3sduA;A_CNZ-Yu<`S9(%smS1g~AYvOx5Z0F16$9~A9ocXYbCvAz1v|fJU zrr<M|?riSn`Lsg7vj4i%qAlyPuijSqwQ`AqfQ9eEs;-S$vn&~Jn&=nt96ul_zhL6^ z&7G#UA8(pRh*t(mFy!iK{A%(#zo>ur>OYaf*CJwK?nc<xr%PRuz3RY!Na-F+irRgz zwbkF|sPXP@3%vBC*wpUwk&|zwl5bgETsK4OW<!gi;r*g5AC5klyw_AP{>42*R-3A9 zecMeXUZQ>)mQ6DjWZSH{WN#xjCD~1S=`Q}v=OGKu%C4AwAWpWqU+G@@;_SrziSE9a z&0kuI^R|c_s(7ujVxvx%I>)8WCU>+R>^`&G?BJPydNWqdQPsOAC^>Plgx{gtp%L4w z#INQ|3H!Z*_n+I+r{7Alla8BRJ0V$i*YnHO9L1jzy4O8_YkEYkkXw3V+Jkk6qI<5r zOqt-*8I$Im{=w}`dyn@tuEa~P6WW%$SV!^Py;GR`yJ+oh;rb`-TIn5=s+6~#XI(0A zdDprwFUCW~>i5*w@*ln8Qt)r#;;5-nizE51|E8TyDVo0O2Lu14R3_yW9p?A{+2`NS zIpUh4{GVZNpWF|P9UE6YyT$e-NsHkObDPN7C(WzhPkc0kxzyA6=Nj)tv!+aTI=|xT zhdhpS=WPwV8V(U<i8nvi%sbgpy5{n#wOUU(*d5lZ88DT<J@M*Dk_CeqpWJhc1jA%q zz3E@yyj0&%{5NM?{Mzk%Qm^cgu}Hp9BI15laZST#gO!tKtX~?*F#BBe>IZ&@XUvyr zmho=<khXbK{9@bsb&p)n&c1!~>GY&@i^mm(8|40+x_0&R$wz5rD}VW2_N+NtreARI z9qY;0PmHf{Y;c_G&f>OchifP|>)ssWnP*q%YUGx=MjP2N%s>14Y5MYehMQl8hRAbr zawQziUfl9%-ISx^aZg{I{JU5*eaF0IW>$Ok*p|K6li94lW{#t`N5nxJXZP<;hqsjd zF<N*~Zm+@99@gD$Y2UI8dQ57zY@I2vJ*4-3tj^WXTRP1DY&&`;bD?1nZ^Re3H1ATM zFDt`!FI%W?U1j}2YvuPXTapql8FI)SUUeez;H<~O2I2?qzbOfyq(662j9H`mi#4;~ z#CH9ez4G_pyRwNl?{M6GkXJBk;<3yl*(Nn--n8<Ei{I1Fh{{dco@ncNz)e~_XZM#s ztp6MP-M3BM{QE`Bf`YUadb>YAVHEl*=V#nowNqu`wMzSw=jJvxss;XZVVKV?uUV!0 zv+=<)_HXC*?u@?@)X=)dr!I27>~R|=9w*a<k8iX(R&jY)wtQYKp>dF>B%bqB!kz24 zWhcz4?VS=cOP(Pt(N*~T-nfk>oQGHWiRztx{_1LDiLh(xk<HnPjWKsyCZ3j$csk{H z>v7|mt($&cSanx+&l6dz>?sF|`nR$E-YQhFvdDOWcF}*!BDb?A@?5q~S#*ZmE7ZTR zX;DUvzS4WgwRJjYVy5t2=?Fgmr2G5h8jiCUMXrCn?yPiJ;#{RIgNCeUu5sP@=lP13 zF7D0Go#z*w3=I08HR;O<Gu}A;DIRZwpYL7hFh{Iu|AAF!e<zB?od`Gn<F;pswPN}| zuK6FXmK1*u_KsGJiTu~I;QXP#_qd+4mWiI}JFif8<<08_x>`|ES7scUUi+=%;i3f@ zGaoPZdJ?wpdC7{rr&o(x&Tus3JKQn#bKCJjqu%-X#1H@6*t@6ZN$iV0>Eu#pe9d>} z)cijG<w{-so4URomcI8gr)JkbJEv`r^CsrcN|C*xeBf376s4!p_x7EU5#v9v9wA=G za&DU2{fRc0@19=fCtVQjVDX6Sx@F1s{H1=Dnauyr$VsuUzi7EpW>feZMZcTJzZo3= z*gBhksk>a#i5+dmO_d>9>D((@YYy90Cv!e2+3uAf;V5b>^T6^>{*v5>0kV;Q{HC*> zod3hPaoX|VZ5djck3{Y|@Op0+Se>D`<HWynJg=T^T32lMVn*8z(<9r8iw$L8CS5pl zFRWgAy5OX3u_A76#%jIFD!O~l?>Mqx>#UQBovW`h&)xSSOF>}2&JxyV^?&t58e*5d zy!EuS>QK(Qs-Trqym&f=uP(Pew{ykO^zFazOgOoi^U$~5>fN@io5QlZ+#ap|Z=T3B zYZrrD*)5UBnR?bTR$H_q`d9F`l}`M%{KEG9ugka}d~%xlXYIZpk7n-r>%aNYj@eo| z!tv`T$86_5)+#7)NZawy<?gtZ``BiGIinxzqqA_jt@3e&nytQx35EVmOm2lw3VF<{ z#8_uIDH}T|1}`cwZTP%F;C<5V>6fp}oVMlBfhS#=yB6l(>h%bGu-4UoYtXjs2VcKv zc`qmLar@65Q{VIbn?8K)GJUX&<yvsil}kPBcl%^y7^AjNXzlaQ{5)5XkCk=4{DqA# zi?Tb8ovmq3Uh3`o{RH1d$1OQ=mij?n<=p2J<7;P~XSuxEbIyXBdWzgi3M+M36Oz_v zHmM1n;`H3~HH5kC|Cg%;O4m{=QrDDTziT*QR_QEjO_3|%mrhm)eh}bq<kb5+t!nGi zxRnQZZFDW#9xG~Gd|J+S_KIDx*y_&vwu`fbcO1QF>+>jO(&yBT7e3f1T+c6TiCVvW zmZ}o__M(SUyAoOdHCU@9vSwP`;g7123c9Z1(wIEK?<?=@b^!_ZRe{bwH6z*t<Q9wG zpLl5ZodCUt{0p2tle2|qi}~I+uP74wb(oinL1O0|Apx<b*1gA1ecQTBfcMfA(?|0( z3wy(oKPNK<ss;4Sc1|&wtW!}U6{BBu{+^`n@sfQvre;<NzVNv5@7^;f@elGvTR6>U zyD0FqGERT0bW+br_|z0v0q0jr?$I_=<Im4etzNSvgtyIL$$tM=!euhkR{2~w+<9Z( z%>Pj@|K6xt<hl6iBE@cJ14m{yV{uufr(f2W3LaT3d2_YSxev4UetCXpN2mUd^<7Q( zwtoz<e{_ROz4LO;4xYA(a}UJVRatTDF=|^W$go;<Qk(>v=xKvMZG*_5DL)$)-sbVR z*jaXVt-t59ot~SV&a9u|VVxTOLASZzl0$Dv>!TOSpBGCz<ZlwYQ@!J9PLapukGxw$ z4;;V6cy|8!yPV<6Go-gU-pmS9-mq;eXGj096F=`TH0leTZkzj<qogX}@A~U+KE-Lx z^h%x1UHvi1KTD2xmgV(tA+F2bt9SR5)GxmJg2m(^FKax5LxgR88Ot?=c_(*tWxZc; z?u52;PfKINw_6Wn3O5+6`EQxovOs0VscUt=F7t=1S&%U|vBFAj&nb(zol(3w*>WK! zZ2DpkN*6XLzE?glb>7iO>Mm^xNBq7lIcB!)q_Eef?rwkSi(yaw+nM&(=?WJ4-<-2f zvVFBg56{tDo|&7^$LreMEEMD1bo|@Htks`<|4V8o{+uM@xO_rXe#pl+|77G=X8pan ze0kLNuY4{2rvK(U+3z#&YCdJ~@!9*%GOnltv!c~Fm+rbfC0OT1cKrG6J684zd3GI{ zw_5N<>XQ8n6L!dK)+qAti@j9vf2O0fbes<-!_A#48@SS{E^YaLEmlq8)W5>kCH_%r z;%$A8SIyIwvZ#^P)L6BsLrMR|fdcEgK<716RkS`HR6hLWu-77$ANrk>B~E+W%z4SQ zL$hbyXA^&$vkYtUJ(80B;)=Jwvn&o?lzi2YcSd2MBJ1g0Z??6&xVkoen(?Kg$MXF4 z%l;a6y5~F;j-TCY6m{#|15v%@8uhuR)1J+|Wj}xYq4n7ZwXAcWH7@%)eZ{4ZS!T0^ zyzg$Dn7sF)=gBMU>#c3;o@pK0dr|c?f1b>=zgAM`w<`R&D6DyA&F<4J;kk=u9`<{e z|4x84zbke3q5qevl<x$_TzzpSuEfOkVvM!yUh@r&ticMWx@{k+&n~eI^-p9eyviuH zpGWyyn}YXb=A!L<X_v}#KDcxr+i1z1^B~~;?0t{8UzFLNnRjkR`BWL3Ia4?+k2Pon zSst_q_1=*d-_8)h^K{wA8~Xx3FG~G=P-geOFxg|Wk2dc9$D�cFOkZ86B~X3)bar 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 M^Uh|yd3TeT09wk%*#H0l literal 0 HcmV?d00001 diff --git a/public/assets/fonts/cal-sans/OFL.txt b/public/assets/fonts/cal-sans/OFL.txt new file mode 100644 index 00000000..52135553 --- /dev/null +++ b/public/assets/fonts/cal-sans/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2021 The Cal Sans Project Authors (https://github.com/calcom/font) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/assets/fonts/libron/Libron-Bold.woff2 b/public/assets/fonts/libron/Libron-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3dd0bc011418be35c90ce983f7b01aa9160667e5 GIT binary patch literal 84724 zcmXT-cQayOWME)m^!mae$iTqBoIits(W{?<!9Rup3y^Bmk#2n%AhWoHErFraj-!lo z4v!!QS6h=q>#ib3GbR=0r5xOo+!$CCSSQr5-{j<J^p1{p-0W$blHD)2Uyk3Nb(`V} z#VnIoGD(wGig<~ZR{xu3)3oZu8<9;$b8j0Sdc=|Ob-!=yVVl>?cgz;-e?04Q?4*DH zVPJo2s{fbS=VrH_yS<lxzx4-~2MsGY7Ha+I3^MVYyd|b-vV?ERQXNGl{iK_p?br%j zc->cYT?y}vT0G;}61feWJ2Uhmle<>#?7DVV$4y1}b;hMT=c*^WUa(l6>o&b)sp(H4 z<>+0;j+Ldh2Yva{rEZ;ZIiFp&d*_bX2gM`Hwtn@rKQH_&b?Wn-;;F(DQ{xuwlYH{| zNKN{_NlRr{8LGy&oKsM<5Z)r6t($X6M%T@Q+sx@4yUxLxPU~h=2|qh@^nRZ4CS$D? zhrG3x3%xsg`0)X`Z{J=W=<}V=nbb5xVcCLHS3d0ic9P@z#h1k==eekAZ9H`M+Xq!W zCF^^({2rY$zq9(MA2-$BkoNA+yh^XDSA4i#{&h{`{AE^Gyk=|R=RVClR%xy?AG;WT z=C3q7<o#9L;Gb7i&VmJM6}K+hBxwDfw5D8%^~||5;>yn|HvDA2Yxmf=)a!<^qmRJl z@3&MQKW~@++##0FKY2NSuk@K0Q|ijo_p<hf{P2A5c6-&m&>vZG4|&@T_GTPi%_(~C z<tyRIT<JWIx7Q15?+Mv5Gf;f>&xn$q>|d{WzgGO{d3(m@&J3#xm8i}*)|w9o8BT98 zihG>iCV4A<`J$NFJToh;7WTb&5!&{x<kYm2Ys#N_TuLq5x2`{}y7cn`>Ca|-Yh9%S z?*=_|seAm><mg(1xP(%Rv<er=xM1<AP1EbkB;M>d=~QdgYp-0gGefhiZF%J`@7hTh zCP_ct#`{;~=lQv3l55`1eEZ|_zvcVP4$srv{q6jx@)J)MB|g<#^74k(6KmVNmfqS* zn@yaS5~WF3Hr|fQ<&t^koS0R2!A_*^{M`F(@87jvdv^DGyWG|j?7Ls}?2*14yI*;+ z-l`V~n|@>(O)mYsLg#SO_p{wONqi@Ey=w^9@CgeGGjiUN-?^M`{SDR@QDME^%Bz(3 zi!2M+xVAmEZiD8LmTR5PcdtA;^X+q=Nvy$M_uqNXuAg325aMxg{-Re6Rt9eK?*?7} z|7O?hSq1MWEpM>MvuzN{?a;in>8N1%z3WPw*1no~^X~4)?>L$S`E4dx8_ZRI!ptwn z{F37%gWx7EwMmAG&wAv)@@m$5c-p)CRng(^|NZs<I^UCb;uS<D35cv(o)uG?D?8cL zq1edb_8W%D=8?%v?ByQafwy;?C1>C7za=$&*VcrRjYU?G63%Z9wMHI3arUvlui$Kt zX{<-o7>{P2I=(X^oulhVw1*=1IWfs!R_y2W4&B(A+&(eDS$66YN9&VJvJCcxC-r_U zZ+}>K%KC3G@8f%Etgg%k=H^8u{ASw>%_0nLoCrNM%dkp%anMOAMTM><Tc$K!ZRq;e z`{Z8rYd70H`~N!5eQIUVx%n^u>7z!TMjLu0;<ul>TlB=?FCV}6!^VU45gYdA{%25H zdUMuN*X}BpYbn*4`!cp1&0v%0DiG>+J;A25<!}Bsy_-*b=0BO8khQXL-NIKInNl~l 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 z%0D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 literal 0 HcmV?d00001 diff --git a/public/assets/fonts/libron/Libron-BoldItalic.woff2 b/public/assets/fonts/libron/Libron-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..db5aeaf64213e58c2c1bd9052613760064776b74 GIT binary patch literal 88748 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�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 literal 0 HcmV?d00001 diff --git a/public/assets/fonts/libron/Libron-Italic.woff2 b/public/assets/fonts/libron/Libron-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..893753648c8e7201bfcbe06adc546ab28e7b7233 GIT binary patch literal 87284 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 NzdWH~x0{oJ0RVmci?#p& literal 0 HcmV?d00001 diff --git a/public/assets/fonts/libron/Libron-Regular.woff2 b/public/assets/fonts/libron/Libron-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b8549d7030ae66a2ab786865a5bee9cd6f1a8aa5 GIT binary patch literal 83828 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⪇j0sy2^>P5xe;*I%>$zuXdMcHz@e=ktqa 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≪fM~@|1U5 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 AQ2+n{ literal 0 HcmV?d00001 diff --git a/public/assets/fonts/libron/OFL.txt b/public/assets/fonts/libron/OFL.txt new file mode 100644 index 00000000..1a332be8 --- /dev/null +++ b/public/assets/fonts/libron/OFL.txt @@ -0,0 +1,95 @@ +Newsreader (c) 2020 The Newsreader Project Authors (http://github.com/productiontype/Newsreader) +Readerly (c) 2026 Nico Verbruggen (https://github.com/nicoverbruggen/readerly) +Libron (c) 2026 Nico Verbruggen (https://github.com/nicoverbruggen/libron) +with Reserved Font Name Libron. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/resources/css/app.css b/resources/css/app.css index 1f787028..f02fbd58 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -2,6 +2,7 @@ @layer reset, base, components; @import url('reset.css'); +@import url('fonts.css'); @import url('colours.css'); @import url('layout.css'); @import url('header.css'); diff --git a/resources/css/fonts.css b/resources/css/fonts.css new file mode 100644 index 00000000..b6cc66d3 --- /dev/null +++ b/resources/css/fonts.css @@ -0,0 +1,61 @@ +/* + * Libron (serif, body text) and Cal Sans (sans, headings), both SIL OFL 1.1 + * Libron v0.31: https://github.com/nicoverbruggen/libron/releases + * Cal Sans v2.011: https://github.com/calcom/sans/releases + */ +@font-face { + font-family: Libron; + src: url('/assets/fonts/libron/Libron-Regular.woff2') format('woff2'); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: Libron; + src: url('/assets/fonts/libron/Libron-Italic.woff2') format('woff2'); + font-weight: 400; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: Libron; + src: url('/assets/fonts/libron/Libron-Bold.woff2') format('woff2'); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: Libron; + src: url('/assets/fonts/libron/Libron-BoldItalic.woff2') format('woff2'); + font-weight: 700; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: 'Cal Sans'; + src: url('/assets/fonts/cal-sans/CalSansVF.woff2') format('woff2'); + font-weight: 400 700; + font-style: normal; + font-display: swap; +} + +@layer base { + :root { + --font-serif: libron, georgia, serif; + --font-sans: 'Cal Sans', system-ui, sans-serif; + } + + body { + font-family: var(--font-serif); + } + + h1, h2, h3, + h4, h5, h6, + body > header nav { + font-family: var(--font-sans); + } +} diff --git a/resources/css/layout.css b/resources/css/layout.css index 958a556b..e87cb76d 100644 --- a/resources/css/layout.css +++ b/resources/css/layout.css @@ -60,6 +60,10 @@ pre { padding: 1rem; } + + .post-info { + font-size: 85%; + } } } diff --git a/resources/css/notes.css b/resources/css/notes.css index 8b4726c5..f93b6c40 100644 --- a/resources/css/notes.css +++ b/resources/css/notes.css @@ -7,6 +7,8 @@ padding: 1ex 2ex; .e-content { + font-size: 110%; + > p:first-child { margin-block-start: 0; } @@ -17,6 +19,10 @@ } } + .note-metadata { + font-size: 85%; + } + .syndication-links { display: flex; flex-direction: row; diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index 80e6780d..4f3303ab 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -5,6 +5,8 @@ <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="csrf-token" content="{{ csrf_token() }}"> <title>@yield('title'){{ config('app.name') }} + + From c3cf597950ce992cd8942a4d7c023033352246fa Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sat, 24 Oct 2026 20:20:21 +0100 Subject: [PATCH 28/33] Persist the theme selector choice across page loads Save an explicit light/dark choice to localStorage and clear it when switching back to system. An inline head script applies the saved colour scheme before first paint to avoid a flash of the system theme. Co-Authored-By: Claude Opus 5.5 --- public/assets/js/app.js | 2 +- public/assets/js/app.js.br | Bin 1304 -> 1393 bytes public/assets/js/app.js.map | 6 +++--- public/assets/js/app.js.zst | Bin 1502 -> 1611 bytes resources/js/theme-selector.js | 33 ++++++++++++++++++++++++++++--- resources/views/master.blade.php | 9 +++++++++ 6 files changed, 43 insertions(+), 7 deletions(-) diff --git a/public/assets/js/app.js b/public/assets/js/app.js index 297c3aa1..f1b9a1a9 100644 --- a/public/assets/js/app.js +++ b/public/assets/js/app.js @@ -1,2 +1,2 @@ -(()=>{var l=class{constructor(){}async register(){let t=await this.getCreateOptions(),e={challenge:this.base64URLStringToBuffer(t.challenge),rp:{id:t.rp.id,name:t.rp.name},user:{id:new TextEncoder().encode(window.atob(t.user.id)),name:t.user.name,displayName:t.user.displayName},pubKeyCredParams:t.pubKeyCredParams,excludeCredentials:[],authenticatorSelection:t.authenticatorSelection,timeout:6e4},r=await navigator.credentials.create({publicKey:e});if(!r)throw new Error("Error generating a passkey");let s={id:r.id?r.id:null,type:r.type?r.type:null,rawId:r.rawId?this.bufferToBase64URLString(r.rawId):null,response:{attestationObject:r.response.attestationObject?this.bufferToBase64URLString(r.response.attestationObject):null,clientDataJSON:r.response.clientDataJSON?this.bufferToBase64URLString(r.response.clientDataJSON):null}};if(!(await window.fetch("/admin/passkeys/register",{method:"POST",body:JSON.stringify(s),cache:"no-cache",headers:{"Content-Type":"application/json","X-CSRF-TOKEN":document.querySelector('meta[name="csrf-token"]').getAttribute("content")}})).ok)throw new Error("Error saving the passkey");window.location.reload()}async getCreateOptions(){return await(await fetch("/admin/passkeys/register",{method:"GET"})).json()}async login(){let t=await this.getLoginData(),e=await navigator.credentials.get({publicKey:{challenge:this.base64URLStringToBuffer(t.challenge),userVerification:t.userVerification,timeout:6e4}});if(!e)throw new Error("Authentication failed");let r={id:e.id?e.id:"",type:e.type?e.type:"",rawId:e.rawId?this.bufferToBase64URLString(e.rawId):"",response:{authenticatorData:e.response.authenticatorData?this.bufferToBase64URLString(e.response.authenticatorData):"",clientDataJSON:e.response.clientDataJSON?this.bufferToBase64URLString(e.response.clientDataJSON):"",signature:e.response.signature?this.bufferToBase64URLString(e.response.signature):"",userHandle:e.response.userHandle?this.bufferToBase64URLString(e.response.userHandle):""}};if(!(await window.fetch("/login/passkey",{method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json","X-CSRF-TOKEN":document.querySelector('meta[name="csrf-token"]').getAttribute("content")}})).ok)throw new Error("Login failed");window.location.assign("/admin")}async getLoginData(){return await(await fetch("/login/passkey",{method:"GET"})).json()}base64URLStringToBuffer(t){let e=t.replace(/-/g,"+").replace(/_/g,"/"),r=(4-e.length%4)%4,s=e.padEnd(e.length+r,"="),n=window.atob(s),a=new ArrayBuffer(n.length),o=new Uint8Array(a);for(let c=0;c{this.applyTheme(this.currentTheme==="light"?"system":"light")}),this.btnDark.addEventListener("click",()=>{this.applyTheme(this.currentTheme==="dark"?"system":"dark")})}applyTheme(t){let e=t==="light"||t==="dark"?t:"light dark",r=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",s=document.documentElement,n=s.style.getPropertyValue("color-scheme");n===""&&(n="light dark");let a=!1;e!==n&&(e==="light dark"?a=n!==r:n==="light dark"?a=e!==r:a=!0);let o=()=>{this.currentTheme=t,s.style.setProperty("color-scheme",e),this.btnLight.setAttribute("aria-pressed",String(t==="light")),this.btnDark.setAttribute("aria-pressed",String(t==="dark")),this.status.textContent=t==="system"?"Theme set to system default":""};s.style.viewTransitionName="changing-theme",a&&document.startViewTransition?document.startViewTransition(o):o()}};var h=new l;document.querySelectorAll(".add-passkey").forEach(i=>{i.addEventListener("click",()=>{h.register()})});document.querySelectorAll(".login-passkey").forEach(i=>{i.addEventListener("click",()=>{h.login()})});var u=new d;u.setupEventListeners();})(); +(()=>{var l=class{constructor(){}async register(){let e=await this.getCreateOptions(),t={challenge:this.base64URLStringToBuffer(e.challenge),rp:{id:e.rp.id,name:e.rp.name},user:{id:new TextEncoder().encode(window.atob(e.user.id)),name:e.user.name,displayName:e.user.displayName},pubKeyCredParams:e.pubKeyCredParams,excludeCredentials:[],authenticatorSelection:e.authenticatorSelection,timeout:6e4},r=await navigator.credentials.create({publicKey:t});if(!r)throw new Error("Error generating a passkey");let n={id:r.id?r.id:null,type:r.type?r.type:null,rawId:r.rawId?this.bufferToBase64URLString(r.rawId):null,response:{attestationObject:r.response.attestationObject?this.bufferToBase64URLString(r.response.attestationObject):null,clientDataJSON:r.response.clientDataJSON?this.bufferToBase64URLString(r.response.clientDataJSON):null}};if(!(await window.fetch("/admin/passkeys/register",{method:"POST",body:JSON.stringify(n),cache:"no-cache",headers:{"Content-Type":"application/json","X-CSRF-TOKEN":document.querySelector('meta[name="csrf-token"]').getAttribute("content")}})).ok)throw new Error("Error saving the passkey");window.location.reload()}async getCreateOptions(){return await(await fetch("/admin/passkeys/register",{method:"GET"})).json()}async login(){let e=await this.getLoginData(),t=await navigator.credentials.get({publicKey:{challenge:this.base64URLStringToBuffer(e.challenge),userVerification:e.userVerification,timeout:6e4}});if(!t)throw new Error("Authentication failed");let r={id:t.id?t.id:"",type:t.type?t.type:"",rawId:t.rawId?this.bufferToBase64URLString(t.rawId):"",response:{authenticatorData:t.response.authenticatorData?this.bufferToBase64URLString(t.response.authenticatorData):"",clientDataJSON:t.response.clientDataJSON?this.bufferToBase64URLString(t.response.clientDataJSON):"",signature:t.response.signature?this.bufferToBase64URLString(t.response.signature):"",userHandle:t.response.userHandle?this.bufferToBase64URLString(t.response.userHandle):""}};if(!(await window.fetch("/login/passkey",{method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json","X-CSRF-TOKEN":document.querySelector('meta[name="csrf-token"]').getAttribute("content")}})).ok)throw new Error("Login failed");window.location.assign("/admin")}async getLoginData(){return await(await fetch("/login/passkey",{method:"GET"})).json()}base64URLStringToBuffer(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),r=(4-t.length%4)%4,n=t.padEnd(t.length+r,"="),s=window.atob(n),i=new ArrayBuffer(s.length),o=new Uint8Array(i);for(let c=0;c{this.applyTheme(this.currentTheme==="light"?"system":"light")}),this.btnDark.addEventListener("click",()=>{this.applyTheme(this.currentTheme==="dark"?"system":"dark")})}applyTheme(e){let t=e==="light"||e==="dark"?e:"light dark",r=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",n=document.documentElement,s=n.style.getPropertyValue("color-scheme");s===""&&(s="light dark");let i=!1;t!==s&&(t==="light dark"?i=s!==r:s==="light dark"?i=t!==r:i=!0);let o=()=>{this.currentTheme=e,n.style.setProperty("color-scheme",t),a.storeTheme(e),this.updateButtons(),this.status.textContent=e==="system"?"Theme set to system default":""};n.style.viewTransitionName="changing-theme",i&&document.startViewTransition?document.startViewTransition(o):o()}};var d=new l;document.querySelectorAll(".add-passkey").forEach(a=>{a.addEventListener("click",()=>{d.register()})});document.querySelectorAll(".login-passkey").forEach(a=>{a.addEventListener("click",()=>{d.login()})});var u=new h;u.setupEventListeners();})(); //# sourceMappingURL=app.js.map diff --git a/public/assets/js/app.js.br b/public/assets/js/app.js.br index 7567f865c50b428a6a88fb6715b1ba0166f8018c..b24963915b12c32a275c4b5590b660c0790746b1 100644 GIT binary patch literal 1393 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 diff --git a/public/assets/js/app.js.map b/public/assets/js/app.js.map index a2fb0730..e5228e3e 100644 --- a/public/assets/js/app.js.map +++ b/public/assets/js/app.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../resources/js/auth.js", "../../../resources/js/theme-selector.js", "../../../resources/js/app.js"], - "sourcesContent": ["class Auth {\n constructor() {}\n\n async register() {\n const createOptions = await this.getCreateOptions();\n\n const publicKeyCredentialCreationOptions = {\n challenge: this.base64URLStringToBuffer(createOptions.challenge),\n rp: {\n id: createOptions.rp.id,\n name: createOptions.rp.name,\n },\n user: {\n id: new TextEncoder().encode(window.atob(createOptions.user.id)),\n name: createOptions.user.name,\n displayName: createOptions.user.displayName,\n },\n pubKeyCredParams: createOptions.pubKeyCredParams,\n excludeCredentials: [],\n authenticatorSelection: createOptions.authenticatorSelection,\n timeout: 60000,\n };\n\n const credential = await navigator.credentials.create({\n publicKey: publicKeyCredentialCreationOptions\n });\n if (!credential) {\n throw new Error('Error generating a passkey');\n }\n\n const authenticatorAttestationResponse = {\n id: credential.id ? credential.id : null,\n type: credential.type ? credential.type : null,\n rawId: credential.rawId ? this.bufferToBase64URLString(credential.rawId) : null,\n response: {\n attestationObject: credential.response.attestationObject ? this.bufferToBase64URLString(credential.response.attestationObject) : null,\n clientDataJSON: credential.response.clientDataJSON ? this.bufferToBase64URLString(credential.response.clientDataJSON) : null,\n }\n };\n\n const registerCredential = await window.fetch('/admin/passkeys/register', {\n method: 'POST',\n body: JSON.stringify(authenticatorAttestationResponse),\n cache: 'no-cache',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content'),\n },\n });\n\n if (!registerCredential.ok) {\n throw new Error('Error saving the passkey');\n }\n\n window.location.reload();\n }\n\n async getCreateOptions() {\n const response = await fetch('/admin/passkeys/register', {\n method: 'GET',\n });\n\n return await response.json();\n }\n\n async login() {\n const loginData = await this.getLoginData();\n\n const publicKeyCredential = await navigator.credentials.get({\n publicKey: {\n challenge: this.base64URLStringToBuffer(loginData.challenge),\n userVerification: loginData.userVerification,\n timeout: 60000,\n }\n });\n\n if (!publicKeyCredential) {\n throw new Error('Authentication failed');\n }\n\n const authenticatorAttestationResponse = {\n id: publicKeyCredential.id ? publicKeyCredential.id : '',\n type: publicKeyCredential.type ? publicKeyCredential.type : '',\n rawId: publicKeyCredential.rawId ? this.bufferToBase64URLString(publicKeyCredential.rawId) : '',\n response: {\n authenticatorData: publicKeyCredential.response.authenticatorData ? this.bufferToBase64URLString(publicKeyCredential.response.authenticatorData) : '',\n clientDataJSON: publicKeyCredential.response.clientDataJSON ? this.bufferToBase64URLString(publicKeyCredential.response.clientDataJSON) : '',\n signature: publicKeyCredential.response.signature ? this.bufferToBase64URLString(publicKeyCredential.response.signature) : '',\n userHandle: publicKeyCredential.response.userHandle ? this.bufferToBase64URLString(publicKeyCredential.response.userHandle) : '',\n },\n };\n\n const loginAttempt = await window.fetch('/login/passkey', {\n method: 'POST',\n body: JSON.stringify(authenticatorAttestationResponse),\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content'),\n },\n });\n\n if (!loginAttempt.ok) {\n throw new Error('Login failed');\n }\n\n window.location.assign('/admin');\n }\n\n async getLoginData() {\n const response = await fetch('/login/passkey', {\n method: 'GET',\n });\n\n return await response.json();\n }\n\n /**\n * Convert a base64 URL string to a buffer.\n *\n * Sourced from https://github.com/MasterKale/SimpleWebAuthn/blob/master/packages/browser/src/helpers/base64URLStringToBuffer.ts#L8\n *\n * @param {string} base64URLString\n * @returns {ArrayBuffer}\n */\n base64URLStringToBuffer(base64URLString) {\n // Convert from Base64URL to Base64\n const base64 = base64URLString.replace(/-/g, '+').replace(/_/g, '/');\n /**\n * Pad with '=' until it's a multiple of four\n * (4 - (85 % 4 = 1) = 3) % 4 = 3 padding\n * (4 - (86 % 4 = 2) = 2) % 4 = 2 padding\n * (4 - (87 % 4 = 3) = 1) % 4 = 1 padding\n * (4 - (88 % 4 = 0) = 4) % 4 = 0 padding\n */\n const padLength = (4 - (base64.length % 4)) % 4;\n const padded = base64.padEnd(base64.length + padLength, '=');\n // Convert to a binary string\n const binary = window.atob(padded);\n // Convert binary string to buffer\n const buffer = new ArrayBuffer(binary.length);\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return buffer;\n }\n\n /**\n * Convert a buffer to a base64 URL string.\n *\n * Sourced from https://github.com/MasterKale/SimpleWebAuthn/blob/master/packages/browser/src/helpers/bufferToBase64URLString.ts#L7\n *\n * @param {ArrayBuffer} buffer\n * @returns {string}\n */\n bufferToBase64URLString(buffer) {\n const bytes = new Uint8Array(buffer);\n let str = '';\n for (const charCode of bytes) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n return base64String.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n }\n}\n\nexport { Auth };\n", "class ThemeSelector {\n constructor() {\n this.widget = document.querySelector('#theme-selector');\n this.btnLight = this.widget.querySelector('#btn-light');\n this.btnDark = this.widget.querySelector('#btn-dark');\n this.status = this.widget.querySelector('#theme-status');\n this.currentTheme = 'system';\n }\n\n setupEventListeners() {\n this.btnLight.addEventListener('click', () => {\n this.applyTheme(this.currentTheme === 'light' ? 'system' : 'light');\n });\n\n this.btnDark.addEventListener('click', () => {\n this.applyTheme(this.currentTheme === 'dark' ? 'system' : 'dark');\n });\n }\n\n applyTheme(theme) {\n const selectedTheme = (theme === 'light' || theme === 'dark') ? theme : 'light dark';\n\n const systemTheme = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light';\n const html = document.documentElement;\n let currentColorScheme = html.style.getPropertyValue('color-scheme');\n if (currentColorScheme === '') {\n currentColorScheme = 'light dark';\n }\n\n /* do we need to transition */\n let doTransition = false;\n\n if (selectedTheme !== currentColorScheme) {\n if (selectedTheme === 'light dark') {\n doTransition = currentColorScheme !== systemTheme;\n } else if (currentColorScheme === 'light dark') {\n doTransition = selectedTheme !== systemTheme;\n } else {\n doTransition = true;\n }\n }\n\n const applyChange = () => {\n this.currentTheme = theme;\n html.style.setProperty('color-scheme', selectedTheme);\n\n this.btnLight.setAttribute('aria-pressed', String(theme === 'light'));\n this.btnDark.setAttribute('aria-pressed', String(theme === 'dark'));\n this.status.textContent = theme === 'system' ? 'Theme set to system default' : '';\n };\n\n html.style.viewTransitionName = 'changing-theme';\n if (doTransition && document.startViewTransition) {\n document.startViewTransition(applyChange);\n } else {\n applyChange();\n }\n }\n}\n\nexport { ThemeSelector };\n", "import { Auth } from './auth.js';\nimport { ThemeSelector } from './theme-selector.js';\n\nlet auth = new Auth();\ndocument.querySelectorAll('.add-passkey').forEach((el) => {\n el.addEventListener('click', () => {\n auth.register();\n });\n});\n\ndocument.querySelectorAll('.login-passkey').forEach((el) => {\n el.addEventListener('click', () => {\n auth.login();\n });\n});\n\nlet themeSelector = new ThemeSelector();\nthemeSelector.setupEventListeners();\n"], - "mappings": "MAAA,IAAMA,EAAN,KAAW,CACT,aAAc,CAAC,CAEf,MAAM,UAAW,CACf,IAAMC,EAAgB,MAAM,KAAK,iBAAiB,EAE5CC,EAAqC,CACzC,UAAW,KAAK,wBAAwBD,EAAc,SAAS,EAC/D,GAAI,CACF,GAAIA,EAAc,GAAG,GACrB,KAAMA,EAAc,GAAG,IACzB,EACA,KAAM,CACJ,GAAI,IAAI,YAAY,EAAE,OAAO,OAAO,KAAKA,EAAc,KAAK,EAAE,CAAC,EAC/D,KAAMA,EAAc,KAAK,KACzB,YAAaA,EAAc,KAAK,WAClC,EACA,iBAAkBA,EAAc,iBAChC,mBAAoB,CAAC,EACrB,uBAAwBA,EAAc,uBACtC,QAAS,GACX,EAEME,EAAa,MAAM,UAAU,YAAY,OAAO,CACpD,UAAWD,CACb,CAAC,EACD,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,IAAMC,EAAmC,CACvC,GAAID,EAAW,GAAKA,EAAW,GAAK,KACpC,KAAMA,EAAW,KAAOA,EAAW,KAAO,KAC1C,MAAOA,EAAW,MAAQ,KAAK,wBAAwBA,EAAW,KAAK,EAAI,KAC3E,SAAU,CACR,kBAAmBA,EAAW,SAAS,kBAAoB,KAAK,wBAAwBA,EAAW,SAAS,iBAAiB,EAAI,KACjI,eAAgBA,EAAW,SAAS,eAAiB,KAAK,wBAAwBA,EAAW,SAAS,cAAc,EAAI,IAC1H,CACF,EAYA,GAAI,EAVuB,MAAM,OAAO,MAAM,2BAA4B,CACxE,OAAQ,OACR,KAAM,KAAK,UAAUC,CAAgC,EACrD,MAAO,WACP,QAAS,CACP,eAAgB,mBAChB,eAAgB,SAAS,cAAc,yBAAyB,EAAE,aAAa,SAAS,CAC1F,CACF,CAAC,GAEuB,GACtB,MAAM,IAAI,MAAM,0BAA0B,EAG5C,OAAO,SAAS,OAAO,CACzB,CAEA,MAAM,kBAAmB,CAKvB,OAAO,MAJU,MAAM,MAAM,2BAA4B,CACvD,OAAQ,KACV,CAAC,GAEqB,KAAK,CAC7B,CAEA,MAAM,OAAQ,CACZ,IAAMC,EAAY,MAAM,KAAK,aAAa,EAEpCC,EAAsB,MAAM,UAAU,YAAY,IAAI,CAC1D,UAAW,CACT,UAAW,KAAK,wBAAwBD,EAAU,SAAS,EAC3D,iBAAkBA,EAAU,iBAC5B,QAAS,GACX,CACF,CAAC,EAED,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,uBAAuB,EAGzC,IAAMF,EAAmC,CACvC,GAAIE,EAAoB,GAAKA,EAAoB,GAAK,GACtD,KAAMA,EAAoB,KAAOA,EAAoB,KAAO,GAC5D,MAAOA,EAAoB,MAAQ,KAAK,wBAAwBA,EAAoB,KAAK,EAAI,GAC7F,SAAU,CACR,kBAAmBA,EAAoB,SAAS,kBAAoB,KAAK,wBAAwBA,EAAoB,SAAS,iBAAiB,EAAI,GACnJ,eAAgBA,EAAoB,SAAS,eAAiB,KAAK,wBAAwBA,EAAoB,SAAS,cAAc,EAAI,GAC1I,UAAWA,EAAoB,SAAS,UAAY,KAAK,wBAAwBA,EAAoB,SAAS,SAAS,EAAI,GAC3H,WAAYA,EAAoB,SAAS,WAAa,KAAK,wBAAwBA,EAAoB,SAAS,UAAU,EAAI,EAChI,CACF,EAWA,GAAI,EATiB,MAAM,OAAO,MAAM,iBAAkB,CACxD,OAAQ,OACR,KAAM,KAAK,UAAUF,CAAgC,EACrD,QAAS,CACP,eAAgB,mBAChB,eAAgB,SAAS,cAAc,yBAAyB,EAAE,aAAa,SAAS,CAC1F,CACF,CAAC,GAEiB,GAChB,MAAM,IAAI,MAAM,cAAc,EAGhC,OAAO,SAAS,OAAO,QAAQ,CACjC,CAEA,MAAM,cAAe,CAKnB,OAAO,MAJU,MAAM,MAAM,iBAAkB,CAC7C,OAAQ,KACV,CAAC,GAEqB,KAAK,CAC7B,CAUA,wBAAwBG,EAAiB,CAEvC,IAAMC,EAASD,EAAgB,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAQ7DE,GAAa,EAAKD,EAAO,OAAS,GAAM,EACxCE,EAASF,EAAO,OAAOA,EAAO,OAASC,EAAW,GAAG,EAErDE,EAAS,OAAO,KAAKD,CAAM,EAE3BE,EAAS,IAAI,YAAYD,EAAO,MAAM,EACtCE,EAAQ,IAAI,WAAWD,CAAM,EACnC,QAASE,EAAI,EAAGA,EAAIH,EAAO,OAAQG,IACjCD,EAAMC,CAAC,EAAIH,EAAO,WAAWG,CAAC,EAEhC,OAAOF,CACT,CAUA,wBAAwBA,EAAQ,CAC9B,IAAMC,EAAQ,IAAI,WAAWD,CAAM,EAC/BG,EAAM,GACV,QAAWC,KAAYH,EACrBE,GAAO,OAAO,aAAaC,CAAQ,EAGrC,OADqB,KAAKD,CAAG,EACT,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,KAAM,EAAE,CAC9E,CACF,ECpKA,IAAME,EAAN,KAAoB,CAClB,aAAc,CACZ,KAAK,OAAS,SAAS,cAAc,iBAAiB,EACtD,KAAK,SAAW,KAAK,OAAO,cAAc,YAAY,EACtD,KAAK,QAAU,KAAK,OAAO,cAAc,WAAW,EACpD,KAAK,OAAS,KAAK,OAAO,cAAc,eAAe,EACvD,KAAK,aAAe,QACtB,CAEA,qBAAsB,CACpB,KAAK,SAAS,iBAAiB,QAAS,IAAM,CAC5C,KAAK,WAAW,KAAK,eAAiB,QAAU,SAAW,OAAO,CACpE,CAAC,EAED,KAAK,QAAQ,iBAAiB,QAAS,IAAM,CAC3C,KAAK,WAAW,KAAK,eAAiB,OAAS,SAAW,MAAM,CAClE,CAAC,CACH,CAEA,WAAWC,EAAO,CAChB,IAAMC,EAAiBD,IAAU,SAAWA,IAAU,OAAUA,EAAQ,aAElEE,EAAe,OAAO,YAAc,OAAO,WAAW,8BAA8B,EAAE,QAAW,OAAS,QAC1GC,EAAO,SAAS,gBAClBC,EAAqBD,EAAK,MAAM,iBAAiB,cAAc,EAC/DC,IAAuB,KACzBA,EAAqB,cAIvB,IAAIC,EAAe,GAEfJ,IAAkBG,IAChBH,IAAkB,aACpBI,EAAeD,IAAuBF,EAC7BE,IAAuB,aAChCC,EAAeJ,IAAkBC,EAEjCG,EAAe,IAInB,IAAMC,EAAc,IAAM,CACxB,KAAK,aAAeN,EACpBG,EAAK,MAAM,YAAY,eAAgBF,CAAa,EAEpD,KAAK,SAAS,aAAa,eAAgB,OAAOD,IAAU,OAAO,CAAC,EACpE,KAAK,QAAQ,aAAa,eAAgB,OAAOA,IAAU,MAAM,CAAC,EAClE,KAAK,OAAO,YAAcA,IAAU,SAAW,8BAAgC,EACjF,EAEAG,EAAK,MAAM,mBAAqB,iBAC5BE,GAAgB,SAAS,oBAC3B,SAAS,oBAAoBC,CAAW,EAExCA,EAAY,CAEhB,CACF,ECvDA,IAAIC,EAAO,IAAIC,EACf,SAAS,iBAAiB,cAAc,EAAE,QAASC,GAAO,CACxDA,EAAG,iBAAiB,QAAS,IAAM,CACjCF,EAAK,SAAS,CAChB,CAAC,CACH,CAAC,EAED,SAAS,iBAAiB,gBAAgB,EAAE,QAASE,GAAO,CAC1DA,EAAG,iBAAiB,QAAS,IAAM,CACjCF,EAAK,MAAM,CACb,CAAC,CACH,CAAC,EAED,IAAIG,EAAgB,IAAIC,EACxBD,EAAc,oBAAoB", - "names": ["Auth", "createOptions", "publicKeyCredentialCreationOptions", "credential", "authenticatorAttestationResponse", "loginData", "publicKeyCredential", "base64URLString", "base64", "padLength", "padded", "binary", "buffer", "bytes", "i", "str", "charCode", "ThemeSelector", "theme", "selectedTheme", "systemTheme", "html", "currentColorScheme", "doTransition", "applyChange", "auth", "Auth", "el", "themeSelector", "ThemeSelector"] + "sourcesContent": ["class Auth {\n constructor() {}\n\n async register() {\n const createOptions = await this.getCreateOptions();\n\n const publicKeyCredentialCreationOptions = {\n challenge: this.base64URLStringToBuffer(createOptions.challenge),\n rp: {\n id: createOptions.rp.id,\n name: createOptions.rp.name,\n },\n user: {\n id: new TextEncoder().encode(window.atob(createOptions.user.id)),\n name: createOptions.user.name,\n displayName: createOptions.user.displayName,\n },\n pubKeyCredParams: createOptions.pubKeyCredParams,\n excludeCredentials: [],\n authenticatorSelection: createOptions.authenticatorSelection,\n timeout: 60000,\n };\n\n const credential = await navigator.credentials.create({\n publicKey: publicKeyCredentialCreationOptions\n });\n if (!credential) {\n throw new Error('Error generating a passkey');\n }\n\n const authenticatorAttestationResponse = {\n id: credential.id ? credential.id : null,\n type: credential.type ? credential.type : null,\n rawId: credential.rawId ? this.bufferToBase64URLString(credential.rawId) : null,\n response: {\n attestationObject: credential.response.attestationObject ? this.bufferToBase64URLString(credential.response.attestationObject) : null,\n clientDataJSON: credential.response.clientDataJSON ? this.bufferToBase64URLString(credential.response.clientDataJSON) : null,\n }\n };\n\n const registerCredential = await window.fetch('/admin/passkeys/register', {\n method: 'POST',\n body: JSON.stringify(authenticatorAttestationResponse),\n cache: 'no-cache',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content'),\n },\n });\n\n if (!registerCredential.ok) {\n throw new Error('Error saving the passkey');\n }\n\n window.location.reload();\n }\n\n async getCreateOptions() {\n const response = await fetch('/admin/passkeys/register', {\n method: 'GET',\n });\n\n return await response.json();\n }\n\n async login() {\n const loginData = await this.getLoginData();\n\n const publicKeyCredential = await navigator.credentials.get({\n publicKey: {\n challenge: this.base64URLStringToBuffer(loginData.challenge),\n userVerification: loginData.userVerification,\n timeout: 60000,\n }\n });\n\n if (!publicKeyCredential) {\n throw new Error('Authentication failed');\n }\n\n const authenticatorAttestationResponse = {\n id: publicKeyCredential.id ? publicKeyCredential.id : '',\n type: publicKeyCredential.type ? publicKeyCredential.type : '',\n rawId: publicKeyCredential.rawId ? this.bufferToBase64URLString(publicKeyCredential.rawId) : '',\n response: {\n authenticatorData: publicKeyCredential.response.authenticatorData ? this.bufferToBase64URLString(publicKeyCredential.response.authenticatorData) : '',\n clientDataJSON: publicKeyCredential.response.clientDataJSON ? this.bufferToBase64URLString(publicKeyCredential.response.clientDataJSON) : '',\n signature: publicKeyCredential.response.signature ? this.bufferToBase64URLString(publicKeyCredential.response.signature) : '',\n userHandle: publicKeyCredential.response.userHandle ? this.bufferToBase64URLString(publicKeyCredential.response.userHandle) : '',\n },\n };\n\n const loginAttempt = await window.fetch('/login/passkey', {\n method: 'POST',\n body: JSON.stringify(authenticatorAttestationResponse),\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-TOKEN': document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content'),\n },\n });\n\n if (!loginAttempt.ok) {\n throw new Error('Login failed');\n }\n\n window.location.assign('/admin');\n }\n\n async getLoginData() {\n const response = await fetch('/login/passkey', {\n method: 'GET',\n });\n\n return await response.json();\n }\n\n /**\n * Convert a base64 URL string to a buffer.\n *\n * Sourced from https://github.com/MasterKale/SimpleWebAuthn/blob/master/packages/browser/src/helpers/base64URLStringToBuffer.ts#L8\n *\n * @param {string} base64URLString\n * @returns {ArrayBuffer}\n */\n base64URLStringToBuffer(base64URLString) {\n // Convert from Base64URL to Base64\n const base64 = base64URLString.replace(/-/g, '+').replace(/_/g, '/');\n /**\n * Pad with '=' until it's a multiple of four\n * (4 - (85 % 4 = 1) = 3) % 4 = 3 padding\n * (4 - (86 % 4 = 2) = 2) % 4 = 2 padding\n * (4 - (87 % 4 = 3) = 1) % 4 = 1 padding\n * (4 - (88 % 4 = 0) = 4) % 4 = 0 padding\n */\n const padLength = (4 - (base64.length % 4)) % 4;\n const padded = base64.padEnd(base64.length + padLength, '=');\n // Convert to a binary string\n const binary = window.atob(padded);\n // Convert binary string to buffer\n const buffer = new ArrayBuffer(binary.length);\n const bytes = new Uint8Array(buffer);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return buffer;\n }\n\n /**\n * Convert a buffer to a base64 URL string.\n *\n * Sourced from https://github.com/MasterKale/SimpleWebAuthn/blob/master/packages/browser/src/helpers/bufferToBase64URLString.ts#L7\n *\n * @param {ArrayBuffer} buffer\n * @returns {string}\n */\n bufferToBase64URLString(buffer) {\n const bytes = new Uint8Array(buffer);\n let str = '';\n for (const charCode of bytes) {\n str += String.fromCharCode(charCode);\n }\n const base64String = btoa(str);\n return base64String.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n }\n}\n\nexport { Auth };\n", "class ThemeSelector {\n constructor() {\n this.widget = document.querySelector('#theme-selector');\n this.btnLight = this.widget.querySelector('#btn-light');\n this.btnDark = this.widget.querySelector('#btn-dark');\n this.status = this.widget.querySelector('#theme-status');\n this.currentTheme = ThemeSelector.storedTheme();\n this.updateButtons();\n }\n\n static storedTheme() {\n try {\n const theme = localStorage.getItem('theme');\n return (theme === 'light' || theme === 'dark') ? theme : 'system';\n } catch {\n return 'system';\n }\n }\n\n static storeTheme(theme) {\n try {\n if (theme === 'system') {\n localStorage.removeItem('theme');\n } else {\n localStorage.setItem('theme', theme);\n }\n } catch {\n /* storage unavailable, the choice just won't persist */\n }\n }\n\n updateButtons() {\n this.btnLight.setAttribute('aria-pressed', String(this.currentTheme === 'light'));\n this.btnDark.setAttribute('aria-pressed', String(this.currentTheme === 'dark'));\n }\n\n setupEventListeners() {\n this.btnLight.addEventListener('click', () => {\n this.applyTheme(this.currentTheme === 'light' ? 'system' : 'light');\n });\n\n this.btnDark.addEventListener('click', () => {\n this.applyTheme(this.currentTheme === 'dark' ? 'system' : 'dark');\n });\n }\n\n applyTheme(theme) {\n const selectedTheme = (theme === 'light' || theme === 'dark') ? theme : 'light dark';\n\n const systemTheme = (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) ? 'dark' : 'light';\n const html = document.documentElement;\n let currentColorScheme = html.style.getPropertyValue('color-scheme');\n if (currentColorScheme === '') {\n currentColorScheme = 'light dark';\n }\n\n /* do we need to transition */\n let doTransition = false;\n\n if (selectedTheme !== currentColorScheme) {\n if (selectedTheme === 'light dark') {\n doTransition = currentColorScheme !== systemTheme;\n } else if (currentColorScheme === 'light dark') {\n doTransition = selectedTheme !== systemTheme;\n } else {\n doTransition = true;\n }\n }\n\n const applyChange = () => {\n this.currentTheme = theme;\n html.style.setProperty('color-scheme', selectedTheme);\n ThemeSelector.storeTheme(theme);\n\n this.updateButtons();\n this.status.textContent = theme === 'system' ? 'Theme set to system default' : '';\n };\n\n html.style.viewTransitionName = 'changing-theme';\n if (doTransition && document.startViewTransition) {\n document.startViewTransition(applyChange);\n } else {\n applyChange();\n }\n }\n}\n\nexport { ThemeSelector };\n", "import { Auth } from './auth.js';\nimport { ThemeSelector } from './theme-selector.js';\n\nlet auth = new Auth();\ndocument.querySelectorAll('.add-passkey').forEach((el) => {\n el.addEventListener('click', () => {\n auth.register();\n });\n});\n\ndocument.querySelectorAll('.login-passkey').forEach((el) => {\n el.addEventListener('click', () => {\n auth.login();\n });\n});\n\nlet themeSelector = new ThemeSelector();\nthemeSelector.setupEventListeners();\n"], + "mappings": "MAAA,IAAMA,EAAN,KAAW,CACT,aAAc,CAAC,CAEf,MAAM,UAAW,CACf,IAAMC,EAAgB,MAAM,KAAK,iBAAiB,EAE5CC,EAAqC,CACzC,UAAW,KAAK,wBAAwBD,EAAc,SAAS,EAC/D,GAAI,CACF,GAAIA,EAAc,GAAG,GACrB,KAAMA,EAAc,GAAG,IACzB,EACA,KAAM,CACJ,GAAI,IAAI,YAAY,EAAE,OAAO,OAAO,KAAKA,EAAc,KAAK,EAAE,CAAC,EAC/D,KAAMA,EAAc,KAAK,KACzB,YAAaA,EAAc,KAAK,WAClC,EACA,iBAAkBA,EAAc,iBAChC,mBAAoB,CAAC,EACrB,uBAAwBA,EAAc,uBACtC,QAAS,GACX,EAEME,EAAa,MAAM,UAAU,YAAY,OAAO,CACpD,UAAWD,CACb,CAAC,EACD,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,IAAMC,EAAmC,CACvC,GAAID,EAAW,GAAKA,EAAW,GAAK,KACpC,KAAMA,EAAW,KAAOA,EAAW,KAAO,KAC1C,MAAOA,EAAW,MAAQ,KAAK,wBAAwBA,EAAW,KAAK,EAAI,KAC3E,SAAU,CACR,kBAAmBA,EAAW,SAAS,kBAAoB,KAAK,wBAAwBA,EAAW,SAAS,iBAAiB,EAAI,KACjI,eAAgBA,EAAW,SAAS,eAAiB,KAAK,wBAAwBA,EAAW,SAAS,cAAc,EAAI,IAC1H,CACF,EAYA,GAAI,EAVuB,MAAM,OAAO,MAAM,2BAA4B,CACxE,OAAQ,OACR,KAAM,KAAK,UAAUC,CAAgC,EACrD,MAAO,WACP,QAAS,CACP,eAAgB,mBAChB,eAAgB,SAAS,cAAc,yBAAyB,EAAE,aAAa,SAAS,CAC1F,CACF,CAAC,GAEuB,GACtB,MAAM,IAAI,MAAM,0BAA0B,EAG5C,OAAO,SAAS,OAAO,CACzB,CAEA,MAAM,kBAAmB,CAKvB,OAAO,MAJU,MAAM,MAAM,2BAA4B,CACvD,OAAQ,KACV,CAAC,GAEqB,KAAK,CAC7B,CAEA,MAAM,OAAQ,CACZ,IAAMC,EAAY,MAAM,KAAK,aAAa,EAEpCC,EAAsB,MAAM,UAAU,YAAY,IAAI,CAC1D,UAAW,CACT,UAAW,KAAK,wBAAwBD,EAAU,SAAS,EAC3D,iBAAkBA,EAAU,iBAC5B,QAAS,GACX,CACF,CAAC,EAED,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,uBAAuB,EAGzC,IAAMF,EAAmC,CACvC,GAAIE,EAAoB,GAAKA,EAAoB,GAAK,GACtD,KAAMA,EAAoB,KAAOA,EAAoB,KAAO,GAC5D,MAAOA,EAAoB,MAAQ,KAAK,wBAAwBA,EAAoB,KAAK,EAAI,GAC7F,SAAU,CACR,kBAAmBA,EAAoB,SAAS,kBAAoB,KAAK,wBAAwBA,EAAoB,SAAS,iBAAiB,EAAI,GACnJ,eAAgBA,EAAoB,SAAS,eAAiB,KAAK,wBAAwBA,EAAoB,SAAS,cAAc,EAAI,GAC1I,UAAWA,EAAoB,SAAS,UAAY,KAAK,wBAAwBA,EAAoB,SAAS,SAAS,EAAI,GAC3H,WAAYA,EAAoB,SAAS,WAAa,KAAK,wBAAwBA,EAAoB,SAAS,UAAU,EAAI,EAChI,CACF,EAWA,GAAI,EATiB,MAAM,OAAO,MAAM,iBAAkB,CACxD,OAAQ,OACR,KAAM,KAAK,UAAUF,CAAgC,EACrD,QAAS,CACP,eAAgB,mBAChB,eAAgB,SAAS,cAAc,yBAAyB,EAAE,aAAa,SAAS,CAC1F,CACF,CAAC,GAEiB,GAChB,MAAM,IAAI,MAAM,cAAc,EAGhC,OAAO,SAAS,OAAO,QAAQ,CACjC,CAEA,MAAM,cAAe,CAKnB,OAAO,MAJU,MAAM,MAAM,iBAAkB,CAC7C,OAAQ,KACV,CAAC,GAEqB,KAAK,CAC7B,CAUA,wBAAwBG,EAAiB,CAEvC,IAAMC,EAASD,EAAgB,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAQ7DE,GAAa,EAAKD,EAAO,OAAS,GAAM,EACxCE,EAASF,EAAO,OAAOA,EAAO,OAASC,EAAW,GAAG,EAErDE,EAAS,OAAO,KAAKD,CAAM,EAE3BE,EAAS,IAAI,YAAYD,EAAO,MAAM,EACtCE,EAAQ,IAAI,WAAWD,CAAM,EACnC,QAASE,EAAI,EAAGA,EAAIH,EAAO,OAAQG,IACjCD,EAAMC,CAAC,EAAIH,EAAO,WAAWG,CAAC,EAEhC,OAAOF,CACT,CAUA,wBAAwBA,EAAQ,CAC9B,IAAMC,EAAQ,IAAI,WAAWD,CAAM,EAC/BG,EAAM,GACV,QAAWC,KAAYH,EACrBE,GAAO,OAAO,aAAaC,CAAQ,EAGrC,OADqB,KAAKD,CAAG,EACT,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,KAAM,EAAE,CAC9E,CACF,ECpKA,IAAME,EAAN,MAAMC,CAAc,CAClB,aAAc,CACZ,KAAK,OAAS,SAAS,cAAc,iBAAiB,EACtD,KAAK,SAAW,KAAK,OAAO,cAAc,YAAY,EACtD,KAAK,QAAU,KAAK,OAAO,cAAc,WAAW,EACpD,KAAK,OAAS,KAAK,OAAO,cAAc,eAAe,EACvD,KAAK,aAAeA,EAAc,YAAY,EAC9C,KAAK,cAAc,CACrB,CAEA,OAAO,aAAc,CACnB,GAAI,CACF,IAAMC,EAAQ,aAAa,QAAQ,OAAO,EAC1C,OAAQA,IAAU,SAAWA,IAAU,OAAUA,EAAQ,QAC3D,MAAQ,CACN,MAAO,QACT,CACF,CAEA,OAAO,WAAWA,EAAO,CACvB,GAAI,CACEA,IAAU,SACZ,aAAa,WAAW,OAAO,EAE/B,aAAa,QAAQ,QAASA,CAAK,CAEvC,MAAQ,CAER,CACF,CAEA,eAAgB,CACd,KAAK,SAAS,aAAa,eAAgB,OAAO,KAAK,eAAiB,OAAO,CAAC,EAChF,KAAK,QAAQ,aAAa,eAAgB,OAAO,KAAK,eAAiB,MAAM,CAAC,CAChF,CAEA,qBAAsB,CACpB,KAAK,SAAS,iBAAiB,QAAS,IAAM,CAC5C,KAAK,WAAW,KAAK,eAAiB,QAAU,SAAW,OAAO,CACpE,CAAC,EAED,KAAK,QAAQ,iBAAiB,QAAS,IAAM,CAC3C,KAAK,WAAW,KAAK,eAAiB,OAAS,SAAW,MAAM,CAClE,CAAC,CACH,CAEA,WAAWA,EAAO,CAChB,IAAMC,EAAiBD,IAAU,SAAWA,IAAU,OAAUA,EAAQ,aAElEE,EAAe,OAAO,YAAc,OAAO,WAAW,8BAA8B,EAAE,QAAW,OAAS,QAC1GC,EAAO,SAAS,gBAClBC,EAAqBD,EAAK,MAAM,iBAAiB,cAAc,EAC/DC,IAAuB,KACzBA,EAAqB,cAIvB,IAAIC,EAAe,GAEfJ,IAAkBG,IAChBH,IAAkB,aACpBI,EAAeD,IAAuBF,EAC7BE,IAAuB,aAChCC,EAAeJ,IAAkBC,EAEjCG,EAAe,IAInB,IAAMC,EAAc,IAAM,CACxB,KAAK,aAAeN,EACpBG,EAAK,MAAM,YAAY,eAAgBF,CAAa,EACpDF,EAAc,WAAWC,CAAK,EAE9B,KAAK,cAAc,EACnB,KAAK,OAAO,YAAcA,IAAU,SAAW,8BAAgC,EACjF,EAEAG,EAAK,MAAM,mBAAqB,iBAC5BE,GAAgB,SAAS,oBAC3B,SAAS,oBAAoBC,CAAW,EAExCA,EAAY,CAEhB,CACF,EClFA,IAAIC,EAAO,IAAIC,EACf,SAAS,iBAAiB,cAAc,EAAE,QAASC,GAAO,CACxDA,EAAG,iBAAiB,QAAS,IAAM,CACjCF,EAAK,SAAS,CAChB,CAAC,CACH,CAAC,EAED,SAAS,iBAAiB,gBAAgB,EAAE,QAASE,GAAO,CAC1DA,EAAG,iBAAiB,QAAS,IAAM,CACjCF,EAAK,MAAM,CACb,CAAC,CACH,CAAC,EAED,IAAIG,EAAgB,IAAIC,EACxBD,EAAc,oBAAoB", + "names": ["Auth", "createOptions", "publicKeyCredentialCreationOptions", "credential", "authenticatorAttestationResponse", "loginData", "publicKeyCredential", "base64URLString", "base64", "padLength", "padded", "binary", "buffer", "bytes", "i", "str", "charCode", "ThemeSelector", "_ThemeSelector", "theme", "selectedTheme", "systemTheme", "html", "currentColorScheme", "doTransition", "applyChange", "auth", "Auth", "el", "themeSelector", "ThemeSelector"] } diff --git a/public/assets/js/app.js.zst b/public/assets/js/app.js.zst index f9a711706ea4fb17f9545e0c604f4eb06253078a..ae85c89d9a7cd53cd0f2bca3df62aa9e49956a45 100644 GIT binary patch literal 1611 zcmdPcs{c3TpTJu~hF9(%c(gA}vf#gPh=2B}Qt=mox7&BWaeiu;Um7aOSL>m9)TU+T z-PCn!4~oWFc^zfh&v1<42*X{$V?oxxt_k!g$*=vzeyTF@54WsGo=$GK?}o2#z^`H6JWFdQ5+|7HO6L&W~;+X8YYeAWp-s0@DiDoPJ_bqkP z((RcWq1d~JeVT#Tva@zOyR^Myr}SOnvk#1uTNztC!!%f9a+6l$iZ|ysEC@(E#PHis zu1(|oPQg8U%6l!>ep2Q6_jFxFo6Pi!#`@Pc_0N2M^1aZbG=-%#tG$zB<^BHpY46$b zz9rviuk>`5^@d_XtBO69cqMLKE{>P#j#l3utnR*lMuKIdCbg&-t)UUTn1eM<18GTUxduS+&h zmv2pqmCNrtJu%vM>Fb9adL_L^T}pQ=S461ic^Vn0tx>=BVrNm|>4$t;+J&;+t{-L| zTJ?%anfcH^y^2#sPR|vKXC%C_{{Q}I;_}dStbe4JcDlaX<^O5QZuJ+z zS6;*#%>FK@qWhxyuxOv%fvWQXQ>LXZI)3{>M6XL*T6F!RHH(5~KeFk}J0GC+IJ;0) zo_Evo2NBx0=CgGyG~?v_;lLozB9{`Y*{^o9arq{v(z7eyF01(TGkTqB#FB|SCVlST z#mSiKF0Y1qjLxy#WqnKf^A^u)V6m!_q@U%E=ly1rs@*bYUR zgYgl%%b6MjRwQn8PH{_dahar|SrW+6_%Py%=Sk^F7fig1WtatxS!Qy&xTG*CdOA9C zt(wU!DpR*%n(YgL1t$|XF^DVYaz4ow+bdzR_|@^WOL;Df<#SHPKGr?WzBak_qp-3T zTi}a)hj|fick>Bkwtd!Rk5eg^4cA#ATJMo|hL!z8+VL=%3qOv0J+6>1a$Pg4mw6d$ z*!_LSbZ1C8b{kCExJcUU)3R!oX$yWT+Lsx~KRs-9yYFJc>pZRRg4YD)c#pna*U2(<;6AIrIwoaPx_xGDIp!POYFhRvqh{6Rvf(E zm$OJop=Gh`A>|Y5sY)yKN?PF$5w*f+nkbhx>Zdt-m~<84a!Pv%`Za6RZtlxT9+ ztJ~`r?KPQMzwpSXqkrOU7G94v+jb%Tdiviglk^hqijMw$?T(HG=E2#%QLQI0MJmhp z_pXRu8{82Yb7jsA1_kz4r2)39+%Iu9PCMoIsM5^!=E_;IZ)B^jt)#ECJ}hq+WYP=y z$=5ACBWY3d$>em#X}SC<*SDyfcjy)uFidl9VwWz{%y?eibxwcx1%u|?C5wJsU37g@ zqONua+e@eJNx5t<_CDOfo3G0!I!pciuOpp*^iQ<)i~TpL=W+W}tu#+ZFG0#zY|na! zgHPgwzD${PrSV+cjd@$IAE>@^_~Rai4Llwm|C#?c@;l9Yqjw@lxop*~zjwIm-+xh1 z72r$n@UXJp*_s?arDfjY1_i~n8z1G#Z`#^+Zko@dm5nSCD>RQ(zu}nQAhNFF^rzAv lvROMe?l@tZT*}wHv)$#zOb*j{wdG7RPq7}ma`D^OL;%1`0~G)O literal 1502 zcmdPcs{c1-K7Xqo1DCS~kJ<%^=Zp`WZ+X=3vP~~VX7x|$T6uI`gtDss zo(EoX27Fr>b}?*cSh()d5{2vMCq6nOvQDp6C~D!aGiB-fL}qVmzx}+T_LxwoN2%ud z^>>XH2QFQDJ29Q_Cf~=G-M(#^H8YaRyit>BYrrJjEF88bF@9FDjY2CMH<*eY@LHm?Awtcy?w#;tZ z#q)0k?#sM7m%XX|q5J(U|NZ=`MP5HI;`lP>cK^)(Yt5S8rAjIG&Ixwl{a`7sFH)sz zc71;Cvj5h5m?nk&KJqW+XD@Hphw|kQ9?xAE5Wjn}tM=+;6L;RY;3Fg}ClKs0Icn?m zBSPv&4e~-S`^5iV-I}rBRh9QU@2tsd*S^v&nsTpHK09vJFOS_5XB|s!UL1NU?!N4V zD>~PM(%m;L-Kkv{ttWEn#)l0Lo_DOb&0J!)?POZ>|8MrqtM*+@+CKkqNW~4q-rBfD zCaXo+?w!t_Z?|*$#tvn_x##a~wG1rIyK6l0_^+?$ndg}5>(4tn`=s!54y%LvErb{U zo4f1sb#9X%XD41(*57dCl3KH1c}{(>tjqCTu8z$0vXN%1*4DoGw5Ym$n%E(2l}@E^ zk`hO_o%hHbcyT9c`tiJnum5bgv|7Hbyn#nMXOgrtg(zP|1e|K!1UutUCw>LYBp1pmyYIpSOvYREFL@l?N?sYVH^(5k! z$;{3bRo~t&c&-wC%P;cQ_2nOIH(udpkSJe~?c~VwxTkO4O=->u9R~f9g`2w1$d&pA zFwc3{HK#B;Ft~V%Rm_X0IbYWtZrJnx$jX|`GtoCq=grfc{>>zLb*jisY11>SzXbbd zZF--3Ty5St-Po54ZC^xHw)U(PVEe+V$Y8XluVKN}XI6`OK2_$Qv2wrcfBDQ*gYEIv zp?fArXFV?2ySD6%sk_60;Id<)^R4w<|7&Y6ys+AU*XjGjTb)yUD#Lr$&z*E|(|hTx zx&MCeiSCtQ>@ zH9QhiBbY@e?7VpDo&aBg!olvD)~2qk7Fyl*2Gdv1oG!rjKAUr|+trm{^-WIXGhGc} z4LyCGsi^DizDH77t@mChwr#(h{bS1;`7)?SZo$ZczW+<=WpZ7D?5yfLh3*L(q(=Bvf|Wp zH+IR-GcTG3Dpf4aS8}W1Zf*DOXsF8R%Kv^itFI@@=rPlkh6pa^w(xBxCAZG8>OA!O z&6>ioHm_A_&Roxlw22mZ&`B@h6F|$HTw{4Z}|Fe{Djo^)CnV)m#B!}Fw;qc+- zpL&&3SgP%MwEM=V*1Id+>U~4A6Q=I?+JE(cpjP>28R^51l#WG-U7d9^+k2j{)VApt zxkLVG%;5Wc>dfLr5B)E?epX}rv_dR|eWq2LK&X5Em3*BEl0T$WzWmV*PYPKO_gKqr ziRaJmDL~*ANz0nk2v)WVc$*D_pr*ncl$1*(y>i8zw~mK+J@6vPY&Pkie2TW zcuX(w(-B39M49XEwRW|ZLJfKL6OZUg&)sDGi|54D)ZbPoOTKSoU?%*y-XK6gb< z<~!N#WR19CHR0xhzjqauo;k>Rqxm!2=JK6eH`^b4G5u@CnFo)r9F1$NSSlGdt+_%X zwr1^=$%fC&S+{3i?+i9bFWW|w_0A!@4t g54SN7o0rnsRSFM+XZ{pE7^bc?ontjq#v{{-0GzeyWdHyG diff --git a/resources/js/theme-selector.js b/resources/js/theme-selector.js index 374fdc8c..582a7b4c 100644 --- a/resources/js/theme-selector.js +++ b/resources/js/theme-selector.js @@ -4,7 +4,34 @@ class ThemeSelector { this.btnLight = this.widget.querySelector('#btn-light'); this.btnDark = this.widget.querySelector('#btn-dark'); this.status = this.widget.querySelector('#theme-status'); - this.currentTheme = 'system'; + this.currentTheme = ThemeSelector.storedTheme(); + this.updateButtons(); + } + + static storedTheme() { + try { + const theme = localStorage.getItem('theme'); + return (theme === 'light' || theme === 'dark') ? theme : 'system'; + } catch { + return 'system'; + } + } + + static storeTheme(theme) { + try { + if (theme === 'system') { + localStorage.removeItem('theme'); + } else { + localStorage.setItem('theme', theme); + } + } catch { + /* storage unavailable, the choice just won't persist */ + } + } + + updateButtons() { + this.btnLight.setAttribute('aria-pressed', String(this.currentTheme === 'light')); + this.btnDark.setAttribute('aria-pressed', String(this.currentTheme === 'dark')); } setupEventListeners() { @@ -43,9 +70,9 @@ class ThemeSelector { const applyChange = () => { this.currentTheme = theme; html.style.setProperty('color-scheme', selectedTheme); + ThemeSelector.storeTheme(theme); - this.btnLight.setAttribute('aria-pressed', String(theme === 'light')); - this.btnDark.setAttribute('aria-pressed', String(theme === 'dark')); + this.updateButtons(); this.status.textContent = theme === 'system' ? 'Theme set to system default' : ''; }; diff --git a/resources/views/master.blade.php b/resources/views/master.blade.php index 4f3303ab..cbac614e 100644 --- a/resources/views/master.blade.php +++ b/resources/views/master.blade.php @@ -25,6 +25,15 @@ @endif @stack('head') +
From 7ce256baa5dc75c24cd2955caa4b23825b2e5f88 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Thu, 29 Oct 2026 19:01:28 +0000 Subject: [PATCH 29/33] Return 404 for non-numeric like and bookmark IDs Constrain the likes/{like} and bookmarks/{bookmark} routes to numeric IDs. Previously a junk URL such as /likes/twcamp^share|twsrc^ios was passed to route model binding, and Postgres rejected the text-vs-integer comparison with a QueryException, returning a 500 instead of a 404. Co-Authored-By: Claude Opus 5.5 --- routes/web.php | 4 ++-- tests/Feature/BookmarksTest.php | 7 +++++++ tests/Feature/LikesTest.php | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/routes/web.php b/routes/web.php index a9b46407..d7e1ee2f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -211,14 +211,14 @@ Route::get('note/{id}', [NotesController::class, 'redirect']); // for legacy not // Likes Route::prefix('likes')->group(function () { Route::get('/', [LikesController::class, 'index']); - Route::get('/{like}', [LikesController::class, 'show']); + Route::get('/{like}', [LikesController::class, 'show'])->whereNumber('like'); }); // Bookmarks Route::prefix('bookmarks')->group(function () { Route::get('/', [BookmarksController::class, 'index']); Route::redirect('/tagged', '/bookmarks'); - Route::get('/{bookmark}', [BookmarksController::class, 'show']); + Route::get('/{bookmark}', [BookmarksController::class, 'show'])->whereNumber('bookmark'); Route::get('/tagged/{tag}', [BookmarksController::class, 'tagged']); }); diff --git a/tests/Feature/BookmarksTest.php b/tests/Feature/BookmarksTest.php index 7b741033..83f36d32 100644 --- a/tests/Feature/BookmarksTest.php +++ b/tests/Feature/BookmarksTest.php @@ -32,6 +32,13 @@ class BookmarksTest extends TestCase $response->assertViewIs('bookmarks.show'); } + #[Test] + public function non_numeric_bookmark_id_gives_not_found_response(): void + { + $response = $this->get('/bookmarks/twcamp^share|twsrc^ios'); + $response->assertNotFound(); + } + #[Test] public function when_bookmark_is_added_using_http_syntax_check_job_to_take_screenshot_is_invoked(): void { diff --git a/tests/Feature/LikesTest.php b/tests/Feature/LikesTest.php index 2bda91f3..b08f0d37 100644 --- a/tests/Feature/LikesTest.php +++ b/tests/Feature/LikesTest.php @@ -178,4 +178,11 @@ class LikesTest extends TestCase $response = $this->get('/likes/202'); $response->assertNotFound(); } + + #[Test] + public function non_numeric_like_id_gives_not_found_response(): void + { + $response = $this->get('/likes/twcamp^share|twsrc^ios'); + $response->assertNotFound(); + } } From 5481956d7875482394d65aeefd9fb1ab720bce5b Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 1 Nov 2026 15:28:30 +0000 Subject: [PATCH 30/33] Use `uri` for the like and bookmark permalinks `uri` is the attribute every other postable model uses for its absolute permalink on this site. Add it to Like, which had none, and rename Bookmark's `local_uri` to match. `url` stays as the thing being liked or bookmarked. Refs #148 Co-Authored-By: Claude Opus 5.5 --- app/Models/Bookmark.php | 2 +- app/Models/Like.php | 7 +++++++ tests/Feature/BookmarksTest.php | 4 ++-- tests/Unit/LikesTest.php | 8 ++++++++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/Models/Bookmark.php b/app/Models/Bookmark.php index 1c5ae6e4..5b37d84c 100644 --- a/app/Models/Bookmark.php +++ b/app/Models/Bookmark.php @@ -25,7 +25,7 @@ class Bookmark extends Model return $this->belongsToMany('App\Models\Tag'); } - protected function localUri(): Attribute + protected function uri(): Attribute { return Attribute::get( get: fn () => config('app.url').'/bookmarks/'.$this->id, diff --git a/app/Models/Like.php b/app/Models/Like.php index 44f25b91..8f2521ef 100644 --- a/app/Models/Like.php +++ b/app/Models/Like.php @@ -18,6 +18,13 @@ class Like extends Model use FilterHtml; use HasFactory; + protected function uri(): Attribute + { + return Attribute::get( + get: fn () => config('app.url').'/likes/'.$this->id, + ); + } + protected function url(): Attribute { return Attribute::set( diff --git a/tests/Feature/BookmarksTest.php b/tests/Feature/BookmarksTest.php index 83f36d32..fff9a267 100644 --- a/tests/Feature/BookmarksTest.php +++ b/tests/Feature/BookmarksTest.php @@ -92,10 +92,10 @@ class BookmarksTest extends TestCase } #[Test] - public function bookmark_local_uri_attribute_returns_correct_url(): void + public function bookmark_uri_attribute_returns_correct_url(): void { $bookmark = Bookmark::factory()->create(); - $this->assertEquals(config('app.url').'/bookmarks/'.$bookmark->id, $bookmark->local_uri); + $this->assertEquals(config('app.url').'/bookmarks/'.$bookmark->id, $bookmark->uri); } #[Test] diff --git a/tests/Unit/LikesTest.php b/tests/Unit/LikesTest.php index 74412833..ef4c21f2 100644 --- a/tests/Unit/LikesTest.php +++ b/tests/Unit/LikesTest.php @@ -13,6 +13,14 @@ class LikesTest extends TestCase { use RefreshDatabase; + #[Test] + public function like_uri_attribute_returns_our_permalink(): void + { + $like = Like::factory()->create(); + + $this->assertEquals(config('app.url').'/likes/'.$like->id, $like->uri); + } + #[Test] public function we_can_set_the_author_url(): void { From e8f2535cd15117d610ac3f60b77640d6c773557a Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 1 Nov 2026 15:29:00 +0000 Subject: [PATCH 31/33] Return our permalink in the Micropub Location header for likes Likes returned `url`, which is the liked post rather than our page. Use `uri` instead. Bookmarks already asked for `uri`, which didn't exist until the previous commit, so their Location header was empty. Neither case had a test, so assert the header value for both. Refs #148 Co-Authored-By: Claude Opus 5.5 --- .../Micropub/Handlers/EntryHandler.php | 2 +- tests/Feature/MicropubControllerTest.php | 46 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/app/Services/Micropub/Handlers/EntryHandler.php b/app/Services/Micropub/Handlers/EntryHandler.php index d79a0418..6b68b88c 100644 --- a/app/Services/Micropub/Handlers/EntryHandler.php +++ b/app/Services/Micropub/Handlers/EntryHandler.php @@ -35,7 +35,7 @@ class EntryHandler implements MicropubHandlerInterface $dataArray = $data->toArray(); $location = match (true) { - isset($dataArray['like-of']) => resolve(LikeService::class)->create($dataArray)->url, + isset($dataArray['like-of']) => resolve(LikeService::class)->create($dataArray)->uri, isset($dataArray['bookmark-of']) => resolve(BookmarkService::class)->create($dataArray)->uri, isset($dataArray['name']) => resolve(ArticleService::class)->create($dataArray)->uri, default => resolve(NoteService::class)->create($dataArray)->uri, diff --git a/tests/Feature/MicropubControllerTest.php b/tests/Feature/MicropubControllerTest.php index 3fd8b515..5ff59844 100644 --- a/tests/Feature/MicropubControllerTest.php +++ b/tests/Feature/MicropubControllerTest.php @@ -9,6 +9,8 @@ use App\Jobs\SendWebMentions; use App\Jobs\SyndicateNoteToBluesky; use App\Jobs\SyndicateNoteToMastodon; use App\Models\Article; +use App\Models\Bookmark; +use App\Models\Like; use App\Models\Media; use App\Models\Note; use App\Models\Place; @@ -883,6 +885,50 @@ class MicropubControllerTest extends TestCase $this->assertStringStartsWith(config('app.url').'/blog/', $response->headers->get('Location')); } + #[Test] + public function micropub_client_api_request_for_a_like_returns_our_permalink_in_the_location_header(): void + { + Queue::fake(); + + $response = $this->postJson( + '/api/post', + [ + 'type' => ['h-entry'], + 'properties' => [ + 'like-of' => ['https://example.org/liked-post'], + ], + ], + ['HTTP_Authorization' => 'Bearer '.$this->getToken()] + ); + + $like = Like::where('url', 'https://example.org/liked-post')->sole(); + $response + ->assertStatus(201) + ->assertHeader('Location', config('app.url').'/likes/'.$like->id); + } + + #[Test] + public function micropub_client_api_request_for_a_bookmark_returns_our_permalink_in_the_location_header(): void + { + Queue::fake(); + + $response = $this->postJson( + '/api/post', + [ + 'type' => ['h-entry'], + 'properties' => [ + 'bookmark-of' => ['https://example.org/bookmarked-page'], + ], + ], + ['HTTP_Authorization' => 'Bearer '.$this->getToken()] + ); + + $bookmark = Bookmark::where('url', 'https://example.org/bookmarked-page')->sole(); + $response + ->assertStatus(201) + ->assertHeader('Location', config('app.url').'/bookmarks/'.$bookmark->id); + } + #[Test] public function micropub_client_api_request_creates_an_unpublished_article_when_post_status_is_draft(): void { From 73b9668088d0035602b00fdb8ef9f831ad4c0082 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 1 Nov 2026 15:29:00 +0000 Subject: [PATCH 32/33] Link to likes through the `uri` attribute in the like template Refs #148 Co-Authored-By: Claude Opus 5.5 --- resources/views/templates/like.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/templates/like.blade.php b/resources/views/templates/like.blade.php index 5169a31e..2a114761 100644 --- a/resources/views/templates/like.blade.php +++ b/resources/views/templates/like.blade.php @@ -20,7 +20,7 @@ @endisset
From cc2ff2b2a279a9cf0927f96d2f17844645f0d12e Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 1 Nov 2026 15:29:05 +0000 Subject: [PATCH 33/33] Drop the unused notes.shorturl column The short domain is gone and nothing reads or writes this column any more. Refs #148 Co-Authored-By: Claude Opus 5.5 --- ..._120000_drop_shorturl_from_notes_table.php | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 database/migrations/2026_11_01_120000_drop_shorturl_from_notes_table.php diff --git a/database/migrations/2026_11_01_120000_drop_shorturl_from_notes_table.php b/database/migrations/2026_11_01_120000_drop_shorturl_from_notes_table.php new file mode 100644 index 00000000..e4f73202 --- /dev/null +++ b/database/migrations/2026_11_01_120000_drop_shorturl_from_notes_table.php @@ -0,0 +1,28 @@ +dropColumn('shorturl'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('notes', function (Blueprint $table) { + $table->string('shorturl', 20)->nullable(); + }); + } +};