From 748b1cd59b2bc3832bfcdef5bf5a92c8d947e1ff Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 15:13:26 -0500 Subject: [PATCH 01/22] Catering tables: the spreadsheet becomes data the bakery can edit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The goodie box and catering prices arrived as a spreadsheet — Office, Parties and Weddings, each a few columns of sizes and prices with lines of baked goods underneath. This puts it behind /api/catering and makes every part of it editable at /admin, because the prices move and the spreadsheet's own last line says the tables are "mostly just an idea for people". A package is one table, its tiers are the columns, its rows are the lines, and a line holds one value per column. That alignment is why this is an aggregate rather than three tables edited separately: drop the middle column on its own and every remaining entry shifts one place left, so the Large box advertises the Medium box's contents at the Large price and nothing looks broken. CateringPackage#arrange takes a whole table, renumbers positions from the order it arrived in, and refuses an arrangement whose lines and columns disagree. Money owns prices — what "24", "$24" or "24.50" means and how it prints — so the browser never formats money and never multiplies it by 100 in floating point. Cents in the column, "$24" in the response. An empty price is "ask us", not zero. Seeded from the bakery's own wording. Shorthand is expanded ("4 dz cc or sc") and typos fixed, since customers read these lines; in the wedding table the labels and the values are offset in the source spreadsheet, so they are carried over literally and can be renamed in the admin. The lines that are named but never quantified keep their blank cells: dropping the blanks would shorten the line and shift everything after it. The public response leaves out a table with no columns or no lines — adding a table and filling it in are two separate acts, and the gap between them shouldn't put a bare heading on the live page. No public page renders any of this yet; this is the backend and the editor for it. Admin endpoints are @ConditionalOnProperty on SECURITY_MODE=OIDC like the rest, so a deployment with no identity provider has no price writes. 18 new tests: the seeded spreadsheet, the alignment invariant, money in both directions, and the HTTP surface the screen actually calls (including that /packages/order isn't read as a table id, and that a refusal arrives as a ProblemDetail sentence). Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 19 +- frontend/src/components/admin/Catering.tsx | 570 ++++++++++++++++++ frontend/src/components/admin/ui.tsx | 52 ++ frontend/src/lib/api.ts | 72 +++ frontend/src/pages/Admin.tsx | 72 +-- .../web/AdminCateringController.java | 77 +++ .../itsthevine/web/CateringController.java | 20 + .../java/com/itsthevine/web/CateringMenu.java | 194 ++++++ .../itsthevine/web/domain/CateringNote.java | 50 ++ .../web/domain/CateringNoteRepository.java | 10 + .../web/domain/CateringPackage.java | 214 +++++++ .../web/domain/CateringPackageRepository.java | 10 + .../itsthevine/web/domain/CateringRow.java | 84 +++ .../itsthevine/web/domain/CateringTier.java | 72 +++ .../java/com/itsthevine/web/domain/Money.java | 72 +++ .../java/com/itsthevine/web/domain/Text.java | 37 ++ .../resources/db/migration/V4__catering.sql | 141 +++++ .../itsthevine/web/AdminCateringApiTest.java | 150 +++++ .../com/itsthevine/web/AdminSecurityTest.java | 10 + .../com/itsthevine/web/CateringMenuTest.java | 295 +++++++++ 20 files changed, 2170 insertions(+), 51 deletions(-) create mode 100644 frontend/src/components/admin/Catering.tsx create mode 100644 frontend/src/components/admin/ui.tsx create mode 100644 src/main/java/com/itsthevine/web/AdminCateringController.java create mode 100644 src/main/java/com/itsthevine/web/CateringController.java create mode 100644 src/main/java/com/itsthevine/web/CateringMenu.java create mode 100644 src/main/java/com/itsthevine/web/domain/CateringNote.java create mode 100644 src/main/java/com/itsthevine/web/domain/CateringNoteRepository.java create mode 100644 src/main/java/com/itsthevine/web/domain/CateringPackage.java create mode 100644 src/main/java/com/itsthevine/web/domain/CateringPackageRepository.java create mode 100644 src/main/java/com/itsthevine/web/domain/CateringRow.java create mode 100644 src/main/java/com/itsthevine/web/domain/CateringTier.java create mode 100644 src/main/java/com/itsthevine/web/domain/Money.java create mode 100644 src/main/java/com/itsthevine/web/domain/Text.java create mode 100644 src/main/resources/db/migration/V4__catering.sql create mode 100644 src/test/java/com/itsthevine/web/AdminCateringApiTest.java create mode 100644 src/test/java/com/itsthevine/web/CateringMenuTest.java diff --git a/README.md b/README.md index e327116..a41d880 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,14 @@ The SPA renders; it doesn't decide anything. - **`/api/products`**, **`/api/categories`** — the catalogue, its curated order, the category filter and the absolute image URLs. This was a TypeScript array shipped to every visitor; it's now a table (`V2__products.sql`) read through `ProductCatalog`. +- **`/api/catering`** — the goodie box and catering price tables (Office, Parties, Weddings): the + columns, the prices already written the way they should be read, the entries under each column, and + the small print. These came from the bakery as a spreadsheet and are stored as one (`V4__catering.sql`, + read through `CateringMenu`) rather than as markup, because the prices move and the last line of that + spreadsheet says the tables are "mostly just an idea for people". `Money` is the only thing that + decides what a typed price means or how it prints. A table with no columns or no lines is left off the + public response — adding a table and filling it in are two separate acts in the admin, and the gap + between them shouldn't put a bare heading on the live page. *(No public page renders this yet.)* - **`/api/contact`** — validates, **records the enquiry**, emails it, then fans out to the n8n hub. Recorded before sending on purpose: a relay outage costs a notification, not the enquiry. Undelivered ones are `enquiry.delivered = false`. Validation and delivery come from `platform-starter-contact`, @@ -39,8 +47,15 @@ Photos are resized, stripped of EXIF, converted to webp and put in the bucket on (`ProductPhotoService`, using `cwebp` from `libwebp-tools` — the pure-Java encoders either can't write webp or ship glibc natives that don't run on Alpine). -**The admin only exists when `SECURITY_MODE=OIDC`.** `AdminProductController` and -`AdminCategoryController` are `@ConditionalOnProperty` on it, so a deployment that forgets to configure +The catering tables are editable there too, but a table at a time rather than a field at a time. That +isn't a different taste in interfaces: a column heading, its price and the entries beneath it only mean +anything together, so `CateringPackage#arrange` takes the whole table and refuses one whose lines and +columns disagree. Drop the middle column on its own and every remaining entry shifts one place left — +the Large box then advertises the Medium box's contents at the Large price, and nothing about the page +looks broken. + +**The admin only exists when `SECURITY_MODE=OIDC`.** `AdminProductController`, +`AdminCategoryController` and `AdminCateringController` are `@ConditionalOnProperty` on it, so a deployment that forgets to configure Authentik gets 404s rather than catalogue writes open to the internet. `/admin` and `/api/admin/**` are both authenticated paths: a browser opening the page is sent to Authentik first, while `fetch` calls get a bare 401 to handle. diff --git a/frontend/src/components/admin/Catering.tsx b/frontend/src/components/admin/Catering.tsx new file mode 100644 index 0000000..ec8b3a8 --- /dev/null +++ b/frontend/src/components/admin/Catering.tsx @@ -0,0 +1,570 @@ +import { useCallback, useEffect, useState } from 'react'; +import { + addCateringTable, + adminCatering, + deleteCateringTable, + reorderCateringTables, + saveCateringNotes, + saveCateringTable, + type CateringTable, +} from '@/lib/api'; +import { + ARROW_DOWN, + ARROW_LEFT, + ARROW_RIGHT, + ARROW_UP, + CHECK, + Icon, + PLUS, + TRASH, + X, + danger, + field, + iconButton, + primary, + secondary, + shift, +} from '@/components/admin/ui'; + +/** + * The goodie box and catering price tables, editable by the person who quotes them. + * + * A table is edited as a table and saved in one go, unlike the catalogue next door where every change + * saves as you make it. That's not a different taste in interfaces: a column heading, its price and + * the entries beneath it only mean anything together, so they have to be moved, added and removed + * together. Adding a column here adds an empty entry to every line, and removing one takes its + * entries with it — the server refuses any table whose lines and columns disagree, because the + * alternative is the Large box quietly advertising the Medium box's contents at the Large price. + */ + +// --- what's on screen ------------------------------------------------------- + +type TierDraft = { id: number | null; label: string; price: string }; +type RowDraft = { id: number | null; label: string; values: string[] }; +type Draft = { name: string; blurb: string; tiers: TierDraft[]; rows: RowDraft[]; notes: string[] }; + +const draftOf = (table: CateringTable): Draft => ({ + name: table.name, + blurb: table.blurb ?? '', + // The price arrives written out ("$24"); it goes back as whatever the editor leaves in the box, and + // the server decides what that's worth. + tiers: table.tiers.map((tier) => ({ id: tier.id, label: tier.label, price: tier.price ?? '' })), + rows: table.rows.map((row) => ({ id: row.id, label: row.label, values: [...row.values] })), + notes: [...table.notes], +}); + +/** Notes are edited as a list; deleting one is an omission, exactly as the server expects. */ +const Notes = ({ + notes, + hint, + disabled, + onChange, +}: { + notes: string[]; + hint: string; + disabled?: boolean; + onChange: (notes: string[]) => void; +}) => ( +
+

{hint}

+
    + {notes.map((note, i) => ( +
  • + +
+
+ + + + +
+ + +

+ Thanks. Your message is on its way, and we will get back to you. +

+ + + + + diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html new file mode 100644 index 0000000..330e014 --- /dev/null +++ b/src/main/resources/templates/error.html @@ -0,0 +1,29 @@ + + + + +
+
+

Something went wrong

+

+ That is our fault, not yours. Try again in a moment, or call us on + (309) 701-0660. +

+ + Back home + +
+
+ + diff --git a/src/main/resources/templates/error/404.html b/src/main/resources/templates/error/404.html new file mode 100644 index 0000000..367c48d --- /dev/null +++ b/src/main/resources/templates/error/404.html @@ -0,0 +1,39 @@ + + + + +
+
+

+ We could not find that page +

+

+ It may have moved. The menu, our story, and how to reach us are all still here. +

+ +
+
+ + diff --git a/src/main/resources/templates/fragments/footer.html b/src/main/resources/templates/fragments/footer.html new file mode 100644 index 0000000..35254ce --- /dev/null +++ b/src/main/resources/templates/fragments/footer.html @@ -0,0 +1,39 @@ + + + + + + diff --git a/src/main/resources/templates/fragments/head.html b/src/main/resources/templates/fragments/head.html new file mode 100644 index 0000000..d541fce --- /dev/null +++ b/src/main/resources/templates/fragments/head.html @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + The Vine Coffeehouse + Bakery + + + + + + + + + + + + + diff --git a/src/main/resources/templates/fragments/header.html b/src/main/resources/templates/fragments/header.html new file mode 100644 index 0000000..f32717b --- /dev/null +++ b/src/main/resources/templates/fragments/header.html @@ -0,0 +1,58 @@ + + + + +
+
+
+
+ + + +
+ + + + +
+ +
+
+
+
+
+ + + + Our Products + Catering + Our Story + Contact + + + diff --git a/src/main/resources/templates/fragments/lockup.html b/src/main/resources/templates/fragments/lockup.html new file mode 100644 index 0000000..0c04717 --- /dev/null +++ b/src/main/resources/templates/fragments/lockup.html @@ -0,0 +1,35 @@ + + + + + + + + + The Vine + Coffeehouse + Bakery + + + + + + + + + + +
+ +
+ + diff --git a/src/main/resources/templates/fragments/page.html b/src/main/resources/templates/fragments/page.html new file mode 100644 index 0000000..f6351ba --- /dev/null +++ b/src/main/resources/templates/fragments/page.html @@ -0,0 +1,28 @@ + + + + + +
+
+
+
+
+
+
+ + + + diff --git a/src/main/resources/templates/history.html b/src/main/resources/templates/history.html new file mode 100644 index 0000000..56c4220 --- /dev/null +++ b/src/main/resources/templates/history.html @@ -0,0 +1,54 @@ + + + +
+ +
+

Our story

+
+ +
+
+
+

How it started

+

+ Morissa Bennett opened The Vine in 2024, at 215 E Main Street, in the middle of downtown + Princeville. The plan was not complicated. Bake it ourselves, sell it ourselves, and keep + enough tables that nobody feels rushed out the door. +

+
+ +
+

What we make

+

+ We opened with coffee and pastries. The menu kept growing. Now there are cinnamon rolls + and caramel rolls, scones, cookie bars, macarons, brownies, and pies, plus sandwiches and + paninis once the lunch crowd shows up. +

+
+ +
+

The cakes are the fun part

+

+ Cakes and decorated cookies are made to order, which means we mostly bake whatever + Princeville is celebrating that week. We have done a tractor, a cow, a 76th birthday, a + retirement, a wedding, and a cake for the class of 1964. We have iced sugar cookies for + the cross country team and for a bridal party. If you can describe it, we will have a go + at it. +

+
+ +
+

Around town

+

+ We turn out for Christmas in the Village every year and for other civic events, and the + Princeville Civic Association counts us among the town's small businesses. Enjoy + Illinois and Discover Peoria have both pointed travelers our way. If you are one of them, + we open at 7:00am, Tuesday through Saturday. +

+
+
+
+
+ + diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html new file mode 100644 index 0000000..e6f057f --- /dev/null +++ b/src/main/resources/templates/home.html @@ -0,0 +1,112 @@ + + + +
+ + +
+ + + +
+
+ + +
+
+
+

+ A coffeehouse and bakery in downtown Princeville, Illinois. +

+ +
+
+
+ + +
+
+

What people come in for

+
+
+
+ + +
+

Cinnamon Rolls

+
+
+
+
+ + +
+
+
+

Our story

+

+ Morissa Bennett opened The Vine in 2024. We bake in our own kitchen on Main Street: + cinnamon rolls, cookies, custom cakes, sandwiches, paninis, and coffee. +

+ + Read our story + +
+
+
+ + +
+
+

Visit us

+
+
+

Our hours

+
    +
  • + Tuesday – Friday + 7:00am – 2:00pm +
  • +
  • + Saturday + 7:00am – 12:00pm +
  • +
  • + Sunday – Monday + Closed +
  • +
+
+
+

Find us

+
+

215 E Main Street
Princeville, IL 61559

+

+ (309) 701-0660 +

+

+ contact@itsthevine.com +

+
+
+
+
+
+ +
+ + diff --git a/src/main/resources/templates/products.html b/src/main/resources/templates/products.html new file mode 100644 index 0000000..90ce582 --- /dev/null +++ b/src/main/resources/templates/products.html @@ -0,0 +1,71 @@ + + + +
+ +
+

Our products

+
+ +
+ +
+ All +
+ + +
+
+
+
+
+
+

Name

+ Category +
+
+
+ +

+ Nothing in that category just now. + See everything. +

+
+
+ + +
+ +
+ + diff --git a/src/test/java/com/itsthevine/web/PageMetaControllerTest.java b/src/test/java/com/itsthevine/web/PageMetaControllerTest.java deleted file mode 100644 index 89e1be1..0000000 --- a/src/test/java/com/itsthevine/web/PageMetaControllerTest.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.itsthevine.web; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.io.File; - -import org.junit.jupiter.api.Test; -import org.springframework.core.io.DefaultResourceLoader; -import org.springframework.core.io.FileSystemResource; -import org.springframework.core.io.Resource; -import org.springframework.mock.web.MockHttpServletRequest; - -/** - * Runs against the REAL frontend/index.html rather than a fixture: the controller finds its tags by - * pattern, so reformatting that file is exactly how this would silently break. Here it fails the build - * instead. - */ -class PageMetaControllerTest { - - private static final File INDEX = new File("frontend/index.html"); - - private static PageMetaController controller() { - DefaultResourceLoader loader = new DefaultResourceLoader() { - @Override - public Resource getResource(String location) { - return new FileSystemResource(INDEX); - } - }; - return new PageMetaController(loader, "https://itsthevine.com"); - } - - private static String get(String path) { - MockHttpServletRequest request = new MockHttpServletRequest("GET", path); - request.setRequestURI(path); - return controller().page(request); - } - - @Test - void theIndexTemplateIsWhereTheControllerExpects() { - assertThat(INDEX).exists(); - } - - @Test - void productsPageGetsItsOwnTitleAndDescription() { - String html = get("/products"); - - assertThat(html).contains("Our products · The Vine Coffeehouse + Bakery"); - assertThat(html).contains(""); - } - - @Test - void everyRouteIsRewritten() { - // A route the controller maps but forgot to describe would silently serve the homepage's - // metadata, which is worse than none — it tells a crawler two URLs are the same page. - assertThat(get("/history")).contains("Our story · "); - assertThat(get("/contact")).contains("<title>Contact us · "); - assertThat(get("/")).contains("<title>The Vine Coffeehouse + Bakery"); - } - - @Test - void theHomepageOgUrlHasNoTrailingSlash() { - assertThat(get("/")).contains(""); - } - - @Test - void noDefaultMetadataSurvivesOnASubPage() { - // The template ships with the homepage copy. If a replacement misses, that copy leaks onto - // every page and the whole exercise is pointless. - String html = get("/contact"); - assertThat(html).doesNotContain("A locally owned coffeehouse and bakery in downtown Princeville, Illinois. We bake"); - assertThat(html).doesNotContain("The Vine Coffeehouse + Bakery"); - } - - @Test - void theAppShellIsStillIntact() { - // Rewriting the head must not disturb what actually boots the SPA. - String html = get("/products"); - assertThat(html).contains("
"); - assertThat(html).contains("/src/main.tsx"); - } -} diff --git a/src/test/java/com/itsthevine/web/PlatformContractTest.java b/src/test/java/com/itsthevine/web/PlatformContractTest.java index e3e1f6b..a167769 100644 --- a/src/test/java/com/itsthevine/web/PlatformContractTest.java +++ b/src/test/java/com/itsthevine/web/PlatformContractTest.java @@ -1,15 +1,42 @@ package com.itsthevine.web; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.forwardedUrl; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; import org.testcontainers.containers.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; -import net.thebennett.platform.test.PlatformWebContract; - -/** Everything in {@link PlatformWebContract} — what this app must do because it is on the platform. */ +/** + * What this app must do because it is on the platform. + * + *

It used to extend {@code PlatformWebContract} from platform-starter-test and inherit these five + * assertions verbatim. It can't any more, and the reason is worth stating: the shared contract asserts + * that an unknown extension-less path forwards to {@code /index.html}, because it was written when every + * app on the platform was a React SPA. This one is server-rendered now — {@code /index.html} holds + * nothing but the admin shell — so forwarding a mistyped URL there would answer with a blank page and a + * 200 instead of the site's own 404. The contract's own test methods are package-private, so the + * assertion cannot be overridden from here. + * + *

The other four are restated below unchanged, so this app still fails the build on the regression + * the contract exists for (an {@code /api} typo answering with a page and a 200). + * + *

Platform follow-up: {@code PlatformWebContract} should decide which of the two routing + * behaviours to assert by reading {@code platform.web.spa.enabled} — then one contract would cover both + * kinds of app and this file could go back to inheriting it. + */ @SpringBootTest(properties = { // The storage starter activates on its default endpoint, so an S3 client is built even in // tests and fails on blank keys. @@ -19,10 +46,59 @@ import net.thebennett.platform.test.PlatformWebContract; "platform.contact.from=noreply@example.com" }) @Testcontainers -class PlatformContractTest extends PlatformWebContract { +class PlatformContractTest { @Container @ServiceConnection static PostgreSQLContainer postgres = new PostgreSQLContainer<>(DockerImageName.parse("postgres:18-alpine")); + + @Autowired + WebApplicationContext context; + + MockMvc mvc; + + @BeforeEach + void setUp() { + mvc = MockMvcBuilders.webAppContextSetup(context).build(); + } + + @Test + @DisplayName("an /api path that matches no controller returns 404, not a page") + void unknownApiPathIsNotFound() throws Exception { + mvc.perform(get("/api/a-path-no-controller-serves")).andExpect(status().isNotFound()); + } + + @Test + @DisplayName("a nested unknown /api path returns 404 too") + void unknownNestedApiPathIsNotFound() throws Exception { + mvc.perform(get("/api/deeper/still/not/real")).andExpect(status().isNotFound()); + } + + @Test + @DisplayName("health reports UP") + void healthIsUp() throws Exception { + mvc.perform(get("/actuator/health")) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.status").value("UP")); + } + + @Test + @DisplayName("liveness and readiness probes are exposed") + void probesAreExposed() throws Exception { + // Docker's HEALTHCHECK and any future orchestrator depend on these existing. + mvc.perform(get("/actuator/health/liveness")).andExpect(status().isOk()); + mvc.perform(get("/actuator/health/readiness")).andExpect(status().isOk()); + } + + @Test + @DisplayName("an unknown route is a 404, and only /admin serves the SPA shell") + void routingIsServerSideExceptForTheAdmin() throws Exception { + mvc.perform(get("/some/client/side/route")).andExpect(status().isNotFound()); + // Assert the forward TARGET, not the body: MockMvc records a forward rather than executing it, + // so the body is empty here by design — which also means this passes before the admin is built. + mvc.perform(get("/admin")) + .andExpect(status().isOk()) + .andExpect(forwardedUrl("/index.html")); + } } diff --git a/src/test/java/com/itsthevine/web/SiteControllerTest.java b/src/test/java/com/itsthevine/web/SiteControllerTest.java new file mode 100644 index 0000000..78d33b2 --- /dev/null +++ b/src/test/java/com/itsthevine/web/SiteControllerTest.java @@ -0,0 +1,142 @@ +package com.itsthevine.web; + +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.not; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.utility.DockerImageName; + +/** + * The pages, rendered. + * + *

These assert what a visitor and a crawler are actually served — the catalogue in the HTML rather + * than in a JSON call the page makes later, and a real per-page {@code }. That second one is the + * whole reason {@code PageMetaController} existed; this replaces its test. + * + * <p>They are also the only thing that catches a broken template: a Thymeleaf expression that names a + * model attribute wrongly fails at render time, not at compile time. + */ +@SpringBootTest(properties = { + "platform.storage.access-key=test", + "platform.storage.secret-key=test", + "platform.contact.to=test@example.com", + "platform.contact.from=noreply@example.com", + "site.base-url=https://itsthevine.test", + "site.assets.base-url=https://s3.example.test/itsthevine" +}) +@Testcontainers +class SiteControllerTest { + + @Container + @ServiceConnection + static PostgreSQLContainer<?> postgres = + new PostgreSQLContainer<>(DockerImageName.parse("postgres:18-alpine")); + + @Autowired + WebApplicationContext context; + + MockMvc mvc; + + @BeforeEach + void setUp() { + mvc = MockMvcBuilders.webAppContextSetup(context).build(); + } + + @Test + void everyPageStatesItsOwnTitleAndDescription() throws Exception { + // One generic shell for every page was the SPA's problem, and the reason a controller used to + // rewrite the head with regular expressions. + mvc.perform(get("/")).andExpect(status().isOk()) + .andExpect(content().string(containsString("<title>The Vine Coffeehouse + Bakery"))) + .andExpect(content().string(containsString("A locally owned coffeehouse and bakery"))) + .andExpect(content().string(containsString("og:url\" content=\"https://itsthevine.test\""))); + mvc.perform(get("/products")) + .andExpect(content().string(containsString("Our products · The Vine Coffeehouse + Bakery"))) + .andExpect(content().string(containsString("og:url\" content=\"https://itsthevine.test/products\""))); + mvc.perform(get("/catering")) + .andExpect(content().string(containsString("Goodie boxes & catering · The Vine Coffeehouse + Bakery"))); + mvc.perform(get("/history")) + .andExpect(content().string(containsString("Our story · The Vine Coffeehouse + Bakery"))); + mvc.perform(get("/contact")) + .andExpect(content().string(containsString("Contact us · The Vine Coffeehouse + Bakery"))); + } + + @Test + void theCatalogueIsInTheHtmlRatherThanFetchedAfterwards() throws Exception { + mvc.perform(get("/products")).andExpect(status().isOk()) + // A real product, its category, and a photo URL built from the bucket config. + .andExpect(content().string(containsString("76th Birthday Cake"))) + .andExpect(content().string(containsString("https://s3.example.test/itsthevine/images/"))) + // The filter buttons are links now, so every filtered view is a URL a crawler can follow. + .andExpect(content().string(containsString("href=\"/products?category=Cakes\""))); + } + + @Test + void theCategoryFilterIsAppliedByTheServer() throws Exception { + mvc.perform(get("/products").param("category", "Pie")).andExpect(status().isOk()) + .andExpect(content().string(containsString("Blueberry Cream Pie"))) + .andExpect(content().string(not(containsString("76th Birthday Cake")))) + // The chosen one is marked for a screen reader, not just coloured in. + .andExpect(content().string(containsString("aria-current=\"page\""))); + } + + @Test + void theCateringTablesAreRenderedFromTheDatabase() throws Exception { + mvc.perform(get("/catering")).andExpect(status().isOk()) + .andExpect(content().string(containsString("Office"))) + .andExpect(content().string(containsString("Weddings"))) + // Prices as the server writes them — the page never formats money. + .andExpect(content().string(containsString("$24"))) + .andExpect(content().string(containsString("$236"))) + // A cell, and a note. + .andExpect(content().string(containsString("6+6+6 or 12+6"))) + .andExpect(content().string(containsString("Minimum of 6 items per baked good"))) + // Both renderings of the same table are present; CSS decides which one is visible. + .andExpect(content().string(containsString("alert(1)")) + .andExpect(status().isOk()) + .andExpect(content().string(not(containsString("")))) + .andExpect(content().string(not(containsString("like to ask about")))); + } + + @Test + void anUnknownPageIsNotFound() throws Exception { + // Status only: MockMvc does not run the servlet container's error dispatch, so the body of the + // rendered error/404.html page can't be asserted here. It is checked against a running container + // instead — the page itself is a template like any other, and the layout it uses is covered above. + mvc.perform(get("/no-such-page")).andExpect(status().isNotFound()); + } +} From 54710019d20b13b3450300292facf27d0024a67a Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 16:47:10 -0500 Subject: [PATCH 04/22] The admin is Thymeleaf too: no JavaScript framework left in the repo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The last React went with this. /admin and /admin/catering are pages of forms; every write is a POST and a redirect back, so the back button and reload do what they look like they do, a double-tap cannot repeat an upload, and there is no client-side state to lose — a reload is always the truth. The /api/admin/** endpoints went too: they existed for the React screen, and their logic now lives in Catalogue (extracted from the two deleted JSON controllers) and CateringMenu, which the pages call. THE TABLE EDITOR IS THE INTERESTING PART, because a catering table cannot be edited a field at a time — a column heading, its price and the entries beneath it only mean anything together. One form holds the whole table and every button submits it; `name="do"` says which was pressed and its value carries the position (`remove-column:2`). "Add a column" therefore arrives with every cell the editor has typed, adds the column to what arrived plus an empty entry on every line, and re-renders. Nothing typed is lost, and only Save writes — so a half-built table with a blank heading never reaches the live page. A failed save comes back the same way, with the work still in the form and the reason above it; a redirect would throw the work away and leave them guessing which cell the message was about. Spring binds `lines[2].values[1]` into the right cell, which flat repeated parameters could not promise. Reordering moved to the server, where it always belonged: the browser used to compute the new order and send the whole list back, and now "move this up" arrives as an action. Same for arranging photos — one endpoint takes the key and -1/1/0 (earlier, later, remove), because those three buttons are the same edit. frontend/ became styles/: node, Tailwind and nothing else. It exists because Tailwind needs a compiler and the alternative is a hand-written stylesheet; there is no bundler and no framework. The admin's controls are @utility classes (v4 will only let you @apply a registered utility, and only a utility can take the `file:` variant the photo pickers use) — the same buttons the React screen had, from the same class strings it composed. Also fixed .gitignore, which still named frontend/: with styles/ unlisted, `git add -A` staged 1,626 files of node_modules. Verified against a running container, not only in tests: pressing "+ Column" returns the draft with an unsaved cell intact, a new column and a matching new entry on the line, "Not saved yet" — and the live page unchanged; Save then writes both columns with the price parsed from "48". Renaming and moving an item land on the products page. Deleting a category that is in use is refused with the sentence naming it. Removing the only photo of an item is refused, and that button is already disabled in the page. 51 tests (10 new): the form binding, the flash on success and on refusal, a structural button writing nothing, and the whole admin surface closed to anonymous visitors. PlatformContractTest's routing assertion now says what is true — an unknown path 404s, and so does /admin when no identity provider is configured, because AdminController only exists under OIDC. Co-Authored-By: Claude Opus 5 (1M context) --- .gitignore | 5 +- README.md | 68 +- frontend/index.html | 18 - frontend/package.json | 27 - frontend/site.css | 22 - frontend/src/App.tsx | 20 - frontend/src/components/admin/Catering.tsx | 579 ---------- frontend/src/components/admin/ui.tsx | 52 - frontend/src/index.css | 13 - frontend/src/lib/api.ts | 198 ---- frontend/src/main.tsx | 11 - frontend/src/pages/Admin.tsx | 690 ------------ frontend/tsconfig.json | 17 - frontend/vite.config.ts | 31 - pom.xml | 37 +- .../web/AdminCategoryController.java | 151 --- .../web/AdminCateringController.java | 334 +++++- .../com/itsthevine/web/AdminController.java | 161 +++ .../web/AdminProductController.java | 206 ---- .../java/com/itsthevine/web/Catalogue.java | 306 +++++ .../com/itsthevine/web/SiteController.java | 12 - .../resources/templates/admin/catalogue.html | 188 ++++ .../resources/templates/admin/catering.html | 85 ++ .../resources/templates/admin/layout.html | 58 + src/main/resources/templates/admin/table.html | 121 ++ .../itsthevine/web/AdminCateringApiTest.java | 150 --- .../com/itsthevine/web/AdminPagesTest.java | 221 ++++ .../com/itsthevine/web/AdminSecurityTest.java | 33 +- .../itsthevine/web/PlatformContractTest.java | 21 +- styles/admin.css | 50 + {frontend => styles}/package-lock.json | 1001 +---------------- styles/package.json | 15 + styles/site.css | 23 + {frontend/src => styles}/tokens.css | 0 34 files changed, 1625 insertions(+), 3299 deletions(-) delete mode 100644 frontend/index.html delete mode 100644 frontend/package.json delete mode 100644 frontend/site.css delete mode 100644 frontend/src/App.tsx delete mode 100644 frontend/src/components/admin/Catering.tsx delete mode 100644 frontend/src/components/admin/ui.tsx delete mode 100644 frontend/src/index.css delete mode 100644 frontend/src/lib/api.ts delete mode 100644 frontend/src/main.tsx delete mode 100644 frontend/src/pages/Admin.tsx delete mode 100644 frontend/tsconfig.json delete mode 100644 frontend/vite.config.ts delete mode 100644 src/main/java/com/itsthevine/web/AdminCategoryController.java create mode 100644 src/main/java/com/itsthevine/web/AdminController.java delete mode 100644 src/main/java/com/itsthevine/web/AdminProductController.java create mode 100644 src/main/java/com/itsthevine/web/Catalogue.java create mode 100644 src/main/resources/templates/admin/catalogue.html create mode 100644 src/main/resources/templates/admin/catering.html create mode 100644 src/main/resources/templates/admin/layout.html create mode 100644 src/main/resources/templates/admin/table.html delete mode 100644 src/test/java/com/itsthevine/web/AdminCateringApiTest.java create mode 100644 src/test/java/com/itsthevine/web/AdminPagesTest.java create mode 100644 styles/admin.css rename {frontend => styles}/package-lock.json (54%) create mode 100644 styles/package.json create mode 100644 styles/site.css rename {frontend/src => styles}/tokens.css (100%) diff --git a/.gitignore b/.gitignore index cf75f71..512f9ab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ target/ -frontend/node_modules/ -frontend/dist/ +# The Tailwind CLI's dependencies. The compiled stylesheet needs no rule of its own: it is written +# straight into target/classes/static/css, which is already ignored above. +styles/node_modules/ .idea/ *.iml .vscode/ diff --git a/README.md b/README.md index b5831dc..03db6ce 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ Site for The Vine, 215 E Main Street, Princeville, Illinois. Spring Boot rendering its own pages with Thymeleaf, on [the Bennett platform](https://git.thebennett.net/austin/platform). -Previously a Next.js app on Cloudflare, then a React SPA on Spring, now server-rendered. The look has -not changed through any of it. +Previously a Next.js app on Cloudflare, then a React SPA on Spring, now server-rendered end to end — +there is no JavaScript framework in this repo. The look has not changed through any of it. ## Shape @@ -12,8 +12,8 @@ not changed through any of it. |---|---| | Backend | Spring Boot 4 / Java 25, `com.itsthevine.web` | | Pages | Thymeleaf, `src/main/resources/templates` — **no JavaScript** except one 100-line file for the product-card arrows | -| Styling | Tailwind v4, compiled from the templates by the Tailwind CLI into `static/css/site.css` | -| Admin | the one React screen that is left, served at `/admin` only | +| Styling | Tailwind v4, compiled from the templates by the Tailwind CLI into `static/css/site.css`. `styles/` is the whole asset pipeline | +| Admin | Thymeleaf forms at `/admin`, behind Authentik | | Database | Postgres (`itsthevine` on the shared `app-db` cluster), Flyway | | Photos | public MinIO bucket `itsthevine` — **not** in the repo or the image | | Deploy | Gitea CI → image → Watchtower → Caddy | @@ -29,7 +29,8 @@ writes its own head, so that whole mechanism is deleted rather than ported. The someone, and the contact form is a form post. `platform.web.spa.enabled=false` follows from that: the platform's fallback forwards extension-less paths -to `/index.html`, which now holds nothing but the admin. `SiteController` maps `/admin` to it explicitly. +to `/index.html` so a React SPA can own routing, and there is no SPA here — leaving it on would answer a +mistyped URL with a blank page and a 200 instead of the site's own 404. ## What the server owns @@ -64,10 +65,10 @@ Everything. The pages arrive complete. ## /admin -**The last React in the repo.** The public pages are server-rendered; this screen is a Vite/React app -because it is not content — it is an editor, and the instant-feedback editing (reorder that applies -before the network answers, a whole price table arranged on screen and saved in one go) is the point of -it. Everything under `frontend/` builds only this, plus the site's stylesheet. +Forms and redirects. Every write is a POST followed by a redirect back to the page, so the back button +and reload do what they look like they do, a double-tap can't repeat an upload, and there is no +client-side state to lose — a reload is always the truth. Two screens: `/admin` is the catalogue, +`/admin/catering` lists the price tables and `/admin/catering/tables/{id}` edits one. The catalogue is editable from the site: add an item with a photo and a name, reorder it, rename or reorder the category filters. Nothing there needs a deploy or a migration — which is the point, since @@ -77,18 +78,31 @@ Photos are resized, stripped of EXIF, converted to webp and put in the bucket on (`ProductPhotoService`, using `cwebp` from `libwebp-tools` — the pure-Java encoders either can't write webp or ship glibc natives that don't run on Alpine). -The catering tables are editable there too, but a table at a time rather than a field at a time. That -isn't a different taste in interfaces: a column heading, its price and the entries beneath it only mean -anything together, so `CateringPackage#arrange` takes the whole table and refuses one whose lines and -columns disagree. Drop the middle column on its own and every remaining entry shifts one place left — -the Large box then advertises the Medium box's contents at the Large price, and nothing about the page -looks broken. +The catering tables are edited a table at a time rather than a field at a time. That isn't a taste in +interfaces: a column heading, its price and the entries beneath it only mean anything together, so +`CateringPackage#arrange` takes the whole table and refuses one whose lines and columns disagree. Drop +the middle column on its own and every remaining entry shifts one place left — the Large box then +advertises the Medium box's contents at the Large price, and nothing about the page looks broken. -**The admin only exists when `SECURITY_MODE=OIDC`.** `AdminProductController`, -`AdminCategoryController` and `AdminCateringController` are `@ConditionalOnProperty` on it, so a deployment that forgets to configure -Authentik gets 404s rather than catalogue writes open to the internet. `/admin` and `/api/admin/**` are -both authenticated paths: a browser opening the page is sent to Authentik first, while `fetch` calls get -a bare 401 to handle. +**How that works without JavaScript.** One form holds the whole table and every button in it submits +that form; `name="do"` says which was pressed and its value carries the position it applies to +(`remove-column:2`). So "add a column" arrives with every cell the editor has typed, adds the column to +what arrived — plus an empty entry on every line — and re-renders. Nothing typed is lost, and **only +Save writes**: a half-built table with a blank column heading never reaches the live page, and the +aggregate would refuse it anyway. A failed save comes back the same way, with the work still in the +form and the reason above it, because a redirect would throw the work away and leave the editor guessing +which cell the message was about. + +**The admin only exists when `SECURITY_MODE=OIDC`.** `AdminController` and `AdminCateringController` are +`@ConditionalOnProperty` on it, so a deployment that forgets to configure Authentik gets 404s rather than +catalogue writes open to the internet. `/admin/**` is an authenticated path, so a browser opening it is +sent to Authentik and comes back signed in. There is no JSON admin any more: `AdminProductController`, +`AdminCategoryController` and the old `/api/admin/**` endpoints existed for the React screen and went +with it. Their logic lives in `Catalogue` and `CateringMenu`, which the pages call. + +**Testing a protected page needs `Accept: text/html`.** curl and MockMvc both send `*/*`, which the +platform answers with a bare 401; only a request that prefers HTML gets the 302 to Authentik. Asserting +the 401 and calling the page broken is a mistake worth not making twice. Known gap: `StorageService` has no delete, so removing a product or a photo leaves the object in the bucket. Harmless — nothing links to it — but it accumulates. @@ -102,16 +116,18 @@ history. EXIF (including GPS from phone photos) is stripped by the re-encode. ## Local development ```bash -# the whole site (needs Postgres on :5432 with an itsthevine database) +# the whole site, admin included (needs Postgres on :5432 with an itsthevine database) mvn spring-boot:run # http://localhost:8080 -# just the stylesheet, while editing templates — watches and recompiles -cd frontend && npm install && npx tailwindcss -i site.css -o ../target/classes/static/css/site.css --watch - -# the admin screen, proxying /api to :8080 -cd frontend && npm run dev # http://localhost:2024/admin +# the stylesheet, while editing templates — watches and recompiles +cd styles && npm install && npm run watch ``` +`/admin` only exists when `SECURITY_MODE=OIDC`, so a plain local run has the site and no admin. To work +on the admin without an identity provider, run with `SECURITY_MODE=OIDC`, dummy +`spring.security.oauth2.client.*` values (see `AdminPagesTest` for a set that starts without touching +the network) and `platform.security.authenticated-paths=/nothing/**` so nothing asks you to sign in. + `mvn spring-boot:run` compiles the stylesheet on the way (the Tailwind step is bound to `process-classes` for exactly that reason). `-DskipFrontend=true` skips both frontend steps for a fast backend loop — the pages then render **unstyled** until you build the CSS once. diff --git a/frontend/index.html b/frontend/index.html deleted file mode 100644 index a494fc0..0000000 --- a/frontend/index.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - The Vine — admin - - -

- - - diff --git a/frontend/package.json b/frontend/package.json deleted file mode 100644 index 29174e2..0000000 --- a/frontend/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "itsthevine-frontend", - "private": true, - "version": "0.1.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "tsc --noEmit && vite build", - "build:css": "tailwindcss -i site.css -o ../target/classes/static/css/site.css --minify", - "preview": "vite preview" - }, - "dependencies": { - "react": "^19.2.7", - "react-dom": "^19.2.7" - }, - "devDependencies": { - "@tailwindcss/cli": "4.3.3", - "@tailwindcss/vite": "4.3.3", - "@types/node": "^26.1.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.3", - "tailwindcss": "4.3.3", - "typescript": "^7.0.0", - "vite": "^8.1.3" - } -} diff --git a/frontend/site.css b/frontend/site.css deleted file mode 100644 index e44b5d6..0000000 --- a/frontend/site.css +++ /dev/null @@ -1,22 +0,0 @@ -/* - * The stylesheet for the server-rendered site. - * - * Compiled by the Tailwind CLI (`npm run build:css`) straight into target/classes/static/css: it is a - * source file, not a resource, and the generated stylesheet belongs in the build output rather than in - * src/main/resources next to it. - * - * It lives in this directory, beside the admin's stylesheet, because Tailwind resolves `@import - * "tailwindcss"` by walking up from the CSS file looking for node_modules — and node_modules is here. - * So this directory is the whole asset pipeline: one Tailwind, two stylesheets, one of them for pages - * that contain no JavaScript at all. - * - * @source points Tailwind at the templates, and at gallery.js — the product-card arrows are created in - * script, so their classes are only written down there. A utility exists in the output only if Tailwind - * saw it in one of these files, which is why a class name must never be assembled from pieces at - * runtime. - */ -@import "tailwindcss"; -@import "./src/tokens.css"; - -@source "../src/main/resources/templates"; -@source "../src/main/resources/static/js"; diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx deleted file mode 100644 index fd1caa7..0000000 --- a/frontend/src/App.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import AdminPage from '@/pages/Admin'; - -/** - * What's left of the React app: the admin screen, and nothing else. - * - * The shop front is server-rendered Thymeleaf now, so there are no client-side routes to route - * between — react-router went with the pages it used to switch. Spring serves this shell at /admin and - * only at /admin; every other URL is a page in src/main/resources/templates. - * - * The admin sits outside the public chrome deliberately: the nav would offer a signed-in editor links - * away from unsaved work, and the opening hours in the footer are noise on a screen whose whole job is - * the catalogue. - */ -const App = () => ( -
- -
-); - -export default App; diff --git a/frontend/src/components/admin/Catering.tsx b/frontend/src/components/admin/Catering.tsx deleted file mode 100644 index 653ff78..0000000 --- a/frontend/src/components/admin/Catering.tsx +++ /dev/null @@ -1,579 +0,0 @@ -import { useCallback, useEffect, useState } from 'react'; -import { - addCateringTable, - adminCatering, - deleteCateringTable, - reorderCateringTables, - saveCateringNotes, - saveCateringTable, - type CateringTable, -} from '@/lib/api'; -import { - ARROW_DOWN, - ARROW_LEFT, - ARROW_RIGHT, - ARROW_UP, - CHECK, - Icon, - PLUS, - TRASH, - X, - danger, - field, - iconButton, - primary, - secondary, - shift, -} from '@/components/admin/ui'; - -/** - * The goodie box and catering price tables, editable by the person who quotes them. - * - * A table is edited as a table and saved in one go, unlike the catalogue next door where every change - * saves as you make it. That's not a different taste in interfaces: a column heading, its price and - * the entries beneath it only mean anything together, so they have to be moved, added and removed - * together. Adding a column here adds an empty entry to every line, and removing one takes its - * entries with it — the server refuses any table whose lines and columns disagree, because the - * alternative is the Large box quietly advertising the Medium box's contents at the Large price. - */ - -// --- what's on screen ------------------------------------------------------- - -type TierDraft = { id: number | null; label: string; price: string }; -type RowDraft = { id: number | null; label: string; values: string[] }; -type Draft = { name: string; blurb: string; tiers: TierDraft[]; rows: RowDraft[]; notes: string[] }; - -const draftOf = (table: CateringTable): Draft => ({ - name: table.name, - blurb: table.blurb ?? '', - // The price arrives written out ("$24"); it goes back as whatever the editor leaves in the box, and - // the server decides what that's worth. - tiers: table.tiers.map((tier) => ({ id: tier.id, label: tier.label, price: tier.price ?? '' })), - rows: table.rows.map((row) => ({ id: row.id, label: row.label, values: [...row.values] })), - notes: [...table.notes], -}); - -/** Notes are edited as a list; deleting one is an omission, exactly as the server expects. */ -const Notes = ({ - notes, - hint, - disabled, - onChange, -}: { - notes: string[]; - hint: string; - disabled?: boolean; - onChange: (notes: string[]) => void; -}) => ( -
-

{hint}

-
    - {notes.map((note, i) => ( -
  • - + + + + +

    Clearing a box and saving removes that note.

    + + +
+ + diff --git a/src/main/resources/templates/admin/layout.html b/src/main/resources/templates/admin/layout.html new file mode 100644 index 0000000..ec7906f --- /dev/null +++ b/src/main/resources/templates/admin/layout.html @@ -0,0 +1,58 @@ + + + + + + + + + The Vine — admin + + + +
+
+ +
+
+

The Vine

+ +
+
+ View the site + +
+ +
+
+
+ + + +
Saved.
+ +
+
+
+
+
+ + diff --git a/src/main/resources/templates/admin/table.html b/src/main/resources/templates/admin/table.html new file mode 100644 index 0000000..9a450d2 --- /dev/null +++ b/src/main/resources/templates/admin/table.html @@ -0,0 +1,121 @@ + + + +
+ +
+ +
+
+

This table

+ All tables +
+ +
+ + +
+ + +
+ + + + + + + + + + + + + + + +
What they get + + + +
+ + + +
+
+ +
+ + + + + +
+ + + +
+
+
+ + + +
+

+ Small print under this table — minimums, what can't be mixed, how delivery is charged. +

+
+
+ + +
+
+ +
+ +
+ + Start again + + Not saved yet — press Save when the table looks right. + +
+
+
+
+ + diff --git a/src/test/java/com/itsthevine/web/AdminCateringApiTest.java b/src/test/java/com/itsthevine/web/AdminCateringApiTest.java deleted file mode 100644 index ec78244..0000000 --- a/src/test/java/com/itsthevine/web/AdminCateringApiTest.java +++ /dev/null @@ -1,150 +0,0 @@ -package com.itsthevine.web; - -import static org.hamcrest.Matchers.containsString; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.testcontainers.service.connection.ServiceConnection; -import org.springframework.http.MediaType; -import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.context.WebApplicationContext; -import org.testcontainers.containers.PostgreSQLContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; - -/** - * The catering admin over HTTP, signed in: the paths, the JSON field names and the shape of a refusal. - * - *

{@code CateringMenuTest} covers what the tables mean; this covers the surface the admin screen - * actually calls. Both matter — a table can be modelled perfectly and still be unreachable because a - * URL has a typo in it, and the screen reads the sentence out of a ProblemDetail rather than showing - * a status code. - */ -@SpringBootTest(properties = { - "SECURITY_MODE=OIDC", - // Stated outright rather than via issuer-uri, which would fetch a discovery document at - // startup — that needs the network and a real identity provider. (As in AdminSecurityTest.) - "spring.security.oauth2.client.provider.authentik.authorization-uri=https://sso.example.test/authorize", - "spring.security.oauth2.client.provider.authentik.token-uri=https://sso.example.test/token", - "spring.security.oauth2.client.provider.authentik.jwk-set-uri=https://sso.example.test/jwks", - "spring.security.oauth2.client.provider.authentik.user-info-uri=https://sso.example.test/userinfo", - "spring.security.oauth2.client.provider.authentik.user-name-attribute=preferred_username", - "spring.security.oauth2.client.registration.authentik.client-id=test", - "spring.security.oauth2.client.registration.authentik.client-secret=test", - "spring.security.oauth2.client.registration.authentik.scope=openid,profile,email", - "spring.security.oauth2.client.registration.authentik.authorization-grant-type=authorization_code", - "spring.security.oauth2.client.registration.authentik.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}", - "platform.contact.to=test@example.com", - "platform.contact.from=noreply@example.com", - "platform.storage.access-key=test", - "platform.storage.secret-key=test" -}) -@Testcontainers -// Rolled back per test, so each one starts from the seeded page. MockMvc runs the controller on this -// thread, which is what lets the test's transaction wrap the whole request. -@Transactional -class AdminCateringApiTest { - - @Container - @ServiceConnection - static PostgreSQLContainer postgres = - new PostgreSQLContainer<>(DockerImageName.parse("postgres:18-alpine")); - - @Autowired - WebApplicationContext context; - - MockMvc mvc; - - @BeforeEach - void setUp() { - // .apply(springSecurity()) is not optional: webAppContextSetup alone leaves the filter chain out. - mvc = MockMvcBuilders.webAppContextSetup(context) - .apply(SecurityMockMvcConfigurers.springSecurity()) - .build(); - } - - @Test - void handsTheEditorEveryTableWithItsColumnsPricedAndItsLinesFilledIn() throws Exception { - mvc.perform(get("/api/admin/catering").with(user("morissa"))) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.packages.length()").value(3)) - .andExpect(jsonPath("$.packages[0].name").value("Office")) - // Written out, not a number the browser would have to format. - .andExpect(jsonPath("$.packages[0].tiers[0].price").value("$24")) - .andExpect(jsonPath("$.packages[0].rows[0].label").value("Mini muffins")) - .andExpect(jsonPath("$.packages[0].rows[0].values[1]").value("18 items")) - .andExpect(jsonPath("$.notes.length()").value(2)); - } - - @Test - void savesAWholeTableAtOnce() throws Exception { - String office = """ - {"name":"Office boxes","blurb":"For meetings.", - "tiers":[{"id":null,"label":"Dozen","price":"$18.50"}], - "rows":[{"id":null,"label":"Mini muffins","values":["12 items"]}], - "notes":["Two days' notice, please."]} - """; - - mvc.perform(put("/api/admin/catering/packages/1").with(user("morissa")).with(csrf()) - .contentType(MediaType.APPLICATION_JSON).content(office)) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.name").value("Office boxes")) - // The column and line were new; they come back with ids so the next save edits them - // rather than adding more. - .andExpect(jsonPath("$.tiers[0].id").isNumber()) - .andExpect(jsonPath("$.tiers[0].price").value("$18.50")) - .andExpect(jsonPath("$.rows[0].id").isNumber()) - .andExpect(jsonPath("$.notes[0]").value("Two days' notice, please.")); - } - - @Test - void refusesAnArrangementThatWouldMisprintThePricesAndSaysWhy() throws Exception { - // Two columns, three entries on the line: exactly the mistake that shifts a box's contents. - String crooked = """ - {"name":"Parties", - "tiers":[{"id":null,"label":"Small","price":"54"},{"id":null,"label":"Large","price":"98"}], - "rows":[{"id":null,"label":"Cake","values":["6 in","8 in","10 in"]}], - "notes":[]} - """; - - mvc.perform(put("/api/admin/catering/packages/2").with(user("morissa")).with(csrf()) - .contentType(MediaType.APPLICATION_JSON).content(crooked)) - .andExpect(status().isBadRequest()) - // `detail` is the field the SPA shows the editor. - .andExpect(jsonPath("$.detail") - .value(containsString("3 entries but the table has 2 columns"))); - } - - @Test - void reordersTheTablesFromItsOwnPathRatherThanReadingOrderAsAnId() throws Exception { - // /packages/order and /packages/{id} are both PUT; Spring's literal-beats-template rule is - // what keeps "order" from arriving as a table id. - mvc.perform(put("/api/admin/catering/packages/order").with(user("morissa")).with(csrf()) - .contentType(MediaType.APPLICATION_JSON).content("{\"ids\":[3,1,2]}")) - .andExpect(status().isOk()) - .andExpect(jsonPath("$[0].name").value("Weddings")) - .andExpect(jsonPath("$[2].name").value("Parties")); - } - - @Test - void replacesThePageNotesWithTheListItWasGiven() throws Exception { - mvc.perform(put("/api/admin/catering/notes").with(user("morissa")).with(csrf()) - .contentType(MediaType.APPLICATION_JSON) - .content("[\"Prices may change.\",\" \"]")) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.length()").value(1)) - .andExpect(jsonPath("$[0]").value("Prices may change.")); - } -} diff --git a/src/test/java/com/itsthevine/web/AdminPagesTest.java b/src/test/java/com/itsthevine/web/AdminPagesTest.java new file mode 100644 index 0000000..e29ea89 --- /dev/null +++ b/src/test/java/com/itsthevine/web/AdminPagesTest.java @@ -0,0 +1,221 @@ +package com.itsthevine.web; + +import static org.hamcrest.Matchers.containsString; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.user; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.flash; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrl; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.WebApplicationContext; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.utility.DockerImageName; + +/** + * The admin, signed in and driven the way a browser drives it: form posts and redirects. + * + *

These replace the JSON admin's tests. The screen used to be React talking to {@code + * /api/admin/**}; it is now Thymeleaf forms, so what is worth asserting is that a form arrives bound + * correctly, that an edit lands, that a refusal comes back readable rather than as a stack trace, and + * that a structural button changes the draft without writing it. + * + *

Runs with {@code SECURITY_MODE=OIDC}, because that is the only condition under which the admin + * exists at all. + */ +@SpringBootTest(properties = { + "SECURITY_MODE=OIDC", + // Endpoints stated outright rather than an issuer-uri, which would make Spring fetch the + // discovery document at startup — that needs the network and a real identity provider. + "spring.security.oauth2.client.provider.authentik.authorization-uri=https://sso.example.test/authorize", + "spring.security.oauth2.client.provider.authentik.token-uri=https://sso.example.test/token", + "spring.security.oauth2.client.provider.authentik.jwk-set-uri=https://sso.example.test/jwks", + "spring.security.oauth2.client.provider.authentik.user-info-uri=https://sso.example.test/userinfo", + "spring.security.oauth2.client.provider.authentik.user-name-attribute=preferred_username", + "spring.security.oauth2.client.registration.authentik.client-id=test", + "spring.security.oauth2.client.registration.authentik.client-secret=test", + "spring.security.oauth2.client.registration.authentik.scope=openid,profile,email", + "spring.security.oauth2.client.registration.authentik.authorization-grant-type=authorization_code", + "spring.security.oauth2.client.registration.authentik.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}", + "platform.contact.to=test@example.com", + "platform.contact.from=noreply@example.com", + "platform.storage.access-key=test", + "platform.storage.secret-key=test" +}) +@Testcontainers +// Rolled back per test, so each starts from the seeded catalogue. MockMvc runs the controller on this +// thread, which is what lets the test's transaction wrap the whole request. +@Transactional +class AdminPagesTest { + + @Container + @ServiceConnection + static PostgreSQLContainer postgres = + new PostgreSQLContainer<>(DockerImageName.parse("postgres:18-alpine")); + + @Autowired + WebApplicationContext context; + + MockMvc mvc; + + @BeforeEach + void setUp() { + // .apply(springSecurity()) is not optional: webAppContextSetup alone leaves the filter chain out. + mvc = MockMvcBuilders.webAppContextSetup(context) + .apply(SecurityMockMvcConfigurers.springSecurity()) + .build(); + } + + @Test + void theCatalogueScreenShowsWhatIsOnThePageWithItsPhotos() throws Exception { + mvc.perform(get("/admin").with(user("morissa"))) + .andExpect(status().isOk()) + .andExpect(content().string(containsString("76th Birthday Cake"))) + // The photo URL and the key beside it: the key is what the arrange buttons name it by. + .andExpect(content().string(containsString("products/76th_birthday_cake.webp"))) + .andExpect(content().string(containsString("On the page (40)"))) + // The filter list, with the count that decides whether Delete is offered. + .andExpect(content().string(containsString("Cookies"))); + } + + @Test + void renamingAnItemLandsAndSaysSo() throws Exception { + mvc.perform(post("/admin/items/1").with(user("morissa")).with(csrf()) + .param("name", "76th Birthday Cake (chocolate)") + .param("category", "Cakes")) + .andExpect(status().is3xxRedirection()) + .andExpect(redirectedUrl("/admin")) + .andExpect(flash().attribute("done", containsString("Saved"))); + + mvc.perform(get("/admin").with(user("morissa"))) + .andExpect(content().string(containsString("76th Birthday Cake (chocolate)"))); + } + + @Test + void aRefusalComesBackAsASentenceTheEditorCanActOn() throws Exception { + // Cookies has items filed under it, and deleting the button shouldn't decide what happens to them. + mvc.perform(post("/admin/categories/1/delete").with(user("morissa")).with(csrf())) + .andExpect(redirectedUrl("/admin")) + .andExpect(flash().attribute("problem", containsString("still filed under Cookies"))); + } + + @Test + void movingAnItemUpFromTheTopIsNotAnError() throws Exception { + // The button is disabled in the page, but a stale page could still post this. + mvc.perform(post("/admin/items/1/move").with(user("morissa")).with(csrf()).param("by", "-1")) + .andExpect(redirectedUrl("/admin")) + .andExpect(flash().attributeCount(0)); + } + + @Test + void theTableEditorRendersTheStoredTableAsAForm() throws Exception { + mvc.perform(get("/admin/catering/tables/1").with(user("morissa"))) + .andExpect(status().isOk()) + // Indexed names are what let Spring bind the grid back into the right cells. + .andExpect(content().string(containsString("name=\"columns[0].label\""))) + .andExpect(content().string(containsString("name=\"lines[0].values[1]\""))) + .andExpect(content().string(containsString("value=\"18 items\""))) + // The price round-trips as text: it came out "$24" and goes back the same way. + .andExpect(content().string(containsString("value=\"$24\""))); + } + + @Test + void savingTheTableWritesEveryCell() throws Exception { + mvc.perform(post("/admin/catering/tables/1").with(user("morissa")).with(csrf()) + .param("do", "save") + .param("name", "Office boxes") + .param("blurb", "For meetings.") + .param("columns[0].id", "1").param("columns[0].label", "Small").param("columns[0].price", "$26") + .param("lines[0].id", "1").param("lines[0].label", "Mini muffins") + .param("lines[0].values[0]", "14 items") + .param("notes[0]", "Two days' notice, please.")) + .andExpect(redirectedUrl("/admin/catering")) + .andExpect(flash().attribute("done", containsString("Saved the Office boxes table"))); + + mvc.perform(get("/api/catering")) + .andExpect(content().string(containsString("Office boxes"))) + .andExpect(content().string(containsString("$26"))) + .andExpect(content().string(containsString("14 items"))); + } + + @Test + void addingAColumnKeepsWhatWasTypedAndWritesNothing() throws Exception { + mvc.perform(post("/admin/catering/tables/1").with(user("morissa")).with(csrf()) + .param("do", "add-column") + .param("name", "Office") + .param("columns[0].id", "1").param("columns[0].label", "Small").param("columns[0].price", "$24") + .param("lines[0].id", "1").param("lines[0].label", "Mini muffins") + // A cell edited but not yet saved: it has to survive the round trip. + .param("lines[0].values[0]", "13 items")) + .andExpect(status().isOk()) + .andExpect(content().string(containsString("value=\"13 items\""))) + // The new column exists in the form, and every line grew an entry to match it. + .andExpect(content().string(containsString("name=\"columns[1].label\""))) + .andExpect(content().string(containsString("name=\"lines[0].values[1]\""))) + .andExpect(content().string(containsString("Not saved yet"))); + + // And nothing was written: the live page still says what it said. + mvc.perform(get("/api/catering")) + .andExpect(content().string(containsString("12 items"))); + } + + @Test + void removingAColumnTakesItsCellsOutOfEveryLine() throws Exception { + mvc.perform(post("/admin/catering/tables/1").with(user("morissa")).with(csrf()) + .param("do", "remove-column:0") + .param("name", "Office") + .param("columns[0].id", "1").param("columns[0].label", "Small").param("columns[0].price", "$24") + .param("columns[1].id", "2").param("columns[1].label", "Medium").param("columns[1].price", "$32") + .param("lines[0].id", "1").param("lines[0].label", "Mini muffins") + .param("lines[0].values[0]", "12 items") + .param("lines[0].values[1]", "18 items")) + .andExpect(status().isOk()) + // What is left is the Medium column and, under it, Medium's entry — not Small's. + .andExpect(content().string(containsString("value=\"Medium\""))) + .andExpect(content().string(containsString("value=\"18 items\""))) + .andExpect(content().string(org.hamcrest.Matchers.not(containsString("value=\"12 items\"")))) + .andExpect(content().string(org.hamcrest.Matchers.not(containsString("name=\"columns[1].label\"")))); + } + + @Test + void aPriceThatIsntAPriceComesBackWithTheWorkStillInTheForm() throws Exception { + mvc.perform(post("/admin/catering/tables/1").with(user("morissa")).with(csrf()) + .param("do", "save") + .param("name", "Office") + .param("columns[0].id", "1").param("columns[0].label", "Small").param("columns[0].price", "ask us") + .param("lines[0].id", "1").param("lines[0].label", "Mini muffins") + .param("lines[0].values[0]", "12 items")) + // Not a redirect: a redirect would throw the work away and leave them guessing. + .andExpect(status().isOk()) + .andExpect(content().string(containsString("isn't a price"))) + .andExpect(content().string(containsString("value=\"ask us\""))); + } + + @Test + void thePageNotesAreReplacedByWhatTheFormSubmits() throws Exception { + mvc.perform(post("/admin/catering/notes").with(user("morissa")).with(csrf()) + .param("notes", "Prices may change.") + .param("notes", " ") + .param("notes", "Two weeks' notice for a wedding.")) + .andExpect(redirectedUrl("/admin/catering")); + + mvc.perform(get("/api/catering")) + .andExpect(content().string(containsString("Two weeks' notice for a wedding."))) + // The blank box was a deletion, not a note: two notes came back, not three. + .andExpect(content().string(containsString("Prices may change."))) + .andExpect(content().string(org.hamcrest.Matchers.not(containsString("\" \"")))); + } +} diff --git a/src/test/java/com/itsthevine/web/AdminSecurityTest.java b/src/test/java/com/itsthevine/web/AdminSecurityTest.java index 8bff624..843bb25 100644 --- a/src/test/java/com/itsthevine/web/AdminSecurityTest.java +++ b/src/test/java/com/itsthevine/web/AdminSecurityTest.java @@ -70,21 +70,24 @@ class AdminSecurityTest { } @Test - void everyAdminApiIsClosedToAnonymousVisitors() throws Exception { - // csrf() on the writes, so these assert AUTHORIZATION (401), not a missing token. - mvc.perform(get("/api/admin/products")).andExpect(status().isUnauthorized()); - mvc.perform(get("/api/admin/categories")).andExpect(status().isUnauthorized()); - mvc.perform(get("/api/admin/catering")).andExpect(status().isUnauthorized()); - mvc.perform(post("/api/admin/products").with(csrf())).andExpect(status().isUnauthorized()); - mvc.perform(post("/api/admin/categories").with(csrf()).contentType(MediaType.APPLICATION_JSON) - .content("{\"name\":\"x\"}")) + void everyAdminWriteIsClosedToAnonymousVisitors() throws Exception { + // csrf() on the writes, so these assert AUTHORIZATION, not a missing token. The admin is pages + // and form posts now, so this is the whole surface — there is no JSON admin left to guard. + mvc.perform(get("/admin")).andExpect(status().isUnauthorized()); + mvc.perform(get("/admin/catering")).andExpect(status().isUnauthorized()); + mvc.perform(get("/admin/catering/tables/1")).andExpect(status().isUnauthorized()); + mvc.perform(post("/admin/items").with(csrf()).param("name", "Free cake").param("category", "Cakes")) + .andExpect(status().isUnauthorized()); + mvc.perform(post("/admin/items/1/delete").with(csrf())).andExpect(status().isUnauthorized()); + mvc.perform(post("/admin/categories").with(csrf()).param("name", "x")) .andExpect(status().isUnauthorized()); // The prices are the one thing on this site a stranger would most enjoy editing. - mvc.perform(put("/api/admin/catering/packages/1").with(csrf()).contentType(MediaType.APPLICATION_JSON) - .content("{\"name\":\"Free\",\"tiers\":[],\"rows\":[],\"notes\":[]}")) + mvc.perform(post("/admin/catering/tables/1").with(csrf()) + .param("do", "save").param("name", "Free") + .param("columns[0].label", "Any").param("columns[0].price", "0") + .param("lines[0].label", "Everything").param("lines[0].values[0]", "yes")) .andExpect(status().isUnauthorized()); - mvc.perform(put("/api/admin/catering/notes").with(csrf()).contentType(MediaType.APPLICATION_JSON) - .content("[\"anything\"]")) + mvc.perform(post("/admin/catering/notes").with(csrf()).param("notes", "anything")) .andExpect(status().isUnauthorized()); } @@ -92,10 +95,12 @@ class AdminSecurityTest { void theAdminPageRedirectsABrowserToLogin() throws Exception { // Protecting /admin server-side is what makes sign-in work: a browser opening it is bounced to // Authentik and comes back signed in. The redirect only fires for a request that prefers HTML — - // the platform answers */* (a fetch/XHR) with a bare 401 so the SPA can handle it — so this - // must send a browser's Accept header to see the 302. (Verified against a running container.) + // the platform answers */* with a bare 401, which is why the checks above see 401 and this one + // has to send a browser's Accept header to see the 302. (Verified against a running container.) mvc.perform(get("/admin").header("Accept", "text/html,application/xhtml+xml")) .andExpect(status().is3xxRedirection()); + mvc.perform(get("/admin/catering").header("Accept", "text/html,application/xhtml+xml")) + .andExpect(status().is3xxRedirection()); } @Test diff --git a/src/test/java/com/itsthevine/web/PlatformContractTest.java b/src/test/java/com/itsthevine/web/PlatformContractTest.java index a167769..485c10b 100644 --- a/src/test/java/com/itsthevine/web/PlatformContractTest.java +++ b/src/test/java/com/itsthevine/web/PlatformContractTest.java @@ -1,7 +1,6 @@ package com.itsthevine.web; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.forwardedUrl; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -25,10 +24,9 @@ import org.testcontainers.utility.DockerImageName; *

It used to extend {@code PlatformWebContract} from platform-starter-test and inherit these five * assertions verbatim. It can't any more, and the reason is worth stating: the shared contract asserts * that an unknown extension-less path forwards to {@code /index.html}, because it was written when every - * app on the platform was a React SPA. This one is server-rendered now — {@code /index.html} holds - * nothing but the admin shell — so forwarding a mistyped URL there would answer with a blank page and a - * 200 instead of the site's own 404. The contract's own test methods are package-private, so the - * assertion cannot be overridden from here. + * app on the platform was a React SPA. There is no SPA here at all now — no shell to forward to — so + * that assertion describes an app this no longer is. The contract's own test methods are package-private, + * so it cannot be overridden from here. * *

The other four are restated below unchanged, so this app still fails the build on the regression * the contract exists for (an {@code /api} typo answering with a page and a 200). @@ -92,13 +90,12 @@ class PlatformContractTest { } @Test - @DisplayName("an unknown route is a 404, and only /admin serves the SPA shell") - void routingIsServerSideExceptForTheAdmin() throws Exception { + @DisplayName("routing is server-side: an unknown path is a 404, and so is /admin with no identity provider") + void routingIsServerSide() throws Exception { mvc.perform(get("/some/client/side/route")).andExpect(status().isNotFound()); - // Assert the forward TARGET, not the body: MockMvc records a forward rather than executing it, - // so the body is empty here by design — which also means this passes before the admin is built. - mvc.perform(get("/admin")) - .andExpect(status().isOk()) - .andExpect(forwardedUrl("/index.html")); + // No SECURITY_MODE here, so AdminController does not exist — "no Authentik configured" means "no + // admin", and it 404s like any other unknown path rather than exposing catalogue writes. + // AdminSecurityTest covers the other half: with OIDC on, /admin exists and needs a login. + mvc.perform(get("/admin")).andExpect(status().isNotFound()); } } diff --git a/styles/admin.css b/styles/admin.css new file mode 100644 index 0000000..8682d38 --- /dev/null +++ b/styles/admin.css @@ -0,0 +1,50 @@ +/* + * The admin's controls. + * + * Component classes rather than utility strings repeated through the markup, because the admin is made + * of forms: there are dozens of buttons on a page and each one is its own

. The public pages keep + * their utilities inline — they each look different — but "a button in the admin" should be one decision + * in one place. These are the same buttons the React screen had, from the same class strings it composed. + * + * @utility, not `.btn { @apply … }` in a components layer: Tailwind v4 will only let you @apply a class + * it knows as a utility, and only a registered utility can take a variant — which `file:btn-secondary` + * on the photo pickers needs. + */ +@utility btn { + @apply inline-flex items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium + transition-colors; +} + +@utility btn-primary { + @apply btn bg-bakery-600 text-white hover:bg-bakery-700 + disabled:opacity-40 disabled:cursor-not-allowed; +} + +@utility btn-secondary { + @apply btn border border-bakery-300 text-bakery-800 hover:bg-bakery-100 + disabled:opacity-40 disabled:cursor-not-allowed; +} + +@utility btn-danger { + @apply btn text-red-700 hover:bg-red-50 disabled:opacity-40 disabled:cursor-not-allowed; +} + +/* Square, for the arrows and the crosses — a row of these is how anything gets reordered. */ +@utility btn-icon { + @apply inline-flex items-center justify-center w-7 h-7 rounded-md border border-bakery-300 + text-bakery-700 hover:bg-bakery-100 transition-colors + disabled:opacity-30 disabled:cursor-not-allowed; +} + +@utility field { + @apply w-full rounded-md border border-bakery-300 bg-white px-3 py-2 text-sm + focus:border-bakery-500 focus:outline-none focus:ring-1 focus:ring-bakery-500; +} + +@utility card { + @apply rounded-lg border border-bakery-200 bg-white p-4 shadow-sm; +} + +@utility card-heading { + @apply font-adbhashitha text-xl text-bakery-800; +} diff --git a/frontend/package-lock.json b/styles/package-lock.json similarity index 54% rename from frontend/package-lock.json rename to styles/package-lock.json index bd90f7d..6c59446 100644 --- a/frontend/package-lock.json +++ b/styles/package-lock.json @@ -1,26 +1,15 @@ { - "name": "itsthevine-frontend", + "name": "itsthevine-styles", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "itsthevine-frontend", + "name": "itsthevine-styles", "version": "0.1.0", - "dependencies": { - "react": "^19.2.7", - "react-dom": "^19.2.7" - }, "devDependencies": { "@tailwindcss/cli": "4.3.3", - "@tailwindcss/vite": "4.3.3", - "@types/node": "^26.1.0", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.3", - "tailwindcss": "4.3.3", - "typescript": "^7.0.0", - "vite": "^8.1.3" + "tailwindcss": "4.3.3" } }, "node_modules/@emnapi/core": { @@ -126,16 +115,6 @@ "@emnapi/runtime": "^1.7.1" } }, - "node_modules/@oxc-project/types": { - "version": "0.139.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", - "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", @@ -458,270 +437,6 @@ "node": ">=0.10" } }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", - "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", - "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", - "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", - "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", - "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", - "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", - "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", - "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", - "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", - "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", - "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", - "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", - "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.11.1", - "@emnapi/runtime": "1.11.1", - "@napi-rs/wasm-runtime": "^1.1.6" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", - "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", - "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - "dev": true, - "license": "MIT" - }, "node_modules/@tailwindcss/cli": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@tailwindcss/cli/-/cli-4.3.3.tgz", @@ -998,21 +713,6 @@ "node": ">= 20" } }, - "node_modules/@tailwindcss/vite": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", - "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "4.3.3", - "@tailwindcss/oxide": "4.3.3", - "tailwindcss": "4.3.3" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6 || ^7 || ^8" - } - }, "node_modules/@tybys/wasm-util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", @@ -1024,402 +724,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@types/node": { - "version": "26.1.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", - "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~8.3.0" - } - }, - "node_modules/@types/react": { - "version": "19.2.17", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", - "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", - "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.2.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.2.0" - } - }, - "node_modules/@typescript/typescript-aix-ppc64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", - "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-darwin-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", - "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-darwin-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", - "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-freebsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", - "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-freebsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", - "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-arm": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", - "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", - "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-loong64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", - "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-mips64el": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", - "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-ppc64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", - "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-riscv64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", - "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-s390x": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", - "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", - "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-netbsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", - "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-netbsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", - "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-openbsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", - "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-openbsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", - "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-sunos-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", - "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-win32-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", - "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-win32-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", - "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.4.tgz", - "integrity": "sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rolldown/pluginutils": "^1.0.1" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", - "babel-plugin-react-compiler": "^1.0.0", - "vite": "^8.0.0" - }, - "peerDependenciesMeta": { - "@rolldown/plugin-babel": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - } - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -1433,13 +737,6 @@ "node": ">=8" } }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -1464,24 +761,6 @@ "node": ">=10.13.0" } }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -1495,21 +774,6 @@ "node": ">=8" } }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1868,25 +1132,6 @@ "node": ">=4" } }, - "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -1901,109 +1146,6 @@ "dev": true, "license": "ISC" }, - "node_modules/picomatch": { - "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": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.22", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.22.tgz", - "integrity": "sha512-KBDEIpLrvpv16pp3K0Fw+UCoZfopFjjgeB+0tA/aaThfEE74kKDLrgg603YvOWJyg3+WYtyq3xYsQWsIyZlPqQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.16", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/react": { - "version": "19.2.8", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", - "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.2.8", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", - "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.27.0" - }, - "peerDependencies": { - "react": "^19.2.8" - } - }, - "node_modules/rolldown": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", - "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@oxc-project/types": "=0.139.0", - "@rolldown/pluginutils": "^1.0.0" - }, - "bin": { - "rolldown": "bin/cli.mjs" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.1.5", - "@rolldown/binding-darwin-arm64": "1.1.5", - "@rolldown/binding-darwin-x64": "1.1.5", - "@rolldown/binding-freebsd-x64": "1.1.5", - "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", - "@rolldown/binding-linux-arm64-gnu": "1.1.5", - "@rolldown/binding-linux-arm64-musl": "1.1.5", - "@rolldown/binding-linux-ppc64-gnu": "1.1.5", - "@rolldown/binding-linux-s390x-gnu": "1.1.5", - "@rolldown/binding-linux-x64-gnu": "1.1.5", - "@rolldown/binding-linux-x64-musl": "1.1.5", - "@rolldown/binding-openharmony-arm64": "1.1.5", - "@rolldown/binding-wasm32-wasi": "1.1.5", - "@rolldown/binding-win32-arm64-msvc": "1.1.5", - "@rolldown/binding-win32-x64-msvc": "1.1.5" - } - }, - "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", - "license": "MIT" - }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2035,23 +1177,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -2072,126 +1197,6 @@ "dev": true, "license": "0BSD", "optional": true - }, - "node_modules/typescript": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", - "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc" - }, - "engines": { - "node": ">=16.20.0" - }, - "optionalDependencies": { - "@typescript/typescript-aix-ppc64": "7.0.2", - "@typescript/typescript-darwin-arm64": "7.0.2", - "@typescript/typescript-darwin-x64": "7.0.2", - "@typescript/typescript-freebsd-arm64": "7.0.2", - "@typescript/typescript-freebsd-x64": "7.0.2", - "@typescript/typescript-linux-arm": "7.0.2", - "@typescript/typescript-linux-arm64": "7.0.2", - "@typescript/typescript-linux-loong64": "7.0.2", - "@typescript/typescript-linux-mips64el": "7.0.2", - "@typescript/typescript-linux-ppc64": "7.0.2", - "@typescript/typescript-linux-riscv64": "7.0.2", - "@typescript/typescript-linux-s390x": "7.0.2", - "@typescript/typescript-linux-x64": "7.0.2", - "@typescript/typescript-netbsd-arm64": "7.0.2", - "@typescript/typescript-netbsd-x64": "7.0.2", - "@typescript/typescript-openbsd-arm64": "7.0.2", - "@typescript/typescript-openbsd-x64": "7.0.2", - "@typescript/typescript-sunos-x64": "7.0.2", - "@typescript/typescript-win32-arm64": "7.0.2", - "@typescript/typescript-win32-x64": "7.0.2" - } - }, - "node_modules/undici-types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", - "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/vite": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", - "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.5", - "postcss": "^8.5.17", - "rolldown": "~1.1.5", - "tinyglobby": "^0.2.17" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.3.0", - "esbuild": "^0.27.0 || ^0.28.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "@vitejs/devtools": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } } } } diff --git a/styles/package.json b/styles/package.json new file mode 100644 index 0000000..e63b9a2 --- /dev/null +++ b/styles/package.json @@ -0,0 +1,15 @@ +{ + "name": "itsthevine-styles", + "private": true, + "version": "0.1.0", + "type": "module", + "scripts": { + "build": "tailwindcss -i site.css -o ../target/classes/static/css/site.css --minify", + "build:css": "tailwindcss -i site.css -o ../target/classes/static/css/site.css --minify", + "watch": "tailwindcss -i site.css -o ../target/classes/static/css/site.css --watch" + }, + "devDependencies": { + "@tailwindcss/cli": "4.3.3", + "tailwindcss": "4.3.3" + } +} diff --git a/styles/site.css b/styles/site.css new file mode 100644 index 0000000..a94c3d8 --- /dev/null +++ b/styles/site.css @@ -0,0 +1,23 @@ +/* + * The stylesheet for the server-rendered site. + * + * Compiled by the Tailwind CLI (`npm run build:css`) straight into target/classes/static/css: it is a + * source file, not a resource, and the generated stylesheet belongs in the build output rather than in + * src/main/resources next to it. + * + * This directory is the whole asset pipeline, and Tailwind is all that is left of it: the site and the + * admin are both server-rendered HTML, so there is no bundler, no framework and one stylesheet. It has + * to live here because Tailwind resolves `@import "tailwindcss"` by walking up from the CSS file looking + * for node_modules — and node_modules is here. + * + * @source points Tailwind at every template (public pages and admin alike) and at gallery.js — the + * product-card arrows are created in script, so their classes are only written down there. A utility + * exists in the output only if Tailwind saw it in one of these files, which is why a class name must + * never be assembled from pieces at runtime. + */ +@import "tailwindcss"; +@import "./tokens.css"; +@import "./admin.css"; + +@source "../src/main/resources/templates"; +@source "../src/main/resources/static/js"; diff --git a/frontend/src/tokens.css b/styles/tokens.css similarity index 100% rename from frontend/src/tokens.css rename to styles/tokens.css From 4ac984b33dff9255da6dc654fd87859466ad8aa4 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 16:51:31 -0500 Subject: [PATCH 05/22] One form per row in the admin, and buttons that don't trip its validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The catalogue screen had a form per control: 467 forms, 464 CSRF tokens, 317 KB of HTML for a page that gets opened on a phone in a bakery. It is now one form per row with several submit buttons — the same `name="do"` pattern the catering table editor already used — which is 89 forms and 206 KB, and less markup to read. Only `save` looks at the text boxes, so moving a row cannot save a half-typed name. The buttons that ignore them carry `formnovalidate`, because the name box is `required` and a browser would otherwise refuse to submit "move down" while that box was empty — a validation error about something the button has nothing to do with. Verified on the running container: 89 forms, move and photo-remove still land, and the seeded catalogue comes back the same after a database reset. Co-Authored-By: Claude Opus 5 (1M context) --- .../com/itsthevine/web/AdminController.java | 120 +++++++++------- .../resources/templates/admin/catalogue.html | 135 ++++++++---------- .../com/itsthevine/web/AdminPagesTest.java | 5 +- .../com/itsthevine/web/AdminSecurityTest.java | 9 +- 4 files changed, 133 insertions(+), 136 deletions(-) diff --git a/src/main/java/com/itsthevine/web/AdminController.java b/src/main/java/com/itsthevine/web/AdminController.java index b0a2513..95494f6 100644 --- a/src/main/java/com/itsthevine/web/AdminController.java +++ b/src/main/java/com/itsthevine/web/AdminController.java @@ -58,14 +58,51 @@ public class AdminController { }); } + /** + * Everything you can do to one item, from one form. + * + *

One form per item rather than one per button: the page carries forty items, and a separate form + * for each control meant 467 forms and 464 CSRF tokens — 317 KB of HTML for a screen that is opened + * on a phone, in a bakery. {@code name="do"} says which button was pressed and its value carries the + * argument, exactly as the catering table editor does. + * + *

Only {@code save} looks at the name and category boxes. The other actions deliberately ignore + * them, so pressing "move down" halfway through retyping a name doesn't save the half-typed name. + * + * @param action {@code save}, {@code move:-1}, {@code move:1}, {@code delete}, or + * {@code photo::<-1|1|0>} — earlier, later, or remove + */ @PostMapping("/items/{id}") - public String describe(@PathVariable Long id, - @RequestParam String name, - @RequestParam String category, - RedirectAttributes flash) { + public String item(@PathVariable Long id, + @RequestParam(name = "do", defaultValue = "save") String action, + @RequestParam(required = false) String name, + @RequestParam(required = false) String category, + RedirectAttributes flash) { + String[] parts = action.split(":"); return run(flash, () -> { - catalogue.describeItem(id, name, category); - flash.addFlashAttribute("done", "Saved " + name.trim() + "."); + switch (parts[0]) { + case "save" -> { + catalogue.describeItem(id, name, category); + flash.addFlashAttribute("done", "Saved " + name.trim() + "."); + } + case "move" -> catalogue.moveItem(id, Integer.parseInt(parts[1])); + case "delete" -> { + catalogue.removeItem(id); + flash.addFlashAttribute("done", "Removed from the products page."); + } + case "photo" -> { + // The key is the middle field; it can contain slashes and dots but never a colon. + String key = parts[1]; + int move = Integer.parseInt(parts[2]); + if (move == 0) { + catalogue.removePhoto(id, key); + } else { + catalogue.movePhoto(id, key, move); + } + } + // A stale page, or a hand-edited form. Do nothing rather than guess. + default -> { } + } }); } @@ -79,38 +116,6 @@ public class AdminController { }); } - /** - * @param move {@code -1} or {@code 1} to shuffle the photo along, {@code 0} to remove it. One - * endpoint for the three buttons under a photo, because they are the same edit — which - * photos, in which order — and the server is what decides the resulting list. - */ - @PostMapping("/items/{id}/photos/arrange") - public String arrangePhoto(@PathVariable Long id, - @RequestParam String key, - @RequestParam int move, - RedirectAttributes flash) { - return run(flash, () -> { - if (move == 0) { - catalogue.removePhoto(id, key); - } else { - catalogue.movePhoto(id, key, move); - } - }); - } - - @PostMapping("/items/{id}/move") - public String move(@PathVariable Long id, @RequestParam int by, RedirectAttributes flash) { - return run(flash, () -> catalogue.moveItem(id, by)); - } - - @PostMapping("/items/{id}/delete") - public String remove(@PathVariable Long id, RedirectAttributes flash) { - return run(flash, () -> { - catalogue.removeItem(id); - flash.addFlashAttribute("done", "Removed from the products page."); - }); - } - // --- filters ------------------------------------------------------------- @PostMapping("/categories") @@ -121,24 +126,31 @@ public class AdminController { }); } + /** + * Everything you can do to one filter, from one form — same shape as an item. + * + * @param action {@code save}, {@code move:-1}, {@code move:1} or {@code delete} + */ @PostMapping("/categories/{id}") - public String renameFilter(@PathVariable Long id, @RequestParam String name, RedirectAttributes flash) { + public String filter(@PathVariable Long id, + @RequestParam(name = "do", defaultValue = "save") String action, + @RequestParam(required = false) String name, + RedirectAttributes flash) { + String[] parts = action.split(":"); return run(flash, () -> { - catalogue.renameFilter(id, name); - flash.addFlashAttribute("done", "Renamed to " + name.trim() + ", and everything filed under it moved too."); - }); - } - - @PostMapping("/categories/{id}/move") - public String moveFilter(@PathVariable Long id, @RequestParam int by, RedirectAttributes flash) { - return run(flash, () -> catalogue.moveFilter(id, by)); - } - - @PostMapping("/categories/{id}/delete") - public String removeFilter(@PathVariable Long id, RedirectAttributes flash) { - return run(flash, () -> { - catalogue.removeFilter(id); - flash.addFlashAttribute("done", "Category deleted."); + switch (parts[0]) { + case "save" -> { + catalogue.renameFilter(id, name); + flash.addFlashAttribute("done", + "Renamed to " + name.trim() + ", and everything filed under it moved too."); + } + case "move" -> catalogue.moveFilter(id, Integer.parseInt(parts[1])); + case "delete" -> { + catalogue.removeFilter(id); + flash.addFlashAttribute("done", "Category deleted."); + } + default -> { } + } }); } diff --git a/src/main/resources/templates/admin/catalogue.html b/src/main/resources/templates/admin/catalogue.html index dad18a9..84f4148 100644 --- a/src/main/resources/templates/admin/catalogue.html +++ b/src/main/resources/templates/admin/catalogue.html @@ -4,8 +4,18 @@

- + +

Categories

@@ -14,34 +24,26 @@

    -
  • -
    - - - - -
    - - -
    -
    - +
  • -
-

On the page

  • -
    +
    - - - - -
    - - -
    + +
    -
    +
    - - + +
    - +
    -
    - - - -
    -
    - - - -
    + +
    -
    - - - - -
    + +
    -
    - - -
    -
    - -
    +
    -
    + + + +
    + + +
diff --git a/src/test/java/com/itsthevine/web/AdminPagesTest.java b/src/test/java/com/itsthevine/web/AdminPagesTest.java index e29ea89..066072c 100644 --- a/src/test/java/com/itsthevine/web/AdminPagesTest.java +++ b/src/test/java/com/itsthevine/web/AdminPagesTest.java @@ -94,6 +94,7 @@ class AdminPagesTest { @Test void renamingAnItemLandsAndSaysSo() throws Exception { mvc.perform(post("/admin/items/1").with(user("morissa")).with(csrf()) + .param("do", "save") .param("name", "76th Birthday Cake (chocolate)") .param("category", "Cakes")) .andExpect(status().is3xxRedirection()) @@ -107,7 +108,7 @@ class AdminPagesTest { @Test void aRefusalComesBackAsASentenceTheEditorCanActOn() throws Exception { // Cookies has items filed under it, and deleting the button shouldn't decide what happens to them. - mvc.perform(post("/admin/categories/1/delete").with(user("morissa")).with(csrf())) + mvc.perform(post("/admin/categories/1").with(user("morissa")).with(csrf()).param("do", "delete")) .andExpect(redirectedUrl("/admin")) .andExpect(flash().attribute("problem", containsString("still filed under Cookies"))); } @@ -115,7 +116,7 @@ class AdminPagesTest { @Test void movingAnItemUpFromTheTopIsNotAnError() throws Exception { // The button is disabled in the page, but a stale page could still post this. - mvc.perform(post("/admin/items/1/move").with(user("morissa")).with(csrf()).param("by", "-1")) + mvc.perform(post("/admin/items/1").with(user("morissa")).with(csrf()).param("do", "move:-1")) .andExpect(redirectedUrl("/admin")) .andExpect(flash().attributeCount(0)); } diff --git a/src/test/java/com/itsthevine/web/AdminSecurityTest.java b/src/test/java/com/itsthevine/web/AdminSecurityTest.java index 843bb25..c99fcba 100644 --- a/src/test/java/com/itsthevine/web/AdminSecurityTest.java +++ b/src/test/java/com/itsthevine/web/AdminSecurityTest.java @@ -3,7 +3,6 @@ package com.itsthevine.web; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import org.junit.jupiter.api.BeforeEach; @@ -78,7 +77,8 @@ class AdminSecurityTest { mvc.perform(get("/admin/catering/tables/1")).andExpect(status().isUnauthorized()); mvc.perform(post("/admin/items").with(csrf()).param("name", "Free cake").param("category", "Cakes")) .andExpect(status().isUnauthorized()); - mvc.perform(post("/admin/items/1/delete").with(csrf())).andExpect(status().isUnauthorized()); + mvc.perform(post("/admin/items/1").with(csrf()).param("do", "delete")) + .andExpect(status().isUnauthorized()); mvc.perform(post("/admin/categories").with(csrf()).param("name", "x")) .andExpect(status().isUnauthorized()); // The prices are the one thing on this site a stranger would most enjoy editing. @@ -113,8 +113,9 @@ class AdminSecurityTest { @Test void theContactFormStillNeedsItsCsrfToken() throws Exception { - // Enabling the security starter enables CSRF for the PUBLIC contact form too. Without the token - // it 403s; the SPA reads the XSRF-TOKEN cookie and sends X-XSRF-TOKEN. + // Enabling the security starter enables CSRF for the PUBLIC contact form too. Without a token it + // 403s. The page's own form carries a hidden field (Spring Security fills it in for any th:action + // form); this JSON endpoint needs the X-XSRF-TOKEN header from the cookie. mvc.perform(post("/api/contact").contentType(MediaType.APPLICATION_JSON) .content("{\"name\":\"Ada\",\"email\":\"ada@example.com\",\"message\":\"hi\"}")) .andExpect(status().isForbidden()); From 8ab302dd19ab61b78a9b2efc00b4a011436ed84e Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 17:03:06 -0500 Subject: [PATCH 06/22] Make the catering page look like it belongs to the shop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was correct and plain: a heading, three white cards, a bare table in each. Now it reads like the rest of the site, using only what the site already has. - A short photographic band, same treatment as the homepage hero — blurred cake photo, sage wash, an eyebrow line above the heading. Short: the content is three lines, and 34svh of dark left the title floating in a void. - Prices are the loudest thing in each table, set in the display serif above a small-caps size label, over a ruled header band. Zebra rows below, the line names in the left column. - The branch from the wordmark divides the intro from the tables — it is a mask over currentColor, so it takes the colour of the text around it and costs one span. - Small print and the enquiry link share one tinted card footer. As separate full-width bands they made every card read as four stacked stripes. The link is quiet: three filled buttons down a page shout, and the real call to action belongs once, in a closing sage band with the terms and the phone number. - The blank-cell dash was so faint that a line with no quantities looked like a rendering fault. Checked by rendering it, at 1280 and at 390: hero, tables, the phone's one-card-per-size stack, the closing band. All 197 classes the page uses resolve in the compiled stylesheet, so nothing is styled by accident. Two notes for anyone doing the same: headless Chromium screenshots this site mid-fade unless you pass --virtual-time-budget (the body fades in), and a very tall window makes min-h-screen stretch the flex column, which looks like a gap above the footer and is not one. Co-Authored-By: Claude Opus 5 (1M context) --- src/main/resources/templates/catering.html | 276 +++++++++++++-------- 1 file changed, 168 insertions(+), 108 deletions(-) diff --git a/src/main/resources/templates/catering.html b/src/main/resources/templates/catering.html index 7c8ae1c..dac1b04 100644 --- a/src/main/resources/templates/catering.html +++ b/src/main/resources/templates/catering.html @@ -1,121 +1,181 @@ -
+
-
-

Goodie boxes & catering

-

- Boxes for the office, packages for a party, and cakes and desserts for a wedding. Every one of - these is a starting point — tell us what you have in mind and we will work from it. -

-
+ +
+ +
+
-
-
+
+
+

To take away

+

Goodie boxes & catering

+

+ Boxes for the office, packages for a party, and cakes and desserts for a wedding. +

+
+
+
- -
-
-

Office

-

Blurb

-
- - - - - -
-
-
-

Small

- $24 - Ask us -
- -
-
-
Mini muffins
-
- 12 items - -
-
-
-
-
- -
-
    -
  • Minimum of 6 items per baked good.
  • -
-
- - -
- - -
-

Before you order

-
    -
  • Prices may change.
  • -
-
- - -

- Our catering list is being updated. Call us on - (309) 701-0660 and we will - talk it through. +

+ Every one of these is a starting point. Tell us the date, the number of people and what you had in + mind, and we will work from it.

+ + + + +
+ + +
+ +
+

Office

+

Blurb

+
+ + + + + +
+
+
+

Small

+ $24 + Ask us +
+ +
+
+
Mini muffins
+
+ 12 items + +
+
+
+
+
+ + +
+
+

Good to know

+
    +
  • Minimum of 6 items per baked good.
  • +
+
+ + + Ask about office + + +
+
+ + +

+ Our catering list is being updated. Call us on + (309) 701-0660 and we will + talk it through. +

+
+ + +
+
+
+

Before you order

+
    +
  • Prices may change.
  • +
+ +
+
+
+
From 04cd1d5bea24f583793775a36b7e0c18e6e34321 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 17:10:26 -0500 Subject: [PATCH 07/22] Read the wedding table the way the spreadsheet meant it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Its lines were carried over literally in V4, and the source is offset: the prices sit on its "cupcakes" line and "4 dz cc or sc" on its "12x17 bars" line. Taken at face value that produced five lines, two of which had no quantity in any column and rendered as a row of dashes. Read as a baker would — a 12x17 pan IS the sheet pan, and "cc or sc" is what the dozens are counting — it is three lines that each say something: Bride & groom cake (8 in) B&G cake B&G cake B&G cake Sheet cakes or 12x17 bars 2 pans 3 pans 4 pans Cupcakes or sugar cookies 4 dz 5 dz 6 dz A NEW migration rather than an edit to V4, because V4 has already been applied and Flyway validates checksums. And every statement in it is guarded on the exact text V4 wrote, so if the bakery has already reworded a line in the admin, this finds nothing to change and leaves their wording alone. Verified that way and not just in the abstract: renamed one line through the admin, then let V5 run over that database — the renamed line and its cells survived untouched while the untouched line was corrected and the two empty ones removed. This is still an interpretation of somebody else's shorthand. It is three boxes in /admin/catering/tables/3 to change if Morissa reads it differently. The office table's "Mini cinnamon rolls" line is the same shape — named, never quantified, and the note under the table ("minimum of 6 items per baked good") is all the source says about it. Left alone: it would need a number nobody has given us. Co-Authored-By: Claude Opus 5 (1M context) --- .../db/migration/V5__wedding_rows.sql | 95 +++++++++++++++++++ .../com/itsthevine/web/CateringMenuTest.java | 18 ++++ 2 files changed, 113 insertions(+) create mode 100644 src/main/resources/db/migration/V5__wedding_rows.sql diff --git a/src/main/resources/db/migration/V5__wedding_rows.sql b/src/main/resources/db/migration/V5__wedding_rows.sql new file mode 100644 index 0000000..368e0a4 --- /dev/null +++ b/src/main/resources/db/migration/V5__wedding_rows.sql @@ -0,0 +1,95 @@ +-- The wedding table's lines, read the way the spreadsheet meant them. +-- +-- V4 carried that table over literally, because the source is offset: the prices sit on the "cupcakes" +-- line, and "4 dz cc or sc" sits on the "12x17 bars" line. Taken at face value it produced five lines, +-- two of which ("Cupcakes", "Sugar cookies") had no quantity in any column and rendered as a row of +-- dashes on the page. +-- +-- Reading it as a baker would: a 12x17 pan IS the sheet pan, so "Sheet cakes" and "12x17 bars" are one +-- offering, and "cc or sc" is cupcakes-or-sugar-cookies, which is what the 4/5/6 dozen counts belong to. +-- That gives three lines that each say something: +-- +-- Bride & groom cake (8 in) B&G cake B&G cake B&G cake +-- Sheet cakes or 12x17 bars 2 pans 3 pans 4 pans +-- Cupcakes or sugar cookies 4 dz 5 dz 6 dz +-- +-- This is an interpretation of somebody else's shorthand, so every statement below is guarded on the +-- text V4 wrote. If the bakery has already edited these lines in the admin, this migration finds nothing +-- to change and leaves their wording alone — which matters, because by the time this runs the tables are +-- live and theirs to edit. +-- +-- V4 is deliberately NOT edited: it has already been applied, and Flyway validates checksums. + +-- "Sheet cakes" absorbs the pan size, and its cells drop the "or a sheet cake" the label now carries. +update catering_row r + set label = 'Sheet cakes or 12x17 bars' + from catering_package p + where p.id = r.package_id + and p.name = 'Weddings' + and r.label = 'Sheet cakes'; + +update catering_row_value v + set value = '2 pans' + from catering_row r join catering_package p on p.id = r.package_id + where r.id = v.row_id and p.name = 'Weddings' + and r.label = 'Sheet cakes or 12x17 bars' + and v.position = 0 and v.value = '2 pans or a sheet cake'; + +update catering_row_value v + set value = '3 pans' + from catering_row r join catering_package p on p.id = r.package_id + where r.id = v.row_id and p.name = 'Weddings' + and r.label = 'Sheet cakes or 12x17 bars' + and v.position = 1 and v.value = '3 pans or a sheet cake'; + +update catering_row_value v + set value = '4 pans' + from catering_row r join catering_package p on p.id = r.package_id + where r.id = v.row_id and p.name = 'Weddings' + and r.label = 'Sheet cakes or 12x17 bars' + and v.position = 2 and v.value = '4 pans or a sheet cake'; + +-- The dozens were never about the bars; they are the cupcakes-or-sugar-cookies count. The line takes +-- that name, and the two empty lines below it are what it replaces. +update catering_row r + set label = 'Cupcakes or sugar cookies' + from catering_package p + where p.id = r.package_id + and p.name = 'Weddings' + and r.label = '12x17 bars'; + +update catering_row_value v + set value = '4 dz' + from catering_row r join catering_package p on p.id = r.package_id + where r.id = v.row_id and p.name = 'Weddings' + and r.label = 'Cupcakes or sugar cookies' + and v.position = 0 and v.value = '4 dz cupcakes or sugar cookies'; + +update catering_row_value v + set value = '5 dz' + from catering_row r join catering_package p on p.id = r.package_id + where r.id = v.row_id and p.name = 'Weddings' + and r.label = 'Cupcakes or sugar cookies' + and v.position = 1 and v.value = '5 dz cupcakes or sugar cookies'; + +update catering_row_value v + set value = '6 dz' + from catering_row r join catering_package p on p.id = r.package_id + where r.id = v.row_id and p.name = 'Weddings' + and r.label = 'Cupcakes or sugar cookies' + and v.position = 2 and v.value = '6 dz cupcakes or sugar cookies'; + +-- Only the wedding table's copies: "Cupcakes" is a real, quantified line in the parties table, which the +-- join on the package name protects. Their cells go with them (catering_row_value cascades). +delete from catering_row r + using catering_package p + where p.id = r.package_id + and p.name = 'Weddings' + and r.label in ('Cupcakes', 'Sugar cookies') + and not exists ( + select 1 from catering_row_value v + where v.row_id = r.id and v.value <> '' + ); + +-- Positions 1, 2, 3 survive the deletion untouched (the removed lines were 4 and 5), so there is nothing +-- to renumber. Stated rather than assumed: the page reads the order from these. diff --git a/src/test/java/com/itsthevine/web/CateringMenuTest.java b/src/test/java/com/itsthevine/web/CateringMenuTest.java index 3806fd2..3296791 100644 --- a/src/test/java/com/itsthevine/web/CateringMenuTest.java +++ b/src/test/java/com/itsthevine/web/CateringMenuTest.java @@ -81,6 +81,24 @@ class CateringMenuTest { assertThat(tables.get(2).notes()).anySatisfy(note -> assertThat(note).contains("delivery fee")); } + @Test + void theWeddingLinesEachSaySomething() { + // The source spreadsheet is offset — the prices sit on its "cupcakes" line — and V4 carried that + // over literally, which left two lines with no quantity in any column: a row of dashes on the + // page. V5 reads it as a baker would (a 12x17 pan is the sheet pan; "cc or sc" is what the dozens + // count) and the guards in it mean an edit made in the admin since would have survived instead. + CateringMenu.PackageView weddings = catering.menu().packages().get(2); + + assertThat(weddings.rows()).extracting(CateringMenu.RowView::label) + .containsExactly("Bride & groom cake (8 in)", "Sheet cakes or 12x17 bars", + "Cupcakes or sugar cookies"); + assertThat(weddings.rows().get(1).values()).containsExactly("2 pans", "3 pans", "4 pans"); + assertThat(weddings.rows().get(2).values()).containsExactly("4 dz", "5 dz", "6 dz"); + // Nothing left that is blank the whole way across. + assertThat(weddings.rows()) + .noneMatch(row -> row.values().stream().allMatch(String::isEmpty)); + } + @Test void everyLineCarriesOneEntryPerColumn() { // The invariant the whole aggregate exists to hold: if these ever fall out of step, a box is From cf1254f9015c031e4cf2580af3a4e09828525216 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 17:13:03 -0500 Subject: [PATCH 08/22] CI: a pull request must not touch the :latest tag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gating only the push was not enough. This runner builds on the host's Docker daemon — the same daemon the live container runs on — so `docker build -t …:latest` IS a deployment: Watchtower compares the running container's image against :latest, finds they differ, and recreates the container from the locally built image. That is not hypothetical. The PR builds for this branch deployed unmerged code to itsthevine.com several times this evening, and each time Watchtower's next pull of the older registry :latest reverted it, so the site flapped between the two. One of those deploys ran V4 against the production database, which is why the wedding-row correction had to be a new migration rather than an edit to V4. A PR now builds pr-, which nothing watches; Trivy scans whatever was built; the push step is unchanged and still only runs off a PR. Nothing was lost — 40 products, 6 categories and 2 enquiries are all present, and the old image tolerates the newer schema (it warns that the schema is ahead of its migrations and carries on). The other five apps on the platform share this workflow and this daemon, so they have the same hole — including for Renovate's PRs, which build before they automerge. Not touched here; each needs the same three lines and its own green run. Co-Authored-By: Claude Opus 5 (1M context) --- .gitea/workflows/build.yml | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 4b3dc32..d30854e 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -40,7 +40,26 @@ jobs: mvn -B -ntp -s .gitea/ci-settings.xml -DskipFrontend=true verify # Build + Trivy on every run (PRs included), so a broken Dockerfile or a new HIGH/CRITICAL CVE - # blocks the merge. Only the push is main-only. + # blocks the merge. + # + # A PULL REQUEST MUST NOT TOUCH THE :latest TAG. This runner builds on the host's Docker daemon — + # the same daemon the live container runs on — so retagging :latest IS a deployment: Watchtower + # compares the running container's image against :latest, finds they differ, and recreates the + # container from the locally built image. Gating only the push was not enough; on 2026-07-26 the PR + # builds for this branch deployed unmerged code to itsthevine.com several times over, and each time + # Watchtower's next pull of the (older) registry :latest reverted it. One of those deploys ran a + # migration against the production database. + # + # So a PR builds pr- instead, which nothing watches. Trivy scans whatever was built, and the + # push step below still only runs off a PR. + - name: Choose the image tag + run: | + if [ "${{ github.event_name }}" = "pull_request" ]; then + echo "IMAGE_TAG=pr-${{ github.event.number }}" >> "$GITHUB_ENV" + else + echo "IMAGE_TAG=latest" >> "$GITHUB_ENV" + fi + - name: Build image env: DOCKER_BUILDKIT: "1" @@ -51,17 +70,18 @@ jobs: --secret id=maven_user,env=MAVEN_USER \ --secret id=maven_token,env=MAVEN_TOKEN \ --build-arg GIT_SHA=${{ github.sha }} \ - -t git.thebennett.net/thevine/itsthevine:latest -t git.thebennett.net/thevine/itsthevine:${{ github.sha }} . + -t "git.thebennett.net/thevine/itsthevine:$IMAGE_TAG" \ + -t "git.thebennett.net/thevine/itsthevine:${{ github.sha }}" . - name: Scan image (Trivy) run: | docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \ aquasec/trivy:latest image --scanners vuln --severity HIGH,CRITICAL --ignore-unfixed --no-progress \ - git.thebennett.net/thevine/itsthevine:latest || true + "git.thebennett.net/thevine/itsthevine:$IMAGE_TAG" || true docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \ aquasec/trivy:latest image --scanners vuln --severity HIGH,CRITICAL --ignore-unfixed \ --pkg-types library --exit-code 1 --no-progress \ - git.thebennett.net/thevine/itsthevine:latest + "git.thebennett.net/thevine/itsthevine:$IMAGE_TAG" # Publish only on a real push to main (or manual dispatch) — never from a pull request. - name: Push image From 0d534a0e80fd6b34c4b9352fb4f293dc57d355fc Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 17:24:59 -0500 Subject: [PATCH 09/22] Say it in the bakery's words, and stop rendering the spreadsheet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The page still read like the source: a grid of cells saying "6+6", "4 dz", "B&G cake", "12 items". That is a note to whoever is baking, not an offer to whoever is buying — and a table of those cells is a picture of the spreadsheet it came from. THE WORDS (V6, guarded on V4/V5's exact text so anything already reworded in the admin is left alone): cells become sentences — "A dozen", "A dozen, in two flavors", "Eighteen, in two or three flavors", "A 6-inch cake", "Two pans", "Four dozen", "Eight inch". Each table gets the line of copy its blurb field always had room for. The parties table had the same offset the weddings one did — quantities on the "Cupcakes" line, an empty "Sugar cookies" line below it — so it is merged the same way, and no line on the page is blank the whole way across any more. Notes read as sentences too: "Everything is baked in sixes, so each item comes in multiples of six." THE LOOK: one card per size instead of a price matrix. The size, the price, then a ticked list of what you get, in a three-up grid that stacks on a phone — so there is now ONE rendering rather than a table for wide screens and cards for narrow ones. A table is still the honest shape for a price matrix, and it is how the bakery keeps these; it just isn't how you sell them. The per-card button went away again after seeing it rendered: all three led to the same place (an enquiry is about the table, not the size) and on the tables whose sizes are headcounts it read "Ask about the 15–20 people". One pill per table now. 53 tests, updated to assert the new wording — including that no cell anywhere still matches "dz", "B&G" or "in cake", and that the price grid is gone. Co-Authored-By: Claude Opus 5 (1M context) --- .../db/migration/V6__catering_copy.sql | 126 +++++++++++++++ src/main/resources/templates/catering.html | 153 ++++++++---------- .../com/itsthevine/web/AdminPagesTest.java | 4 +- .../com/itsthevine/web/CateringMenuTest.java | 47 ++++-- .../itsthevine/web/SiteControllerTest.java | 17 +- 5 files changed, 235 insertions(+), 112 deletions(-) create mode 100644 src/main/resources/db/migration/V6__catering_copy.sql diff --git a/src/main/resources/db/migration/V6__catering_copy.sql b/src/main/resources/db/migration/V6__catering_copy.sql new file mode 100644 index 0000000..19e4323 --- /dev/null +++ b/src/main/resources/db/migration/V6__catering_copy.sql @@ -0,0 +1,126 @@ +-- The catering tables in the bakery's voice instead of the spreadsheet's shorthand. +-- +-- V4 kept the source wording deliberately: it was a spreadsheet written for the people who bake from it, +-- and inventing copy for somebody else's prices is not a migration's job. But the page is read by +-- customers, and "B&G cake", "2 pans", "4 dz" and "6+6" are notes-to-self, not an offer. So this rewrites +-- the cells as sentences, fills in the blurb each table always had room for, and merges the parties +-- lines the same way V5 merged the wedding ones — "Cupcakes" quantified as "1 dz sugar cookies or +-- cupcakes" with an empty "Sugar cookies" line beneath it is the same offset, and the same fix. +-- +-- Guarded on the exact text V4 and V5 left, as V5 was: anything the bakery has already reworded in the +-- admin is left exactly as they wrote it. Their wording wins over mine. + +-- --- names and the line under each heading ---------------------------------------------------------- + +update catering_package set name = 'Office boxes' + where name = 'Office'; + +update catering_package set blurb = 'Mini pastries for a morning meeting, boxed and ready to collect.' + where name = 'Office boxes' and blurb is null; + +update catering_package set blurb = 'A cake, and something to hand round, sized to your guest list.' + where name = 'Parties' and blurb is null; + +update catering_package set blurb = 'A cake for the couple, and dessert for everyone else.' + where name = 'Weddings' and blurb is null; + +-- --- office boxes ----------------------------------------------------------------------------------- + +update catering_row_value v set value = 'A dozen' + from catering_row r where r.id = v.row_id and r.label = 'Mini muffins' and v.value = '12 items'; +update catering_row_value v set value = 'Eighteen' + from catering_row r where r.id = v.row_id and r.label = 'Mini muffins' and v.value = '18 items'; +update catering_row_value v set value = 'Two dozen' + from catering_row r where r.id = v.row_id and r.label = 'Mini muffins' and v.value = '24 items'; + +-- "6+6" is six of one flavour and six of another, which is worth saying out loud. +update catering_row_value v set value = 'A dozen, in two flavors' + from catering_row r where r.id = v.row_id and r.label = 'Mini scones' and v.value = '6+6'; +update catering_row_value v set value = 'Eighteen, in two or three flavors' + from catering_row r where r.id = v.row_id and r.label = 'Mini scones' and v.value = '6+6+6 or 12+6'; +update catering_row_value v set value = 'Two dozen, in up to four flavors' + from catering_row r where r.id = v.row_id and r.label = 'Mini scones' + and v.value = '6+6+6+6 or 12+6+6 or 12+12'; + +update catering_package_note set body = 'Everything is baked in sixes, so each item comes in multiples of six.' + where body = 'Minimum of 6 items per baked good. Flavors can''t be mixed and matched unless you''re ordering a large quantity.'; + +insert into catering_package_note (package_id, position, body) +select p.id, 1, 'Mixing flavors within one item needs a larger order — ask us and we will tell you.' + from catering_package p + where p.name = 'Office boxes' + and not exists (select 1 from catering_package_note n where n.package_id = p.id and n.position = 1); + +-- --- parties ---------------------------------------------------------------------------------------- + +update catering_row_value v set value = 'A 6-inch cake' + from catering_row r where r.id = v.row_id and r.label = 'Cake' and v.value = '6 in cake'; +update catering_row_value v set value = 'An 8-inch cake' + from catering_row r where r.id = v.row_id and r.label = 'Cake' and v.value = '8 in cake'; +update catering_row_value v set value = 'A 10-inch cake' + from catering_row r where r.id = v.row_id and r.label = 'Cake' and v.value = '10 in cake'; + +-- Same offset as the wedding table: the quantities on the "Cupcakes" line were always +-- cupcakes-or-sugar-cookies, and the "Sugar cookies" line below carried nothing at all. +update catering_row r set label = 'Cupcakes or sugar cookies' + from catering_package p + where p.id = r.package_id and p.name = 'Parties' and r.label = 'Cupcakes'; + +update catering_row_value v set value = 'A dozen, either one' + from catering_row r where r.id = v.row_id and r.label = 'Cupcakes or sugar cookies' + and v.value = '1 dz sugar cookies or cupcakes'; +update catering_row_value v set value = 'Eighteen, your choice' + from catering_row r where r.id = v.row_id and r.label = 'Cupcakes or sugar cookies' + and v.value = '1.5 dz your choice'; +update catering_row_value v set value = 'Two dozen, your choice' + from catering_row r where r.id = v.row_id and r.label = 'Cupcakes or sugar cookies' + and v.value = '2 dz your choice'; + +delete from catering_row r + using catering_package p + where p.id = r.package_id and p.name = 'Parties' and r.label = 'Sugar cookies' + and not exists (select 1 from catering_row_value v where v.row_id = r.id and v.value <> ''); + +update catering_package_note set body = 'An extra dozen is $20.' + where body = 'Add an extra dozen for $20.'; +update catering_package_note + set body = 'Cake and cupcake flavors can be different once you are ordering a dozen cupcakes or more.' + where body = 'Cake and cupcake flavors can''t be mixed unless you order at least 1 dz of cupcakes.'; + +-- --- weddings --------------------------------------------------------------------------------------- + +-- The label said it and the cell repeated it. The cell now carries the size instead. +update catering_row r set label = 'Bride & groom cake' + from catering_package p + where p.id = r.package_id and p.name = 'Weddings' and r.label = 'Bride & groom cake (8 in)'; + +update catering_row_value v set value = 'Eight inch' + from catering_row r where r.id = v.row_id and r.label = 'Bride & groom cake' and v.value = 'B&G cake'; + +update catering_row r set label = 'Sheet cakes or 12×17 bars' + from catering_package p + where p.id = r.package_id and p.name = 'Weddings' and r.label = 'Sheet cakes or 12x17 bars'; + +update catering_row_value v set value = 'Two pans' + from catering_row r where r.id = v.row_id and r.label = 'Sheet cakes or 12×17 bars' and v.value = '2 pans'; +update catering_row_value v set value = 'Three pans' + from catering_row r where r.id = v.row_id and r.label = 'Sheet cakes or 12×17 bars' and v.value = '3 pans'; +update catering_row_value v set value = 'Four pans' + from catering_row r where r.id = v.row_id and r.label = 'Sheet cakes or 12×17 bars' and v.value = '4 pans'; + +update catering_row_value v set value = 'Four dozen' + from catering_row r where r.id = v.row_id and r.label = 'Cupcakes or sugar cookies' and v.value = '4 dz'; +update catering_row_value v set value = 'Five dozen' + from catering_row r where r.id = v.row_id and r.label = 'Cupcakes or sugar cookies' and v.value = '5 dz'; +update catering_row_value v set value = 'Six dozen' + from catering_row r where r.id = v.row_id and r.label = 'Cupcakes or sugar cookies' and v.value = '6 dz'; + +-- --- the page's own terms --------------------------------------------------------------------------- + +update catering_note + set body = 'These are a guide rather than a menu. We are happy to make changes, though the price may change with them.' + where body = 'We''re happy to make changes — the price may change with them.'; + +update catering_note + set body = 'If we can''t do something, we will tell you.' + where body = 'If we can''t do something we''ll tell you. These tables are mostly here to give you an idea of what''s possible.'; diff --git a/src/main/resources/templates/catering.html b/src/main/resources/templates/catering.html index dac1b04..29708d2 100644 --- a/src/main/resources/templates/catering.html +++ b/src/main/resources/templates/catering.html @@ -4,9 +4,9 @@
-

To take away

+

Order ahead

Goodie boxes & catering

Boxes for the office, packages for a party, and cakes and desserts for a wedding. @@ -30,7 +30,7 @@

Every one of these is a starting point. Tell us the date, the number of people and what you had in - mind, and we will work from it. + mind, and we will bake to it.

-
- -
-

Office

-

Blurb

+
+
+

Office boxes

+

+ Mini pastries for a morning meeting. +

- - + +
+
+

Small

+

$24

+ +

Ask us

- -
-
-
-

Small

- $24 - Ask us -
- -
-
-
Mini muffins
-
- 12 items - -
-
-
-
+
    +
  • + + + + Mini muffins + + — a dozen + +
  • +
+ +
-
-
+
+

Good to know

-
    -
  • Minimum of 6 items per baked good.
  • +
      +
    • Everything is baked in sixes.
- - Ask about office - - + class="mt-6 inline-block border border-bakery-300 hover:bg-bakery-100 text-bakery-800 + px-7 py-3 rounded-full font-medium tracking-wide transition-colors" + th:text="|Ask about ${#strings.toLowerCase(table.name)}|">Ask about office boxes
@@ -160,7 +133,7 @@

Before you order

    -
  • Prices may change.
  • +
  • These are a guide rather than a menu.
tables = catering.menu().packages(); assertThat(tables).extracting(CateringMenu.PackageView::name) - .containsExactly("Office", "Parties", "Weddings"); + .containsExactly("Office boxes", "Parties", "Weddings"); CateringMenu.PackageView office = tables.get(0); assertThat(office.tiers()).extracting(CateringMenu.TierView::label) @@ -69,9 +71,10 @@ class CateringMenuTest { .containsExactly("$24", "$32", "$40"); assertThat(office.rows()).extracting(CateringMenu.RowView::label) .containsExactly("Mini muffins", "Mini scones", "Mini cinnamon rolls"); - assertThat(office.rows().get(0).values()).containsExactly("12 items", "18 items", "24 items"); - assertThat(office.rows().get(1).values().get(2)).isEqualTo("6+6+6+6 or 12+6+6 or 12+12"); - assertThat(office.notes()).singleElement().asString().contains("Minimum of 6 items per baked good"); + assertThat(office.rows().get(0).values()).containsExactly("A dozen", "Eighteen", "Two dozen"); + assertThat(office.rows().get(1).values().get(2)).isEqualTo("Two dozen, in up to four flavors"); + assertThat(office.blurb()).contains("morning meeting"); + assertThat(office.notes()).anySatisfy(note -> assertThat(note).contains("baked in sixes")); assertThat(tables.get(1).tiers()).extracting(CateringMenu.TierView::label) .containsExactly("15–20 people", "20–30 people", "30–40 people"); @@ -79,6 +82,9 @@ class CateringMenuTest { .containsExactly("$236", "$310", "$386"); // Wedding delivery terms belong to the wedding table, not to the page. assertThat(tables.get(2).notes()).anySatisfy(note -> assertThat(note).contains("delivery fee")); + // No cell anywhere still speaks in shorthand. + assertThat(tables).allSatisfy(table -> assertThat(table.rows()).allSatisfy(row -> + assertThat(row.values()).noneMatch(value -> value.matches(".*\\b(dz|B&G|in cake)\\b.*")))); } @Test @@ -90,15 +96,28 @@ class CateringMenuTest { CateringMenu.PackageView weddings = catering.menu().packages().get(2); assertThat(weddings.rows()).extracting(CateringMenu.RowView::label) - .containsExactly("Bride & groom cake (8 in)", "Sheet cakes or 12x17 bars", + .containsExactly("Bride & groom cake", "Sheet cakes or 12×17 bars", "Cupcakes or sugar cookies"); - assertThat(weddings.rows().get(1).values()).containsExactly("2 pans", "3 pans", "4 pans"); - assertThat(weddings.rows().get(2).values()).containsExactly("4 dz", "5 dz", "6 dz"); + assertThat(weddings.rows().get(1).values()).containsExactly("Two pans", "Three pans", "Four pans"); + assertThat(weddings.rows().get(2).values()).containsExactly("Four dozen", "Five dozen", "Six dozen"); // Nothing left that is blank the whole way across. assertThat(weddings.rows()) .noneMatch(row -> row.values().stream().allMatch(String::isEmpty)); } + @Test + void thePartyLinesEachSaySomethingToo() { + // Same offset as the wedding table: the quantities on "Cupcakes" were always + // cupcakes-or-sugar-cookies, with an empty "Sugar cookies" line beneath. + CateringMenu.PackageView parties = catering.menu().packages().get(1); + assertThat(parties.rows()).extracting(CateringMenu.RowView::label) + .containsExactly("Cake", "Cupcakes or sugar cookies"); + assertThat(parties.rows().get(0).values()) + .containsExactly("A 6-inch cake", "An 8-inch cake", "A 10-inch cake"); + assertThat(parties.rows()) + .noneMatch(row -> row.values().stream().allMatch(String::isEmpty)); + } + @Test void everyLineCarriesOneEntryPerColumn() { // The invariant the whole aggregate exists to hold: if these ever fall out of step, a box is @@ -166,7 +185,7 @@ class CateringMenuTest { CateringMenu.PackageView saved = catering.everything().packages().get(0); assertThat(saved.tiers()).extracting(CateringMenu.TierView::label).containsExactly("Small", "Large"); assertThat(saved.tiers()).extracting(CateringMenu.TierView::id).doesNotContain(medium); - assertThat(saved.rows().get(0).values()).containsExactly("12 items", "24 items"); + assertThat(saved.rows().get(0).values()).containsExactly("A dozen", "Two dozen"); assertThat(saved.rows()).allSatisfy(row -> assertThat(row.values()).hasSize(2)); } @@ -192,7 +211,7 @@ class CateringMenuTest { Long muffins = office.rows().get(0).id(); List rows = new ArrayList<>(asLines(office)); - rows.set(0, new CateringMenu.RowEdit(muffins, "Mini muffins", List.of("12 items", "20 items", "24 items"))); + rows.set(0, new CateringMenu.RowEdit(muffins, "Mini muffins", List.of("A dozen", "Twenty", "Two dozen"))); catering.save(office.id(), new CateringMenu.PackageEdit( "Office boxes", "For meetings and staff mornings.", asEdits(office), rows, office.notes())); @@ -201,7 +220,7 @@ class CateringMenuTest { assertThat(saved.blurb()).isEqualTo("For meetings and staff mornings."); // Same line, edited — not a new line that happens to read the same. assertThat(saved.rows().get(0).id()).isEqualTo(muffins); - assertThat(saved.rows().get(0).values()).containsExactly("12 items", "20 items", "24 items"); + assertThat(saved.rows().get(0).values()).containsExactly("A dozen", "Twenty", "Two dozen"); } @Test @@ -209,7 +228,7 @@ class CateringMenuTest { CateringMenu.PackageView fresh = catering.add("Holiday boxes"); assertThat(catering.everything().packages()).extracting(CateringMenu.PackageView::name) - .containsExactly("Office", "Parties", "Weddings", "Holiday boxes"); + .containsExactly("Office boxes", "Parties", "Weddings", "Holiday boxes"); assertThat(catering.menu().packages()).extracting(CateringMenu.PackageView::name) .doesNotContain("Holiday boxes"); @@ -233,7 +252,7 @@ class CateringMenuTest { entityManager.clear(); assertThat(catering.everything().packages()).extracting(CateringMenu.PackageView::name) - .containsExactly("Office", "Parties"); + .containsExactly("Office boxes", "Parties"); // The page's own terms outlive any one table. assertThat(catering.menu().notes()).hasSize(2); } @@ -244,9 +263,9 @@ class CateringMenuTest { List weddingsFirst = List.of(tables.get(2).id(), tables.get(0).id(), tables.get(1).id()); assertThat(catering.reorder(weddingsFirst)).extracting(CateringMenu.PackageView::name) - .containsExactly("Weddings", "Office", "Parties"); + .containsExactly("Weddings", "Office boxes", "Parties"); assertThat(catering.menu().packages()).extracting(CateringMenu.PackageView::name) - .containsExactly("Weddings", "Office", "Parties"); + .containsExactly("Weddings", "Office boxes", "Parties"); } @Test diff --git a/src/test/java/com/itsthevine/web/SiteControllerTest.java b/src/test/java/com/itsthevine/web/SiteControllerTest.java index 78d33b2..95a3e44 100644 --- a/src/test/java/com/itsthevine/web/SiteControllerTest.java +++ b/src/test/java/com/itsthevine/web/SiteControllerTest.java @@ -96,16 +96,21 @@ class SiteControllerTest { @Test void theCateringTablesAreRenderedFromTheDatabase() throws Exception { mvc.perform(get("/catering")).andExpect(status().isOk()) - .andExpect(content().string(containsString("Office"))) + .andExpect(content().string(containsString("Office boxes"))) .andExpect(content().string(containsString("Weddings"))) // Prices as the server writes them — the page never formats money. .andExpect(content().string(containsString("$24"))) .andExpect(content().string(containsString("$236"))) - // A cell, and a note. - .andExpect(content().string(containsString("6+6+6 or 12+6"))) - .andExpect(content().string(containsString("Minimum of 6 items per baked good"))) - // Both renderings of the same table are present; CSS decides which one is visible. - .andExpect(content().string(containsString(" Date: Sun, 26 Jul 2026 17:37:20 -0500 Subject: [PATCH 10/22] =?UTF-8?q?An=20office=20box=20is=20a=20total,=20not?= =?UTF-8?q?=20an=20assortment=20=E2=80=94=20and=20every=20size=20says=20wh?= =?UTF-8?q?o=20it=20feeds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I had built in an assumption nobody stated, and a ticked list made it a claim: that a $24 box contains mini muffins AND mini scones AND mini cinnamon rolls. It doesn't. It is twelve items, mixed in sixes, from those three. The page was describing the offer wrongly — worse than the spreadsheet, which at least didn't say either way. The fix keeps one rule for the whole page rather than a mode for this table: a line is something you get, and a choice within a line is written into its name. The parties and wedding tables already read that way ("Cupcakes or sugar cookies"), so the office table becomes one line — "Any mix of mini muffins, mini scones and mini cinnamon rolls" — with the size's item count as its cell. Three ticks became one, and the "6+6" detail moved to the note where the bakery's own minimum already lives: "Baked in sixes, so a dozen can be six muffins and six scones." Confirmed, not guessed, for the other two: parties are a cake AND a dozen to hand round; a wedding package is everything listed. Their ticked lists were already right. SERVES. "Small" answers nothing for someone ordering for an office, which is the whole question. Columns gain an optional `serves` — schema, view, a box in the table editor, a line under the price. The office numbers are estimates from the item counts and are meant to be corrected by the people who pack the boxes. The party and wedding columns are already named by head count, so theirs stay empty rather than saying it twice. 53 tests: the office table is one mixed line, its columns say who they feed, and the head-count tables don't repeat themselves. The blank-cell test builds its own table now, since no seeded line is blank across any more. Co-Authored-By: Claude Opus 5 (1M context) --- .../web/AdminCateringController.java | 7 +- .../java/com/itsthevine/web/CateringMenu.java | 13 ++-- .../web/domain/CateringPackage.java | 4 +- .../itsthevine/web/domain/CateringTier.java | 23 ++++++- .../db/migration/V7__mix_and_serves.sql | 66 +++++++++++++++++++ src/main/resources/templates/admin/table.html | 3 + src/main/resources/templates/catering.html | 3 + .../com/itsthevine/web/AdminPagesTest.java | 4 +- .../com/itsthevine/web/CateringMenuTest.java | 46 ++++++++----- .../itsthevine/web/SiteControllerTest.java | 7 +- 10 files changed, 145 insertions(+), 31 deletions(-) create mode 100644 src/main/resources/db/migration/V7__mix_and_serves.sql diff --git a/src/main/java/com/itsthevine/web/AdminCateringController.java b/src/main/java/com/itsthevine/web/AdminCateringController.java index 393d1d5..c1d4528 100644 --- a/src/main/java/com/itsthevine/web/AdminCateringController.java +++ b/src/main/java/com/itsthevine/web/AdminCateringController.java @@ -78,6 +78,7 @@ public class AdminCateringController { private Long id; private String label = ""; private String price = ""; + private String serves = ""; public Long getId() { return id; } public void setId(Long id) { this.id = id; } @@ -87,6 +88,9 @@ public class AdminCateringController { public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } + + public String getServes() { return serves; } + public void setServes(String serves) { this.serves = serves; } } public static class LineForm { @@ -172,7 +176,7 @@ public class AdminCateringController { form.getName(), form.getBlurb(), form.getColumns().stream() - .map(c -> new CateringMenu.TierEdit(c.getId(), c.getLabel(), c.getPrice())) + .map(c -> new CateringMenu.TierEdit(c.getId(), c.getLabel(), c.getPrice(), c.getServes())) .toList(), form.getLines().stream() .map(l -> new CateringMenu.RowEdit(l.getId(), l.getLabel(), l.getValues())) @@ -302,6 +306,7 @@ public class AdminCateringController { // The price comes back written out ("$24") and goes out again as whatever is left in the box; // Money reads either. column.setPrice(tier.price() == null ? "" : tier.price()); + column.setServes(tier.serves() == null ? "" : tier.serves()); return column; }).collect(Collectors.toCollection(ArrayList::new))); form.setLines(table.rows().stream().map(row -> { diff --git a/src/main/java/com/itsthevine/web/CateringMenu.java b/src/main/java/com/itsthevine/web/CateringMenu.java index bcc3d0a..fc36db0 100644 --- a/src/main/java/com/itsthevine/web/CateringMenu.java +++ b/src/main/java/com/itsthevine/web/CateringMenu.java @@ -34,8 +34,11 @@ public class CateringMenu { this.notes = notes; } - /** A column. {@code price} is ready to print ("$24"), and null when the column doesn't state one. */ - public record TierView(Long id, String label, String price) {} + /** + * A column. {@code price} is ready to print ("$24") and null when the column doesn't state one; + * {@code serves} is roughly how many people it feeds, and null when the label already says. + */ + public record TierView(Long id, String label, String price, String serves) {} /** A line, with one entry per column, in column order. */ public record RowView(Long id, String label, List values) {} @@ -48,7 +51,7 @@ public class CateringMenu { // What the admin screen sends back. A whole table at a time — see CateringPackage#arrange. // `price` is the raw text from the box ("24", "$24.50", ""); Money decides what it means. - public record TierEdit(Long id, String label, String price) {} + public record TierEdit(Long id, String label, String price, String serves) {} public record RowEdit(Long id, String label, List values) {} @@ -99,7 +102,7 @@ public class CateringMenu { table.replaceNotes(clean(edit.notes())); table.arrange( orEmpty(edit.tiers()).stream() - .map(t -> new CateringPackage.Heading(t.id(), t.label(), t.price())) + .map(t -> new CateringPackage.Heading(t.id(), t.label(), t.price(), t.serves())) .toList(), orEmpty(edit.rows()).stream() .map(r -> new CateringPackage.Line(r.id(), r.label(), orEmpty(r.values()))) @@ -171,7 +174,7 @@ public class CateringMenu { private static PackageView toView(CateringPackage table) { List tiers = table.getTiers().stream() - .map(t -> new TierView(t.getId(), t.getLabel(), t.getPrice())) + .map(t -> new TierView(t.getId(), t.getLabel(), t.getPrice(), t.getServes())) .toList(); List rows = table.getRows().stream() .map(r -> new RowView(r.getId(), r.getLabel(), r.getValues())) diff --git a/src/main/java/com/itsthevine/web/domain/CateringPackage.java b/src/main/java/com/itsthevine/web/domain/CateringPackage.java index c1488e5..fba3b02 100644 --- a/src/main/java/com/itsthevine/web/domain/CateringPackage.java +++ b/src/main/java/com/itsthevine/web/domain/CateringPackage.java @@ -78,7 +78,7 @@ public class CateringPackage extends BaseEntity { * A column as the editor left it — its heading and its price. A null {@code id} is one they just * added. (Named for the heading rather than the column so as not to shadow {@code @Column}.) */ - public record Heading(Long id, String label, String price) {} + public record Heading(Long id, String label, String price, String serves) {} /** A line as the editor left it, with one value per column — blanks included. */ public record Line(Long id, String label, List values) {} @@ -136,7 +136,7 @@ public class CateringPackage extends BaseEntity { int columnNumber = 1; for (Heading column : columns) { CateringTier tier = column.id() == null ? new CateringTier(this) : tier(column.id()); - tier.describe(column.label(), column.price()); + tier.describe(column.label(), column.price(), column.serves()); tier.moveTo(columnNumber++); arrangedTiers.add(tier); } diff --git a/src/main/java/com/itsthevine/web/domain/CateringTier.java b/src/main/java/com/itsthevine/web/domain/CateringTier.java index ebdee6e..1fd74fe 100644 --- a/src/main/java/com/itsthevine/web/domain/CateringTier.java +++ b/src/main/java/com/itsthevine/web/domain/CateringTier.java @@ -31,6 +31,16 @@ public class CateringTier extends BaseEntity { @Column(name = "price_cents") private Integer priceCents; + /** + * Roughly how many people this column feeds — "About 6–8 people". + * + *

Free text, and optional. A column named "Small" says nothing about how many it feeds, which is + * the question anyone ordering for an office actually has; a column named "125 people" has already + * answered it and leaves this blank rather than saying it twice. + */ + @Column(length = 80) + private String serves; + @Column(name = "position", nullable = false) private int position; @@ -42,11 +52,16 @@ public class CateringTier extends BaseEntity { this.cateringPackage = cateringPackage; } - /** @param price as the editor typed it; empty for a column that doesn't state one */ - void describe(String label, String price) { + /** + * @param price as the editor typed it; empty for a column that doesn't state one + * @param serves roughly how many people, or empty + */ + void describe(String label, String price, String serves) { this.label = Text.required(label, 120, "Every column needs a heading — a size like \"Large\", or who it feeds like \"15–20 people\"."); this.priceCents = Money.cents(price); + String trimmed = Text.optional(serves, 80); + this.serves = trimmed.isEmpty() ? null : trimmed; } void moveTo(int position) { @@ -66,6 +81,10 @@ public class CateringTier extends BaseEntity { return Money.format(priceCents); } + public String getServes() { + return serves; + } + public int getPosition() { return position; } diff --git a/src/main/resources/db/migration/V7__mix_and_serves.sql b/src/main/resources/db/migration/V7__mix_and_serves.sql new file mode 100644 index 0000000..c80f76a --- /dev/null +++ b/src/main/resources/db/migration/V7__mix_and_serves.sql @@ -0,0 +1,66 @@ +-- Two things the spreadsheet never said out loud, and the page was getting wrong. +-- +-- 1. AN OFFICE BOX IS A TOTAL, NOT AN ASSORTMENT. A Small box is twelve items, mixed in sixes from the +-- minis — not twelve muffins AND twelve scones AND some cinnamon rolls, which is what three ticked +-- lines on a card claimed. The bakery confirmed it: mix them, in sixes, to the size's item count. +-- +-- The fix keeps the shape everything else uses rather than inventing a mode for this one table: the +-- alternative goes INTO the line, the way "Cupcakes or sugar cookies" already does in the parties and +-- wedding tables. One line, "Any mix of…", and the size's cell carries the count. So the rule for the +-- whole page is now sayable in one sentence: lines are things you get (and), and a choice within a +-- line is written into its name (or). +-- +-- 2. "SMALL" DOESN'T TELL ANYONE HOW MANY PEOPLE IT FEEDS. The party and wedding tables size themselves +-- by head count; the office table sizes itself by box. `serves` gives every column somewhere to say +-- it, and the admin gets a box for it. The office numbers below are estimates from the item counts and +-- are meant to be corrected by the people who pack the boxes. + +alter table catering_tier add column serves varchar(80); + +-- --- 1. the office box's contents --------------------------------------------------------------------- + +update catering_row r + set label = 'Any mix of mini muffins, mini scones and mini cinnamon rolls' + from catering_package p + where p.id = r.package_id + and p.name = 'Office boxes' + and r.label = 'Mini muffins'; + +update catering_row_value v set value = '12 items' + from catering_row r + where r.id = v.row_id and r.label like 'Any mix of%' and v.position = 0 and v.value = 'A dozen'; +update catering_row_value v set value = '18 items' + from catering_row r + where r.id = v.row_id and r.label like 'Any mix of%' and v.position = 1 and v.value = 'Eighteen'; +update catering_row_value v set value = '24 items' + from catering_row r + where r.id = v.row_id and r.label like 'Any mix of%' and v.position = 2 and v.value = 'Two dozen'; + +-- The other two lines are now named inside the first one. Guarded on the wording V6 left, so a line the +-- bakery has since edited stays and can be tidied by hand. +delete from catering_row r + using catering_package p + where p.id = r.package_id + and p.name = 'Office boxes' + and r.label in ('Mini scones', 'Mini cinnamon rolls'); + +-- "6+6" was the spreadsheet showing how a dozen scones splits by flavour. With one mixed line, that +-- belongs in the note, where the bakery's own minimum already lives. +update catering_package_note + set body = 'Baked in sixes, so a dozen can be six muffins and six scones.' + where body = 'Everything is baked in sixes, so each item comes in multiples of six.'; + +-- --- 2. how many people each column feeds ------------------------------------------------------------- + +update catering_tier t set serves = 'About 6–8 people' + from catering_package p + where p.id = t.package_id and p.name = 'Office boxes' and t.label = 'Small' and t.serves is null; +update catering_tier t set serves = 'About 10–12 people' + from catering_package p + where p.id = t.package_id and p.name = 'Office boxes' and t.label = 'Medium' and t.serves is null; +update catering_tier t set serves = 'About 15–20 people' + from catering_package p + where p.id = t.package_id and p.name = 'Office boxes' and t.label = 'Large' and t.serves is null; + +-- The party and wedding columns are already named by head count ("15–20 people", "125 people"), so a +-- `serves` line under the price would say it twice. Left null on purpose. diff --git a/src/main/resources/templates/admin/table.html b/src/main/resources/templates/admin/table.html index 9a450d2..0d9cb0d 100644 --- a/src/main/resources/templates/admin/table.html +++ b/src/main/resources/templates/admin/table.html @@ -47,6 +47,9 @@ th:aria-label="|Heading for column ${c.count}|"> + +

diff --git a/src/main/resources/templates/catering.html b/src/main/resources/templates/catering.html index 29708d2..d3a6a69 100644 --- a/src/main/resources/templates/catering.html +++ b/src/main/resources/templates/catering.html @@ -73,6 +73,9 @@

$24

Ask us

+ +

About 6–8 people

diff --git a/src/main/resources/templates/fragments/visit.html b/src/main/resources/templates/fragments/visit.html new file mode 100644 index 0000000..6b7c4de --- /dev/null +++ b/src/main/resources/templates/fragments/visit.html @@ -0,0 +1,41 @@ + + + + + +
    +
  • + Tuesday – Friday + 7:00am – 2:00pm +
  • +
  • + Saturday + 7:00am – 12:00pm +
  • +
  • + Sunday – Monday + Closed +
  • +
+ +
+

215 E Main Street
Princeville, IL 61559

+

+ (309) 701-0660 +

+

+ contact@itsthevine.com +

+
+ + diff --git a/src/main/resources/templates/history.html b/src/main/resources/templates/history.html index 56c4220..2afedc1 100644 --- a/src/main/resources/templates/history.html +++ b/src/main/resources/templates/history.html @@ -3,9 +3,24 @@
-
-

Our story

-
+ +
+ +
+
+
+
+

Since 2024

+

Our story

+

+ 215 E Main Street, in the middle of downtown Princeville. +

+
+
+
+ +
@@ -49,6 +64,29 @@
+ + +
+
+
+

Come and see us

+

+ We open at 7:00am, Tuesday through Saturday. If you are after something for a date in the + diary, it is worth asking early. +

+ +
+
+
diff --git a/src/main/resources/templates/home.html b/src/main/resources/templates/home.html index e6f057f..dd767ea 100644 --- a/src/main/resources/templates/home.html +++ b/src/main/resources/templates/home.html @@ -69,6 +69,32 @@ + +
+
+
+ Iced sugar cookies from The Vine +
+

Ordering for a crowd?

+

+ Goodie boxes for the office, packages for a party, and cakes and desserts for a wedding — + with prices, sizes and what each one includes, so you can see where to start. +

+ + Goodie boxes & catering + +
+
+
+
+
@@ -76,32 +102,12 @@

Our hours

-
    -
  • - Tuesday – Friday - 7:00am – 2:00pm -
  • -
  • - Saturday - 7:00am – 12:00pm -
  • -
  • - Sunday – Monday - Closed -
  • -
+

Find us

-
-

215 E Main Street
Princeville, IL 61559

-

- (309) 701-0660 -

-

- contact@itsthevine.com -

-
+
diff --git a/src/main/resources/templates/products.html b/src/main/resources/templates/products.html index 90ce582..0fb0685 100644 --- a/src/main/resources/templates/products.html +++ b/src/main/resources/templates/products.html @@ -5,6 +5,10 @@

Our products

+

+ What comes out of the kitchen on Main Street. Cakes and decorated cookies are made to order, so + most of what follows started as somebody describing what they wanted. +

@@ -46,6 +50,29 @@ See everything.

+ + +
+
+
+

Want one of these, or something else?

+

+ Cakes and decorated cookies are made to order. Tell us the date and roughly what you have in + mind — a tractor, a retirement, the class of 1964 — and we will work from there. +

+ +
+
+
-
+
@@ -16,9 +16,9 @@
-

Order ahead

-

Goodie boxes & catering

-

+

Order ahead

+

Goodie boxes & catering

+

Boxes for the office, packages for a party, and cakes and desserts for a wedding.

@@ -55,7 +55,7 @@ */-->
-

Office boxes

+

Office boxes

Mini pastries for a morning meeting.

@@ -67,12 +67,11 @@ : (${#lists.size(table.tiers) == 2} ? 'sm:grid-cols-2 max-w-3xl mx-auto' : 'sm:grid-cols-2 lg:grid-cols-3')">
-

Small

-

$24

+ class="flex flex-col panel-lift p-6 md:p-8"> +

Small

+

$24

-

Ask us

+

Ask us

About 6–8 people

@@ -107,14 +106,13 @@ */-->
-

Good to know

+

Good to know

  • Everything is baked in sixes.
Ask about office boxes
@@ -131,20 +129,20 @@ -
+
-

Before you order

+

Before you order

  • These are a guide rather than a menu.
diff --git a/src/main/resources/templates/contact.html b/src/main/resources/templates/contact.html index a41a969..4cc1612 100644 --- a/src/main/resources/templates/contact.html +++ b/src/main/resources/templates/contact.html @@ -4,7 +4,7 @@
-

Contact us

+

Contact us

Ask about a cake, a date, or an order for a crowd. We read everything that comes in.

@@ -17,8 +17,8 @@ */-->
-
-

Get in touch

+
+

Get in touch

Or call us: (309) 701-0660

@@ -52,7 +52,7 @@
@@ -71,18 +71,18 @@
+ +
+
+
+ Iced sugar cookies from The Vine +
+

Ordering for a crowd?

+

+ Goodie boxes for the office, packages for a party, and cakes and desserts for a wedding — + with prices, sizes and what each one includes, so you can see where to start. +

+ + Goodie boxes & catering + +
+
+
+
+
@@ -76,32 +100,6 @@
- -
-
-
- Iced sugar cookies from The Vine -
-

Ordering for a crowd?

-

- Goodie boxes for the office, packages for a party, and cakes and desserts for a wedding — - with prices, sizes and what each one includes, so you can see where to start. -

- - Goodie boxes & catering - -
-
-
-
-
diff --git a/src/main/resources/templates/products.html b/src/main/resources/templates/products.html index 99ad768..1b1dc5f 100644 --- a/src/main/resources/templates/products.html +++ b/src/main/resources/templates/products.html @@ -3,13 +3,10 @@
-
-

Our products

-

- What comes out of the kitchen on Main Street. Cakes and decorated cookies are made to order, so - most of what follows started as somebody describing what they wanted. -

-
+
+ class="panel overflow-hidden">
From f917e602845c2766309f97e4b662f58c5d9e3e7b Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 20:34:40 -0500 Subject: [PATCH 20/22] The wordmark fits a phone instead of breaking on one MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On every phone width the hero lockup was rendering "The" over "Vine", with the branch marks centred against the two-line block — which is what you were seeing as stacking. It was not a wrapping bug so much as a sizing one. The lockup is three things that have to stay in proportion: two fixed-width marks and a tagline that cannot wrap. The hero used one size for phones and desktops — two 80px marks, a 36px script, and COFFEEHOUSE + BAKERY letterspaced at 0.2em — which comes to more than a 390px screen has. The only part that could give was the name, so it wrapped. Both lockups step now. On a phone the hero is 56px marks and a 30px script, full size from sm up; the bar's is a shade smaller with tighter tracking, because a 320px phone has to fit the lockup and the menu button. And the name carries whitespace-nowrap: a wordmark does not wrap, whatever else has to give. Checked at 320, 360 and 390 — one line, marks either side, on all three. Co-Authored-By: Claude Opus 5 (1M context) --- .../resources/templates/fragments/lockup.html | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/resources/templates/fragments/lockup.html b/src/main/resources/templates/fragments/lockup.html index 021bb44..7d006fb 100644 --- a/src/main/resources/templates/fragments/lockup.html +++ b/src/main/resources/templates/fragments/lockup.html @@ -4,15 +4,20 @@ - The Vine + The Vine Coffeehouse + Bakery @@ -22,14 +27,20 @@ - +
- +
From 057deec47c362205abe89231c094dffd0c4c77d0 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 26 Jul 2026 20:53:06 -0500 Subject: [PATCH 21/22] Three bugs and a lighter page: 367 KB of fonts became 57 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit THE BUGS. Tapping any field zoomed the page in on iOS, because Safari does that to anything under 16px and `field` was 14px. Every enquiry typed on a phone began by throwing the layout sideways. 16px on phones, the denser size back at sm where no browser does it. The focus ring vanished on the sage bands: one colour for the whole site, and sage-500 on sage-800 is about 2.5:1 — under the 3:1 a focus indicator needs. It went missing exactly where the page's main calls to action live. Cream on those sections now. THE FONTS. AdBhashitha shipped 1605 glyphs to set 187 codepoints, as .woff, unpreloaded: 306 KB for the face every heading uses, arriving after first paint so each page opened in a fallback serif and then reflowed. Subset to Latin and the punctuation it actually has, every layout feature kept, compressed to woff2: **306 KB → 8 KB**, and a pixel diff of the catering page before and after is exactly zero. The script wordmark is only recompressed, never subset — its swashes come from alternates and the logo is the one thing that must not change shape. All three faces are preloaded now and together weigh less than the display face did alone. THE REST OF THE LIST. The products filter wrapped to three rows on a phone with "PASTRIES" stranded on the last; it is a scrolling snap row below sm, wrapping and centred above it, and the negative margin lets a half-chip show at the edge so it is obviously scrollable. Chips are 44px tall and the gallery arrows 44px wide — both were under the thumb-sized minimum. The contact form has a honeypot: a real field with a plausible name, off-page rather than display:none, skipped by the tab key. A filled one gets the same thank-you a person gets, because telling a bot it failed only teaches it to try again — and nothing is recorded or sent, which the test proves against the enquiry table. And the catering small print, which was loose text floating between two rows of cards, is a soft panel belonging to the table above it. 61 tests. Verified at 390 and 900. Co-Authored-By: Claude Opus 5 (1M context) --- .../com/itsthevine/web/SiteController.java | 11 +++++++ .../resources/static/fonts/AdBhashitha.woff | Bin 306440 -> 0 bytes .../resources/static/fonts/AdBhashitha.woff2 | Bin 0 -> 7984 bytes .../resources/static/fonts/LeJour-Script.woff | Bin 60944 -> 0 bytes .../static/fonts/LeJour-Script.woff2 | Bin 0 -> 49104 bytes src/main/resources/static/js/gallery.js | 2 +- src/main/resources/templates/catering.html | 2 +- src/main/resources/templates/contact.html | 10 ++++++ .../resources/templates/fragments/head.html | 6 +++- src/main/resources/templates/products.html | 2 +- src/main/styles/base.css | 9 ++++++ src/main/styles/components.css | 29 +++++++++++++++--- src/main/styles/theme.css | 13 ++++++-- .../itsthevine/web/SiteControllerTest.java | 17 ++++++++++ 14 files changed, 91 insertions(+), 10 deletions(-) delete mode 100644 src/main/resources/static/fonts/AdBhashitha.woff create mode 100644 src/main/resources/static/fonts/AdBhashitha.woff2 delete mode 100644 src/main/resources/static/fonts/LeJour-Script.woff create mode 100644 src/main/resources/static/fonts/LeJour-Script.woff2 diff --git a/src/main/java/com/itsthevine/web/SiteController.java b/src/main/java/com/itsthevine/web/SiteController.java index a1226aa..d701a26 100644 --- a/src/main/java/com/itsthevine/web/SiteController.java +++ b/src/main/java/com/itsthevine/web/SiteController.java @@ -109,13 +109,24 @@ public class SiteController { *

It renders rather than redirects on both outcomes, deliberately. A failed send has to come * back with what the visitor typed still in the boxes: they wrote it once, and the failure is ours * (a refused relay), not theirs. On success the fields are cleared and the message replaces them. + * + * @param website the trap. It is a real field with a plausible name, hidden from anyone reading the + * page and skipped by the tab key — a person cannot fill it in, and the crawlers that + * post to every form they find fill in everything. A filled one is answered with the + * same thank-you a person gets: telling a bot it failed only teaches it to try again, + * and the enquiry is simply never recorded or sent. */ @PostMapping("/contact") public String submit(@RequestParam String name, @RequestParam String email, @RequestParam String message, + @RequestParam(required = false) String website, Model model) { contactMeta(model); + if (website != null && !website.isBlank()) { + model.addAttribute("sent", true); + return "contact"; + } try { enquiries.receive(name, email, message); model.addAttribute("sent", true); diff --git a/src/main/resources/static/fonts/AdBhashitha.woff b/src/main/resources/static/fonts/AdBhashitha.woff deleted file mode 100644 index 1a5e01cb01b3cd13db8d8f8dc3e1d6cbd0a938bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306440 zcmZsCWl-JT*EL!wTHM{;-Ai$IcXxM(;_eQ`i@S3#?(XgvcXxRE`#)dbOja^$pLMd= z>|`=INsfntxHuR%7#J8-H7pqNzx@yDiGSPw?;H`-3x%grb7VKV8p1PX7cX*7`V`1dt_%DahkNl{}pK<0k{ga6Mu7})Ie z=D*{Ef$gcKo_rO3JfTyy#$B@--OnBDR1XNIDWY zi2;_${7vMa`2RG9E@m6k#C>28vceOvzY!3S3i@d z6l8??+nje?ag_Xfv6g10Rwj04Mn;fx41y%_0^de_Z%~lN0|LzQ_Ek(HcUuOxk#z>1 zmRwK@1SAX?_fL53|K*I$K(@rtz#NJn%^uD6Vsp^XTZ*#TWN%i&Gw}sxWOPkrzjKHe zS;b76S8LL!|N2E95h0mIEEXIQ0rj1fA|isA)P6K7wJIV49fckWUe`E52Js2*Aowppdaf9?t_ zjfPJ5L6kFJNs3ivKgI5RGocwp=l?b`g!>Za&og{gynvo2)v`m|Vt4R19fN$EgD3D5 zbg`r1KP;SWI%$5c{yKejGiIfs36s6Z#@Wj|teGu5(H%Vp;=)%U#2hrmb|kp(^Ad*$?PHp`HBMO0+)*-zjX~4Z z|BPuxOPyT0B38~707V6MRqvx5A{(tl{8E^l6z`DK{ylM3%%xz5MPC8YK@{XsoYfeoO!d*tuP{u^0oPCIw0&jghN2$6j>aI49LnfI+A#0CR z?(s((rCekRI|>ZYN%K?HQDLrJR9VPwYy9g+bzxrZl!Qt29`a8yJ9Ixs&Vva| z;hNU$ebGIiSFqb;nvB@So9h2&Rj*dHq)&iz$a~gD6)3&O-JcuqV#gNRUv|X}}jPEBhNGsGXHA)ugV0z))H?dw> zTsDy1P2j!+YWi)Tr%{-fcUdf2E5Q&=-Tt(khI@rOPh>u^wKK1(PO?Wmt zsitZBkY+D<4;U0OZIqcwBl)oN^YNx9&)Gix@R?MWdx!p$`!qNTXUxv%@6B1iLdj7c zJEz32u%yM2qZONCEU|T(ME}X;k~j8kIelw^Y!&2BMli9y7dz%{Yu{g1{puBU2PCDd zMmgs${%BUte?qk7`{Oc$YYbTB?)SW{nP3t`QK@VS%~4!cTz@l|?A#3Go@g)#KC z$}Vu_p(T{rKN;iD+_)%S^CFqk1^&Su?;&bqLf}4m<NDr5B)l zG>hLkML2p@Z<7?Smq_ccF?3^*bLTdKc!Q^G1C2_~X?R5J9lpzKv}Miwh;j!&HPqR8 zBxZwTm)Tih{p9e+{`2@a>U##p`Z1!oJ}M;=oO6`2vupuM(8_6+l)J@oiDNyYfANlZ z^GU;XMUPPwb!Q1+y5or+kaG-v$(s9UiXg2fKmc`!nMF{MZV{m>< zgWqh^(M7!U#TBJTgaOYl%mar~Eh_H%-#GEep9vlwo~e4r-6#@R${<2O#_##G;}HZmEn3f&fn z&t+r1pYHT2B{k5I<0JM*I@MKmoa1HuI$h%T9H%dfj`a$YSfB=$QxLJQb0s}(7R}_L z%HEF5p;7kw6faLtCR#V`rMk-g8p3l>qDgEO{So7Dr&gMUa=)PMYR;D&H$jOjYYep4 z32|3I)q+z!GNG&L*6=b=ta=g1kGDGM7rft$+KS^^Q}-zLxkWIV^L;wDxl_0`HIWg} zDttDwkGAbOp(QY|6rQsV<-R3M*rrjqLeY}rz;0nj#>7t6Dmz}+;uC$-88h4?0!U}N z4qqFWcGf%=eMW9sYzR+1rzzvPGO|7~_Zup>au4oh2G-diYR38s0}$weozFP_D2i;N z`GcAHa}RA}bY6gbPET=yb}I~CofRFJxAOUxiaX%&yGr7AeeQ~uM9o`@K=nMUuSbB{ zyH?Xt$eP3AxkP`zzC)mw)1lkxMspPJ{J5UB*!$BA9h5trhZ&vA+fPLY2xs+huV0)M zWs~}LKnk7hgp8_!JOsXn`FOAhHfeYO{p`(^a) zJlREZGpMxrxdg@^?bnMLji6O8vff6s`WBzT_NYT97s{o^MXFEXvlY{HS4aG-FLE~u zm&Y5I#;$PP9(^n2+g)b(MH&xF2O+-^=XUj__Qeco}_iOzy29-%za z?Phj??hV>^2f%BijPL<|2@31m)~Jc4y6z8=CjBVn<|D;_6U$02r&%5W30tkM1h>^c-8AN97@9Ds^^(>%5y+ss2Twz^$d5p~=q|8qujWWx8g5Q`GHx`R63L4kKT`^Qv&m=(a{ z7K2VQm06{WN=t_i`1S@C$rC%w&%dAU&JLA+b7el~nEOAT5c0}=N~Hkhw|G43TqCL1 z@4_w>e_LG-LjfgxR3ODFGn8;5YW>e}pyDXE@I&~=?RV$9Y6gcV3&uCsdMu=5j*h-h zYiEatuaTMPw@2$gQ#V#C$QUm2G_T2f_KF2QVW>}3ncxnUj6;v??*Y8-6NUubqHW@w zF$G+2)Pucxi*yKLIi99bd6qw)8l!ApH!ABq6n)O)KHZt|AH6Cx8dTqV?lwAiwS24{ zJlu$?eJ^!d-3(Mj3C{n-RlBGm`=-_3-IDC*JwAXwEq;Cp`~m+!{1Od-e8rpTwubva zJa$kFu*s?t5(CPh2;GR(@4=KX`zt3!vGoJq(L0jw9SAK>X0e8mN1L9tG7oz^RGulm zKRvY}Z#iO%j>Z5@N*4aiEk8ZPejd0nfv5K^d$s-g)DwuP&j!8=qa!B|xgt2{8z0=0 z@@N%$|5yxIIqK^^`THrFTYidC&L$IaN1^h7v{CY^;fZyn;gpZyA^~V8OUb53;|ny{ z+If%6SfGuo;TC#Qaq*d)Mn3DVRHK;^%Di$3fNW)`NDgU0urF-$_|)6j}n|$qWjI9PFoZacpI)njWykG*FitEf`fgbx6D3 ze(!u{@)CQ3ncaqOjCzwl1l+hJ#Tvlx_QWguQrSZ&EUGR-D#hzP6Y+33mKP0-Hh)Z9M_e=mQI_e;uqW^E&;c>JDM*6T(ij zegRr}b6|apFWQ4m@d5nL>7DQ*m!}Z8+8vmh4E0E$>etun*Ugvcmy4jl>;3gSK*2+3 z^TqXS{y`yKNblA4X8uz_hp5W8?zuM@=FZ+Pup_~;XJiO$xo-rDJYxm}3^3I-#fXg6&264DK@ zb;;KP--(j76fP5xpwe~a7i3_1J$}5v^anU5vqQh5Kb9#DqqnK>7e)|MLC2PR=0<&q z-hSs-Fv$rMx6XH^_D9x}aTEk32=6od5Eipm$`o(2#f#NwXd?z_nG&@p!XwrtMwcvyg;LUqSJKoH3q6sIQFw51U z$(`6Lx6J1xoh<6M=m7-Yg&yY*ZmojyMdLA50!UtDMzo@)Nxhr#4UST!kLJVSk9VPW z7>l{El#T}5=cM1$kYp+|48&{e3s|{pB~xoa`ZQ&&8oeGIeidK=i2TcYejEaTxU3qg zqi<2QzxFBbm;bb5)}9?t^Lje;PBUDq&34l^Ihg4x7%aOWZ-$w3 z*vsvO*M3bAX)Y&!Nxa*e199HX**RTWaJIf(wtuU60_b+XReTZk`prpxhUm_R&#c1v z<2?w#eYw{hAT_OBZ^~bJ?0smRZiHT8wUshC<#v>Na6MfU){Nq9%sVJq2(5s7Ukg5s zN$4gkXa&SAGqo`qBy}R!zTLcI0N!ztO%~n-aD`OI6_aBma}hd)!?KzB4d}=?>B($U zSPCS>m9t|^6^2rDaa3T;iXX?gW1Q40V^(7%(#E)>029tQLTBktw)HXlb7nb;lqORV zF*yi0F1vi~%0o1MthW`WIr5jjL(q||m`Eek)QR=jc`mcm+6*RM#QR-HI9R4*Z5hLZ z6b!7=y){3NoMnbmrC4jElW%O^zrJm_IjUifY0lG|5O}Fwu-Zd<@V#-+uyTS%+A76| zO26Se^{n>1`}+!xyolx^1l?#mubeq_UJXIAmuUS2hvBl@ zsO~n^9n$-IOWLr1`$Q}v>s4u~&yG#tk^ggx;`S1MX1wyc`%?A71NRw0ENed4mub>O zSx<9q>WggIM4WqOC#$KT0s&LPd@AW3h4(cpZ|zK39&V=3^_O?$1due-peFJv=`n!(smxj|##C%V zN$gxzY=cv*@Vyv%Gm1QgHfg131l%o({NE|e1cW%FOGzn#64b?zE|kfu#S$|Ok!#h+ zO@O2l9<{0yOQk4~pP!5d}j)N^rV zxt^XiKNIC;5|3_HF{p2`p7ncG6p~1NM!Z72w@g1gZa))CMmj+VbG0O0e!*7?H?LYi z()=Q}n0%(24&>?&u_#|L2Jo-Gdw0u%JZ7MoWV!AvUI@{FL z8A>`Q$t7@%hNOtm+=isy>vcQ10}fDv@De+7c(4${dyKJGpU0Id{$d4 zRH`AZuG>|0iOIz@H+<;DQD2kp%$S)jvlc=ntd(xq^rJ&#iNh0+rmg-o+5uEjr&!~1 zZZX$f;_cd!{0kcd*YfmmnsP{5guXQM1!U3Mcr;ga2m8f#7{JU+ z&9`QLb7XjSEsK zJQk9yhFa#W)B9*8ogaX{XyqQEEp-RpjeTqAQ~YQIna+~^!~o}&xMmvvEHLmdw~hl@ zv>vnkSI>5|;>9`g9Ig`lEb7m<&BwREG#HLN5XZNEn+xy;6#u&kI1~@TlvjWMLf&u0 z5sELYC)gSu^_olCL^{m0U!6|cmU7)K@6>**tTcO4ytBCmY>{@x-!MFHQ3e!i{9b4au+1+ zXa=58OQuj4oU;QmXMZ*7BVT7m$s`w&vm_%PIv0@cnC8%G>a_u)0`yULd5R0c-Iy(p z%?O}feTo63+S^XZwCK2%NKrNl5;t_G!3^)?sPqfO~84D!LW0&=={3OY5XDmk3J*Faritz0wSjk59qkvSf( z2VDvVf<65b_d96Zf<+qrFV2q-V=r(Y4mzP%;)>JcC5oO1|wZ98V?NJ z^xeB#>voN$aX^KJJ#@!%O`4Bi)&?FtsD@&xc^uIE)1HIy3O}V2yn4HJY*UleL#1$| zQ{rF=YxIL`4YBH~C=X_5YmWNKsLMWNf0nU*JyS@ZG5w3==|r`CI%RY-GTq{2)a7|C z^zkle11mE9czyiYzeL3zIVYfGNI=fnXVxpki^%_Tii++_=Mu~f7@ps2-cB@E8^61$ zLzlkI@sw})SoDN(R(mpzt^GBX_+}Ex->8@;z{r$E$|Re_Wd!Uh2HYlTjLVFsaoI_3 z8M)n>bBtySkTNx@>tp)3bbux)sM6n6Dh>|n^U^7L8~ zj&2dW_=mgTaSu}KT9ex74Yn{qdYepF+MYE`NggKIUD>lW6)75s%egsrf0H!$h#gE~ zyW}=+Pj@#F9)ZI8CbeA*=XPRWD9$ZMqw7IS$^Ex$3|VJKL2wz4;Z;{P&vPc880q>&W2W1#z z`4lhVPvb(YI{xNB->rfVv>pqO@q9MouL0c`9+TT6_3>%B1EyVHt2keOiT8uS+iASSZiv`u`WGy&F#|1%Zgina+Jp4nk0{v} zjo|L6zm^Hpt#ttegtUC1?cdAI3-0jx4tfk=hHa$Da<>5i=0vkt+hIhbu9HMCmpVg z68nUTYhPVqvNVPqql&9^XQ9eEdhSx$@jbnm1v+&WlD&IDp@bT>cMQ4!lCL|Uuq#>Y zD9PnEp|I?L*83ao%SV)Rw*(eU6r+@eD@~hORrD@jx7chnzZlb~;{BYs7!#95ibu`y zVsn(fO7XF^uWDbtx#FzObpudimhW08Wb4~fmx&nHB8_%@_qW@t@Vj1XF(T5kOaP{@ z;8M{s8t4m$h`{p<>S?d7km*Xzm1}lfpQx>M))!fbXeK-!4P#TruKzk-@#^?*;r6aw z&V#~gl$9(?qXvtOBnwc;cou(f&nt?el$NtVygrf+JzKSKCCDv`U}9DEvCNHz(@(J; z$1kdcigw7sHpbyulhVny%$Taj$GE|mXX5Bm?c7wMUS%AE&kty9!A_GFPx$0$>r`qi zGouan#o87%jKLQmTpvBtUMyR$EK{#06_py)S*TQBxpUM`(8*~~e};$Ni9%$vs|jqiA+ z-~E<_jvR!ejG@U`sWw!u42B%WxZeEnZnBAM4JI+F7Ug^En zqL;!k&74{@ba{LpBL$5=KV)j9&;5c?r+F^@C|C5{kh zQYUc9cj$A&j;9fQs<)*cG&z}nuN@VP#8dl~0NZD3kKGOfy{P?h2y4LRO!?=V#be>-8(LF97Bc(o?WtYZ^No9^;bC zK?uL7s{2CqS%BknrUa@;@wD(87lWg%Y5YP|NGBk0`T2eb#YZl@My#C(Qi9x)q*vXypbxi zD%q|f{6_=IPgwAu#NVZ0`F<175W~Srf-9jbDJ5!KFIG@rYTHydTUR$PX?OmubvTQb zWc+ful7-NI^ZEKR5V~6LCP~=H^ts}hzVic4KY2~HlfgJsa^u?uj~^N0NA-iVM#~x{ zYJtH3m`Cx~-A)`*uIISDA$dXF-k~me+|yF~p4|AM(gaj+<%B)SJ9l362=LBeRcfAQIz#w^Zl(^f*O)8sCo6qe{Mb1 zgW%pN5}p28VS|?cAc?x zptAa%9V{dv_;>HYXTjEm8ec6zJzs={W2@kFQKAVqFZIz~V1Kbkk%>~Rw$mm{NObcc z)(VU#_9`{vDq_z@p+huj1k1KaDx#kbb9P^FkWVLAx6SQfVt&``gGC@R`L{qv zEo0DPe23*L+CARK0jp=uC!L~fOW+~xpT7_k_bPuP1$D%}nxp(722NlSvbl|3p&qgJ zSi{GaoKZ(0q+_+oT$ITpDvD5s5LbIJ#fD1}h#N<9M!1wpaO$pHNo0PJiD)T?Z50({ zESrM6G1tBN?(UR7>O0~J&ar(-e5M(%z*&fWwzao4mol+99=&cxj4sZmx=&K8AW^>{1qzG zT#4rgt!E}b^$>yFwBTYE7`LC)4hM~l+L&xF2rD7vlZ@LRX+WQx!Lo%lE^`0i7f%i~ zECe*)y|AW2TCx49+)}2P)*2PlxxqDsk3q$|Gm~gl* zBVcql&~#0MXeT7E>+kS^^C1?u9#i|hcACjJo7 zY-Ktu{0*<6fzl%A&T z43A(*bjz7t>Zr;Ep7WB~31O!5QFjTDAVSi$s*=M(I`zcG@9E0Qs&z5VYy$&Oc7}`X zZWvVyzOJ%gA>+ypYuF*vWSqLi1z{CHhdYJl+rKLmfa$)JYHCKvK`-|VcpD!UuOu(t?BZ2V43f}2u9qT9etS* zKNDlxT`da3ilOx~S3{RfGl``1tL1J2r1h5}YRT*I43pA#>$Y!jcul6S#oUxKF8_F+ zU-p%!;;eAx^}=$oWFN{LojfFUB8<_mW|$aSvjZKvVEm5JtPAzlyWE&6a+&4Dq! zI#fSyl5w}G@{p-jAP3)Tl9bOMHm(e^1-M{ky*NJWJMZdt!fq;RHkfy>I9p$it}mZ) zS~DxsA1Un>m{o#rv>y~7t4xGjEp0Su4CCc`E<5K~fjhc#TYPw%K4@N4Fo@J)TX4#3T$#zE&9;onN_jO$qSK7csK7KuNUBP>EcN=CCV z?fIU-KMd{z-f!MxD^D>_NE51E7nuON1@T}H;Bxr8boz6N85o7%zrOH=a1al_I~i6(#dI#h~-YaGTw9} z8Hyz@)QnB(gAFmM)*-q-DMm=QZt^7&rk~!zA`J7p_Cr@X2GT|oeWNl6{r3sOp32;w$Uw;|^V*>2K4d&=%IVpwM2YUx{knEY z=yQ?6@S+{=89r=W1ZHq56=ma|FcZbmUs!P3Lpq#vaNJ)5r7i?i#%O5uXaq-`a^&CA z2>H8QN0ZE89vSd@?ERgO;wqBtre`Ro?di(b>hJnS4~mNRJp#)vv5D|>{8`NukSsW6 z`{HP*8(+}A7arVZqT8cP+mVQK%O5tQgA>F56jmOAvJ{>bW{1uPIZ_MdZ3{JBZZ`WB zhYL12pl^8{xCn@ic>%blcvc#9(*)VCPD(Bs8?W=^QaQHq-hzgsckcEtVpDl@+q^B8 z5b=<&JiR70oo>4vk?Ln;iZ6XQ5f2w{3kn=X7FOJF1;)BT13*M+c~Y=x8k82cuOj#`Zy#j1Nl ze(Vt>%BW@(eY11PbinhZ-5QbX{@nl&TrKWDs$h&lfril_$J&q#YjJ@pw`v*%(vx@f z_-+{Zo5Uurr;M`G(8SW-Ldi&C6eV@7@pT^YP6JAsAKrq|&%Z#FVH4fHL3MiF2;qAu z9Pq~xTtwpSevO&0p!|2w)BATjgOus>=?64452yrvr_&5+e2wf-nNJvJjQsf#AqbFC> zt6A9RS*eMOOB`(ho`#0kX=Z;aO!_qzstv;}`COQbJQtjF%)B-&Wp#(yZII+@9*vhydVp|^Jy zUSS)%HjllzX##Ks3QMKa$Oq=LaoA6JJ%f*7S%<0MNUO2jpQq@*tzNNU6Uc`Ml07hW z^&7V0Am+u4@`)maZ|#^h-@h!l%>lg#22;2V6OBxod+(vgACPKEa-)+ebqCnmbeC)1 zQ$>l!mZY3&LKld?UrF9xh@2w`PRugDh=f1{y+G2iEs&?;91qjC>}^96JXvH|vp&Da z&^Ers`0P&;Xb=Vt_nwKx$(b*bR?~~h{NSyXWiwD|?D*lE)BwpH<5F+g5N50yGHJYW zr*VtEGDrul*%b9z6-Cf*bgu6kLuTR3fyyG)j%t<~G=J5jU6a#1`J!-fHNlbjevg>O zw(7*M`4iqs&&ajaGkT(u%v3EZ^c$6n0#W$yS`?#u2m7R69PU5NKSkn{j3EkohlGK! zooOPVWqLmRt4Up4-zK-9$g895VjOPsL+eoGF|51nvjp#%J2t4b(zX7@M%-yWM9TE> z;^7xiu)af`#c}%PBy0Lyya^{zsuYd$DbDq98f5<0Hpz26bSW&Xqt+n4F3!+yzw?yh zifU`8$q}<*#XMY6K5~tQnT-VpX>3I`8K1c_XTIKQHyWE(pn`;92_&Fh#5>Y?7OpWyItq2)1uC1i6e58T9qS0QaJyXx6LLf+Dym+$@rzzlb+Y1A0B zcNA7ORXH17JaTY3oSo!(?)B7b2_XA^XsrDB3lqP3AGQggQfI(b7{stA+xoR(dEiKI zX`BH~s?#ov5&=%G+GKpl90?d~h2^DWa)+gV=e?#aMIZb3_}|6*okR$mEuBO| z$}O1HWn$I@67$thCms?t9&W(6_duE&@KnFG96uJiD%Y~?L)1A`Lb%5emuGSW^`paf zL@3Rn5^@O52(pfNpUqf!SMev>8(zP-NW{+xcSF}d>q!~}S^~g#`B$X^NlnNg`>OgH zfL(6nCpN@*TwWefaL*{x*>m-#NCuGB)P?c1QEyFQKuz|IGQMRRz~1T70PQ~K@N4@l zv)gaE3rKS@(ECXCMtt)(fig&;e#!z$i1Zg?H0@XK8daJu|Bp?_+u>}F^Of6?QN&rl zX@Coe_#Mjh%iHm#Xv;(aAR8e2^-`vQeKuzKhtmYG&V$P{LS2jl0<4Vo6>s7evK&=nUmyv$a>Se7}8mcBK z7*fWa2tkr&1X~THBW+UCveSnVynP^KU0>oC8VK*db#~Y5L!}eRMFq1XVsOLfenr84wgmgP4DA3EE*G=OKXBYyG;Zz zNA`^xUF3IBBHaQU+kCuXLtP>4NYR8*agQCVMaIC7?;_8b1~3l`c5XIz=6E*j#wB4w zEp!$N-U2`?4tGTRyQb`w|=+A9z`gAtXXaUxRGc*Uu(WdlyF%2z71J`{7oYU`6J6e?{nuOeklFp+wlog zez)fh4>4E^7L&d&jhn(Vma76yh~&SSByxdfhM96G>WQrE50=G0nCbCNEuYeMdwUB) zGrlCyuj`8GrfZmxEeTZl@$x!pCezM>8Cq)xO} znAXTm$+>U3Ml!R>p&x^nN?@3KGLHgRpo?

hXM6Z~jh}foeDSTppJ0 z2(w2EKg?I0fKv1d$Hkm9t9*j@c!ph5%vbp#SSFsa=9h7~$dLWx z0v`(9zrM0QSxY(<^D0F4ksQZ(@F50i>58$Nr(@Rpel%a;QOd~2DEXTIVwL3n8zL6i zjBhMXQQjvBOZ`3l2qWVH0?>EqP{KquB(iYXX6E^)&eLDk1YH@+mYv#bCNw9*I_drw4)h0Q27YWFc#Gi96JZ$-L(zi)h?>;}C7PvY*s zI1m;m?@fRI7EB{M{NrhXtqVQt5{_~`Z2puI@y|_BBH77ntaNU*RIS?S>Il_ppx+>J z^sRWj>r^$qO&kgTQs4<<@pUuSac^DDOqGH@;H_O%<1%?)&`gtr&HxJbQW2y@ayjI#@4LKI zHT==tulL5q9lq2$RIVhhS+dw*<`{;zjGM5AoF_=v>RW;Cz@t27+>0GJa5B~~<^^sG z11Ak_dsTNE%0Fc#`h_rru}4($s{}Q4l>bIF;KdMN74c>o(~ti|-_pb*GC=QoZ=#d$-1|r5;Kx3I5Vz zgV%<0q+6W14(Me`9M4%~07=3{#}W}Mer&HPFVBx;zKv-4n~CM=_VcdfoI|or@CkrX z8CxKT5FEgV`Ou(tm9i+_SEu%FZD>LhgUpTGI{cx&i%_c?o>4$lC!Q_b-Yb?XLwTY^ z+FEHt`;nQc;z;?0CkW}}iT&Vdpe!j>k;aWsxjj1R-S!jy0@vWQ{~mN)YPLgAAWNCk zrFyB;G~_&9XA$|Q0&w$vnCWhR=b88AKt99@y$Zgq_b@AcF)O|D1cvW$PKQpmeB)=M zHsXOfVX@+DKjh#0-pBdM-Z*1#WB?PA`%LA&A#4oF5hXlj2&dZhgnJ$DPBs|K7O31xy-C6eMm=~FMyWiJxBNqS>PE$PW=B1bl zm;s{|>{>^OE%YlFE;#o{;d#R_ip9gQ_!X`L-whIY%w45P7LHlKemTomd_nI@cybN* zx?bSdF!OA7$#QZs%wI?^tG-2xAZK$GvC1^WM;=4_tIjGbcd}xa-yRUgrW~$-+sel* zvM+&N=rAX2xmPx2d}bY~oy8&pGJwX-oww>?1V0EZS$JGu3r}~$*XWHCuXMk<*j>mq zciC(7zUDw)5&KB{%-6SGhfx=P&^XJ^>9LyAN-PA1KQc(2i`8s3vEfNg#n6|zv~jE; zkvB*#x|&Md7QhvBfDu5(UY^zN;s!j~!J3xenIIdzZ- zpuInzF}5{UIU~F`^Xa#_JWc!aZbtXP-MGhPo}ibR7cWtBRA~w9;LR&TK_+6$#`X&F z``^x7lX8Hff8CSaTd_}D_`nSbikVm+FJCwUI;{Kc-DciqBj-CgyPQW|K&H7Eay{*iVsv)ldm4ynbQRTSeO$2te{{q`U$m(NMM%6@8c z6l0`aN!q%}3=jP$Dp7m=>)6k8$p<;*++iJcD`E=%gvovBkCT_oQCtB@p*X8+#$qwF z9KmlQ2z%AitNC0jWQj2YEou3!+%pFinGXjqqN?F$N**s zsiCGV0sdNMW;i`Y4)&vx!%vS)$4wd9crDH8(|L_G-0{HbMu3gq*SRrp;R?RwK+!If z41+;mA-X&H+_tY6n_NnCi`SNJinX(yv#f>*je!<;$W3_!hL@2VfppX$Q4BC*r)gxs+#-!hqO*`1g@@p zQSU|jJIU6|1I^jL} z2<56^IlYln3Sn(IxQ}z{CUh8yPb8`a-vJN6ML_VH#ExW1-nlp0e{yf^o+A^3cO#)> zOb6iXy?K_uxGYQ5+drY2dTwrAdaP~UUmEcvuY!g_r>m}u z^`t7MxtXhJ)lAC_S; z;4DOpOl0yW1C}>uf8l_X&=h9XdF+9(LL)>-rQ(d);UEwB-{#CFJzVzH&Ri$%oS0 z-Qh7Dw@JfTOw?m*NvKQ-fxm2lV!j`4{2C^YWzGgRw6a6pLEj-}q32gxSpsB`8tM1L zQC}Kqe?yBnGuUo#tn#I(KBb`<7%W@u?|9O3y>d^1R5U}PUUlmv zn32^JfleH_Q|(rdTD9(K`J|X27*^NC*&bH%eXPdXN+2HXhe)}^ma$OeKa&jMu zi~^o7=ys4fFx6M6e|?03VaDe%w>jSi5g_7AEtb()Lndj&DdtG(u|0uMCT(L<3S)DP zdoJtJS(g-T?s5R{I;ARzFTy#VJ4I-YU0g%g$-Z6DTDbkUIfJ&c(X0w!kXryDQdCw_ z%GPac*n$VA=9_;M_IP;XB_N_Bd1Ys9$xwBUY()?R)YBYq$of@3P>6twXcS<$q-j?U z`-5NCUdz+9xT9gl*u(&qtF~GOD`GHGj3(w(F-{Cy?*9QfK*qoJ!oy6CLD9?Po77Tm zG0<2U#cBh)mSu}6c*h-y4?ZA;3Vn8(MVSw{a=x!`9l?(;wl&V6}sYn4e8j2PI6cHqR4<-o7qP_cj<|j~8EE{g9BViQ; zA1Ud}Ei2FQb$i!udKP|va>3apJruhcE_Z6568f)iKyi%MbD@ow%!o~ zl!crwe?ro&7FWoGW(A?h0)6}*LmB-TrVxmQN(`@4`so)Nvi}fu^%Y9W_hXe}M=@1ZCAVm>QlI&Yy)i?;$vPu7qzG)r(LJRx z2{#~y*`!^hi|T3<^p})TY@{r~e7?Ym<4yrTpPwf~#{??uDyK5fB?^ed4jc>cVv?AY z!aHTcO8ToJ+piS z{k}~4nj46U09j#}s;%Hz9<* zL#~asfcKO2!5J)px3KlN2DlU;3NTnndn*U&LzSQgZ`NH#l}RC9sJUX9ij(!|o=gWU znyQaTW|@YHL6s$08p)&6b&&(rMc&7HE9&KAr{0=;TdW~(uW#y9xs8DS2$$EXC2C68 zM(=-i+Yxh(TEgY=K=Faw@Ao!_F?KDU0~6#WP7%7722o`+U(uTc32-5!vKx$&VID!IAX8fMUi?(BoG%ygG0dV!CkYuZ$DD8V zt;8rmt{SjffDmxwXhM8-_S}iL zKxBw{OCM->Z|!`q9*5jw0rM8zwT7N^|Dw1{4a)&gyQ>zkbu(B^q+wE~x1q32?I$tg zX&^6@BhaJb{ ztR~a5%4%Ab5vU#|ruPy#!Obp%$?h=f-Si1;@XCJBGxa-sL+`K~OrDIf#7^{6#OqDw zxcJpSpt|K}=*lLhs%F++%}^<3DvBtH=34~9p)4e&;xANvf5%Ws$hit;IV*v-Iu74k~ZnjYn_n$)y~N-|rgc61IhnWh=`h_G&~|=pMg=5c?SAGXuxR z$>VUM%zYp#A(Ub!+eFQ<2!yf_+_BUE&`QU2e%73xx}1eO_qnu7F@HSn z^Tp%-VQu>0=%RQ|UC*3Z`s(t_5QSR8|-G>{!D zBytv)<#t82;sSqGzAq+{#xlIj%WO?jKv&~8ATFQD>E(vMez9+qPZl?wIrt&BXKa}k%JT!7bf648d9gHX$e3Gh(#f<+u8J?E_ymb#P-1Q? zvbOP|tgc98P)SIcMroGY#I}bjWZ~7ThGzxqH=h7KxXdpS0w}L6_3*h3N_w7Fsnmi! zn!Gs!KUvwgAwQ^3G;^~upb0^b zavzoB1|_uWNuiJ@Ao(~iMquzx3DD;?uc(;4r`d`1nRKPvh_};dqzXc=3FLodOY+>b zEf45S?T-B9ZM%o!m~OnX;j zpwgNnv6T5b@+U_A4L+HKDifh@Be3=zqtU|gJ+pDL)gkrNx2S|A!Nex|(;tjP&HNdh zl<#hv_TBFPS>FM4mKZRBFOS-sAtonNB(tj}8u?#z8a$Ei6$f^#oh#JrUHqZP1M-YK z$;bk=XhvB1Z*bO?sM2H4ap>pP?g2}735o<6`rY&sTN`@BM9M$sr~Pxw|FD0=fOSTc z^^=ozQx+%&tgp;K!YI=JO-J3>wn!jq4ri)t+48bS4$35(+MY3q73c1BI)Te3)1TRA zl>8e!Mi(spSz}YLLZ;RD>?NA{^Lv1zg7oUvBIgk~x|JT3ccXMBeiHBFEaZ$c>wTmv zi*PxSVVTMdc_|B{#JDim(_GG zK5sMS?V7n~nbZBZBVD&Nr)$i&uG$Rz%MUEcETR8s%MxhJ`|gS7%VyOHCk^O&eQjUU_uB=^H*egxPA?ri^uzXvN4>%H=0)@men4Lx^DJ4L*VrNqWZgK% z0~kSJTqv{{F{HCSnNfv&)n<55QrN)d&M)=GjYv%wb4X74)z63{q>v-xs5uT!4yT2) zl&KDw&6G~0L6|*U5hwbEX-Qvq6d4<(kK}O&yJeOVV`vTvHL^G>O^_GZwVEOTf;QGy z7*i=AMMx3{@ygijbzD4B({3-Q5=Cce6&^>No`98kUF*4cxVGKya2F8hEmRo?@zSUpM^Q6}iNJ?w+W{b2Vv%O^~^fYBn#(;sV zHKx@QmZ*c&7sW!WxQFv5XL6DTYb6DJDmDQ>XCfVpB6ZkStG; z1?_}762dKb)4-B6fl{6yR9jTRpFCA&E#e6je1jy1`th2rzgQRWC-Q&v>`Qf>HCn>r zYvSe|HEG;zN!U0lF`IyZqy1iw*=>V|I+MOctt`E zCUPNj5{hr9%^41{ER3ysl<9NrtrB3c}Ilb^h5i3RrD!zWN7l7+=I0;~e8W$n2nZ{-cLT z%E`1o*b0W((1r9MQ!}9`MQ%a<`NDzQhZK3k9H+M+jBhq=lkQDfI1sv<=a zu9%x+mib9zmaIJAl@=`vI>1wEQt?DtvkG zPk@P<7qxu+e!R*OwZ?_wTqQ|XczPEC&-#^RSps@VouX{yC+-qMM!E}W(b7o=bi_6((?etgw!2b|oVwARi;i=!)6$6 zXid{_lLAXQg{vdKC=VLE%Ni;+&u4(8QaA|)R`aYWSgl)Hb`4fy8L0_FIEAcTbRwot zG%&!*%Hi|9-a-1aS+hM1tRB!}Kdkz6Js!42Z>kRRl|}Lz1gmI~lq=?CrO5)6$f8%r z^PMJyD?7NL#uZPL=9MzIvV{ZMaxja*Bs%%#>VP1H$$vaqU%-I!Y4+s&QW$bG=Q<+T zK%hh>(lkp(JWa+`v2YN~mxDY1OT(~ILlmw-sJLuBLdkPp( zS~5x5d()?yJyUT0C#TBie&bYrdUEf^CGry9#aYMTnAIape}`Gr(#S383I;D2+rws% z$^esD~mJGY_KuwSZ&A}G{zOB3eOy4=}nCr^}}+4E-0f``m%Xc!tp5`1vBTGUyKSq*ay z61iu*4HMR+mAFIdIiuR*>U$^K?@bh|$GX*FOO31x!7W_hW=a9qQa@L$TGA)>rjM-F z5i0Y;xT%nzr#&9>V1Uvp2YyU{2uvM^11c>Aa8LA*v5;E|4lQj_9H;kz4twNvHXrZ$}c{7pO-JDaDRnXq)$Oe=}9{*DOR}URxdt%vFzu>)qY+uZI99f^u-s=Bj@&>8ojSgOyy@BK3;W+9Im%y17f{}m) zrFyf|RXTShi%IpPnd`@93)9>J>5Zki4K|eN<@SDELPF*qR&CWCG!udoQ##-@b1kB2bOa zTh)G4$hD~9PrpLHvf_ptvt^}uJjKmAg-QeU zBCKPjXUai96};o_vXBQ13YMHAa1tXFTrmb^`%9yk5{YgARPC+7+Uj+6PJ#@~S$E&O z=TCR8o|)ej5Xpdms}YLad<^zXac%X}3LK(!~>=#*n_HwH;Q zBRNt=R+p(uLVBO=(0_4PjN%ZZgno@*XDBb$C>j0dy!r_-OumA+aRijT_ z4xb^+Qe0_YwWH$8CXpNqP_`QJ@eaOdtWU#ZsYAo0&BU9QpV6ye{G^P8Vm0 zb2sPVZ^je6KAwsZD>_s06#4Ii>03znb}%t~u4Z%><9DVP1DNg@(=v9YdIb#6GL0Ix zDo_UlC{MBrcuaOcBO%YHqH*>1bcH~AadHI;#wF9i$g>$RfB}9`Bqn6)#p{-$D5RDR zE=E!K>bIj%h;^($QK*OoSygvB9?k$u{vigx9t53LR?L(4P-#f0**(~Jc%3;b{^Ru< z{{Dd0J}>9!xu@IbWXZjDQZCjC4fwh%^S6qG|M_^+!TI!`jn=tJZG&}0AtlqU#d5T& z=U^FiT_~5d77Iv<;HpI^l%=uwTqcBHr$6j$E6e<52or+qLYUEK2tM{hm;NDyCl^)D z(}lKW6>)>^;>DYVyo^P)6F=LdQg*+z>B8ye6;WWZX4$=3Qp6Pye3<2(x%BMae~oVj z5}~5B)~69T4aEfv=SHsnjyOep%~{LY#^ESPmR(Wth9ei^$p!FfkuGP}8_gi4x|2`k zshD;eU}3^IHdWE1BpXUT0?o8P(R;(H2&2h0tX#*L)i9S62hOA>aDJpHq+}1B1Uqh< zxwS1{1H}SoynR!{tYUjWFW`rL%jn6bM2V})xoS_bT`kgK)WrNn$AnxVS1vr>R8k_K z5}~oDEsphDqAOR=*QTkUh~T1{cix;?>17*R25x}7bcYaMGgv-U>DTcK*8Y6=N%{$h zyGqQY-B#Ev#s8v|q&2nI^O`cY-uA<%9_vg@Z0v|&m{pPO6o}%+vVz6)fCOm!!i^fQ zt}=g)v8IzGXV!QNY|`+|X1#JndALz*8X4a5^E4qa*5%KrC%p=XTF(oG0#A<@Z{9cy zC)?-Y5VvAfR(B(YWwkC?-50p=@>~0L#tyn(pbf{O0_BVm&XiAXAs^-3iXs;&S02}us&{kd-h%YJ07Lz>f z$3HqopE;y=L%ke^B;2Y+{SnXrgzXbJ;c*I^SKNHdzJi+7?a||4^zZ|ps3=ToDQVl( z)KK|PA+fQy|NF1tVu{LVpIL5pLRk<#(VL&QNN?5$JuX))Y$(dCb`?$h^1D0~STxj{ zj}gtiNe=}onLWkP?lqg%2Yv>mIho2*fi6qRB};m8ngZ#RZ@uSGk4a%PM%p57AoAhiB&HI#E7GKId*naTw=3!Fl1k z6f^v%?XGVsW(fX0K}_y-3mv{N77j4&F^kicS=G{RyNSR?M>E%r&K8&f-bur!Zu-{+ z9fp{Ikn_cS0wbVOh#(x%GA+VtM`FZsl_ zpVF7NY=6!sk=wPI&|SFo$D{~ay^gn`3j)4SymC#tylZUJNSj0@wkyPp&%9SZCKi!G zq}tXZpM}Mcl~PF|hKx$38nVbQkkwsGh*QWV+-QVg0zN6dC^0b=(ab^^>jS1x3M5q< zMupgO&9Df5n&|dD?q|ZQ%zz;LpE1D=i&y9 zzbrr3DWj;yFqP}%iv=2y`<|y?O;qLCW3dO;)L0b~TS0wdYg(GZQuDoz(&Y=~60UGC zFXpoQVi#X&p1V27cX)res=Z3jbzqlBynJYL)u!LxfJ?OAXiG3$z$HY6q51ZKeVO$O z7to*4pDkJ1$;EZbuzW#9`6G|rzR=cPl^+&h{G6OS?#QpL5qblU{PM&3A7>Anf39otGP}>Rh;S&9u2w0Ljg+aSQKsL@)CO!jhn;^mdr%BC%3vhb zl|iK*`}9y0Wss1~s#2<>s3K6MKK0?dYE9d<3Ip~9iYV9dpO**qzL7f5e!J2Yv#Ka~ z0Elmf^0auC)O?$J;RdXt{1->O+^DPc)X9JfGiw6*a*U@+Yi$Ta;rYb}Vnv?W{U-*y z^&TD}AY;RiJ~AA`5qJ2zhmS4kbQRjdq;vsOSAtK4OzE!VqtZR1Ojr7EKaG3SC&m?` zoQAxU2Ug1YB9$NmNc0-JOqy9)nJL$1=+)3E(jbSP|4l=^UnE<;Qs>nNi%|j2Clz|A zlIvu$l7Li@Rkm_H{dWIy9$6@>vT(NoLTwC(jcS65G{BDZLXup`bn+`Qm6+2_KupAx z0y3>$O^Q?nNUlrSbv5Lp7m3diKdfR9n_TLGY~r78w=-1Dx(-7&cOj|{vMC!&et4Xn zN@nzf zWF(l~m@#Z1ax^5jZ=N06+dH`2q7}#Pf8bzrebe{m zc(aD3P;FH#>G@0j*YtnTe_6WmcDb;tDdEWw1(!E8W+X=H0y0b_@w@a9V?WPnm6)X( z9kV@{sAG$h*$uJlZzLO8}QU0QjQn||3?N%5r`|InPLzy z%^>Wi;wcJ2C2>RB_VUW^?0Dq?Ey`hXq1KR40rL-vXDwYBtzcH}F+L_W*c4$Q%#9Rh z;;P3UH5D|LL^Rwfg5hf=8TUT*a@C-`D|TjmorQ-H?tky z%;oSETzGX>-Ea=5#QfEmB_j)yYTF;D-w%b_Oo~iW@+(x>wtw8<3%M0NVV+PxiV3lt zi=k>)qH$MdzC>T56z=>vF_whV2j)2j_hmLNIzi96o24L$!UN^KiCLfh<|yKzKv)S0 zttsc^9eH(iBA@&4!;hRwa&f`cOT>KQDyNnG3@C)$tSO63weBb{u#(INO^{}c=^V&i zPL9i&{OBGhD^%<#yD_UvHfw5^2g@xB;XJJj!m7D*m9ki}C3o^vS%D|hm(U*3j-6Ks za|dp?A-4PLQ%y<>{paWAJbs~qYt_p=T&ghS+z;j*8F_eFuEf(oANfP)!^cL0GGSxH zq}zlj18Y`_qGf`NOudriF-^CyKGXej0N%8)e9f%lw2iL-a?@)d=#o-p`IJM33DVO_ zEb5ukGXLo}{&H#bSAX(#t~ouYc&%51F`sJ6^ltKy9cB`L*$oh?T^)+Lp zn&OCU<(2>=)?Do778f#6@=?ds=R}!7>chSQOzLMi*)r7(2WqAuWS$gb`frp*&FnCC zsa-*5R19F{HyX`A6*zf!nHxp4Q$0JkuGE~U5N3cYnfa?{4Oho_q{>iZk2ZJ|P}8b) zc*65g1$Cf$j@AfOiu{Urqb9Q~)@ULmMcNs6(HrRd@2xJ@jLz{6%z-;e3wLCpXdpv9 z+niCEl`Z&T3ng{uV4c@Djn#3cpP6Yq9P!|Q(y9XAZ>2v30;M^e(*OVtx3k^a78_PLDnk_{9y-+2 z${N~VSJ5ClT&w41XSLSbE3Y%OI^-@%s}aIbeXB_>VcVw2p?BUD&&(E0JG7LmM|bni zj(3;W`t2AE0S+K8aTz@p5_1*=zMtjRIBZ6Ufyvil?}KiM7+^g2p30~M!q+Cs6s*bl zh54hE*aGXk7D45kznPUXIbT8{zF<8nG)#H4IH1cg9*U+sdbk65l;A0inYj&2kGk;c zTYMeLb%!~RbKXE|`2V_8L97rkbCbKjoT-Pm*^)NuWLln7vWE?mxsfTK?ZE)fe0)gi zv#D4;g8u&RiW~>C`t1}lbYv@O1IJH=-xS*%Ls;Xw&;$ny|Uzf(?DTNAuQ>6o9Wec`#jDs~l+da#bF_s>349r`x z{B64Xovn{`#G}^!#x_A@)^0)x4*z$B))zRJ5Kx6+ZY?HcDn9+%j+r^f*nKg%w3p|^ z2ROSpXE?7S%sE}(Mja}jB_IhpoOzCc!CcnVLqbRZhnONF4VaU%iml!7a0-WxB7i5? zKT_KlmMExx}i@OLYGRmct@Zj=_7L}oVs5J5S9E|Vm zXdJHHP!fmnIeq5V9-T>Kf19@Kz=d2;bf)aZPTP2}d}yzLtj^{0lW5Zy@=1+QLgFN} z3K7^u#&m^~d}w3|rIwSy*=CD-dpyd=bMyu%bwy_7?0JkJL~<_9!}!)NU|EvY9C9i_ z#bO;o;iCbONNUhOG{=caF`nq*+h=U3%K(;ik}EX0Gw|M9%bF>_)@LtK&+nbM#T0_8 z3K#uS!2oQct9OXZq!4y z7xsF=)33I$lCb1oRiX;L(SQ40-LE|mAFmUTu5%CP%xjMV5NumEv2H9=h)`on5EEQ% z!S)OWHIE#Usuq3k(vniA;Zo1}8;v|6qf!l&s>{(bcjmI%wdqh?KYNaO#scfkx>{jU zK!*Nh*_wM-aPEdMAhr|MML^qw$G>-tq#hFbUl|ZG%7b>|v7j_aswj~@v;>GqZ5!E+gm_)g} zjSw^Yp1v&xM47R5?ZeekBB?iq6po7YOv*sP;E~Rnl(Z{rkPVi(g-WT$s*<gc&ZiIWk{XbhfHUX7x16T*eNW7(nt#Y6l6{9RNGiQ+ zqT|MjbPYyf@Rf}TX-etkjaFfSG^M$zQ7$IFLwe}MdVvv^*@G`moPwvI-z;&b>+bt;*s|-vCue{BQ-T;<*Y?LhE!$h-$TbCTAKDEf8=vS4>PqWM9(&`r zi$Chkq}+jReXY-6dw|P>;ea6ZkKb6ozTS;#asl@Hdx3YLwvuvWH>3O)uQxfIRfC_b zrGG`gwWM=Rkh0aDuK!ij{FPcYjyNXg>K};*iNAB|n2HK8%dXhevTJg&m3g?3eaeSb zH%v<)nrz@8D#6&^aIz)9@&?mi(5M|#YxeMh(c}~ulosytU-%F>J@1h-EzDzyP;b&gkGAibbGxkp9#zpAI(}@gE%4$ms{4aw1($B>2ESW# zJCP>CRI%r={l=J(pl}>=7cR_gJ^D+E99ivvwzX@;{L0ZyGxl#9T2X1Qy>q?KCWZo~ zJVPhUzTxyM{rm6S`-`sJs992&#$RfvC8ui4{~-1tO*xyX zF+)=Y=CzFt%m-OA|H}Z4I($tV64Tm{wNd1nI-E8SyWi2~3=PAb6|?84uk9pcBFawh zU4QJr)+^H*Z9!RKZ%LMhmlSCiE_5q%gwnYmwXHb@WW7%)_`%}CwvF3IW!}3Vt7)Gn z&>I)@JF(W>TA4GGT^KGhq$0%o?3Rruao*pPGAU<9r4z%l8+%3uB2zj^$M`|oJDso{8@a)BZ99m^kLpzV zk(MoG$MEj$17x8(lIE3F;aAr1KSgK~t{!3Fw6Xb2|Khb3j+&YMi*nMxg{R%WoKq5U z6qX@Ll6Z%+ zoO3(pKF%YY=a4m%PiP`*gLH z-H+j#BFH{Znlif0m7=F2L{<*=|1^MZK{4CjKx&@{&SVPq{~b}p?xA;(NQ!0wF$C;B z8|GwnG(u?9#Tct7D3W}+sH5MVFkujIt;e4Kuz%HJBC7NIv}sDaOWXKR+ThT(dv~s0 zo&Wi*Pn5X$0ymCJmV`R!nc=SghrIWIkE6WS#;4Ej&TQ|!_g$^FtFC(QvaBvyvgIcC z-fe7SjBSj;#>Uw6W{NRAfrLPSn?fLv0wg!2CqPL1a&Jg327CRVcV<_`mJC?%Prm!* zM=WWjRoVAB=Q-_tPBHBoOx^C$*u$$r0Lt+}sWSO>EIQ+jI(4ob0h7F>l19krG(MWlYg(cu`T0lQcvZ zpac)mF1WK@<_>JcQ)<5)l}n@vb87qE4_f-m%FI{KnrEWS4nKxz>Wz`7Om(+gSLT>) z`Nbx`*_mic|7Fw4{|@`53v0bn=K>TNx^Yh=KDxaL!3KH^3WX*Vh@jfQQzN-nlRZ~9 zugw{^)d>X&){+s`J9vS%8E?0gFMBwC;+7(RM2h;-hi2`nIDGY0Tc`78-|A*k&Y|CM z&g|P1<}W$E?7`ur=fM|hx`zZh<46f(t%GbKf>g^2V`>$Dw7If@Z~vV~XSoUPITVj| z3L*}p$8>Yt%h(m;;KmZcOFf)_HN%7(ix>y@r}WBSZ-1`4BG0xc>)$wYjZ|xC9cf{U z4ic-RAot!Uo&Y|t@WP*nMrd{*)4 zFu}tK7=vLiY<^|=oC>S8rsA1FHEz~4?42j|FWh@idiVAlZ&;t(gQC||e(MLl)fK3o z)bQ0prA$SkIILPXn6s(-c;Cqv=;G2he^iW{9?}smBdmL1p2FNvj5_a@I|3$z(0Jxt zTb(4zcoJI4)1$B|;@q<${mr9ywl_qa60Z(N9Fa}6Pr>27MLFB;QGd~@lSgl8tdWIX z2~>s4a0(^(Buc{%-gHuw3L1FyzD>tUDx#4}o&n-|&L80A_}?Ku)WGow8!X^#J1LX# zGS1F5MkFcJT?D&Ah%3fX2^jLl+zu{~O<>-2_cLJurY!t+`dScAt+;XSW*n_pbJOjO zn_oZFiUdtH1y4WZ_eW7Nk9kEABx&&K7Jl>09;+EH+|j!_{fF)8*EZ+S#n<$2!UnHi znu!Irf#8a7(L6M-VP{vd4#ivdKmM~-4T~xr4ehhG5;~EZ!VwHb%;GRZ#(VDn-jb1@ zfB)&c>Yz6HPWyj6vR`LoHBr)jtPSge%Ev0S6AO7{b}VO_3_p=19BksALRIJr)*L#A z*dpuw<^EhD;XU}Xo1Uv$bJK0NmS!^Rm3*{+yPwIC%9zZWD$3oTesghWW27s3V8@x& zXnnZGAYighwos}M815->p$3`o={wtYGXOzqp4@-Jh|(tT_T>Ei4qAO2{S=r z>r*EdBIy5_=picSU$ea&-un8)Qqj-T!#}+y69BbzQe4~3`(a}5qlL)kL}4zsKL$Wo!<^wG#ok3CsbbMt|bZavm#98*{i;KM{VoAR=F$m((6rSC;_b8aSvZYz2;b@skDVW`)Mgpxnn%2B?lgyBt-0p~3)qHEnof0oU`O`aG zod&l~tkf*nejwFaWr(ifaw7)wZ(|K0es+EetZ`N0m{}0<%-}+Xwo-6(lAW-XFw8#= z^f}u-4zIB6`P(FP0SEMkNSCvFaqsrlYfK1|>KZb&&Bu8J#-vDF7WLHYBTOpW#Otu7 zik};Z9o}D7kP`Boj0t@WL#oysyW`}Ilkl(hJIjhv^|wKGl* zqfsGD*O$Hf!H~;fISe;nmzRtddsPOr;qF4#vYxuDbq6RDar#IXKEm6u5mtNevXy;M zddAt}%~)=qxvd1^Ker2L6@yW`>^&(qsR!j56;gfK;(e!HB@A~j+`6Ht_WDE1TV*QW z3a&#?)70@sAt4aJgw?DR+STD5p(M5S*_M_PZv{xz51(#y_RljGyPMSWGd-7SD)fat zRjYa`a!n$+uVQd(^Nui=iuWF}I)gQ&#(~-?N-a`F_&S?=kaSd3{qXJ9Z@<*>_um&t z)j|RWYXplf{0{GCa%(<7&^SNDE^YNqc)gHl!~raBsu^=AGtK7Yh78zv2rJoe50_1T zJ3U<03(~Pkub7)&8R{-IZWargZ~gw(pTdO-Wl?|rS0DEIqgo<6BaXOrzkr8QMkKza z_o?)|xBjKy7bCQf6l_?I4enWzA(F2bG>AQci(V@P;j3iz2m23p`M-bby)e14+TO^} zO0H$%nD^5318>az)!Sc-FVl+p76lI%|IZw=5oUc-3FCv869m-FZjs9&K#-B?*t64` zEJ^0D&X?;TGhPQ_0K^3Tpg_$rCtEJ$wwa_bn4QUBQwJCJLxk45OWRgg-IRV~t=Or= z#n-@V;FViDM|gy>@z}!9qWNvP2;xn|Ef{(KlC|F&QK&TYRu}jqJVUZ47U?bth_#q+ ze#3gWdO@eLMA(^2@h{vrOPd3z(GsQ^_$hhR!NKYix9;fX zEAP7t%NwkEdBa+npyukI{h}(PMQdVWxaEY9vCvU46VBBZO~@IFmVJ*A5b_8M8%Zm?K8E5QVs3;R+yU;DPJAHyRAd{R_9JUrN8R z>~$a2QFDCQCQ_;iz5hhxipBX<)z*?!jX*G1Ino&@)SzP9ca|-`!$K1xC5nYhie#&V z)Whcv{2UHi%r(o4PMmsV_De_w!mp@QR+MU%N+=3}vH#}EA~}^y%3oWz;oRTfDsQ(B zkA8~@drt-z^jm5xD;sTbFD?7VXyuB4Qn9MIqL&hdHSKdof(y6c_@V{Ix||xlOE0x6 zHs5>QTl4wivoAgeFI}B#x5M(l`M(Q-PLZ;r)yUI|OkyEx)8E4%#J|q?y@!C`V*@GX zwZd6jW@o!2DxiD-vtCaOGfoc_1{9gBf+0;7zzFzq6?;>j9Sa9=nHRxVGhY0}g-CXq^4Oz9D5RW`X-l!HCf?UUsC ztI@vIp4vq*)jR#?)9JOo1CoHaw6sOF5pLP>_Ycr*4IXuKnN2Jk`t|T*kMA+nuZyno z@KKmhNL5nih{ZH1k@FD5KQB-ew&XT5%rVYRl`!7IQ@N)0)X}Rf0vfhhB+{*RzC^&saTpVp+cs;I z4l}KEt=YY~1U~h6Lj&dz){|ICj>#y9MF!H>WMYF4@Z;D*Xppg{vFr44_R{q9x9KNd znI4-j%-)%HkJV!{Eh6Ht&Ah7?SMM6;2{47+PZ1S8^Bmdh@5{LB@A=&I_dEna%K8Rv zwNmQL=$2HTp{8Z_`N2p)%=7z)NAF%R;7Iw?yQ||yquXyCz6*Jx?@!ON*VPMLV!0gl z`^xMQ1<4bwJ$mQZz2K3`>|OQDtzhds0Y>>EeI4)py1d4gXRe|}#rje{y=pORzv|k1 zM5M-;{=naunT!W>z6I%<@kQ7Ys4dekAVM&~ zUTaIH;B2cv$D9@B0LRYo37hKzeKwMCWNe$|_RJwO)(Q$T5eNDz$a&GuE+b-eZ(QnY zqiUN!`LKIeOE+=->P4^x7B=rDNI6j|#g#m=ZU3o(>(c-EKUG7@#hzWY{jdbK4%fu; znw!2myEdgf>h+@V186tfS3nR&mCh5Vhr&TZg6zjtZ`ERgd1c;UalS(RLSzA+}P0r8dlG_ zp~zr@Wv4n%Y+O{6rx6I;-)ed3TZ_Nd?aVVSgtvUa$xDk%^MOhda9xpQ?Ny)UHumC z^ZU|=()(}d*%T-3&G&UYcgH4$7y+0~UidA3JJtiWvk^aYaGXle1XTnVP{iPF?2Mf& znEd0G__8ld0=!3nu`Gm`a6yAx_?w8c3rx646=Z>qvKh54+Sc9nkfiv&&Aq2aQEc;Y zG`jAe{U?&C64;dU$*p>^(O?iV>8}w@1}%FI_;^jHMvp&;=SE7~w3O0$Y-{?XdBcOM zRPk$@s}bI9F$5(r*m8?Y42vze7OSKJMjk<6qM_QMUwr47LhM;sy-^mxM(=#kLvdp#OalTga~E*n^FZw*y?uz%vci>QvocK zIuYFVmdrXwwvEcp0A*6D6g;Lf!)D^dq?xzqr3gjN+*&LVsA~B_e!y2)Td(uMrNxU^ z<`_s?UtH~~pK~gkXEixAlGYX1UsqLg{q-Qt(iAjy+5^S3_E^Q51+9fOyjW<(QhrqF z*EuEI@@?JWjkFV!%RF0mS4QdxRH{@oq`c)5N8lC@B&z!cRg;G7;AO=sbx4F@jIE+F zdB9u;{{`0Q9C}~MD(>IF$lNjqTIu?v61Phtze1e_c= zC1)g_xTI?~StzCiju#;*9O!GRCb1h)1ji?cf=twl$VpEx@YMN9A&XgaKxkzQ-pc0hgxqGtSsFZMLlbFKp?bX5N z;rcQwjC40^m?Wkr_RU34&9BR2l9(zciCHbx*ey&@fwtuL?bUHf%&jkSNzCz+udX;* zSsf2oN0*LnX54VSXuO39GMHQ9(`GPdZtGc&fehx`yGvIsYYHHwYGMj=@{ZlTeC3(D zK??KAstrm(U1`OC{=7PxQj@Iy)HXcA_?Hf739I(1;<9Fkn|09O;tL?>SoXpj$gh!1 z>dd~rDU_Y2v9szi+|@_$EO5h_c?G!_nQNYLS2GDL?DFDR-L{)s9!sCaYohkKRizJ{ ze)NWADmf-(J|)D|uJ3G|_k$N7+T*tJ{fir@`H{^#L*krRk)dU61V;nLN}m!ha}b|&I?_)e@F)ViH4kBwg}0~DmL$0e;<7Gj=~n5vb&~Wwu8_`8jhtKPbNF7BwU`G zLVtoF#48XDwo1V&Bg}0sWd0@!<_53iF>Y37T)6<`OR%0Go#K3TvFj zxl4sgw!il)qze5{u-PriDX=EwQwy-V%2AC^R$jhFhLWnnKzl+_Y`nWARAY^ZOl3J; z?cdw0G~wzVQULEvZQkFF@q4U7Ptz;~T^eoMnEt~f>!RUi?p(_*oBc8yzuu<#0?i1_~MoGmBO~Tvr^%+=Q?#m_50!VyXjJ%Pj?{w z4WO+_v)@04SeWk*c5e_9gfGW_ObN{XEY_bflmS2VZ51^u?lgiQc+Hk!p?F8U79;*SHQDB=C!$9Bg8Kf>Gh;e)b?NuL1Iq%+JR|x_-S6ky-3F%T*sVgD`*9BTU_~&xTV*6QJtWq)V@pXeHQLbRM~T@M+SA;wq*L+c%`p1X zihK=ftHu<#HXy4=x%2ciLdbL>Q+rHZs6N#aE_cL4hB9}*XQa2D!&m|O-9V_6v*IEcHTqCtqc&*LRr>9DdgS~vHQ%Hj08>D$ zzlv8$YT~;#z_NA43)EUZ{f(irY90{~xoXO5u3kZs2A9N*5CYunHdD%;_N2g>D0z)? zX?W7y${&@712(Bg*$^#m8tSlXH`JNy5yms#8`0% zDdQ0>4mReRpzq~kCkQ~s6HP`EQ6S5Xz2h_rQH1bbm;Oom$dW~#?rt^hv@IA8X@xr7 zmMSl0wzTjJ8k(;8b4TO#o8##nNPS{W4~Y=xPWUm5Hf-&VJ8c$}7PzdaHEbNTJ87`S zt=`G*Z;quMcnSOqC}+a&CW13k6kH>2>|Pr8>qXhikJ$TelL$qyd~NTJ#Z849dTwl) zS5sf3klJh`!(k`o*bKGQV7SMS-N2y}SQUWXvCF@*iS*&arwPYAQyv)CI>3FJo2ikyIms%_Ooe}|E4W=G;}!(HV(>Gkt> zyyH*Z`RJze!}n}idF%HcUm(kI%>M7+){MOWz{V%NaztB0%j;tfJFST>$!%L8xAw=| zygWlqY|(C7v~tz`=?{FCyx9l-vhNSI!$N9-EugN^&2C@)_{}d=m-!(D_#1fd5#NCf zkQa(U3!xRzI%pfT2RaBHg>HlHgC2pNhQ1EH2)zQm0sRE}CG&Tp6I{OQB9D(wB!?Nj zB2I z*5HiL@~KaDOnNd9`(XDk&&c-9YgUAU5~{XY6MdHutm=ry+lM>Lc#=I!x4jc6dEkMy z7og$$w{y>oSPrE3E*(X&cOTsF)J*O6XUvluqD~8~3eL}MpD(uz#M^zOp*A+Ui(;O9 zSNiupb6&>{f4KH9mEg(Nkajfps;llf{yeaGIe6^_rOa#Zh9b~>Xc=qqyP*Tn5$Ggz z5A-nfBxCU}GZz0t=s%&~fV&->$~`$rg^*7$sTqh8oAVVZCQ59t4$8faIkO9Qtopd&O3fVxX3Uv8{A4f^38tHv z_tST>_8tfSrv2eiD2&VlpA6>aX6+qV6Zk(|H#qoL@D=BaLt*CYUS|FY?NwM%T`v#O z1Vc5k7O#zsU3uMH?5bK^zaxGAr8RN0uoZrFrWOzH&RRRL{dca|;vtS}1P?KJ1PO^D zHDrXGP!NhU_Fn}xL9?L&XdaV;u7S2d*D^?a3+91|(0?5^;AyA~Ml-J6_93V(Gk2`zg=dz7oePQrI_lzfy6G;x;l$NL} zu1UZ5@VY3IkW~4VW*lTLojW%r9sXH~`fx~x5S?}rSVzGZA-$6`PS-VT#(6IJ`2#EF zf1ICvo$<3JP<S-na6Whx7}5FSV2JU^jClbQ zi@m2uv!-KoF>jk`-N@B{?@k=38H3wf6va=A|Nz{xn{+^5-0PbasuwXogNk5l3s154$@CZg ziT9&_X4t0$YKOLiT$2@K0R>^@6{uoo)Lh1O!7h3(cbjm^Cu1+FFeWhO3UWu+ZMox z!-q+K(V(bU`Mjsp;J3P5GEXX*(s!nAdFXg=@i8xx@S5Eioe#95ANm{n?2H=vFpM-~ zvY*#0GtafSndjP5igHs|>XwI(ve`1G$_h{4cbcoA$(W@1QRXaaJ`1k6dmhOMI|Y3S zxSs!XaK+1melj#m-4sljgfPY;Olz2guy@B1=CwI17=-l(kO>IG8HDMqUW#AX21_I@ zgL{@$<@W%TX;_ryt!-L(KZHX?kW6Aj*D<+_5pppxbs9{gp>7eZV&K6dfK;->D0m{y zY6B*?+hI{vBId#qDk7s8NU((%R$i2CLx7qv11A&7^?kU32j*Qo(=bm&Inj7_n2ofF zNNynnJ6Q|5Lzy}mJ6Qxi%uE30u(u;wz_M(>3IMn=_axcwat_RX%%w`8#D;PWKpa6S zo*KhYjfO)1OODYP!6yj}hjCnC(5T?IMeTknPi{Wv@Vj_4;`XRi)Y-3T+?XMZ;~u>x zCv1x<6GY|ksw6MBWYcc*?CL;!b%EKjwN4igg*`#5M=QPM;jSZ^f~D)-TgtxqjIJP> zmseclR0;J!t2DO&)fewiE~xBtgqp*cpK^-LGQEltiA^d4O%S+Ts3uGbo404PuF1O3 zYs39j<$6J`e7;vPpsCxMl~-L!(Q#1y#>oI0AswKy)|iwGI6MD$h|H`{ED zc{OSoL9Q&bNs8)Xh{9^WpVoxLE}<$!;3Bz5N10HUm2dAp?yjxuSf>%AN{gnnPfWmk zxyq_%0;vN$e5gq!Q@Xd`(l{v04aePDOvWq0QJ)(xZTHlRiBPgiu2W(tgK3=LQG`US zK`E&~Es_bOgk#Y>bF*z!FgjG?twKeL^|1AY?ZwD##c=rq>{NOR=k*wc!itv=NrzYDffj zOOkG>T}rx>?xZ@YzJJuz5$rIJj+#f8n6QJR=FYP(6NStJ%Zy8w7=ismX(JS5o(uLm zGEWRL@1G@zk7xXS!-x}~i!5WmuT^OcjM=peN>Z>i9y58pSb0sm1R^f>E8@tuwe38a2xJYZ>=_MxdvNF#CPt5q6y|Y2(_6 zZX5W%Yjp0Q)`H=vfg%xH@AeQO#I4Ko>LoC0kqG#(Td#9xcKu?1hgd(qA`Z=%_u0Ov#}ZC&ZbE4FnHp- z%oh(a0UgJw?TCUbMqUQkhn3biS$tNBy!_~+?Ci)Kh$1oKJ&1yG+1)itRgx7lW&A!Y zh6z@kV>*=Rr$cA8EqL_DUa}l@rI4#vN9$NcXF~aiT!=Y zNWU-eG%UOS09Gors40`aJe;gg>D(F#9VM&_r6|(TV~}c0)Vcd`fnHI({09V$*aFV~ zL_8=ERoS}1rWjbWb48a}3?qXWAxbwdPyh0kz5fC9F13EOm=Id`-2T9^m_1r&t7wo3 z<@UF4uAIB-Fo`u52}A|81S)juiv*a0FJwhyG)l^>4D?-pbWATs*-~Gg6cD+Fveu&! z>zsbZeO*uS=ONBK6G;Jeba9}Xq73fcabE?*Vxt%$iKp;iGBH^`^az6u78yBN!31`+ zN(^&Dw4Aa^JPE>$2?$}%**OIWF!lyiR`~_JoZJxOjFT~TM!>{PXp$EL4$esN0l?u8 z2}-nq<0bdKT(vIlaVzJ1wEmHEFNnO}?%bR#Kt?-ZkwGQ}(md52N<-!Hvb-PW``z$Y zb^Gq+<0jAP6&0&Zl)$*QQXjDg)ImO>Q-~-W;cFBD9G41pSi{Cr%|vyfh$aBkh2~du zUyq|ga{cg}cW-Gt7Aw%0N*fpS>r~gTV^vf&>N&~JTo9l62x>*toZf-)xq1nkZseO}non%|AU{Hvlw) z>Ix}gVI6@`5~n62AWTw%IemjvXjV(znh@{$qpdnZlNAgqWdIP;mA6(e0#YqJgxK=Q z?2ZT@FNzhEw7%e2m44^uJ>RyAr4DUCDMV@aSKs(vnJc%(T2U_%a@ret7cLNw;%_qk z!Ui=#FSGYfvau<9W16jPWllAcblEXh&Ig?g6!%3yv9W>Xl%B+eP3=f9Zoo}pp9CV9 z)epJ^MHvhwGvhi;IF#4#6_8k8ESP)lEU($b0Hv%@XGC$7z=LW8s~t`MpY&q_nGlf( zWc;MJD;hvhoW&22-QimRfDW&(=uoT6S5)Tz2>q78nOwifpt=qy=F&l>zFXHeN1?Bc zxauBG@4G?rYX8lT(xlDv=(38HMiI%l7+ol&%cXRLoK{c(UMjT@$HZbS-m)eXz`dwQ zUXlb}#vaoK5WZSFzq0!v4lCCWw?4b2|Iy=S6)nOZC~%2$mEKq-kLaxxu3O6h2o*OZ zNEsm@f;1*Y&mTu{91)OGDiz$=R!2}U02NT$VL-(=9r?iOoht#TXn~VnmHys6S%qDt z1ZO_P1`X8eVl1MbsAZfNl^%7$tGqLMUl5a5y@-(4>*LbpgQ* zM+!rvn-}S^T7l1rGd@S#SY5qHV;Sz2Fo3H{;%H#)?21^5i7_ncZN$siY6eYUufn)W z(X%sYuoH604OT7$yG-O$2Zi~u*`G8f zwI)YQCUi-(J=)nr5_4S+DWW8#g3w}1(|;J0zTI-{3}B&0R+g{4l!aJ`FdhiyOZggf zc&K-R2V#iG&*_`>9VPt<%j2+O?|X+z6siLoi;*+MOMWb4xkjwXsw=JDxvE>jq$C1d ze||P)P(}x%1e3Q(ttyvY9U|qyUF)rJVX-e(dS{;4%@>Mrp=Hk<4;_v2gaVorViL5* zUQy4mkmJqcm2+1fnT~~Ya-b%qw@N+uD01vzN2kB3)VhB$H zahgsmh;vvslPkZ(;$qx?pi>Zy4GzJRy@rFB)@^)7>LI!Lzs%{I5HmZE4hACB>^M;} zmYFyiyD`G4!^Z&>5x-yH&&#+Cx!0Fl94Ltk%sTu~<#Ds68a zuNr10?HGCj&VmxVR53njl#S67>njc&=~A$;SQ1fk^pvYBX=mt(frU3HZz#ezTrh44 z45o_3X0SYoang3bM~uVt3W-1M^K~RFj6vIVh!Axa`N(*!b|B;KlBQ@5kTLJxqIr<@_NbQ}qSq7?HX%uD{$dDt_ zFbpK80H~DX3>0?~lNcz7@Ujf#hjq<|*UhiUAp{w=bDaH~X2miyD6&W115NH&{jwF^ z0@;CuZMSYUctR&vtWRGUynow@6R)3HDD*mJefVC*{P#hRo8a@1JB#N1Jd3alF>Tyr z0X}MFw?rYboxg=3G0ML8j#EcDE+QpBSpLn6*of52B2r_Pjr6i{HY)d!E{2V4<7`x4 z%dyelc}Q;C@|`yvtIg4uY0e0NFZ3~^sB249Ua^5IsVP+GJ%1;^M|vT`v&oACPvDEo?-mgN7Lk06VfX9 zqO?jrRWS4gky<9Pa$TBO%@CXXcU-D`T9~6Nqlk0mLW5VF9NCg3Ouh~9<;`oDtV{#4 zvhSjQ6+2SMNSl^nDJPSbc{J1T;*Z-W@FLB>QeG6UeHxaW-b3&cLW_nn8ftunwJDuP zBc~!C*{&SFgr3drx=c)Vr#bgHCNN7<%YGmmOYWrd4O_=@I|P}7QF4&m{p!TtZ)I{j z5ivEnDj1As$(1iEsJSe;j*bWUfLucc5aesDgZ*^>^%QReaTe*gEKlkKS)ONS!dG_g z#hHSgfNC%NP1KCdh4@ejGy;7e`Uy<2b2>A@5ll|x`YC+$gtQMMiK#s_!fFD19v_W= zF+Ms$EYqx9YNl#h*^!@>9nt!wE4u`;{TVc!;Lx;n#fdi_St#^4X8q&6ijnuS-cXmE z6f{iZ;D2kaG0z`jQ%T_7Wkl^Amw0z)d7fK`Be+2+x+J|IJkz8Xepugk|5Xc<8fnJ2 zhyJM^`)l4KKhIyoL!4Q7#vlv#Gsyn z7f^YQ-^|1u7B(-wC`q}97P3hSLkp#&*WdkUC&vm}JN(R*|0TjPPM}v|%ON*Z2R#kF z0R3ZpW(rMSGMJuKrObiH!WCqCQ$WT|Arbj^3RVPLz<5Yel_O~Y;~}boKtlmL91^aw z`4vJ!Ws1!5%;j_W?$SfsY5-Z!=vG4Bcbx{pwt3q-LhkrFWBhR3lNzUX#`}q@W z4t{$!2UiKl(Ot)&yYSPZo{MtuDWaZlfm)Bo4nHzOA|M!i|B*gNya?H$L(r|zuc1G} zU~MpYxuVaPk6vy(i;KHZ=|z?`aV`s=IG1%vU<4`;GmP4wOM(*QSP5w$3-QD2YC7b` zs->yg4*|rpMI(33!|7`ow_bBs2I6M`#HT46c^QZ^nPAiUxHDTeGG-vo`1J+sMkmIv zk3sz4de3eK;^+X0dqf2wUMpuZDl{yj2&E~~0SrK3 z`%9a{4ur^9Hz`JXi*y3sq#$chEjxE^X2!*Ghp>v_4q#hvLcfF+|9Z<}OCgt^`I&AH zb>e@YEd`L{daY3Fj0)+v$I4Bqfi>6Oe0JDmeATt|NMU}9RYamvds$Ft5)?&rnnfke zBLb@9e~$leFd}m~kiKk@#57&0V~7W&|m- ziv}FrwG|b{-D@K*={HTAh;s!-GGkN7M4KX}sxGULxC=LGlFQcMbf!Or2n})xs1vqz zBl+7~3tmILz4O|%LLH&5%xn3NgG-j)k^ZD!m@pTwTMc*Y-+o%d<0ZR2Yz}R1HO?RA zHYd7C?c$G|yrdyY%e{-Tf zf7x9xR1LR^_)7E1tuCu>VM(z#=y`le(3I3?nwdE5{mSdFRJd}vL|0{d>v&xs+siCa z>)2|c1XK$Nql^&H8a0!zD}5>6ldCJ7d>22`Yqh!emgRvYw`5lJVzsGv!0pvsNAW?= z(wBA-x8pyDWKe?bPN~!vcP%d}zf1uJ_%k8_`J#}Z1{w<&cR8`4C$15sbpGSTr(Ocx zOpkKT*>pMKWU#VyEm#4;U}edrSiww$One!jBzi!A>sOhZO>M&p9SElZQlt!0PESAz z*Z#~RMT8k$qyADTb(ENPwc+<_%0*$G>VSX<*!e5B-T6fJ+YeeRF zb$qC`u|B;Wp{=6g_1~KoNPD$4_GwX+&@+BU?GT9>hjumN(Bf0UNTVyf2u3RHr@+YA z*GD2SvE}USju;;=j2D!(e#5aM{Zp>*8A)4+``NyylgZ$IGJW3@1D$~==zLn>$zI1j z0ce>@Uj|Mo_%q@O{k(X}c09TED)VM4SQ7$Ke!q_o+M(X~xsN0b+M$oumKW*_2##Vn z<~E=h(m5yn_w*xPyJFl?ar;LA`i`tC@6c$4Db&q0jESlhFk2G|y; z(Bds#y;v)d@k?hlf9ufblH1c~>*<8CboFYu^V;nXV)y5J#SyJDR>>p#YSoL^H-Zjn zW1J9^JQDMZ5JZ0dsK`!d-5R@tghAuxEjIbU8bF?6TUJ$+Y5 zk>8u__$E^%0Oe<<$VbjTID;7O-=1F2zxGA+M$%5foosI;2z?j&5qpDcVsC`}l-5Wl zFPV(qlFSr9ire!2X^xaPj$QP!*adIcR!IoHxFEoGXb9&F8z#@Q4U?d*95hTA=bE=9 z%j_=;O;QO@dSXpkn^sl2qPplc3`VF_bHjIT=-+ZO{m;4#w!8N3cvvGV?{emeqN@&2u$_T0((X>MLlWqbA*JsxGOAlzrQu}iPAe%jPC=%#%1L7G2|ILj3> z_6Ars%OB9ul62#;^lxu1{MC$YgaE!>G>6IeK~H5K^d9s#*fsN>%4emA$q@qh)}MzT zh^Yty{qhN7WCo7+fD1S1l4F*4DY?9gdU{6yx$sNdGTd^mUKlsqXBV!9XH6s*ug2WM zk&C-#>4iVC`4>YjR?ox0`Y<8Ju}gNUP?!m;aj8gy56#QO)v08XH({u7@FtF4^pE`G zm>gjBWi_|8V5*Mj)rZg6*=^r_J>y?|*G0@-Xn%v(J zXZt(XcI>+=+uzy3Ms#1K%}fmGKFwx8OgF(~vN7EkZ898R(SIXeglMQ0S_}OXhTz1Q z2G|$UeEDB(TQrZry&^6Q#8DFTVQ^)}o~G@?=ye!B5A5s`W2=FT&hiw^9F$OhhHegi8RJBzH_qwn z4(xybE`cRwou;v)lVolYU((nq59*8)8#|xGfK85Pb`xs0m9tdZiWLc&u+GOk+Dg=&wFXvmN81>nz8c5wf3vp_iJbB%XmO(bIqDiM3l9pDozSmTh-YW!y8zGFZn z6j3WwBEtEvZ4i?mJB2+Fk*74|ns-y(dQGvWy(nKplC{IjePv{|qeN}P6Bc)ofIv`* zz$9`D{n#nS6szVg-4NH+hEpY04EMQUqTjSc+3(lHyk?!-s+8i0RjF&5-CY+WZ~-P0 zC~4K%zvWHc4?eQ4a+aE1y*{ZQ?5WO-4{`lq>t)7=uDl($E& zq;hpiNw2@R&oQgAb$&r&wu`bx?v2P27GM=rl{(v$%G-uUEE$IZUSHdaVQdb<9GPqqt*X zlfzeJjp~AG|FvJ{;N7K{-=-bB3v%~tBk8b!V(jG@^bG9a>?MVouuta$5@;x~YpW2> zXh6(F*fUB`(MSr7MzThOWQ}GLZ@~XnM)Q_(VYyhO(MoibfwW;8b~WyH73sQb%1u17 zjxn7wtisKij;nxS4n)c~3q4d2Jw>8avvJP4yjW}Qg4*_Fa=vfwS2ZG?enXv?GRu-e zds#fMDUg^~P@-=5;e6Aaybd42(o3&#iKfq|j{7XOsC|L~WvJz&X$&YkXp}XeAvq|x zPcWb}mnW7hol6ZM66>Dj`2-I}Nmz(VkzxhC;oe@ytcuq8h520`p(AlyQW|IN2=`b4 zyQp1Km%xJ@zopS|ep`7sY_jW6{NP}&Z%#nqu^4g~OHvvvIXRYK!iT^=Y6yFT`9|Er z*pgXp)IWPDc+~mG#tNC(5OAPkWktr6#<=IuC8jjp+|dM6x*YRd;S6h#ok9JZ_^;SX z$N?RJo`$W=>o+`I^-eWGpl>|>nq+Y*VzR{%6C*IiG$9y}z(Lq8mZbCl=E-g0`-C=%Wx2Y4XLTecytuZyHo){Ge%Mu8bdy%vqzu8^UK6=uS` zP7vmyFe1d&gbDu`xl%U!vW)TUAFn)Jx>at*bX_>wy=P;hbp3T*7{A9M_BFLB<)igG z(*N}|SIU4N6Z=;$Di9+QCh{$1In&lz);?00==2F3k^8coiF<5HugC0Bd4)dg#ybmF zb(LFi4b8BkM9?!CQVM#Q0@c zGknjCYaJx;2NDbM6KE9L06hV{4VS}>@UBbpEp)1Y^z)`$ld7E*th!YHbMpEDxhu0W zBsy9B^ItsHJHukhnen9WXx(~sv3^-uh)>oIP0aba6_bejic&sw4}trH+~_)q#d893 zPeaaZ&q!~b2)M0+n#?YT7T~k?H{tvw=EA|udW*H7jtL&LGAimw{4+Iqka!B0GAVJ) z-nE*+Ah9EJ*=owf5$Hyo{lyGgd>1F3jx~)})m)TwQWcYef-6lqF{e^L#21n+ouCGL zHa%piuDJFB^wOF*=zIh?=f;Eg6l~t#j}e`WYpZGHA*F?SM2Pa-R=u^7M_7G3625Xu zc7F78Gt=otPce;fNUa8U>z&j%$c$JG90MiFMaMMC*?A%F-6Q)3 z^UW$nN-9=t?e5x-@is|OeWcc3qvwm2*sBH-uPDOt{4^@Iii+2Ke{wx>yF)c+4Xa*& zzzdmp0(JgA{l+bO#*~&o>G1pG<$I;=?XmKGcB*uW>iv_eivp9X_qm3W_Uci!sSnf* zJIyFR@XD$En#v2huG|6{BLQK!y+a4DDgO^{N0J?_jL@QHfN~- zp{{?Uz$*}cci^KxEte*AevQlm)5ZcNQL=F5o}mb=dN~r7<6alhfBWI4*ok{q^Yh+> z#jq2$Nd>OxRsDZi$j5OltrHn}GF-}Y@q3EBHg(vB=qo2ww~E7c^XQxrq*n; z1^W9R<6$%{q6rbkLolM-Dct_#nay{?iJhqe zOovf~ghmWfo3MFSv@O>n!eMfsZA*bct}_((hqV|gw3G+J-Wr!T{oVBMZ@cN$ZGEz8 z6vyPG6d`fiAtQCXiq^cVuUb-xV%Mx)vr=WXn+3koo={akiSkKXBP`_3vG~Gyd=qg7 z(m*$5&Jmq_jxdmD2GaOQGKEb%E|fhk1xv#ix5@l-oYkQE*gv$-KR53lqmrt?|?+J=eq72WLic!XDkh z9F_nl)IzOT&zIp6o}1s5${g0WMM5`wSgqV)S!~uoZ;w#=+q+-b*U^vKTqyxeUH^ju z|1-?_iR6TQ!tsf9e3i(A_!3LbtZp))FwEm=x@wDhbM=hHUG3VK4}#cmbFN*2qO`F* zXt45ORA}r!_TG*69(-+UpR9)YlVp4eO5#F0IH$7qv2$9teDXOF_6C^RcE>A94kyDE z98PvX7*ulMEWU$y8loUO6ld>_02x;9=-??%QOyaXva9!^5hkjH!74tCIUF0iYZXg6 z*md+^WKhL9*DE|tZn6=3OkbnS!{qX2r-gs6c$%|C=B%?5ys}^Z*Cv0H@&?b1-J9X} zHTnfxZ@H;OzhQVuy+|%B?_4tIgIk`B#4BW)NIV&NsM0|R+@amv`D$pb$S}qEdIW~c zov&KU9Ir@(;E%a*M=KjQwIsAC zj8i^)vb!c~m!tC8YGbK4|A172&V6Fw##@em_bSdVne#@bIPWzpHRj8nw}4`f+rPAw zvsGt0gbxyW=FIPAY!w(@j6Dq%&Mo^(AldsP2+3}L2BJ_HAaj(k6Ap6n1}A%FgOjQd z2K$?sH&Sk6DNy_6wkch7>MC{S$(Wk^N+dCM@FMt}ZEhQ{Yl&Wu@R1s`%eM4EU&Y*8 zIzBwRtUSrHs3bBu2z(h*ez!$isJS|bu!JRX)Y0=#ER)Jlcr%xt@G9_)~cZABsQQwif?k`=t zPpQuRZyywNe9RrBXQYosoEx$idvEW$8e|@~7poCNkRU!vU7TJ8i zfvH_@9_TgDq*RLKYX`QBHq{({bl&`mhFXQhKKCmCAls^3v^h|*@2R=}_~nh@Sj(!# zf!w4ht%K8EFLNFOpHRyj2IZ77hf&-)b{In&Pzz7(NEi}Hp;W`fqdmS-am07{u2bMN zG+psWzcD%uc64!IuPW(bb!_LVzKwq2jj4U3@Va2c6Mep%T4?D}K zlMkE69yW1Vzi!H`mN%iup&2B2xuMFc7>fBSYVrn{lYeaT$$N?jm}CO6>V-FhlTVft z8cIz&QIs#H)wF?cLf(gojo;lr$BXOpR?m5FF)3hZTqDs7n3#*fS#yoguB|&V_u9Cv<0U(#*uv8t4dg8}wtK6?`d^qZd)_ml##g@YVqK>SWe0%LL{4_G6cZgCLq0nc$|2N&8A;`CE>I81dp*{?lT_+rJ21455z@ zGrY42+6_Gmy$qdY@HdsCNqm~4Aus1>;A|)X#7;T7nxQwG>D`vop~`CDtSUKY#nKcE zywwZWf}p`w0=(4^F7j3`bS##67v=$H<;gfJVxqHh@tSMn>il~*GrmghfKdU4Ai!6# zA<9SB&%nk0=E}93o(q;K_<6v~@$!>nUXF=H_RH0*mz!HMjh7n>jjmyw+=FlaZYn3I zA@cgG9=vHG#`w4et58A>qrk<1z{do4&IqSZ%}A#yt8es2>L4M3oKP6L3wn6sPPi%N z=CieN=a{G;k%E~7UnP(8LHBKe= z6aRR_mxXmU-MK8**UVsSyw;!`=2Mxm@qebJU~GJS?~X~@K3!vD<7HrMJZlc51nHY< zZ2Xgr|2JDk#&6R?#&1_Lw($b=3Upzn^WgtK7y~-f+f4e&L)})FNj`Bwdrd8faZt-)Qh-3k!Eyp&@lxVLtG z{b0u+Z1WbH;#SASr9m%`0h~}J)KdoZcQB7D4WcUHy$wISVby{oKWd<3#)dhoVe9@K zXS6(#*R=opwJ;at;MXa!_T5~MbRJt5r#^mu7^bmV? zK#`q0I(FS9Vgr*~Q}$Aj$XGLF(us^+5o7*iburjFV5U$9Fo0fM1RMhaTjgVy_>F@A zrb!vBvCN&toG1Dg#v3^J%!?zE#z0-Lz-HoOWdHV)yOOZ_o6)FZLWkx4HFBpjY1JKq zvG-3e;qjfKdz;=kyll~tAGFX(qq`-x3byP62PA|=Mm1V}dO@8=G)E#Qq*$W4%5H}P zExXzu`L050MJY@qbY8R5!oq~IkSDN;3 z1$L{OYAnZD!>K$*qQRq+7{xvURNJ^aJR@iElKGthjJRQ8&nCjk@hHNka50UZX4}Vu%MuS21Xp#H>(XsT%l-pY2@VDIYKeU zf&_E98oBoPq-Kx)v9`_V??Ur7-uI2fLCruG+VP^#Q{ob91Hq!ACn8P(&jV2M?%t(~ zpce-jl-OC6_{_I`(5#iulma5*`gl_-y>>0rKUTUaK2Pbo?PdlcgeUkcAQD)X|McdU zZ>JIBEjI)mmPH5i#1f2r+@;4=YI=+#EzCNzQlDi9kfB@s1dp%6y|shW8&q^|pR4QM zgyGG!#(+bPE2b!wo;+*u?J@~I=h>NikL&@M>F! z0l>^#p;kFGalA~VJN^3r+pM@l!Qy2>xdP^h&)nl*RL^SUl<wzjg{E76QDNdccfh8Lw*rI-S7u>CgnDc{-)TDY*4Xoq)EFam5n~81 z3o6DTyp-8Mc)`>e<`ocYjl4?g7{J<54*I?A;5{7Vqv1R@56_$jf95WYR|@87SKN>IbA@dooZ z+JXm;ui_Pdj#7ZConoFxbhP8$IJP`pft9F(CNFW0{?-o-T8DsPFLo3O@%_|~0KR#g zWcK=2<#p5Z4L9wZ@XBtO1$inUcP%;kH75gXia}hIiP?eXp74}A(Slp6$_PEqBl$u; zVV0TX9TO^g^Nke7-)6tD)FL+-DtZfb1c;7xxlF_P&FJrs-yY5WF$j$`<~$BlO^oJj z16V|Vlb@m#VnB2$GtC==R|)mgg5P?je{KcMb0`0j zabF}_BFdrp@lNDk9}YXlD3+Q4FmRDS1jliC&1I zbp^SC@u29F8EY^{n+0gmsZ%Sxr6bA};76#l0+-GcID& zr|ze~thH@@olw)m`UsCCz72fj4cbSHg{eMLo2!9N@~;#paq70loTM;UP-%fqLS;U$ z1UUbk?v=M9J;=|IFHl|jUb#HAQ=W2PHT2mXJfmy~R&;#S(eoEw0o=o-Na8XSqGr@Bz+} zlF54$oaIZD!#E3}6djLe@{F@s*-YMV-1$!PnU^wYs%v$rP4y{j;`dAOp89R;0@dqx z_Yk~kHnF#DvWie(y+hueg$?ze0I!mZQoYJRhG)dRYSx;VSJ4?#I;Xm>EZM2j1fD#` zr}Ab;bKXhgQ}%wm#yB1>MaPa3p$g<#5o7}L5%MXj$hgOT4d-Zl#~2hkcL9@N>8;6XgDPzpULDc-n-woE~|nZtSz&zvStgX?lB9t86=+JoYG+L@DA zv?+hC7xw>p=;i@R7cl){Q?_A+j!d68;{ zUz2bd7eAAYoyMJ^hFiONeH%=&Je7lMH-GX!;rclvXQC5p4eQ#ye5=1E=b75b+G!W3W^zV<1(7|HZV9Wmkfd93 z=aCfM5`o)_XDV9~J$fY}5Aj~W{TSf=9^_$E#_}q8eHJuLJhV9ff*GbmtYk^FTW?tT<@B5D7(nf(VgD zr7lu)4=lV8muNE3KK%EMU*WJ;3qho;Os5C z>I^W&v=4??P(gw4%H)`+%DeTZd3+S-QBr|Yq&nkBjIWNd&_Pmo9UUDoyRFw}(1weo z$Z=R2>$iA_cke~gzZQHVvIBDE)yvIJNcEY@}&=gR|1s@8?0lhjz!^%Zo@?O3GLDYm3}?^@Ehyp&3nWViY&l_9p4qSWMjuMzi)q=Hi!Ye% z*$fE-Lwe4iBY!~s3=tzY(;YpfMm5+aR}`gtH3kPBBFETsU^ifhLgso0B*ySJDB0N& zo$bcbSv5xq`)&?+iN@s09{2~Chr_}lC-G|>LrJfMkr3}E%r^RomL`9=t<2!kN%T$m zRouK#Yl)|#?D0*MUtty~r1t84+bk}!;?VM{H4EjGn7^X9%;m}{edFB;16zvtF8^~I zdh5-oUaB-SH*e_3^_y=wG9MTef5xg_4ATs|hIP)p!5pvxAPAjmnt< zT#%iA^k`{YyD&HS!pFa!xAsAiP)iw2LM}-Wk!4$&w)|=b-%+xtAy~>Gh34gb?&Ehe zdx5nGMm|bqBQ?kdV22o&h1iGmp!zg(dIvstfcf6|@ZVcgr~wqmd~l5Y;6(BV*U&Et z;tnf)KfFHMBNJ8zYIgkjr^`ycxpiF?OQkc)p4il4SIBIIQ=7J%wF+Kd+YPPoL-T~- zLzlXpIpwdvJ*9tZfbVi{f2Tp^G#eyJL(8naO#<+pH<`*it3w(trz1p`x%luyhf%>M zTs56bbZy>P6(SqgrWP8m|oZz#F@;DL3` z&b~%R2mH8sN5IEz6=oNn`stT*X5CqU2`Qsl$RR0m?Xg)m{b~nC;Vqq67A&PG`s40> z&@7ddHMqk@;g$(S^xKNn=f5JKpwu8f)+0N?m!``yGa4?03wYp*(}kVG?xt@h)%4Qj z&~G^i-VhT+!XbjyMM(7x)>zmu#tIR4R5a^yt@?=HQDQ*PeQ9bsnVm&pc|mHHHMn3_ z4aG5e2o=#%pYU~O#!=iBk5bgX9SjO9e8IBa0QN{Qx}JQKScGha)n4LDc z$1d=@!f#FIiJ@>2{e@#>M(eeLWXlbm4d1QB6kXMHcu_o@Cd&FY-@K(zDtl<7jF)-ON_oFX0mED?zcmy1Q1 znq%kd?b^u`cgcCU)nd)ox`OR$kq>YYyy@OVEJUUwbD^RGdchAnN>X8L1xYK@C#g)s zFpiiHzxQizH^MM6632ju3^=CbO&F0GLr#ZGcD8Tqc_M)fB_HdeS+1q~vO5aE7J@bQaCZe0LJq@@6)V+J(H9VJ>xH%MR;>A!mk0=N_a}F?LI! zpRmAG%xrA*hufJ{tU14un-gv=aaSamzIxy2EI(WfV=^)8*T2Z5fEb#^IhAx4C-Ws` zai*3bSsXyhsh1y~?}#HMC5>Z|k|yvmS=_nD$K#IeucGca9~?t|Htw9j$($21+D{De z{yi#2iD&qLQMN%`wTyr(CddEJZJE4V8o!wT9p_>$<}Zqj=GBi(Mr@^!AsJ@-@;5L({OnahpVncqsM|<|3OBLJ(E=g0gX-m8* zitoMpLLkFmLLK!1(u>SP9zY&N{)gc&{Ho%walDzQ#6$ZEsSuJdY(_)KR^Guth-I^Q z$D-u>sU3^6OUI5O&hZO8#+L3*USlSB#bOJ5jIF_6-Wa=+2mCg)Z*gI$v8|9xLU6=S z;L~XWCdkuIr-_M4>)_LAtBbTG+}E?DyMY(`+9#_h8GJfTz}&$58~Cvscm!c{IAI;& zz6kOl@)+{@@EdLfXA}!=uB(m~`CY@TtrtnOn~Yt>j`9vr zuv-+imR-{pJP9lIr6tJ~`|}%mVikMcx~>36IP-hMlC>r~9-iONROz`)l`a}ur4x}Qw>6}c>2pAt?(dwpG5Q$nwN^*l$)_nV(u3Ru zCu4FBHr&efs5`Ey4O>@Y3pVz($>CeDq^~r#d?T-&2boy z!iIPhp5CKE;grrVv9qj2%d~Qf4cNIaHO|{7=X&X0?rdvtKHJMx;vIE~=1BDmnFf2q z(qhO4V0d?58ZRVq00+hmC64lT;D&k?KOZ1s!4n2C4|dKxzz@Iw_C&g=+jgQs+SsxL z_Jw!nz`pQ8(&w=Y=`OD)Tp7(Snz&47Sy(n)n|G))mEZep!TRW1y8$qmqxl2$(LCd_ z-(1Ag$*4r1Exrdf@CO!zOX=3yvAENIG3N($wLh<_GFe65!0f7)*;(1JKVK1T;;kU& zAS;m@k!MqRPn{v{r4Pq+4<=KkxY{Jv?C7P<^&~@@oGeAmTDJkxv_sN-B7ro4v0|}s zxHcy50v!eowj6f8ka)2+X^z^+caI#Ij*Uf$%0|(YM4JmL{nkT9sM=yy)oTq`~Iz45q% zX%dyvIoU?!8RR?2UoU5FmRavDLy8j#VMt;rt|%Uoo{S}i={Qcz6AjOC=>i}mIc_{L zJZ+@`NcZI+0Mqy7h5+!}KJJ;OjMxz*J)=%X>Bx3*>F8W%EFEncWw$O3B1Ksjjf4{)fDVmGMs_O)-JZ&2&t4e9`MgUTEL zOiR2$eT2C|{a$BwZx4HeDwmU5<+?T>&*HDmdAc^TcKSsgp{}~<9gNY14oN{5xHR@DYrYEN8XX8H1VRp1Tq6It>VDcX1Z&%=QG!>fT&3f+*ITIc3-TINv zMB%&j%$aD0@7ABWDaMXTFojF|yd;=1SwfmsApy&dLso^x=?HYZo}Wj5dl3wpxJ1M! zhG$TAA47uBZ^_?{`~^9U=8f{Q6KBXa^UKaypoW*7SKTyR`1L53gw8$8Rn-(03S2cV zH<#G7aSWH7$?wB!i@fnm&e)UCgNK}RuGy6&^cjh3YGqH3RIDJz{groBM3s7{iGKeo zT!CWlsU-yU2{Ij7fE+;us0wYpG@IR5??I<6!=-b>C2|7JpOddRvlZT!QC)F%+Dco- z{fZMtzmcvuzxu~jwIYu-54p~)+Yybvc15o<>CigTb!MgxjU#2}|3e<339pI?)yhhg!Z3nRZ<^Axo8aCcBMf;E&Gs6chx2i@hgR}5s;3DT!X-W6!GuG(+dt^Gplg({Cte3@~xkS zHY9bGg_pT+0lMA`Cnk@_{u%Lszc_v#nSJ2r2+yTTFVspe=D3Jv-{ zVto4AEWV1PD9%&cR0T&KttqUeybrw}0j1K)Hs4-{#vZh5ge1Ce`;L8>+)|q>wH(Y^ zun~{cy?fNp3A<|_YQ@+SkmjtS_A(QkMi)5?sU}LQBxk{E3syJrmvSF)KzALck~{hJ zHDXkzsNS?G`pNv2LSD73$%=IbxunKq)M$(*4ap64V75kC6<4%kKI+>P$&=%5FNslt z+FHJyYv-t?96qS+D$8U(>!!6TQEq$5(fu3be6fn}M@167(jpdRH#TO=HCcK!=HY9l z0?oQ@3Sjet9@hJj&E=b%_UOvgTA(v+4`c$2M_wWVNd%!cxXFu^Tx{P3K2C0 z7XTCrtnS`o04PmisT||8ka}tEomG{dUI-|I4>%%KzU(`vmX#AEUtiF-{LtbVt_pjI zrYqtH*pDZI5Q90JlYZRiqj*ics*9t@$K~~I6 z{-!3s#*%Ns+#-!cAX|UW(bA4Qk!;O+U64}5&vS9|AK~z7pQ;gnh)*f>8X841VQ%e> z*GE5IutEet)MDk{MygH0ph-<~0Dxv#Dky6GTr__}LynTh4=%2$;oF4tNib%~cSgs*beGnW9{lngcHxhNVA037s z&2g6&C0!U>@floU_Vi+gY`B`NwbOA?(Tw@Ny%m*S8X9^ppA=AK%hyNhSI4<#{?U2U zJr(vaPdS%ChXitsijT=l18R`ZRLlx%tC^eRJy~YbAGf?)Q-i~HRjzb?|C`YNV^J{A*s7xNYepB>k3uww| zv~h1mNiD-TS{g8bajJO?xhFICV-%tf=BU|d0w%4iMwLt+#1 z9QcKda!_`6LXQ#JJK?o-XP}S(Mi0oCljM)4vbPp<|$w_X#FKfXjEE4(Y z{g9h#9ywYFpr#JcGz7sWd};1oRqbf)Ilm9bg~l6u0^U5WQdUKn@^$_2A@$}~3`1nV zs5RE<+-;-^GJuNYggdb5)=Izt3()NA8*;cJh5|&80wmfP1yq&GvS@0`?#e24ugaXs=a8V||Y z18ZoCljPOF(C%cCA7bVh-w-h?lQApjVyQMxG%-jW@F5ShC&CgWp5QMLWX|G4%lm*M z^9cgj_r+!9lz;?oJZtfhc{5!Vt^hFb91rF~{|DH2y-&q6^&4%fz@bMQ3IMs>{|Oy= z-1{AxygG{v1E$@Fl0uj~$QbMH`0#L&am(aK)it&eBMh!Wkj{TnAV9sJJR z{??X8rPNV$q!wUtb*EQg&8~9=@0xT7eJc7Y`o?;Ss*p9=v5pWoW@_{{uDuDku5cwo z_FN&^%*8Qrb%gJft1uT&1`J(OF3+}Z0){SV@A&+A4Y0Gwi>Y;fwE|jMB(^B^5)ta- zGlo8xKWJwr;uyp*;?Q>PdZYJTmq{tl&%!V)r;y7r)9<(Ev#8V#I0~tvz|=gtMu4}! zyNGqj9^^jcJ@#tkVzR*t=MUjz4jCz8s0KMC)9ddN=+_57s%QP$rXEZ>*i_Mc*f)PO zULRp>UwiyW5at)OV=I~b;>G!c`9&571QEzBi^~a|$Mfq47Cp3(O)wJERjD*iEobk| zpb9Rd!BE&ndp%#IPWE~xaimic==L2996$;cgM(HUheJF8X|-@~Lt~)i20JlZGe}{1 zYZ6iroZ%mVG0s0_vU9IxysHH;_6l9wJdeCa?+0Ak`i5fv*zhDZT!K7ob(86m?9by8 zL3D9sH>(Kq{5+7a&`6U828*NX;>A&#gasByvl9{)(n!e)+d#fjaOAO?#6)VZL!DP+ zkz#wdvpKfqP*(d2z!wRX5vx-)SQ!PJfz#_U(V`zxRVlo&6le5RRV>FzuBvc1U*xue zpO#Qm(dn01#mfdnnXOX9lP|iUlCAs3@rtC1DyE7QtEk`x@7Z5x+&5)z-xmW8WnMXB zUN^o-*j=SG>dN$?SBOc#!c6?NF__#pr0$DR@X;V}i^LL7dMZZ2*TpD!>32>oiBa(4 zI0YvvBogXLr9+!?`55^O zRl@8E%V00pHU2(yMUpRmP^lwj^1+o|o7+`0khrqDnO)hvJ7Hy4&#de&sOp#pH4mmG zxz2u@CZP_7t|J>;8T?{A2V3;;!WqsH%izPAs3TxXoq?OtChzJCdx}eZEfmspKessA zNggFuAxA(aH3oQIpiLWZ;Nhcg)50GTYZ=D({auwPDec?2wufoHGd(+|lAX2q*t}kM zB>;>f-jju`cOE7$E6@)1WFP#1?a3y#?c$xAbS>F32wA!%`^xOQs?1Wk8f$K9`*_cy z#rr_J3H@@80L*b>eCOhn}CyZn07M*AX(~V{3F_;9}P_9a_VHP_liZx>s zn{+8nnf82oOqA54gS}XKDpa;>bKCCd^u9@~Jb_KWJ$KDq?~mzOa8Yy;`7o6S`0$P4 zXMDrXbrO^rMx5~h#!P#r5ejF5tK`|=t33^LfBmCa2Ua!MUT4NT<_BW!^=wYDyL}!< zkSMZ?^Kq_HX!Z1zC0iKI{_d*EqMVA22?p+%4rM29eo}{${kJcfH57Y&%MLG2gFS@+ zi%$iO5@~rs%?>yfTu$ZE)REu8c4URV;bUxjfk?i3jUh-0xa?H0GlUa=4~JIy<5NM# z{xp|NeP?F$sly58-S z>Y|g$rztzgRj1H;e2LlD+DGf!~VGabFZ?7vh%ekAKCCc?jyd5jD^#RBnoUohcWQU0{i3sdH5i&q?a0C-;U(-Jqdj~ z1v6;;-@yq~Ky72@j8*HGqFLA7;kS|n9=kv_ZDKK;Gd|8Cy#RkIh`-OChm9`5Fmp!v zhP#iHLIAE=tK-RyE9#x`L1TMUz^BpG0|4?UxgOKf(;zV_m)C6Ues4zfk^5#&96Vd^ zHkK3cY@Je}Q+dn`a@$~g4o<9ww&!pjXK(}wKuC`u%dJ+Sw`lexS`(v_cPofjtSXgj z6qCi#M64kbr_nUkMh;k+ws`;Ew`*-r>IibylB4tJ5oEIcHQac#d$cxTI|4AIIu`8W zJ+k%{*}A~+^T)(s_Yup5K{nXEa{60iPrm3tX_=9_wU9naDwJuWWSU7s_WXb10E>Su@~p<|n*%OMzqPcV5QVz|Ir6i%I1u;i99P)(etvOgv?>U=Cd zP`yNhig#!=4^g?0lxp==90L3VSV@=3)m(Za3fH)H)#c$?mR0cfaWO5ZU~TDxw~t$% zQ4%wE%wNC^YRi_d-nDLd89S-H?&!RJXO*skr$`vo@|}`EgIXjI7d-T69h>w84B0E% zeRs2d0H}K}CbiV$NiFx&liCj+gv?#_P)BUBtH}?a_GK5lPH!Ct)en4i?2i5@+Os1%~x%ZP<(Z_FR4%8WHYZh7QxxGSa<`53o>WUo+V>tdT?&wqX} zFU_Kuw_YGHvWsG8f1CMx>z$%0EN_2`{2n!pA9oK$H&Ir{1;b5Kf%IUX9BS4Z)82F6uN(PN|rBzCZ)%AU*!;vi`T`<+<_P`6K$F9;A!s+i`s*|L@e0xn1oS4Y2<|akv z`4=5u;<_pSM51WXIP0eTU-q5x6L;RQ{6abuXQYdmWoJ#uw8WuY*ZrDeyWp zO~XLL7D`OgD2qAWCydjbNN_rkG){v~x2LMJ32Pbb7BDVX1yaU$E`gBs=qEL2_g~P# z>T}cNkHASr(R7Fpc}7SdYc}5huU+TI-?=a(`}`RmPOL)~Bd1ffWJVBQxEL{+QCtFD zj-e;@4x>PmODoW5E3^~KOSBwL(=0}Urb=TcLsocko+!hRq(MWHS+1A{jTUOqcx);e zIe2m&S6SFX&o)1fZI{Kb!Pu>U_-ON^!S%A(XjA1|$BZ`bsH$`)jW%COUN56Zo9fvK zqfNLKP{52fQ>ALG-L;eFmd3SeiY)XgsK=fp#E>Lb67f8aL~Zov7xDY1~{bh`%a?aW-CYXSg~PbTHl3<0iD9K;4~n z$USsEbwzb|t`>K>>co1kxaVA5nm(BIs_`It-%=c<_lNhOCe(w@9MuN#i1`(DEvHwR z3J3jXG{Qm0<068051Yb46+ukKvxvNc9Q?%aDuQFl;4b5G+C!IIT8RkZ5HXc4WZ`-5G`%V-Na8QnF09YQKWJm~*m36>#8h|waGzsR&Yy=>Goj!8qtTedh7IR78=Q7VjZ zkv!z3MBOAvDIw^;P_=qE*(4J3$QaM!QyC!rWj^%fA)6#D12C;q>~p=@qjS+ROG0IV zOrpGL%G6y1cY}=37dGWI>vZRDBe$VP@Hx|XbXK?>Rpp=ytsm-XW;OJw- zt9mY3S5A_p*;19(KEYSqj!tiy<2FUg@}xZJfG@8g0LbS@lUka4LQlOZE_>B1DrjSy zee``@%B_41ZU^&H+kGkOENgh&Dp@nLv%z*9(Ocokekm>}E@j~cS2i#SJlO|S=_JY(o$Qv<0+s$PI!J=5dmgn~oYDH+-OrUR{KZ4H#44@`T1o zs^v6@0J=P}NEQycDgkUjn4>%D7(?H&rZ_FKMW?YCfQJW!J*c>)uEc+7G^uzzVUtFy zBzh>*UmuG;6aCcW!E}TOC(3o4^}Ac|M?Kp=;*wb&(c*i){Y2~9W4tPK01ZF$Ta~uT z|I95tkGnh-wND+oNv$T#=wxwQb;P^7<@1(M9Yu!QI;sVlrIWkgf49twRTP@nOZF5u zIjvlO^TP1jJA}dt0j7Aeds|n58252RD!a@q(dg6ZIlkai4WaSO{^E-7CDd9BO^Zj$C)H^ubxwD*@(;&WC#I0KS;BjCd z6M~axsh@*f;u!7CDVOJQAu~@U(}qfZFOOCRjA@zCo6Uv5Bbo8M0#@>LNDg9biB9JZ z1PAzf+6T^uS=%C|7#W-C)pDr1?4|Mc-~VVy~suu2~=#aTUQP zJN;hT8*fi)Uy+A4RCRCH`s-)rHCFG}5FCwMs4+IFQS=pPG;r=+a%SSg23auHJF0?*;ZvpyFia6GmB6!Np+(&56 zpC|uKEJJPvzsST=%=-ctfsCRMS~0MB&;S%;0M$hpKqk;iY}X%n@L*|z_4%~*n-Z+Q zc7dGFmj{~}>%ac?l(rQG4R}R!;>Rs2>ZU*Lhn&%VT;1}yt|_-v6H_K7+Eu1Zv8yYh zOth=_-sfLD4mmLYe3TMVKBNq}pZ@ak8w9mV9iUTgF)2ag!p}sqSCGkf1MJZP{rO>N z3~7cc3=VZmdgF4at%*k|#k7Q*0ux4rYblOYY*bh!*?hC5u-Z=oTWm6xbku}&l(4M` zJ|rgN>%?J{d#=-^H)UC6@G1amg_U~q>bfeH$a~A4+|*{{;iR{4O4D|WRc>$FHMMr_ z{FrIr8xP<8Nq5JJT&$t8^Uer>MRO$s3z3$F#dFofWQnx2k(CgW8ZgB`*rF54cod4G z9Io11pMA@Rn>h+^>CCcF2}KEY%jP@xJQ$Yn@a)y4u|MznQw@LyKXQpUc;v&%(rSsjV0K+ozdtJX^RUZM-;1;CNS;5) zvJ7&<;P1o0T*+9UqAToBIHoa5E+6zW5mz<87=H7LSKpr6wmcWBugqQ0!1&qSF+Xe8 zn4c?|w&;4=;Uxx{O_UdR_$T8I-x6eA4pfV+Hyn8AV965M^s;YWPw_|!qfkZB${I4) zkY{rU6>fzjTbm~=4^BSQR;Dt7ltdwO}JCWpK#(P{KJ}#2Am|bEe1vE(@8SeZ3M|l=dR{G!9Pzoyg^)ou~~aG}TjY zrM;-4KE2gYkU0lac@6Cg6@jHSn!sIaO*j zw3#d~b9ktTQ=;Crr-58o$u^IUc3A`51Co3 ziIiW#l<8as3uc!q-HH)+V!HLa@zCS?oYvzyjy#S0HoYF##l+{)R7Kbrs-jGfS^k+M zNlew`K#)AKnd?>$R#gdcoTVUlN=-F1kei>2bgWn%uIFJCAs7LmY)%nD)psW95Hm#; zJXh%*PqnSLeUYIhSv&=}a6y&`;{GotJ82M08oK^~ng-I!aW+I%z1kruf5gj;Z*i+<3r@XQTaIEZCqRVt6=#>%Ulh)#HeCru7anR0;lUZau!l6N$3G6lHLZ34E{`DJN8Uw=Om8X3 z%jy@Ix&?oK@_ob*;i?PYM|}Mo5Cr`7GxC})qcc>z_LIr|*BfijefNsqLF|qp-_(7X zkl)@W%niK%n_qpBA@EVe3W7u#bsSj*eo+K+7J`#7{v~Q!NCL-?+9|q^WyS&2G2++1eg07N$pd;1swKo2QKIJb zZaTQN7?r;n2q;OPo2;6>b9Gtp-s7vohtU-WUwj)a=!!n@<@A$>R|RCku8={qRHIVp zu0wBJsFh*(nwYNq^3M8C#O++P_yDig|K+h&K+ep{Ql8-*cY#&#yr2G zMxf1+p&XQo^p;L9FmZ7HHrvKhliX-5=*)LWa9m`r%c)Zp@G2Xlzx>7Coj?C$&h#5j z%&56BTaA0YIHnY})VWFwN{SCf0IGtzY~POyvAy#m*H5W7&wlWybPuob{8@4~briV) z{9@$qgvTGLqw8euyn$(Tb`EF8<_ETh zQSEDiLe?(Z*OZ0sJ+WHha)oXBJt+ByC+1;4-?#JUe_%h8U&DSTD3*W=NfB4Cq-XEd zL4CIO?LzFX`LR#6V*TrzCfP7h@yi_@C8g5}Ok7;NHD-;De1{arh348Eg;C7KFp;tM zp5G%ll8aDe3-ux*LhK0KFk?pW?5Y+#S^yLpcGKf_@NvQ+HL6mA-!Nzck9#OuX{t?! zR}2~f<~`tZQ;<+AiLjF%p}>U?C?v8+-=bF;afPzgt&x$@qZX>mL2+w;_SNe9kzw_spBT zZ+hYE2R~W9rFzEgU0DS19)E6ldP9*zjwz<7t<}EbT`~nV|Cw%xeOEM>?4>AV6a8Mr zFwoCsBUk)(HwE{o+~Y%ONI-qmMXitQ&E%m=tuwi z)rzwR{3L}6^_!-Z*z8tZD61mOaA({l#9CV5H&;aq$qAGY*#f_LFzrVVrupXJd)qyu z`s^2Y^8@}s;zzTiAD`-dj{fXjVS{E1q@Ts;?nNG~slQ(i7+MWKI)iPlRm)W$Qm;8B zOZx7Aerr$klLcIdUg5;ycfSXn_VCJYFDn+fh!Wk*jf>hF_dPvlP9uEK!&Y>p-X-wS z7dY8E}~?qz9Re+zV`A z1D|s6gAYgU!+mXP2v=p;RwV-1fLuYaW(a_v1nh8vj+0I5gSu4k4;o<*{HvZ@5tjHm zq7VKdZebaTbD)i*t24;G`h-GW+(7UwlqH>E%oBHveBc=WS;YotU~3tU;XYsV$CuDO%*cNBr&MN*Wn`)AI_-i`ys|?BY5zg70`|WK3UH0eCNh z970YYpJv>bz1pyvxiZby>#tUXjzep8(NzUUP-|C3JIP*9Yp(^r7+qD3CqapbK}nrn zayt}GQ$t{HdT8^qXRyakRF`J^b9fdlUwu%$=0&!MUiHD@<$h^m_ri^nMr~MT`UX1t z{w3dBS%KTA`pK>D?OQ#UmVq^Sx&pKg?6XRNXjb$cSiY|;gvEeCvw`Uz-h%fr6*Swq zs0!(Fk}BwlcRl~{f`r}$&#v(5+V$Ebi|V^Au2@$EvHHYJ}RW zPcN)^a__y#nLNUL-)3?;briXe?wu+zdO>lBE;$|^vC>LyKo709E~2qI-BCBuHEZ2< zjVtGauOvi<;Vf#%D!;{7QTpVbrGfa!E74Xi8!$mp1sp z!8Rk^&c#I}W#93w7w76`b`3O_i()O^Nzd6#L6cpe4Frn|zFF%apY-T(wR)n?q*KAB zE{~(|)wGsY`s6Yz)70e<=eBAam(BS8uiq@KooM0lm8Sh$-FE%XYz7OvxN zAhWrJj$|0b+w-3+Uy(19&fMMUBT$^6q#g^~@>O5H?6W1Lz*4@6i}ZPDDX85N_>fs9%{YDP6`Sw_9}Y;PtFvq3h7 z(U4)|OTfj^w=%9f7+eIYC)sy4>0VmWbtOJhD~;xcp`z`{)E^t>*oK=bFn2HG(_#DN z@1BnyjsDc&!8EYLR;uA``Ob+JRQX0ygYCd0@dld>=bLJBJKn!@@e(F-wDr*so;uA=qS%9K#y=`jv{(0PMdVJ6>A`$3aE=uYX1%3@_fXlb&dv zKAAyRDVbP@-W*)4Xgc!M_c%ydvIt6PoLCBCzw;68-e&yQlZQ_Q@;7 z{Sz6fJrHZQ2FgkJ1d63Lt5tE=1G&?0JTaqslV8ZeA%xU|;s_rgRlzjo3UpbncMB;B z-?=Dq!<1^v?1z6kIdjePdQlyPBCC;2^lO!W8!jhH$30^73X)G|JEr_66Q~O&`!sVk zYYq+$R91a(h-I$67hh@{CKqfNWUe5?Tz1G@A|cCMs|sa;2_U7po@K88v}XXhuSTP8 zKKN%7_Dd(H%Ru9tw}<6CIaODYM0!$4dY}De)eocXG1A)tNH3ltH5`kP-VNDIdKCTO zvh0&4{pqBA(rBk(DTt#^@ts{$2V%cU&&ZIs?OgzPr4#!)baQtE1ZOQ+<)nN zf+HgMDvH{S&UdU=7~6y!&tBm*ksFR{2l333^ogeWflCeSnO9wN@mk4V8EtJI;Nl4K z0`fZYRmOeCYl5fwnvC~A&;G(qFB+t>cv5aMReF|oS(r&!TuR!Rp~sMaxzNr`@)#0R8tz;&eo9|;in!7jpw*bt zS5677^yNb<)A!Ja--5b87oEXSG|WQ)hIYWar%d#usf&@5W3S$R6K*08SK%eN*gLl;(5Gs@6?>P1i)x+ta$jY5IjS%cEhr*FN~@XJ{F zS>U$fBMU!2d%$sT)-xMw<*e{Cz+H;)Gg^LWa9P0p3gB`-^7paoH{)a1Z@%RCe0_)( zv#VS`bu?Pc!gi>|?61uWPA!9C%zj3Uc|)_0&x$dJhZke^X@fpSjCl~OjEv*y-Ip4y zV-;I&G1FqpN~1vv)t2-87o)Zuk&9`yWp#}@MQs_a8-Lg`I~o#<-tV~+`91PC)N}E= z$@sYFCSPR(a^cyF6F>&Jfu_Q+v?h)Xg=*X2iAUp)*1Q0ay?Fbs z(*BcotgEv~wfk3N7aOpuv6L;i{o$vl?)gUxhM`<0@5w<3vYq-FU}p(pLb8w(aE2EOxWkkJ@F+Bf8rLLJ zG|a{|!6INJ6RH-V;Q%c*2$ws+|A1rTuwh2otl*>5Qg@oc6TiX68^y8bVq(~&)5vY5 zXe9-HG;?lk=KwT-pQvy%iteF6QvVtch{9rAG~rX_42yk&uRyRFCrF=&(Sb#^5=zNk zIbXQ!7gzyNbfB@%YEbHfO&hbl4JDl>N>Ztwa6Gy(`sCwHRqEA!702uFscU?EJ;yl3 zU{e(wd$ii0E95yjjmm0c$nIA(Hwd%Pb2jIUs{Xo;LV!wzzQq;p@X7JKZjYZ761)=9 zN$B`CL#M5{wb;r?zXtKSSbe7_x>qP_4g2KOD*O?iQ82(0aXKNtoc$r6P!aMayHW2P z6CXpOf0lo?p-hzr*q~zJ?M7|?%A1RqMNiLu>qz9y?>^x-3c0myn1koymZ0M{F{i#zigiwriLD3~}UMDVfiG z$+tDG{YoOG!1mLr7l5~l5Iqt?9tXBhvV1tv)(Xb&7+-^tm6e$cgi!EXQUtYWBRlMF zdWitoxUiDLnwWr5ld*AO6-r;_L!3ZWOz@-BOyExkBsE?&5f@K{mUnij>jjSpIU3H& z`Jx4WF{a`2?3&iDh*6hgqYPr9Nvd!ta4sH>mQG#elS|~K0qB#^#GU{!vAVaot;S5- z_pHr3y=G>lE#RgoXy2TO&mh3G(^MXR(QFJOtd^N2US2r2VCy|KO?(SxHK_EJRkfX( z+?tY(K}lUI?qA1r&W(Up2 z#?E>fmm>haD8O!u$`z&6qz!7bE2x<38V(iu2$Z8$6&&o2ehEXmA-lLEH&SA> z+~6m8zJ-xa1E%2P_=J)j8;Zis((Hn{Ts$v;%R}Kct$G?!OQQc6cqK#DkP0&%``mj6wxdiWVjGxbZj`ENBc0IP8AIzeoc?O#_2DQA~PQ zVRW8e7%oS{6x>H)kfY|nqnY7w5W@3B#Ufnf%|opkk5_>kgLy6jp9fIk=mLCjTxJCX z(6>VDoaCQrG;j@ekCCS`Rf#M-EV=~~^elA3CkW`~I4B)_1tUAWp~VRtUV%Y}&szZC zu%op^uG}#_Z}wbEadE)M5DY*=R)l7l3Qgz3(G4+%nS&1iDo{+qzDH47ZH?4w(|PP? ztwK>tF(ihae3KILz&ryFU1OcnDVNyoW{WpeRci8cK{AU)4>*FwTw8)(e?ady-4hzt z`%QL&Dwxm>y?;@p-H4$Q!ZN3R!K}w}G%{mWYrCE#@`?b_09+UVE^aDb8I8{U5x~W3 zPx^D{8MuMIWkp#|I6g8X$P(Q%5K0e#v@C!pumJ4!q*{Dbr^dK%A_xWlt%9c4)CrD@ zxhe`6f6=bv(H$`p0EY}>MeW@t_=pW40l)z#hH$_+zyZ~Lb?t@j1diAC015~W;8^gU z=9$pz%d3H%b82WiPYp4b$g{G0r)gz&`#ky*neIATJGdT4X@%M6keq>^H^lm@} zL7z~#`gWT60Tlp?^UoAuf$zjUvY=io(!(cV6wIOQ@V?&|0=^F@zB^32ewQBme0{k* z#oZr#_M8|VEyIpssTFn%nVZ?z(K3PfqS<6Gd5*TTHjSMJoqYr=Ukul$u`>8`Lrt~F!{;~$|%q1h(0(A!wTSkSHD5Q|QLwy1)WX!=yfE--4kASi$Suen$Qy%PKWK7w+_7Clp2!)A%83LjPvgog zc{9St8P>iW6HETTQT19JosjQ^F6i>-{)zXj^~N8U8HU-d?%t~YNIQ)H!0ZeHXlkF2 zVMPZRH>c@5war&jOcSXut(3+q}5$Ax&F zVtGCi0z6MT3!CWhzbMjX#6H`=z=NiCh65OC58ZS4z$S-L7=0nr1`dbDk%z4nV9o$l z_kNqEUPvkz)K{)p$P8>aM<@=9;58|gU8!!nZ^aB_0 zgDS=k8i)8nN^O|x1|2DG;HTZ-rAs|z!oI?4CM7_A)lRMjLLMfhiI8Vg&}7ITo|p*v z!E*94Wf?SQ3tnJnL_NqXWC`*y@)@ce-#O8>nELYHyXc+RN9eH+yAzu@_BkuPhSTUw zR%3^o)C~L%`Y!?3N02sT3NnEF5cv?c_%q#_y#^hH_xIE#TIa={^q<>yEti>@ zZ`01cmc4;M@)3k=p*}`d3lpNY)!|bn*p|(tF)_TRvwG=tn$E-*HkS#5P_wrJC5L{ z8m<8oW|!YEZFzGTA0UW44_~3@_{#JaGwHFSlw%RrASV?hs1>;#_FAb-d!`?o{j`rK zqHq*MAMef0n6TK4aVcCFVJo^VL0Hl0qkkoNm{j!qjSX_TmRzwFpW~c8Nzm}Y=Tkr} z`F&7JnuJ_UaSdq)|3*eas;;3&+19-!g8(Z$&=dU)DpdN*`k<}7=g*S0)YBkyP$NF% z0NuxAP3=bkDKNIqh2!QbG?*~HQZwepVhze*D4aBmVkv3>NUZMX^cB`Yg$v)tRN=jP>hw>ukRCe^H(>A!Af2-p;oQh=6tJYJifC*rx8 z)@M^K57-m6`)Abj)wKe6_2qi`avjHAELM5sJ{yI*%L`vr>}~O2MY$Hr7q%FiI_hPn zb9`*}GhT@p1y%YT4W)ccf>PMvgefpU;dw>4JP2$!&pvCipyA`sVm4IDFcq{R+vaRn;QbP7{K+dtzoHrM_=xodFEg^*9$#3+z>POI59)mVYgz4#}2jS(81B* ziaWjJ9w;=UWvDETFH6u1`0@a{9VKKGTmCU?|vD_p<*ZFmW^P(a*6uG50%wsCIE*G3t(ak=k4A+!YbLF$3Xvg)7$|(o2Fbd&ZJhBro zG(PEFiBhb#*Ae(<5_)|eU8Mc!&lix9(t?Nd#(F__UYL$Xd~UvWo`;TzHZ$zP{w8z6Txm{YO9K?teYid*X6%pbJURETzl2l#t^{u-QF0KVE=V}odWu< zqNsRvBjdb{|6G3#OQW`{QO4ws3znBlnq#}tJQt`n<|8YR&BzYqRbbZ?+T|3c_0EfC zT43vha1WSH>vtax(&8|JEzAQht|Uun!K?m$0^hmGK1peQelI^%iyvXYC<%XM~k|Cd)t zeZc1B2SJ?w?_qQEgctTMWo|x9O58JpNINlXRG zuqrySSNOUdq1Ld?rGv|4<#b|C5yf}F#9l!|^TB!mO_11In-a1>kQVf;_J|A|<0LJ! zumIGUwFky))Rt`kClns;va0iVk2Pom2 z>n~gm@O_+w+0xK*V0RpwE6Xnyn_4T|KM@%Kr}ZP(A?uMX@vGyp@LJI*R-vqyh}IIu zMB%ZVdpu9GVk|u^s^^eJ`@6b_XGIOoiWqn5l7zh~K#Te5z!x2ey9F$VSU&vs;;};# z`=7Y1$*0)GOqD1SPs^q6ZyuRTby&EHa;7vu?hdB_68k|CiDrq$heW>{pC_#|TJJ?5_|NQ0KYl`S2qlqc74vG^~gypxSgS80@m2vEF z0d1JRUOHHhUv9wkukUB)K2IYrB5xrdpq%lY`iv<>y>bZVe{1~ie9rwk5$W}8vfCZY zDDE2u>D-&mV__XEA;mG&79yv zz}NNkw$;nX50JBPs)J=P)xj@Ot(NQvc1k^7RQ@^mv@$t6(dlADnv-NvHnS6*yAvil zdS;@tpsHgYUobgsu@}dGa$56L9REFQh8BA%_!nT-Xn(BA`vBk{qquAb@aw(|Qti(% zrOv?3Xo_?0^cZSISxJPrV6B*hcvl{Oyutw8FKQ*5$#V!F(IESnUSPaDR8l4^Z6~k{ zP2USlQnyW1?ioY#FNkhO{Y>M}h4FhUlDmF|RTwt3?>D1Gr`lYwZ&&}y`QP}cRTQ## z+hamH66{3uuCey|W@8xB#rKw?7>W@STc{z8zMy1Cqi?dH={KvRRgct6wDK4^KD)lI zo0a36=r|c~-^)sCiBWd=;0z`dZ6_yE-v%~QBYx!B6sryPZ#@Bc(H9%RK(&!j$`A&a z#^Gj7gF%ad|5G@mtv9S7Q=0jVW28NG60bmaptSE!eAkI_38tI-1;1=TkZ0GnbVf|} zkjy2OdnAtk&)#>($5mZh-#&e$>3v4iH7X-bSMR-8vLs8gtu9%v;3D^eEgORyHr1G7 zn`XLgYUmgO2?1UTNgh0s_d-j6v=>MPV_$#g+&d%9s9EyZhJ4@mPksSg2JT*a?RD1K zXKyr*iFO{0cBp{B64H7D2B9(2?A~=tk;O$4QVx5qTh<^sTA|~3*yvZkb0af-R1`2d zXZhgx(XA)dV(cz@cf?d;fu!A5`&qe2RPK%m^A>d#XaBM2w(jrS|ow0R${bjCpq^hV#O5i*`3XPGgIfO*K zbR}6&eGlOxawG`}A+JP`;TUtRV}(mt!x)KN>O`*Tm^WtVSikrDmpao+{_qin&HjmD z!eoCozzN9yCe$D|`Xi5y*4l8AgR+=;pPy5m+O5~}NEv2v>NpBxfmw?4Q1d89g!15B z&yJcbN%#R#cCOa}38S!JBEn!WGZA4x%q;2*V%+wnwumE*vYe42;@KzRj4sF-!pvlB z7sb;>-XfiSUFJ$+G4xCM@?vR%#c1ZrF-NE{*N{pHxY(J$L~}|=gmE~8wx?oX!2{`P zi6N!Fp1lN;`6pu-fTB4QFpLhIHz;$MVjzwtrx-XBv6hz)Y62HgAU7a)AU}=1<-J5z zAqE(emxZ|OmLSKqd-9Uv%ZJS(u%y5ThgU}-Wa}tG!X<^78!H9~xgolwFb7oyFH%$@ zcNP-^g*}=|73Z%;w~fe; zMZOuz4=tm$=>}dY^`8h2(ILsm3&;H#vGpE=pD6umAB)3^0ZMq)D_6JXW?Xb3o$C^{AtosK^>=i7sSi zbTvR`l6!7xXL*f>y-k~wyG-HC#ZBgPwZN#aObyiK8d!(icl!4u!2NJ0xRv6A5fy9k zV<-WjD|M<-pk+Ch+-xjgVDAy~M~6=EZLYE(N{eKNG|haVM1W(T@VnzG33z((6s zvByYAc4Ll_V}?jKhWiES zT9G=;sn;X7BR@lag^Di&uTD>G+rQ26-U4EptejW0b4pg8hR~mylmGEi)B_*R(46U? zAh{IwY1DfQ-pc7a~D^Fx< zL9L(#Aa)($t6`T;50dp~*A#!dq~eB2212al%sOhM(sS&HWHEX9$j z!1qr+OOct6o}8pkB$!!>G2_wc`B9fyw(_Yivo=MYx+m&f9DA8Na_AoITzrSQ(`9e8 z#?DQje12(o3h=GBpLc3HNyW@Gj7&}MzL4A6tRha_eU1>Hbcp)_z~^q{OXM4r7vFq! zz>zZ;u+Bmly>JM}^xRAn!% zodtQa9q$}7fgR4Y?in4xPM2N~z@Z^-zfg#eUfae$ot>-KD6px=vp;!D?09yN0b|Cq z_g+8(=&(>8$8td#FnWv2-s$Di9`2`+9&bj^dIF~DmY|5 zrSBQFSgTuC?Gl8C%x6tLWIja|NMVP}kK`jeymw5a{ z$dE}I%%*$;F|!f%7rtI5T3f|=D&YR~f|}7rQ)|**w9(9JnW!a=*foi>6}1L$WS0Gm z_uP!=IFd=JPUDg>dv3aM2^^yrvR6P zMl#;1iVVUhQ<)q4kt3LF^0%$iA4Z^ZM@Hu}+0G0;;J}Ia;1^(L9rXB|V=O--Cl`gi zPF3aQY^P)M*Ib3#sk7PaX7odu6hlcNMmP#HU^3k}GO(aLHwTL(Fl>Ef6S%eBI(A6G z=p=4M=55WPVpNxM_rRX6Y@*!jT*peF9za zpUnJ%aFbi~C~g3be7``u?y68tb$jsP2D`*H+m&65&aLQ6F_h(ICh~ZBt?2UnqRs~Uo+!r)rJ}+!> zQ>rLP+)&yv@UDVJ10;7b z4vLJ8R7#;Q!Q3G_*@X+70P|AX$*yY$Wrb0bRtgph_@{&mLfGu!zy>|$Z-7!`1OE)n zgJEw7>;GdleJB0Yd{xQAg?+cA2)_B6QfFl}XTC;?G)A8A)}gW{g|_s{;>v%fbBx@w z>&Tl_R*rA$8(tGv7`lGRwoSOnDCJ{>A!nd0ueZ>x7NCTbrk|o8p+AI6-$4z=vsG02 zqNTyx(d3=;wh*MtAzFIysYhx<-A$Pxv>Oec{9M69wZVl|8}8~3CO>$pYI%T2KCz-? zl|jHWt|?Qw96Gzq$)&UkF^`LJRq`~FNE8`}_C+a~949W87KB1v((YHMl6@4~QJ_oa;+TTx5p?uxYR+F@2)%KO`i88U7 zBj=VqjwQ*=*_3c_Sw;E4{mXD-XtRmWSBm8By3%9}OQ{@Kw7NI_HPn>RJ`7jEV( z#3Aak1)`j43L|9+Hd#8CGD<0mt5%7U)Dnj(gZsc$0UyuK^Ukwa9J@+Fd@4g<(pb4j zWtcy|Z;0ZQ!9HGqPZ#wlz^4r0^D_pYb_SI&*kP2C36Ol0pw@#Ubv`q4brhrkI0P$G zfYcyV1lyAY=m-9)7*oiN7`$Tk1qq-fq~s_7fjqFrK#-USg4n2P8HYi}f3r-M8@M0S zVCb;DW!NFmrrzGeB2`)VIDIm`bkhKalkyZ-M!EC*LKA@M!PSM08b#sq@~Xda2C0N) zcf9(8zC^P-v(=Mtl#tx+;d{5|qULA49vMI&)p6v;`oPf>8x!sNJY^D}*n?7kdSg;O)*M(mJd!op17+n`mZT*>pi+GG6*W15c^lLWTt(<+ zbJ=b8Q$iF|SuC1gV|Ko7{T7R?W7Y7AwnVvDn7-_(b+gStCEyq?)H;h&^5%K;6vp3a z-;fQD#rYi`4S@>`rRj2g0yvGMd|Tha4|bjX@Jb5I4!HOwOUbxfzs7N_pp7E%K(C;vmFfWp%|;m7$}fccnm3n`=roW2kEB zimLK~V@q*j^(G^aD;LVxoXP50zjH0@EiOFwF+W5-jR+AFsI0Fep8~WplVF(cyaE*Z zu@E5+8&fys04FHB3x)s~fjBE5LN*oLObCA62`F*;a12JHkvcyZu~9H8p;DhRod9%4 z^NCletx;<9xJ*`WPvX%#(nD4GJZ{Mn`qM=l)2bB*7JZ2tHF>=`sX`7%F!$OMFE7v^ zTd_ta7nigx>rO%YPi176$TYrSbNwxkNj&r~)*tE49s%SdD@s=Zu#W*Gg^A>V6-EB~ zwMFU(8X+eJ)G2@ywF9Mq6E~vicR!70*Ln%u&J%3?kyp>->B~1Y0yG*;G65z(BQl(9 z7OFv}t)uUvpYBu^K1rWQFS~j!K~OSRN@lt9l|-E+kt@7;b#aqQRkXaU>aXMptAUa! zTT}+ETvy-07n+khEAvbOnN(&hY2Z-&Z>n;-H*DSHS^B-Lof#y`K~vqKc@=)E6jQV* zlZstgyCrIMBmK80&VF<_2A3;uoCud(z9|vl(mnUOgR?aeP&)QPOlIl}8!G`OJ3IOq zOeWj(7%E_ zymQsI<>uc=QKBqi1Joz@Ce(AVT##Bo_rphe7}qGEh&n zt9(2t1o%Rw1_*&fhc=aea&4(SA_R69XF;$RH&!eG1U$bV2!W~`i`|5wl10mNng)(V ziIxT1A$HxgpLdQt6UOdu!x~`<>^djHE*^_rfXSJH7tZb&hh7%Ecno;4nS(blg55-* z8BE7IMQQ-vApqXT=PUA`piicj-p~NS>uJec+(C|@x4cEAE?rStb(*Si)m;&gV}j#r z>Ekb*>Xv5+6IxK);X6@j-%~1%mU30!^TRA!-kUbRO_^Z#-BoTEB(H9WEDs5TH!mS4 zA*mu5iJ@TN=>eH+Ii=y4J9`T{rYD-SNVeXTAiu73nw5%}L78K-?Ol zaogh4^YyHNZQeWzT&Q4ii6Wpjv#`}D0c;g11>8qA27Ce=7oygAEh}HEYATl~fPC#= zMR6)~tu`Z$iU+S`r8e*HENBOIF!PE&7JW*d2B+}6k-4Y^I6#3A9XWS}f+T0O5C@&1 zF_oAjCeVpcCZC8S$0<~B=881vvp+soqK>2UNJ>Q0G!^ed+IvtDpW=%T(67=T^ePJ; zEgifqMWnAeb2K!6Cx(X$Ge9&d)=MQ2(Pb@4P3e^-RsYBoCXy5f`&;tyIZLykto=F?O+~dQ>ke%SLUM6to-@fG0{y_3Wrz+R`iLXD2 zV@&EHj3OyMCy(r?RS8j%YSY}xoZDY3=>PACOooUjB+~U8AmE2r0KkhaJP}S3^xRc9 z38*SoP>iA#Co!E=WK<_QwQ2n8Zz@UVIJn-q7PF$ErX&DpR#Q_|u}GcN+x|B$m7t%e z$&>QIA13Us_jE8ychx2nj|Y@)Mni=i!%GHsZY@DK{%qeIXUdR*pQ>5fvv&2b>Hc3` z`@-DfY|Db#t-|2EJxWv?uTcfxn13pIA?!=|kPndGqbAmy7^QU9o1mt&CMMIo) zG@(0zMY$9BZYgR}8hNHcKh{183F*x|+j+SA6Ltw&Nmrm(#yo6?c zwIz;Rg5C&JJ2BpfWNK@KCG3S)lvdU3T+C?dDa{ce_o<@p3C$6{CD$JDM#`?*w`Hi? zR2Z-*iQC_LDT?ojf@tTYh0N9FOT%z-@>2Hq%yjI_zIx&Yn;1(Taiwm$k#iP zMoZboX_PW)-*YlSIw)nw`vS=iGo|dG$c3jL_Swh~tQoFWnXCw=ub*8#RT(tX?a?Jr z=1w(%@&~dC)IhC_t%2#heYcL(KzSqM^<--5Dk>Igm>P)U98FHTEJwj7v6)rD_vzmM zx%!2(X3O*Ibo)%C)L+3tD6oK5fA=yX|^1sMeX!^9?3QeIwu}i5z@$=<9{I|P+ z#8*yZc{w%duG@=Nw_U9bnm@5L_Ffg{+Mr8;^MhTiolb$K+_}3qg%I=t=ety|K*@~X7 z`8(=!#y$pHdH6{4xW{0bmoLHDdOw=rI7gf9PApULP>PtW-cOj};c`Ek;Zjr?kMd@A zhtN5^rPO-}hKLb2sQG_ooGUakI~-m&u(uNgK)HflE&xk<$T6*}3Y@9=Y*tc6Y*gfe zbccTtkq;r}O4&Kqr^2W9sR9=0bD2;h#^x#(Dj=C=FICVE2}$N3Gv5XLF6@1b_!C7s z6WCR7XZD!y?ltB)<~A;ywXv)SE9o3G)-BTLMYa#=^!yzGND|+I8HDXV;rZ#tPs42(BxxEo6W*i6yZ3D<2<2O zk*!Xaq$P!9xoGy)bN7<(qAO~j_+uYdln&&AuFw~(&4N?Vwbi+J28Q7(??{zA^K-82 z(W-#OXOeO;g2a-`l1S~+)WnQjm1yA-kPjP1?%N{Q78^HNWSy&qSHk-?Y$^Rw(&4$u zcp||SJ$+Bl{tA`FNeTEmR|?U7Pw8xKrYg;zY1j7DR2<1nzzg%dl~-N|JtUzRdPtNZ zF(6E$6v6~@tceu9p3h&x10NZn^LV#@xs9#@4-?d#BnpH;pav(V3y%sWm zvLBSgB<3NU75snj@8!neGac9q6jDZD4KobK-oVgd{qcE|z&UNdyzp`Qcxve=oTDz^ zikh`@2S|FPm#-6J4z!>(4MZuW4Xqy_w+3oNK zu6Ip>kW%C2ua_@7;2&O6%`f853T2e)1lpWrccncM!<8VT@9khRj`Fr%jWFC@Kxgtc zP~z~tLmMh%xtlq2IbmlyY~=BW`5X5t!-!`elf`0w^0OBJeT25LXwW+*!90H6+l2r} z%$bC>ZOkn=^JCy2sE`9)=!O^27AJgV$u`->LjDts{M013bL~8r3Nsfwk^|pdV|uW| zn3vkWs&`jw6;|50z+kTSsWb+W?Z0W~KK25-jOke$5looSAPXOoH0qKS<+Xps&SKPU z?|sn;l7K5Uy1C&jNRyPDx+75#l?0_L4I+*)+9%<0F}_^wVpE_dqNoZ&;S?YVkyI|1 zOA`n{qT=qv`kQhqW~no>p0(I`qZLpDH!2^X8YBghCfT zy~LApy)R8_qC|WtS4|qQ*Z22cC8SasZ*8jH1hT<}Vd!bKScFq}z*rHo;6z0&?c}CE zSQT()84^KuxJpfw#%-s>3GQ5#bkVZ09d7IUG5ctStY}M6i0G&7iw|UKyp%wwuqkw$ zjw2;4T(3OER-zj0i%t--I+x3j@j@uBQ6e;`nFhA&4zki{p4IH!1C$ZB#()$2M5WH| z^6U4$KvE(Zmrn>Sy{Ptzj9D2O5(~D`ZRnZXvsQ}pu+p~7rW}{ZB1ox!JS`<7$T8-1 z1_K!+VbG}Btdxi=B!##b#glbMyFjwwJjyfYYNlt%N9Xbk#ENh&_&w|yq9V1xJF+%u zG%viPc`>1v$fQLfT7VgGg>3Abd1c*ZGsfV)aiQ8Ew*MDxyG~W~Bz-)+ghBm?lHn!6 zQ^L)wi)X7<#jt}6fS$bd-7kB%T%Jsr$m3v?>+E56=N9uYSpnk2ELch_a(`Mcv8-`$0P&#Z1(#n~$g_>y!5^0Ir^=vlUH^Ag3)IXNV3(y$Ej%$TvdE5(MAt{*0zS!tv-x$;~ z&wVlWwJ-QRQ)-&vgnh*$xSf#Si74Fu7~SD|V78$Ukaf?lIaOHM`~hQ9onNWei|qeH zTX!j|@1mbcFB@7y5EKL3R}yv7gqW^J>>G&LFS<~PNS>I$ou{cT?n(=E6s)XlUZxP) ztOLCs_=I;wqf3~i@QYHrDi<$XR8*$2-@Z8c%j@&4K#P~IH1UK+2DxdfbRMf?ChX%h zz^>weCPYOc7qBcYA$8JhEkohTEIfDn{N3c0XztOL|3LXa0XoIm40H-at`9>wLhsSC z>@W`}mzqg!nw=CTxbsxf#gK=uGM62Aj1poHy;1#-LlC?&5&b>a;_KX64@KaVP$#3s zCDv4{HQ9)h`+9QBNhSc`@)_+C z+r_DdU7Qw+e0FV-U&N^z0r1}E832n=p|uy)KxWQNv|yXl3>_Ww)~E$MS@52YD8eO? zd9+_-0r=%1g-9>5AJxMC;y4Ct7GUUD34=l4b0{m63gEyu#zO*>I_~mk43x>qd*s7X zB?I-3)8|AWtk3N+BpiLd9V?VVlmmNo#O(NRQmKfJ&<6 zDRuu%+jpt3!iUS=nrl4sP1ZOM2&H(5e5r&hxovgT9GRiw%EHL~4n8|Zxr}+#!B?o0 zBmMM1yFld2^8-0t)(ygB#v~(`g*_(b>7-d|dqSq$r8O)spTCFv03Gan1LZDSa2Tj_ zz}L4tM__F?JpR4luE;XT`2R=2eD)R9E#n(I$v_NYOF)4qBPo0NJBx+t7Vo*F%0 zo9@EI0<$Ac0yT{g6Q@5`g~fO}>-%wBDBz(Wt%kN3r1OV{SGFf8#8&1i=j^Xy1WfEp z5Q8)#VGivrNrvsto=&qlc~?o0PkD4YOyUT(dcp!mfQJQ4v(F*N%VBS5$8%n>FhQq% ztdmI-(G&Nw$7YT|#K@_>L#0hzk1E|(r0VbAe8}iSI7mC4BU;ROGYN_o zd}XvjGu4TfX)XFrIy5#=j0ht>p-B^;*-E{K5r0C-D39j{U6WfpB@fe2kS5NQCQtck z;-|4D&tYitI0(MJid=peI?8?cFqPBZ4qfykiPDo({ocl#_sR{j}(UHLCaZ)Fs zArZ*cF4`|iXX;%(Qi*Iqjv{ZNtuZz40)QOnOY!qoOzJyaFsb`5^mgDIL)6q?YN+*m z2@pN?m#-SBwVj~WR*lqJ+b$IfYVDh_*1|3dB3x+~MOWH8R#mhp^kr8TPqWgFxCCsa zm4HfH5L0OlT;^yrWu-j=EA634D{Y3f^p$aycIKA_{~GBlSQ41&)HNVzd=4n^{lrrxwW7q znYodpML9IKCXXZr2mFFU9^GUCUo-i`Pt^mUDBC9R-|&m%E1+b2W%z9j-TB767*nEa zfnnAnwL#=~pSE46EPa%IoOBiE_ZO0a5ks1nBu(T9Z(LhETca#mUctB$y+>aQ|R1h5V)fpOOh=0>+4t zd3cNwQMDp|qkaA=ZDB41_7LAUP%e2|A0M{}1HdG0QDuGc~Z|wzFs+v%zTV;PMDd{dr_;3;NxzXnRiW|nG2g@G80}H zO_G^jkeOl)8J(HXX^F{9#v+W(%w6r*O^}(-e|6-7y9KE-M*cnu#P8Q_!{o2C4Lm+< z4jPe)T`H;i>^tYlU!Hng{zf^F7dd~K4#TMYRWw|L{Jo&=LD(%X2^?+`OcdTwiM?-1P?N0~$K zy->pnh+%2R5I9*Uz(%CA?=y$x5g{BqF9PUbvEC@Rac({^YF0USPhSWt?1uXX#>rrv zGll5AElLG%xfQ5jkl;w=xie%p^#IZhH$H&`0Vy{6QjMHol8Guvs0f)fJRgl2ZVK|q ztMoyxu((l+m|$)rV8?}&IK%nl6SvWKAJC*?8bXZ2XI@2v%XjvAQTxqSA(GfeMv^S(#I<} zL^skOpPIkX!!{1faAE+i4!Qrm8dKV&+dv@o9kS-!jEdfH!44On(U+= zLi*u10z79CqZT;m1&{tbczDnYBs^xy%Xz;L!F-|9SnKuQe|w3vCZp1wZ87i&-nM5S ztU=As`h64Yggw64?eIexhCj5fKq=txe%M)CqnZVTzl(XwI9EY{m+IUT-9R6 z2$Ywgcjnlu7NjNM{GHBqIR>d-@0pcpO$1;yl%(s;JQNq{J8t>x#%X+_;wx%>a*i~F zsu3LE=qs{=dI}MN^VF&_Gf5mHLrK_~B!IDvC>roH%4>p|Br2sMaXR?25r?$33cZGu zDry`mDM8=oa5xNnUh!|f+>lzYIAFZHVJrH-Cd=+8pBvEKzhbpSCMs!N+LMAdJm(3P zNY%bT!23vP#t!CV{=Ib?ctal}AGPanrLsw5R4Wp_Df0z=m$xfTMXs!Uk_3G4#Mb5XZ(d-(?!C?bF(m*Y_%7BeC;e|IdWgzGSUzzxf%6k62PnP_y zKaEQEUOn*O8}L&od$VU-_MRZHmVGBr&HMDHB)MvH+wcFd;y?-P6!qPG#a=XP>)Y+2 z#B`qH;Mv0mnduY~i)8_OiMOHJ#WN)}aGlo5|842`GLOC%yO!UzIfHMheW>ogn)=tM zQxwd9K1NcS@9(XL|LMvQivR9mG<``;CC{GG1bZn<>J1KC)tZm?(@))b=GIh#!;FW> zNwOs2@cK-bu4UiZ*MM(UMW>NhlQgn$+&3#gr~YWn?P%naK?y-vC~J7L1UsA|x={dr zNa74t^3prMS@?Nx8YkIv?Shuq=fIDq?#cll?IiQjUYY;tPe^iTbKB>CSh26vo@HqI zVjr5l_4{3Ul1w67<0>w)ma1DNl{Y@tzp%8XQl4n`-&3v@Yjhi{lle)hrF)+0`^RtS zC$M&I`vxCnu6wZly{6u^8aYYA??$2orF|8Aw^{(107|mot%7TJHz)b+3(K9>n$;ig zrJub0%xwmlRB4h62nAAzd+<|A7Wx}&;K|IzkO(M+o=J+s-(8?`Cojv zB0$;(!RKV)|R?tjDaM&@@KV`Tn3RT>au!+-BEeP?>E!$ z(eGa|f0K`At$n2K{RWWIN)CN(+_MzfIOH((c`f9HiCXj3J24WMk6M13kd}CfIUZRAH_v(WGyKuTTS@uQB#b+R0 z{|<@oKne3&(0BKh`_KT)S2f7j7k>UxIA3=zXnW-=Vbu1%nLX)E82QQHO^T9Z6Fo(m zIMa#WqAT91t>A!6PsEf-veH=wyS?hXsUD9-Kl7i35F#K)2!;WEY)Bun47q1oZ*adQ zd=+54P19MkH)jggzpiu)jACgY!sra|!YN~V`|)ts6ve^aJQK)VAajsR-2W7Q^LZU| zEAr!u``+{0D)|B;dR}#W4=%qs5TATdTsV#{&HKi0SCTMXBTNBYQ;zHan0qbmeQ)0y z5Aj3O+R^3|NN%2RM;mnM&XVKN6|Qy@(A4;9cZQ5ZonC~^YMGOjz01X6C{ju#D5uR+n_!yvIXJC|6-Pw(nJ DW8et8dUM-nP?X3s1&P7CmhMK2HoelD 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

lw1mhi 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

&gwR^ihGM2@qg0DB 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/fonts/LeJour-Script.woff b/src/main/resources/static/fonts/LeJour-Script.woff deleted file mode 100644 index 98f4e4f4fed6297d2f2a905f723360a6144a482a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60944 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 -

+

Good to know

    diff --git a/src/main/resources/templates/contact.html b/src/main/resources/templates/contact.html index 865bf44..756fb18 100644 --- a/src/main/resources/templates/contact.html +++ b/src/main/resources/templates/contact.html @@ -43,6 +43,16 @@
+ + +