From 161a27160f275a43764fa3393df1b0dda274ec36 Mon Sep 17 00:00:00 2001 From: Manuel Bustillo Date: Sun, 17 Nov 2024 20:05:10 +0100 Subject: [PATCH] Remove nextjs scaffolding contents --- app/lib/definitions.ts | 78 ------------- app/lib/placeholder-data.ts | 149 ------------------------- app/seed/route.ts | 124 -------------------- app/ui/customers/table.tsx | 125 --------------------- app/ui/dashboard/cards.tsx | 60 ---------- app/ui/dashboard/latest-invoices.tsx | 66 ----------- app/ui/dashboard/revenue-chart.tsx | 67 ----------- app/ui/guests/breadcrumbs.tsx | 38 ------- app/ui/guests/buttons.tsx | 38 ------- app/ui/guests/create-form.tsx | 114 ------------------- app/ui/guests/edit-form.tsx | 125 --------------------- app/ui/guests/pagination.tsx | 121 -------------------- app/ui/guests/status.tsx | 31 ----- app/ui/login-form.tsx | 69 ------------ public/customers/amy-burns.png | Bin 7954 -> 0 bytes public/customers/balazs-orban.png | Bin 7951 -> 0 bytes public/customers/delba-de-oliveira.png | Bin 5824 -> 0 bytes public/customers/evil-rabbit.png | Bin 1019 -> 0 bytes public/customers/lee-robinson.png | Bin 5653 -> 0 bytes public/customers/michael-novotny.png | Bin 9902 -> 0 bytes 20 files changed, 1205 deletions(-) delete mode 100644 app/lib/placeholder-data.ts delete mode 100644 app/seed/route.ts delete mode 100644 app/ui/customers/table.tsx delete mode 100644 app/ui/dashboard/cards.tsx delete mode 100644 app/ui/dashboard/latest-invoices.tsx delete mode 100644 app/ui/dashboard/revenue-chart.tsx delete mode 100644 app/ui/guests/breadcrumbs.tsx delete mode 100644 app/ui/guests/buttons.tsx delete mode 100644 app/ui/guests/create-form.tsx delete mode 100644 app/ui/guests/edit-form.tsx delete mode 100644 app/ui/guests/pagination.tsx delete mode 100644 app/ui/guests/status.tsx delete mode 100644 app/ui/login-form.tsx delete mode 100644 public/customers/amy-burns.png delete mode 100644 public/customers/balazs-orban.png delete mode 100644 public/customers/delba-de-oliveira.png delete mode 100644 public/customers/evil-rabbit.png delete mode 100644 public/customers/lee-robinson.png delete mode 100644 public/customers/michael-novotny.png diff --git a/app/lib/definitions.ts b/app/lib/definitions.ts index 824bc5f..5c008c9 100644 --- a/app/lib/definitions.ts +++ b/app/lib/definitions.ts @@ -1,23 +1,5 @@ /* Copyright (C) 2024 Manuel Bustillo*/ -// This file contains type definitions for your data. -// It describes the shape of the data, and what data type each property should accept. -// For simplicity of teaching, we're manually defining these types. -// However, these types are generated automatically if you're using an ORM such as Prisma. -export type User = { - id: string; - name: string; - email: string; - password: string; -}; - -export type Customer = { - id: string; - name: string; - email: string; - image_url: string; -}; - export type GuestStatus = 'considered' | 'invited' | 'confirmed' | 'declined' | 'tentative'; export type Guest = { id?: string; @@ -62,34 +44,6 @@ export type AttendanceSummary = { total: number; } -export type Invoice = { - id: string; - customer_id: string; - amount: number; - date: string; - // In TypeScript, this is called a string union type. - // It means that the "status" property can only be one of the two strings: 'pending' or 'paid'. - status: 'pending' | 'paid'; -}; - -export type Revenue = { - month: string; - revenue: number; -}; - -export type LatestInvoice = { - id: string; - name: string; - image_url: string; - email: string; - amount: string; -}; - -// The database returns a number for amount, but we later format it to a string with the formatCurrency function -export type LatestInvoiceRaw = Omit & { - amount: number; -}; - export type guestsTable = { id: string; customer_id: string; @@ -100,35 +54,3 @@ export type guestsTable = { amount: number; status: 'pending' | 'paid'; }; - -export type CustomersTableType = { - id: string; - name: string; - email: string; - image_url: string; - total_guests: number; - total_pending: number; - total_paid: number; -}; - -export type FormattedCustomersTable = { - id: string; - name: string; - email: string; - image_url: string; - total_guests: number; - total_pending: string; - total_paid: string; -}; - -export type CustomerField = { - id: string; - name: string; -}; - -export type InvoiceForm = { - id: string; - customer_id: string; - amount: number; - status: 'pending' | 'paid'; -}; diff --git a/app/lib/placeholder-data.ts b/app/lib/placeholder-data.ts deleted file mode 100644 index 2d78faa..0000000 --- a/app/lib/placeholder-data.ts +++ /dev/null @@ -1,149 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -// This file contains placeholder data that you'll be replacing with real data in the Data Fetching chapter: -// https://nextjs.org/learn/dashboard-app/fetching-data -const users = [ - { - id: '410544b2-4001-4271-9855-fec4b6a6442a', - name: 'User', - email: 'user@nextmail.com', - password: '123456', - }, -]; - -const customers = [ - { - id: 'd6e15727-9fe1-4961-8c5b-ea44a9bd81aa', - name: 'Evil Rabbit', - email: 'evil@rabbit.com', - image_url: '/customers/evil-rabbit.png', - }, - { - id: '3958dc9e-712f-4377-85e9-fec4b6a6442a', - name: 'Delba de Oliveira', - email: 'delba@oliveira.com', - image_url: '/customers/delba-de-oliveira.png', - }, - { - id: '3958dc9e-742f-4377-85e9-fec4b6a6442a', - name: 'Lee Robinson', - email: 'lee@robinson.com', - image_url: '/customers/lee-robinson.png', - }, - { - id: '76d65c26-f784-44a2-ac19-586678f7c2f2', - name: 'Michael Novotny', - email: 'michael@novotny.com', - image_url: '/customers/michael-novotny.png', - }, - { - id: 'CC27C14A-0ACF-4F4A-A6C9-D45682C144B9', - name: 'Amy Burns', - email: 'amy@burns.com', - image_url: '/customers/amy-burns.png', - }, - { - id: '13D07535-C59E-4157-A011-F8D2EF4E0CBB', - name: 'Balazs Orban', - email: 'balazs@orban.com', - image_url: '/customers/balazs-orban.png', - }, -]; - -const guests = [ - { - customer_id: customers[0].id, - amount: 15795, - status: 'pending', - date: '2022-12-06', - }, - { - customer_id: customers[1].id, - amount: 20348, - status: 'pending', - date: '2022-11-14', - }, - { - customer_id: customers[4].id, - amount: 3040, - status: 'paid', - date: '2022-10-29', - }, - { - customer_id: customers[3].id, - amount: 44800, - status: 'paid', - date: '2023-09-10', - }, - { - customer_id: customers[5].id, - amount: 34577, - status: 'pending', - date: '2023-08-05', - }, - { - customer_id: customers[2].id, - amount: 54246, - status: 'pending', - date: '2023-07-16', - }, - { - customer_id: customers[0].id, - amount: 666, - status: 'pending', - date: '2023-06-27', - }, - { - customer_id: customers[3].id, - amount: 32545, - status: 'paid', - date: '2023-06-09', - }, - { - customer_id: customers[4].id, - amount: 1250, - status: 'paid', - date: '2023-06-17', - }, - { - customer_id: customers[5].id, - amount: 8546, - status: 'paid', - date: '2023-06-07', - }, - { - customer_id: customers[1].id, - amount: 500, - status: 'paid', - date: '2023-08-19', - }, - { - customer_id: customers[5].id, - amount: 8945, - status: 'paid', - date: '2023-06-03', - }, - { - customer_id: customers[2].id, - amount: 1000, - status: 'paid', - date: '2022-06-05', - }, -]; - -const revenue = [ - { month: 'Jan', revenue: 2000 }, - { month: 'Feb', revenue: 1800 }, - { month: 'Mar', revenue: 2200 }, - { month: 'Apr', revenue: 2500 }, - { month: 'May', revenue: 2300 }, - { month: 'Jun', revenue: 3200 }, - { month: 'Jul', revenue: 3500 }, - { month: 'Aug', revenue: 3700 }, - { month: 'Sep', revenue: 2500 }, - { month: 'Oct', revenue: 2800 }, - { month: 'Nov', revenue: 3000 }, - { month: 'Dec', revenue: 4800 }, -]; - -export { users, customers, guests, revenue }; diff --git a/app/seed/route.ts b/app/seed/route.ts deleted file mode 100644 index db632cd..0000000 --- a/app/seed/route.ts +++ /dev/null @@ -1,124 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -// import bcrypt from 'bcrypt'; -// import { db } from '@vercel/postgres'; -// import { guests, customers, revenue, users } from '../lib/placeholder-data'; - -// const client = await db.connect(); - -// async function seedUsers() { -// await client.sql`CREATE EXTENSION IF NOT EXISTS "uuid-ossp"`; -// await client.sql` -// CREATE TABLE IF NOT EXISTS users ( -// id UUID DEFAULT uuid_generate_v4() PRIMARY KEY, -// name VARCHAR(255) NOT NULL, -// email TEXT NOT NULL UNIQUE, -// password TEXT NOT NULL -// ); -// `; - -// const insertedUsers = await Promise.all( -// users.map(async (user) => { -// const hashedPassword = await bcrypt.hash(user.password, 10); -// return client.sql` -// INSERT INTO users (id, name, email, password) -// VALUES (${user.id}, ${user.name}, ${user.email}, ${hashedPassword}) -// ON CONFLICT (id) DO NOTHING; -// `; -// }), -// ); - -// return insertedUsers; -// } - -// async function seedguests() { -// await client.sql`CREATE EXTENSION IF NOT EXISTS "uuid-ossp"`; - -// await client.sql` -// CREATE TABLE IF NOT EXISTS guests ( -// id UUID DEFAULT uuid_generate_v4() PRIMARY KEY, -// customer_id UUID NOT NULL, -// amount INT NOT NULL, -// status VARCHAR(255) NOT NULL, -// date DATE NOT NULL -// ); -// `; - -// const insertedguests = await Promise.all( -// guests.map( -// (invoice) => client.sql` -// INSERT INTO guests (customer_id, amount, status, date) -// VALUES (${invoice.customer_id}, ${invoice.amount}, ${invoice.status}, ${invoice.date}) -// ON CONFLICT (id) DO NOTHING; -// `, -// ), -// ); - -// return insertedguests; -// } - -// async function seedCustomers() { -// await client.sql`CREATE EXTENSION IF NOT EXISTS "uuid-ossp"`; - -// await client.sql` -// CREATE TABLE IF NOT EXISTS customers ( -// id UUID DEFAULT uuid_generate_v4() PRIMARY KEY, -// name VARCHAR(255) NOT NULL, -// email VARCHAR(255) NOT NULL, -// image_url VARCHAR(255) NOT NULL -// ); -// `; - -// const insertedCustomers = await Promise.all( -// customers.map( -// (customer) => client.sql` -// INSERT INTO customers (id, name, email, image_url) -// VALUES (${customer.id}, ${customer.name}, ${customer.email}, ${customer.image_url}) -// ON CONFLICT (id) DO NOTHING; -// `, -// ), -// ); - -// return insertedCustomers; -// } - -// async function seedRevenue() { -// await client.sql` -// CREATE TABLE IF NOT EXISTS revenue ( -// month VARCHAR(4) NOT NULL UNIQUE, -// revenue INT NOT NULL -// ); -// `; - -// const insertedRevenue = await Promise.all( -// revenue.map( -// (rev) => client.sql` -// INSERT INTO revenue (month, revenue) -// VALUES (${rev.month}, ${rev.revenue}) -// ON CONFLICT (month) DO NOTHING; -// `, -// ), -// ); - -// return insertedRevenue; -// } - -export async function GET() { - return Response.json({ - message: - 'Uncomment this file and remove this line. You can delete this file when you are finished.', - }); - // try { - // await client.sql`BEGIN`; - // await seedUsers(); - // await seedCustomers(); - // await seedguests(); - // await seedRevenue(); - // await client.sql`COMMIT`; - - // return Response.json({ message: 'Database seeded successfully' }); - // } catch (error) { - // await client.sql`ROLLBACK`; - // return Response.json({ error }, { status: 500 }); - // } -} diff --git a/app/ui/customers/table.tsx b/app/ui/customers/table.tsx deleted file mode 100644 index 6a41e3f..0000000 --- a/app/ui/customers/table.tsx +++ /dev/null @@ -1,125 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import Image from 'next/image'; -import { lusitana } from '@/app/ui/fonts'; -import Search from '@/app/ui/search'; -import { - CustomersTableType, - FormattedCustomersTable, -} from '@/app/lib/definitions'; - -export default async function CustomersTable({ - customers, -}: { - customers: FormattedCustomersTable[]; -}) { - return ( -
-

- Customers -

- -
-
-
-
-
- {customers?.map((customer) => ( -
-
-
-
-
- {`${customer.name}'s -

{customer.name}

-
-
-

- {customer.email} -

-
-
-
-
-

Pending

-

{customer.total_pending}

-
-
-

Paid

-

{customer.total_paid}

-
-
-
-

{customer.total_guests} guests

-
-
- ))} -
- - - - - - - - - - - - - {customers.map((customer) => ( - - - - - - - - ))} - -
- Name - - Email - - Total guests - - Total Pending - - Total Paid -
-
- {`${customer.name}'s -

{customer.name}

-
-
- {customer.email} - - {customer.total_guests} - - {customer.total_pending} - - {customer.total_paid} -
-
-
-
-
-
- ); -} diff --git a/app/ui/dashboard/cards.tsx b/app/ui/dashboard/cards.tsx deleted file mode 100644 index 687043c..0000000 --- a/app/ui/dashboard/cards.tsx +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { - BanknotesIcon, - ClockIcon, - UserGroupIcon, - InboxIcon, -} from '@heroicons/react/24/outline'; -import { lusitana } from '@/app/ui/fonts'; - -const iconMap = { - collected: BanknotesIcon, - customers: UserGroupIcon, - pending: ClockIcon, - guests: InboxIcon, -}; - -export default async function CardWrapper() { - return ( - <> - {/* NOTE: Uncomment this code in Chapter 9 */} - - {/* - - - */} - - ); -} - -export function Card({ - title, - value, - type, -}: { - title: string; - value: number | string; - type: 'guests' | 'customers' | 'pending' | 'collected'; -}) { - const Icon = iconMap[type]; - - return ( -
-
- {Icon ? : null} -

{title}

-
-

- {value} -

-
- ); -} diff --git a/app/ui/dashboard/latest-invoices.tsx b/app/ui/dashboard/latest-invoices.tsx deleted file mode 100644 index 7c668e9..0000000 --- a/app/ui/dashboard/latest-invoices.tsx +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { ArrowPathIcon } from '@heroicons/react/24/outline'; -import clsx from 'clsx'; -import Image from 'next/image'; -import { lusitana } from '@/app/ui/fonts'; -import { LatestInvoice } from '@/app/lib/definitions'; -export default async function Latestguests({ - latestguests, -}: { - latestguests: LatestInvoice[]; -}) { - return ( -
-

- Latest guests -

-
- {/* NOTE: Uncomment this code in Chapter 7 */} - - {/*
- {latestguests.map((invoice, i) => { - return ( -
-
- {`${invoice.name}'s -
-

- {invoice.name} -

-

- {invoice.email} -

-
-
-

- {invoice.amount} -

-
- ); - })} -
*/} -
- -

Updated just now

-
-
-
- ); -} diff --git a/app/ui/dashboard/revenue-chart.tsx b/app/ui/dashboard/revenue-chart.tsx deleted file mode 100644 index 023e61d..0000000 --- a/app/ui/dashboard/revenue-chart.tsx +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { generateYAxis } from '@/app/lib/utils'; -import { CalendarIcon } from '@heroicons/react/24/outline'; -import { lusitana } from '@/app/ui/fonts'; -import { Revenue } from '@/app/lib/definitions'; - -// This component is representational only. -// For data visualization UI, check out: -// https://www.tremor.so/ -// https://www.chartjs.org/ -// https://airbnb.io/visx/ - -export default async function RevenueChart({ - revenue, -}: { - revenue: Revenue[]; -}) { - const chartHeight = 350; - // NOTE: Uncomment this code in Chapter 7 - - // const { yAxisLabels, topLabel } = generateYAxis(revenue); - - // if (!revenue || revenue.length === 0) { - // return

No data available.

; - // } - - return ( -
-

- Recent Revenue -

- {/* NOTE: Uncomment this code in Chapter 7 */} - - {/*
-
-
- {yAxisLabels.map((label) => ( -

{label}

- ))} -
- - {revenue.map((month) => ( -
-
-

- {month.month} -

-
- ))} -
-
- -

Last 12 months

-
-
*/} -
- ); -} diff --git a/app/ui/guests/breadcrumbs.tsx b/app/ui/guests/breadcrumbs.tsx deleted file mode 100644 index 828a614..0000000 --- a/app/ui/guests/breadcrumbs.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { clsx } from 'clsx'; -import Link from 'next/link'; -import { lusitana } from '@/app/ui/fonts'; - -interface Breadcrumb { - label: string; - href: string; - active?: boolean; -} - -export default function Breadcrumbs({ - breadcrumbs, -}: { - breadcrumbs: Breadcrumb[]; -}) { - return ( - - ); -} diff --git a/app/ui/guests/buttons.tsx b/app/ui/guests/buttons.tsx deleted file mode 100644 index d4e2183..0000000 --- a/app/ui/guests/buttons.tsx +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { PencilIcon, PlusIcon, TrashIcon } from '@heroicons/react/24/outline'; -import Link from 'next/link'; - -export function CreateInvoice() { - return ( - - Create Invoice{' '} - - - ); -} - -export function UpdateInvoice({ id }: { id: string }) { - return ( - - - - ); -} - -export function DeleteInvoice({ id }: { id: string }) { - return ( - <> - - - ); -} diff --git a/app/ui/guests/create-form.tsx b/app/ui/guests/create-form.tsx deleted file mode 100644 index d66a259..0000000 --- a/app/ui/guests/create-form.tsx +++ /dev/null @@ -1,114 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { CustomerField } from '@/app/lib/definitions'; -import Link from 'next/link'; -import { - CheckIcon, - ClockIcon, - CurrencyDollarIcon, - UserCircleIcon, -} from '@heroicons/react/24/outline'; -import { Button } from '@/app/ui/button'; - -export default function Form({ customers }: { customers: CustomerField[] }) { - return ( -
-
- {/* Customer Name */} -
- -
- - -
-
- - {/* Invoice Amount */} -
- -
-
- - -
-
-
- - {/* Invoice Status */} -
- - Set the invoice status - -
-
-
- - -
-
- - -
-
-
-
-
-
- - Cancel - - -
-
- ); -} diff --git a/app/ui/guests/edit-form.tsx b/app/ui/guests/edit-form.tsx deleted file mode 100644 index d71a275..0000000 --- a/app/ui/guests/edit-form.tsx +++ /dev/null @@ -1,125 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -'use client'; - -import { CustomerField, InvoiceForm } from '@/app/lib/definitions'; -import { - CheckIcon, - ClockIcon, - CurrencyDollarIcon, - UserCircleIcon, -} from '@heroicons/react/24/outline'; -import Link from 'next/link'; -import { Button } from '@/app/ui/button'; - -export default function EditInvoiceForm({ - invoice, - customers, -}: { - invoice: InvoiceForm; - customers: CustomerField[]; -}) { - return ( -
-
- {/* Customer Name */} -
- -
- - -
-
- - {/* Invoice Amount */} -
- -
-
- - -
-
-
- - {/* Invoice Status */} -
- - Set the invoice status - -
-
-
- - -
-
- - -
-
-
-
-
-
- - Cancel - - -
-
- ); -} diff --git a/app/ui/guests/pagination.tsx b/app/ui/guests/pagination.tsx deleted file mode 100644 index 42488ae..0000000 --- a/app/ui/guests/pagination.tsx +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -'use client'; - -import { ArrowLeftIcon, ArrowRightIcon } from '@heroicons/react/24/outline'; -import clsx from 'clsx'; -import Link from 'next/link'; -import { generatePagination } from '@/app/lib/utils'; - -export default function Pagination({ totalPages }: { totalPages: number }) { - // NOTE: Uncomment this code in Chapter 11 - - // const allPages = generatePagination(currentPage, totalPages); - - return ( - <> - {/* NOTE: Uncomment this code in Chapter 11 */} - - {/*
- - -
- {allPages.map((page, index) => { - let position: 'first' | 'last' | 'single' | 'middle' | undefined; - - if (index === 0) position = 'first'; - if (index === allPages.length - 1) position = 'last'; - if (allPages.length === 1) position = 'single'; - if (page === '...') position = 'middle'; - - return ( - - ); - })} -
- - = totalPages} - /> -
*/} - - ); -} - -function PaginationNumber({ - page, - href, - isActive, - position, -}: { - page: number | string; - href: string; - position?: 'first' | 'last' | 'middle' | 'single'; - isActive: boolean; -}) { - const className = clsx( - 'flex h-10 w-10 items-center justify-center text-sm border', - { - 'rounded-l-md': position === 'first' || position === 'single', - 'rounded-r-md': position === 'last' || position === 'single', - 'z-10 bg-blue-600 border-blue-600 text-white': isActive, - 'hover:bg-gray-100': !isActive && position !== 'middle', - 'text-gray-300': position === 'middle', - }, - ); - - return isActive || position === 'middle' ? ( -
{page}
- ) : ( - - {page} - - ); -} - -function PaginationArrow({ - href, - direction, - isDisabled, -}: { - href: string; - direction: 'left' | 'right'; - isDisabled?: boolean; -}) { - const className = clsx( - 'flex h-10 w-10 items-center justify-center rounded-md border', - { - 'pointer-events-none text-gray-300': isDisabled, - 'hover:bg-gray-100': !isDisabled, - 'mr-2 md:mr-4': direction === 'left', - 'ml-2 md:ml-4': direction === 'right', - }, - ); - - const icon = - direction === 'left' ? ( - - ) : ( - - ); - - return isDisabled ? ( -
{icon}
- ) : ( - - {icon} - - ); -} diff --git a/app/ui/guests/status.tsx b/app/ui/guests/status.tsx deleted file mode 100644 index f8a3a78..0000000 --- a/app/ui/guests/status.tsx +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { CheckIcon, ClockIcon } from '@heroicons/react/24/outline'; -import clsx from 'clsx'; - -export default function gueststatus({ status }: { status: string }) { - return ( - - {status === 'pending' ? ( - <> - Pending - - - ) : null} - {status === 'paid' ? ( - <> - Paid - - - ) : null} - - ); -} diff --git a/app/ui/login-form.tsx b/app/ui/login-form.tsx deleted file mode 100644 index 6e6241e..0000000 --- a/app/ui/login-form.tsx +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright (C) 2024 Manuel Bustillo*/ - -import { lusitana } from '@/app/ui/fonts'; -import { - AtSymbolIcon, - KeyIcon, - ExclamationCircleIcon, -} from '@heroicons/react/24/outline'; -import { ArrowRightIcon } from '@heroicons/react/20/solid'; -import { Button } from './button'; - -export default function LoginForm() { - return ( -
-
-

- Please log in to continue. -

-
-
- -
- - -
-
-
- -
- - -
-
-
- -
- {/* Add form errors here */} -
-
-
- ); -} diff --git a/public/customers/amy-burns.png b/public/customers/amy-burns.png deleted file mode 100644 index 7b29d72526a0644b11519442aac7d6d95f305702..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7954 zcmV+tAMN0YP)hDbwOg_zVjFpt9cQ2tXIM;N5~fI)3{1@g4@{9%mP&?VhDyjV zOhFX{m?9IXaXe%I$0V@{HOSy4HW*u$EZdT`Sd!H(wR%x+Z+~|=^DpP#Zqm|IzxVET z{{8#E|HypdZwuBlfbk$d{GQ(?3H@U%JkNu*pqG{7{5yuB-v-9;0Ym3o=utj_{?bi6 z%ikIOoW6I*6M7lwcj=Xe-y3$TQ?Q{MXa_8ad#e?~WOLd2%Pv8r`*)W#Vf* zS!cj!$qj6x4|W$C&&d1q$DBc2xz&xQ7BsdJ-Ks#>iS_ zdAv}|ce5g_Cl5~K8Ve_{+$T{j(1nH-F4wy2pu*}SS>bwK`q_xO3<5pX-N5KMo^hst zsyq|it=MOcC2ApWjj*yPWOsDGRftqso_zM)F=SU;v#KAM#C@=Cu_jxWb<0XUPL=6| zmjxO*=7~b-IbOPcE7u0Ra3j88#RbI85@bRerzm68MPxnf6>MMkV70ZnmvQ#?oJ6Z` zr3=Y!sAuUh&)pZR|D=mF)_q>%f#O~1v*~>z3tm;2aiL_K!dBH!&tlEy#x5bH~#)8|TNyL*_53cGJ(69-iJXHI7*|hjUzY zqkv+%S{gvLFoMy_1a__aHH`Hgl5>L~^HdR>&p+{85tq;Q=yP3w7$=-@-->e5b>ioA zD{D$!T)fpO+)KYtjX*EfdB7+7>=ud5vSa36&_rdBYDuLvMiUdVxK@i6f-*+SyHN?& zp(no{eZ%`uD2<`Nu?smrkD28Yh)jeqQXe{XvW%-&V%+~O@iDot=Y+IWCXBZxYi9b@ z5VS62()@45&C^QaJi-{~P3}AunAe=B+T7wr74AmHsnl~?WKFYjI145w^)e%I*v~=+ zn=#P41BLt$D&J_W`2cpn`>uHQs0FI?tB(d(K#3dzGnnjvzO`5}z z^VEmRelJEyu))e^l*pxF%SgfyOUpI<+>o9oAT&&}w} zH8I_~fWe{lc=dc6|MkzGMy(zqpEvmMhj(HB?lQtIFg@GAzN|c1$p@ZMD+cY*pi70mKo*XD zBLX6X6m09z41ebZMqE8{@s!W;Q(|nY9zfal;>o9ef=%1E;PIy};5*+tk8U@XP}sY# zAM#7{WX1-m*x#GgRv=w z^Rlw(WtkYx1GI{)&Av7>SkUYyw0OEGBAgks)vVSly1AdM0S+<8Io*)lgHP#_wR#Fg zRM1auy|v;_rNBcJyXNUS7%TrYp*Z)*uAcV?Hk9jckcwn zdk-qrDth`V*mvL%mfE-CrP;s1jdTgow=-qFB z=q9;l=IRpqqc+~YYXr9)+KjPvBPbRtC=^S`(LMZpfn2|r7FNJ;-*((p{x))!C@ z8>0NwI%%;?oFx;ZF73I*7SMXRDhTp3Dv#iDacNJ=nPh2>TgxuQ5g^;vA+I*c8=HeiH> zEtC=D@+gpp^#AD zH7Gql#q!3LP*OnRYOMe`4qwf3M%%F@16-bH(-&N8Fw(aTg`|R+`OBDYPU75T8!I(! zk)i{#bP*Gy zM={>Jht`o~C6SFHCDXcu>UnB8vx*86*CiRVri@8*N9WT0Judi3)_!S}$3{U2AB$Z7 z%Kz|h&Y+g!VbjndG#c|*X)R%wFH(Y6qy|YJ3ceEQr!~cA2}*%GDGo&b9Am@#kZWe_dDH%zu%1um81WH_Iv~J)4CCeh!=|u7ZE1yG4 z8lFTUmvzld0*4W-UDF;aY-TUu#LC7BU{_lJN%Ed+Oi~T8o3nL|D}c1Paw$(Yk0mhj z1xh$5po1EE2m1&~)v+-&dw^(M;NHb})JAB7u`wGWN*W0JiSG75SbDy7d~G3)gVq@L_b`YT)?X2rnhKg3SUo~j7 zJ7`69bdpfqn&YoJY|v^hp;8QR|iy?isXcCmnk;ccy1_{0vNc%a=%-z7_fBy{H zVS?U~al};HSC$sAJaZmVtA^#pIlOi~#NYn#b)0;C5tmPI#rM8a#q`CpcnDHD$Yov) zKaO8ty)x$b@#Hg7_jkS!h}B|^hlDa>B%P6xWzM8Z0JsK&Z_w;?abx*9@|0}IDM@Pt zQoI-g{RONnlCTRAo_e-U?i!;?3V6p|n+aI-lXU~sS{;1r`{yYPe9XKuhc~9qV*7@1 z+_HBse)h9j!UU6~kY!w+U%`EMAI0@cQ`kJ=W8aqji2MGD)*4e@W4Cs>$6}SUO5>Kh zCM4F zb#V6i3JDWpcCo8TrRd|4XO<8>xkODw3(HGQTwh7>&Li7!{FQ6iwr>v(9o|nayol>d zbEq{!tQ#4^K>{V)%O3XJy%|@7H*w=KS*JfoE9_!=W^=AQq!!E zjV!zhoNy`9CSDsy`BIvSh}_yIp>vL;BKS*)253Z!@H#CjAq8}$G!$_7ZC(7QeK%w3 z!c~0r*d%2 zFcvyRv{%}=c%qEb(5uQhJE$n&18j`I5rK{?F%CaxG_z|pJ?)k}?If&dg+H{bsO^bNEm zPB}SQ1}L5pvr)3?s*4)PTNJKb(aeK&QK;UUs&#|z4f8S<= zn!~1w&gf=M5_tJAy>HhrK%G%zp@HEM5}+&jF^fB1!2Ug>$aj`;;>9=6q0)4Ou=Y(O zc}iLkc9b53-Mcnp!$_ZWZD}m#*u`w5iPdpnN=WEBg!2}V5i9lNE12QWLNw}_#Y*t| zjv!~INEkj}NrAvq;n=zy=lq!gg+#iSww(zBMO^5e!}RbXKJc-(Q;%E0{H0j}CskTM zffa_33>~4UYwN};j^4f-H|^a<2yGq3d4+o!wU8v4R$QY>OPdH*j^KChfINpo`CZ^RWlsb(j`pF?LE`G3vLe2sPNXG{ zEgiX1_EPt>#O7FO81s`CF?D4DI}U7;3>pz&VQnX!CdKC>NNe>`eOV7#oOi0AO5)LI1#CI*CVGOSd@Exkk zQOlYVd+9iVV_DE7W$na|*`Usf1`d?DEbY1e(buNJOPRpL@kCYzM%uB6PdjZI&6K%9 zi01lv{L_Vbd}9CYs4ccIFjR3&1UWyUu3}G>NPu1}&0WCEVipeB;$$aPg z3fTXSZJ2Fb70YvpG!zyEpH~@YO4eBQ98vG=Dz2PEO0V*InHLKdz#fbucDTe6;nVG+f|Ux57d#eFx$d)mx>mfZ=&Y0 z)IhO!oS4xBt!^Y*=E_A>>PvTe(4`-(Z(o%YLGIN|e!w z#CO?zn&4}_J0rq)v{)UEIBU~6ajay5lu#}y{A^wX*9-Orp?4#(Hg~fg!OZ{;q9u;` z>ZilGj*c{XBK zY*PB9B~mz zW_PqEof8skNyqX9UmE%_QJ^7&9mi#)IGXFTH8$OOkP&9CA$5Z_b!EOshrA$(Bu9!z zl=D=Fd1OiyEo+67NsAhcPAe46$5dk46wh5E1S{MiloxRN#^ZRc_W#Ioo=h_0bZbSV zL$@xucOmDXCfn3s&Cr^7IXg$IyteDEWCuVejEIZkqHa+nj+&E#C3ur~Ze-!7Oo#*G zvF`KW+Q`=Drk(|*N2=HDU6=Kk!cf)2z8fSP!klJim>FOjC^7jkRBv-}Gwniv;2^O^4r;fUF=Q zLO|SroD-4toAo?4*7xAfUE4`%R(LDvawH$*kjs}*tc)OEsz?@QSMMnfU|atI)NTZL z^^&}k&Rd8t>$irgo-c$ir+*#nI zr!uhNeC-Fd*JmqBEsdH1V zNaKM~Sd#oa@-nVwGk9P~9CdxNa1NJF9z<<+tGKKsK;Y5wZ$1IscED{@pjW5U7Iq>} zNy{UI6-SZKHu+ppVXHJOzGi<~+w~gJNXreh>f4Fj--0(@I!G?MfXxSUIC}S!*f#hI z>5%ThsLR1x#uYx?&IUL_l0B9}AV?BVQ4)6`UCq3a0~a<)_erT$b$1@OX#p0dw`2C| z4m6g>sHLMM6L;vmUdIr6xbwCRG)=iwo z=yL*yyEPiAwsHLUX}mGLh1L+_m+lYJBWkWtjjrQUUtPe(`ax`32R!yy_oH2JH1)v?Vu+Z$xu1udgd zlLp^!8a(szCotdHl0p4+`$OVFP)9e8x)tk1nt5%kiAc9>*$h$f_ua4$m*0GV7S>DO zkvkGgX&6~V^FVPE3Eh_FVu&c6kACQ|&@`hXW&FkG?x!}e2P<`hkA8LqfAs^p#2&KsqObN#|iYbF!`$bJyo@yUY7DTQ^DPCUT9J;p%jo>ded?Xx!KdONCY& z3G%au&`{i<8lj(O zxk%3?*h+Ke+1fa6o_K;-)@HVcOgFztK^2J1-}n=E1)q+?6kogDP7X5*P)R(=uGg;I zi?CUyB-7E<9}J46y=0Ld&=qaoao2u)>f<|v-!iV~b4Ff2R>8e@jN|nS3%E8*JVwjI zs~0UEeX5H`jsf5JehZI1pTmo9_M#Q`%5#srZ2*7y#e1-QbH8?Lu20~F4G)$vbHn1) zi8q1X_2SwIQM#q-4T|NHQjXG{csgiPYL`94RsOQbtq)2$Oq^(JUGN6@Ja3cBIM zl1Lm(({O8)>Nk%wJE#_F`1~Jj6Zpoh9fTOqaZe`S?btqqZ~x`H@x=dm5B?>w80$uP zi$fq8+d87Voa+*)SH-u#eiV;=^H+%Et7O_=yVrxaNc`S!k6^gkR!WArZd%dU^5(sR_{x8~kG?8mX1Yr+JGG65^LsJga{^f_rwy~<21!~%0$Q69b*XD- zyPXLPEH7-;{aO^WJfYXgIK@y%&3j>p63`fa_n{+nZiv=;Zql6oSgV~*;B_%R zmc!wjhj7O&>#=7?g>bZzZr(rJW0`uK;$mNf=bC%hZR_#wd#Eu9lxX(|(@)LctO7bZ zN{0`t9J-e{*d-ayCT{bj4#4@r-KdwwBLk8_xn`q21g^TyFF!RbUmKl?}vf;HynxMNnh{IN+IQ>&#WEjNxSHBOhekcYhc-imIeYEEPM z#&~8tfyCSs^Ji`uIB`k;n3ya>Cz%VXh1;!u$lV-1M%*NUdnij+r4Il410#e=7Gxuv z#>(o3uvM`&(?dp<>Llroxiu%rOPei|SsCes!8Q2&`qIN^XsoIv9v}bsuM>#zDBLJ{ z)|biRvZuszn@rvRqewTo%dBRVs9asBY#~Spef5ZTc%H*uf#ukx_a-+eH+{#w>j;gt z>BgZR=b5q_*`%Wnje<2h;WI{GEtu$zRmYK~J983YCY4Y}=Hd-%#=r9IWgP$Wzs~Z_ z!M#;Hc$Dr>u(jDNih+`>b5bqpe;|<@;oL)4sG3#JmK#Qdk-ZGPBw}T1wB$bTeP9;> zi-OeM#CCLt4%4R0LU3(#E=*Lb#b~pgX!ry{^EaM!OW!>zF2x1pN;Op)1Uk@uKdpX@Pp?T@$lAVJhE89bC13Z|CdYnrMHb^`q~r; zOr!vfY<;^HX=Smhyq4kvo&4#h73Xp+BL#od&N&y1)8$bK4spwYvQVX^ylxJwH$wcz zfA}#rOwHnJ{V!tQAO3slJ@-?aS3~!aYxvp^XpH*PlNdX4P%`y}iwoE}F(O+N7M45s z*r#5=p_#MD%>tkOy;=OvZ+-~7w-->2i%7Zy*g1U;Lu1s9#n;g!!htumKlD@|2F_l^ zfiI6>YLXJC=_AUhN#!SY0ps$A6JF}D%w_nX)i_Jt4W90f3&Xr-Y+I9yIo&fwb9jHh z%#%2=G35M{|9%3uPoBhQ4ou^tjXN;qSAmTi35e~)96yYc-3u?$Jc$6qgMWwn{`F6A z`@6o2CMBUqpSX^hw-)fHLoZ_Id)@||dlTJLConbD#K^iT5%mq!ckagI4gJ3npPYF+ zOxweK3NCE^%9-O=+dC0Th10)Xe zVgoj8c(*Zb*s#Zjr^oKLXFNTy~Ck6%8&;OBt+mVX}fefc!ca`^l^mG^i^?(w}mN5&sHF5us3mQRlN zJbNu4%4ZqxqMyrodIYb<_ln~Ah|k9j4NyKGBZpN27Et7 zDLkANZ{-eC%+L^Hrr9Kii);)$2W)~)VkDQMa&`#K23cH) zRCnU?gQnEHR%7`Xr-}2V%RiXqbGcz)n=OpsD>8@J-9JR`8Q85nO`9+#aN_Z|Z zLPcrcw_Nf9w~<@{CwJb;oFQZ*j9OhtKwDWD`-aH58C-7k_`wrwJ=tN-dYEoaBk7E> z^WYio{P1tF^~D`}y)G8U>a{nqdi51txON4L3-c4CPCW}!+lRZi!EtjV2sp=nSY>;2k0Qim0;osB$&^1vat=Aa-bt*;)3c|294_y$_8KFYa2{NDSB zyBX@!(SBk9e&J%U3Vs&42tYTz&I( zMN=s&lH0kKpF}++Vd}tJ(bsn=du^ar z!&m>&Pr)0ll@-h{FR53vET7bfvwxPyUQsPPD}TOA zzYIl~+fU(-A{0V({{;HYD#Cn(L?{9BjlFm-H+=sE7M9!1jww{f`HMYU1q^-^wb zAMK4NXm5UoLHB^iW!%^hNs^*EH;=`&t60B$9S=Xbhn$9O&MlyObcnzCgWtvKr7O(& zni^d4+VlMhD-$akohX3KDn~l0AinJb1w->S3H;p73B4DJx`vOQ6j!q%c!);E# zTtwtV+0l4}yC2>~voVWNuaEB50d}9iA%Zxr2h^Yo}H4m;fKfU)9wNee^{xSA8KF7hvk9nOK z=a$#4@DEN=DOE5}FILJG1;ct+MZHwU@!=Dc8!eR3K(#(igPq{%jUVE(8(+hSw=hS;%(iwAKD&>Dqc)DaUHDNM`;R}z z^UX~H*do{AD>Z!)rS+F0wC4(`V`lPRAh{a2PA+%hZ)`Bkb8nKXE}b>`txQ?zNnN** zdRG66`sg{#Y|S?D{LUV|J;vIVFJWNa{*Vs@+I7Q=Z~;-;UZR+7V!GT z^H^!kVD+VSG|$aj+sHB`Es=Oj?ltTUkPcH!)p_A^3sW;QxP0X*KDzyphWI#%ak#sw z)H8!oMWwmIft^>gf;j|mp0X5EQt8T+^Ptsi8Ye7xi~N=gdS21MTlnS$p?|R=3X#u! zy@&)^b*72d!Ymr}*u{kfTz}&g%&_#-nhQi^c1T3=F+Co#T|*j4%Yq<^kq-xYoocB8 zxl)PVKEHAadn6;HlP=;Xk1-(XSE^MdItE5ctgV#|jUdSmz0fxSAUBsya@p14(6^3| zwAE9jjeOrV=S6L`OqEc{U9+zA(WOe}VnHxqKyQu58D?f@aQ!RSQJ-lcEY}Sw1@NR1 zkH^-Jl0OGT)W|QP9F|ElOUPqa>$&j7`FYG%r+Hi%gX1>yy+08Pkh#rh72!FlQ$b*2 zfalW8T2f5bZIPNP$VuO>JIG%sPu7U|6S^1*fp#Gx;puC;7fiyvHdRNHA^g(it1LSu z%{gIWVNlkFKb73=jrlv_yS!GyTpWzi?IzgSZDa570LQ0Yq}=#)t%>EiWt52YVX1^_ zrK+G~B{tUP)fvTwvYv!ryvPQ7^a&KajR5u=r+!Fn9hUjUediVS9U@Z=EoVNAxU9P;(aZ zYYV!7QBZf8E@0}v4RUBBle%N(s z$eqj+S_xI3o0`Y(#7e6(gzp3k-w3!tk_&x%?Rw2TaH^uKM=pXU`ccN*5F@_!jc+0* za~ctd771ME78kL}UikjA=je>O)WgOEr80K5cX99OCT`#U6#mj0j!8f&wJG$*ec@yT zABJl(#`RaPUDiz}6wvZ8;tT9i(57856$>X1!pa`>X?R;UsN>843Z zDbZfDFoZyVV4Dq#UYRE@tgd7D^a&cxCdQ*vJiWh*^1>>T=iKnl3DV0K8S+D9qZBjj zq?WF{jK;wZe&*{xtp-bz7V|p6FflQL^%930+bCbWX5S2@A9`Yx843;7tVb)QMldD*I-Y>;*j~E4mO@ zuM4?FJe#q`NllgOm4b-q8=yj7ocFsJ6S<>W0}B_H(Ig-d!m+)%!Q&HEMNFoa>M)k7 zrKKySSRmK+Q&(40r;_H*o4Rq|{FI+H{i?XSaMoVhm0GVTSE3awI5>D03#nDLbApO$ zDA3UwQ`>%KV-Xbz6tDw~Ds|+e7$u@zKJH<-v%}mRi9bmuO4@559&O{`_*7ZelY95E z@$4DznZPf_CQ!hTZi?}+QomCvw&+{_^rN=N`e5+-i zk`9$hd#`9%WjZvicMf$C0HHD31tz^-!RrsLa{D$W-J1 zp2HZ2Fh(~~bQK!XMlFg4xab=vvmM{5mlL(aa#_ONbMp-a2|Yf?uvDd&nWtHwolPI3 zT8Q@HAvSlnaCEqh@t}t$0c&k}MafEsWMuZ-GVd9n-ye`;^J>i7#1Gxj&S_K9bSU9U zwb@sJ&S_c-OpZdTBnyX2St0)8jG%ZfeAPp0wQQp1Co0Ekf=)E*BHy*G42pS_)#k)A zxn;<@m6vF^=?DiWyJ+{17~VrvM&#^0YFk?;z*Ywhzk*lTCoiw8va@;#aca$c%xfO7 z#AS{i8ja6f8>{0tTbEZ1h0NG4aIFO4%=-nfOGt;4WOwB#gUx$%YT)>?gmh67EWeF? zSxh^?bM;$}J7wva^J5B>(^y($*EF+$=F}7$2_yU`&$ltnp0|}lDeQ<|-r6}th54V1 z5{7bsjgS5srIQo9^0lvNA0EC?7PSHh$Dg!c*kY78=%y-rl6Fxdz(_~=Co`j^qE~+xsKzVKk`E(iC!W8RO733d^ z(EZT}hsVr!wt}5F*3B(5%pc$UkrEBnqdXUZp8f56MW5?71{=%djw%^mp&iqQ&8=#wuI*>*fO1Y}j?gg{0tw%CTINV~Ys_2~Hsy z`wnw_2Ux-+B>$aE5k9+rTVg5( z<;pf~o(;5Xld2J_0Aq@cRvG`SHz?XgS*olnG-B@AXtYRt5x>c2MGUi3EtIr%w1hBa z#OX%r@yWJxBSid6)T)kkfeTyyTZk&AdyRK6h8JhBUAI%L*<)3Gn1gjtd~zUvxsSZ;Ob*}EU#M6@E@ z88~M5bo=%#RUZbig!>RpYFXDVzCsE2lJ?Qx`QD#1oV$zy>A8g##wzelvt@kx*=;-H8X8pyk~kA9C7lCxR+Edw0kj((+6O)RGYw=X>#p(i^m=cFbEZ? zF(K*toQ3W@)7MH~_{QgV?&3SY^#9oy)X{$2z<>I;KL-q1k_bxc>+3W|S68vhlC-pV z4&z>mcYg3L?tlKkJtpC6?q*qxW9IR(JR?Ffa?JL!O_YE5;YT!fip5J;@r{4}FIdZ4 zHge&a5j>~Z8e(TULHCU9X>MkwZlsQ(cn)!G%#qsY#Xrkw9eBHd@rrtw8wwun?&B|i z|98+o>FH2yYI=_0*~5o7ZsFhko1a6M;#`e-wNTkq?ZmP)kh1g)AKbY~(h(^HCUIW@ zDk9=*G2uN2M|)9A#Zyw{xpKz2NCS^bwkW z^&fx!7rYl9G%0GS=bDE=1?|*B!PW2n_4A2z@0H1vQEY zZjB{9W;Ezflq;jn!JWvz4?g)6gU%2mDlMbYSW{8tCrMA`3*zx#``&F0T18ybce&1v=Jgj!^oY9>qM?Urr-*kf)=aA#BQ(Xbr7U#P{jxWIVuWdyij zHH!z>7*#q|q>2g8p6@D^Iic_)#N2qjzN*(Ml_cdNdNH+@G1Hyl^G`m&+N-bOvu7J< ztuEslBTMcTI%nF`F#{Q%SbqavM8B}3T|OoqOo%wj>~l_lxM}mWqK%P=Oxvk zMD;_Y+tHBtK+!MmjQBT21BQIuYokI?lf|`(2O5T6}e z@vOkhrX3e89uzBRo9MzHy!SqS^MC&$K6v{N@%Y9~9Pb?9^k7@PBsIL!n6@T^i@E{_|N zj>h9IW!-h1J^M6RiJzYwZIRrJP-6ro{C$qHlPGe3_4eB~TQYshQ*N5OXC5tF-2-2q znWGc+{8VuF+0t5Tj)BM2re zu3h0IWTaJN*dK9{xrXN)>Aw4?-%%!J?chWr@g|*ywv0X|3gBos#Aol{)IZ9suj0Ls z)*cOxiHv=cgB9w{Gu$XA4)mU&YE-6YyowFM#EANwVxZ$orI_VedSd}8RT2TWAYwnw z0lKU#it60NSgV2<&!fRY8lqNfq1SH{Bbu6aC2qDFRTCzyzOfuA##SPgsh)qKRRgFS>C{F~?Fafo%N@YejCr|Cv>hvVbi?Amz zFs2izfh)Q}nPB?N-=o7#R7x{wHqN2im?tYM-MWca-n`CcA~gZP zb9rnz=N<*}OtUI#^X9WHJi7IFTzIT?Q9?Q5jb%|%4_7X{Msyx)t&XB8l8&mPrl=S4 zS{RprQ-y#g_mIb!Jmzi0jq7xeIY(S(Z`{?*hf#xNYp5V7-YZq$bVU9&@^h+VpvzH#BC(b(YBR#{7H4$z{&QsQr8wKk?K5 z1g3xdgJ$2;$AGm7aDv{QPwrvZKBkuv4NcE;N(ki|VL=*}BCN5s7u85=t4A-$rh2FQ zGO<(RN$%4mTIWlpX*!lO;!2Y^aDu7kI;Q8YC=eFnp>(j~sXjF^d8A2#Pc|))pb)Whr$(MN4~EU3-+P2psuh7C zrE4+-CQ_hDP zY7i+KzL0t$G0ejx>9Rz;s&p}w&O4)yMUWD&1O%caGeRS4W>|l{pWWTz#NGohn8_f5G%U5vqjqB2q zSbJCUO$(52;$U|VfApKbMJpZ?9GW`VPF3}**(d}heNVcnAuZWtI2WWLWBAdWir*=l z{W?j)Df2Cr`YWX;iFFgw=cbwH8N3cDp?H;VA|c{R@vqQ`)2($9oGbKb*RIDQT#uwA zrJ)225BDBnarH~wAeEEZMGVNBOOjGt%N*0`aQ~4uL_y@CbKJ(I%deP-=NF=vdvyKI ztvgt~Om>1AI(r8g5Dim#4pPEb7EFrQ?;bEu2MR_d*{BT0#bD&hz85Nj_n22gW*Re` z6X)`5)|iurAy1db4=b#?g2rW{a}yy)G_nb)4ks)zeWpRR($cn2j*luN7VMB_n=5J* z;mQ5pzIwIAG>AvX6dm?xoH14|{Up||eG_l|#6MH-3S$f649gd_A8JZ$r z4OlXKmLDbM%&k}+4wVL-Uh~Lc1f1l_9F=pqNs&-|dMIL;g@HX^A-Y$W6i^3rEEiHz zhNB_rBpU^mmJkw>RaC<%bPt|ujh5qOf>|eO3tNhXYzW3AGFoMr(+~q1QfAIFX6=tC z;5R~CUTfg%Z>^Eu)=4YNXwA;!fY_4~Y)9i$y~h5=Gix3qulPSuOn`6iAE=}%|7PYc zFkkLz-o@EKHx_f$DSfbbOv4zWh(tPt^}JLCcrRdCqR}`3V+an64A5IrlRK>4RnCHY z18WPry*-we4rb0>M%+Ke{JB>Nj9t^qBt<0b$+r_qzJo47NVIM?`D>S6#{c*)|DK}4 zG(9mp{2k}j)n|3pYLZR4>>n0&3igdG_0ju#KRK}>maDB2xw0S#fsuW zucg~L+Ix)Yg*OOFC&Y~N`aEVvZXR$w{Vpp6`LpyK?Snh)e%kyyVi?cjfBnz@j`fv! zG>8p{M_p`=*|GJD zUDs9q_P+0#J1>tte#VZ+X`D8xOJ0pYNz;}V+KOK#0?|K6(5OWq_=P|M1QG!ugb;!R zM5Po2QmLw@ElEJsNpM~YcIr5`Gmc|>?3v8i9*^yLKkj>P)>?b*ea@sext@E^J!hZw z{MNVDK4$jXbq@o00LB9`kBv?&)(8sujl2Crn1Bua}N{FW1XQ zUdo&7II;!3uFt&2CePa#I^ov3g4|25NxFVCQcO7JRWg(0Fex(lRW$k` zctuYa?~$#25Xx&**%WR@g-LG9g|kwigj8e?q<*pLunwawZu*OB|WY0Nt+AYk@-N5zh*GWl-iHUPqUt34L-jC63qj>1yhj4IwoQ$og zAZyqh;)Z+JkAS83S^RCmrwAEW=jMC_0gHml>jYeQO>3|vk)aD&a)!dyL zjRxL$<8{3G`WrZX`ZQXt7JA(-+U*W0-oxO)Al<`?hd=wd&*95o`3mm2_g)kWBu%k^ zh|osmQ1>H!1hSH`MRCRSYd3Cq7-V6Uk8^_*&lVQ%~WY zlPAS%rBVrfwLYw^uFBd4TR?xk9>Bm_bUGcB%Vqrh7r%(Ff8$9E4~?K$EM~!y51LF$ zQRbtdmz2LYKkrS7#TcF;K5d350aaPem>0RQiH0$`#iy=Z!SDU<@8HJ#JQ|w~6bc1- zj|>gVwYP3Bpx5h)LhQ|ffdL6u_9iR4V{8n6@@IdFLx&F0_hJHNqZkmu&udzRlI~NW z#^d6_RHwX6!si)BitmJonzJSc;4yp&Fj%Q4zy2GTr<~)EWbYXgx50y#w!A`N4T^Tj6W{y(_i^lhk5SmQ!>y$RcofS83=j5U+h83dgG1OcGDM23W1Yfx zz1gI^B*oU((b(8PnLO!wHMGgAFOY(dedaOTvH#ALW3iCiElR3;73~8#aa<;{8WxaV zb5V25+N^M!T)oL&d`BzDJAGvm|Mu*&lv_P?2_Z{`A}I#)QVF{#-0s}710TP04@QS5 z1gllB<8H1ru(005I_2S|sad>r>NM6!(E=&CZDa(Ci;H;ig%|PUH@->XRzyffpD~<> zmJwO?SR@j~JUj(DmN`G1n-5>FtR+=NvQb#7+wI{$zVn>`9cH@2FuIK1WHAWZQqX9j=hQ} zo_GRdJ9mk}jmDohTg{zPO?wU#b1H8CuWC?3H@IHf_rDZTjo`SW<;`4{9u zW-E-4ebo|<9N2|ly#H=|;=ms49U}m#_Yr7RP_9+UyCqbqObiSTV~9$^J%O}{3N9}Hw1iIL=xV5>;F`NP;0ZO^Qk(7pB)kl3v@Ea08GS}%qE&>IgMRH*obD` zp2zpT`(12OQ4hrg80f3wlLzm>qxT)e*yteoNm(uvjHs5RFPAIiLGmIgS)k8-149^~ zki6&cA>4oH0P5s~(rLPs~U1TG2DzJl5w}-Xh^pg{;qNzXqH~j&iGILi?0) zPnUjmlxw$c&Ew^lULy8Uko;qG93C3Lk?}p)Nnj$4vu|$mo)y5L#VzENr zte{dG!0^a+Jb2$>)XGJQfU59R4&#Z5_k`Mc=Crw#O1{WfcVwKv<{g#&gjDR4@&+mP zVN7B(eB_mvUJj^6N^of?mI^qudlUzDjz~BPnJ*Zw6m&;Yu22HENrh64H0JtNl<$^~ z_Y=Y%*tZ|UwHlR&a=1IK&CxM6bw$=Nk*!63;#FOf?}mIzD6J&fLGczJH&OdYfz)!U zr!+cL8YbR7iNo6mQKe$c#d`nFQ9N?bek$0+Oh_SXxQ-F%kY_CwdkFV5;ms0jt(5Sk zbNgy_TBkq&RVD9rgV*Ty%afN$86pLKYnmjIflOwje=`p%pYw9DB4!NN*l~NW-GxDH zC|8JA?lW!t%FlfYdj~4$C!roaau@dP7(7579JvySs)s= zXJilql@c~c;aA>x0}G1_c=VA+Q0?m%K|0+AmR8qr?!qO!`S!b5BE(!?S(QlOj)VCq zr$eXPRfSBxQXme?QurzY6=Bl+Fe{ciW6U)aA%$fgYBD7W_^(b+;n0Cmp;n)``%aXo z-(yn1(cBzesXz^{?6h42R@B$MTh-ERO2>oW9il$w(Z)3cB73GXU^cnsk6Ab zcpEpl)1cn4-EE;-t4OgoHb}@GjIEiE3r5$HNPmqZNsp_dL#uh-WjvceuRNi zK2d&rI5Ugu^#UGy{9)W6-dLe7fx82)g(Fl8@1lmypC7^l4?T#D)dgHVcan;C z6D2U)sp0+e7jfeFNzBppJ!+vUWGwGmN(PODB$M`btAnMbC5%xzz-IVp6ce%rO34Z- zR1BjwWJ6S+QZ`T`ul$rz)+&1HcyVTShPr?i9KUcGzy9UNFxVbMm&$^poGMdotJF#u zst;hW(ZTq>JwnJA4Hb0)p$aKCOwDg~V3>ev29q?axw*V9ql)#$CY@W5Zl3SW--R#X}y!`eA zF_*mp^ZYy4u_~eH@aPzJkQZA-w|ZSif-YhJyHO>k!k+51yVyhB`KY<)H?N76nqSOhJth zCuGbq|Mt0~xO?9i{`fb4H57LezD!JoTby#GAJzUcdA0*jq1jJN$15r`5bfQ)6RpiP zwANSAZEj$G!D6!$aDdllFLvoZf)_5tm*oQIT|)cR_4uv*g@v{jaaNg8Z=ZOm$vI!L zkGUxo+?kmf@p6$o#URt@1!ZL-#t~2~%FVdomy6v0m4rAq);HnkZ;6UKdtrb&i#m~U zOLNga?l34EdGZ!Rvq&Cf&dXePb7MWQp2+`IsVHZV+bMB@4muNE)9|DdTw*u*ft*j9 zB+XV6OACtBXWu7otu(9+PjSxDG~kZcN;82?a9FA&vG|J|d5X z1kXEf-@cXY{Ls7AY=@iBXNLKvZKBv}z)&7_*4kLReG?rrOpTzQ#~aQW$uR~3RrM58un ze!^o34oi0V^4bQLDTHd}0n)ICrVrDyCe2(pgnPX7M^m&82 z?RKjz&1-BxS%{xZTqNDP=x}Y~45!eXn)#4sE4L+NckbMcyAFRGcZ}a9q@YB(*J^D_ zX=u~$Euw!+wynvgeY_AyT7Q2%)I2U@gvp6Mq>kA@+#*Y8%~6Ak#hO0QAF&5n5rQw1p#%8@&Ol^L?qda zOq!>>-u#U@X@q>vnVKm_pU0V`(E(=evQbsRAL&0)hr` z^{H0nTM;V|%#-Pbl(gb30tBATY*Ght{M;mVZ=-TPIwB)^p1;(G>tqZ97}P1$#;9c~ z;Nr|Vp=2HFh%7AN?9^2v1YMb88x46b5&YRwo|g%bxP6MC;*p_?&$o1rTc+^2$RQAR zlA>!>+Z>>nJS?lF1VOEaKf=_FYZZ?zPF$EF@Ui%Xhd+Ts)LGQXTf;O^>Z^Oow+^*X zH>nAxk>I{zTBnVx^S5yPgK6;~=U7iVd)-P0elAkNlErpNLj8;=O!kC*C;>u8n!UQdQaw@2Cuz0g{upzc=DG%gBo@8_4)`# zcW$HJu_7J%=K2cOuTE22w1(%8pT_CSvkAy#Jsa2#_maHL)*>W6IDUW>t!k>Ne7b=d z=Q2rtl{zpPr^)HFqVBbp_=u=t%>X2mlash|`LYaqBM`(9hVy|!v9ecgEa9nt|8IQo z;SEC3CD~;PJH0&XY~%X;ZG7v$UdKC=SAn$c7S>=x$^CdrP86>z$Z9b-IEdU>8)?*{ z?hCWp$WVE2f(5fCxinB78$9Roo{aUTN1K_iiRV}^4krl~ouMEXCVcHitBXH+_6PXV zr;p(A2kyn;gX3bDx88dX-}>Q?sTtl-iz~GGK=~;4+F$!WnwAd1$f`@FQ58zoICeEL3U53&fM0> zHZ>_7reI;PZ=}_+;*l5~C4C-XvlR+Edni5|!0$4FN{xC%DM@tx=;){zvsw+gxw5t) z=3wwSa^#cv>Mws4pa1-41!ZG!3j2zPKRJ2P$F1nNjU{b}CPT~%u2n~Wd=x)=?g!N5 zen?EFAz^0K7_1my(wyos;{=hRbLD!3fb?Bsdc-Fbkabo_=$d$% zqJvS9(78qTcP6xL&XsU;{wALO`)6<;?d|Uz+m8HRelZPbL^+$N&h+dQZ9cw;W3RkQ zVX;C=wWKQ$4+sEgGV>^*)0GKA%*)_GkL-~YlYmO{y%&N>49dzC!iXd8U4#yVwzX** zz~L=M0ncOfQ53qSOY(3@5yffA6`JFG``iD5Km3E=&%!~-c0|o2iotU~{1N`~pZ-|{ zW=*>7Zpb4<))Oo)z@n%p&%eMcW6D9ez9P~(7f>`yg@6rQX5>7lVaxf;3X3tl@LRsj zIiI9}7IQXKyW7UGmtV!#zV>U_zi)4XEgQnoB`aUPGKFWK{a1|tQlV`NX$D^h45?)BPkbn4%M!B(a6&ld=9T8(B^~pB&?-g zcJbP4uOB3cM;8pr3F7IVpwTAOqy|c8aY9mL5s6q?LgNbAUE=h! zT2FO$C97~Qv4_R;sxp3C4rGHw_9R>cVR;;GZ80}Jx;K?=u6#PYy-rxJqaGlhL!PRK@^QVR?2|x!>`ef60@Tw z8M-J)Y0^GN#*3|N>c}L)2a;bf0o9yFT9XVmL0p+BfsO6Zg^QD7jriD7e7>5I$*H@e zr9znq#XTE0D(XZIYqFV+2x|fj(`RtQrl({_xJFn|3`6bh!iYY5EK6#x?iDikjhr)* zhxm9lUwfV+QgTpO0%<%yKaco|kLbtnl_74=<;b%(nZ~Qqijas83T5<}jS&#e>K0g7 z!{&&5%vG+LM(e6f8ORC}jwVmXgG@$2MWl;EFYk1e;iMtpPyY|4>!7`YqKxbS0000< KMNUMnLSTaFb|M-8 diff --git a/public/customers/evil-rabbit.png b/public/customers/evil-rabbit.png deleted file mode 100644 index fe7990ff2f533d3d053a97f631800721e1dc64b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1019 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 diff --git a/public/customers/michael-novotny.png b/public/customers/michael-novotny.png deleted file mode 100644 index 96a13a69892c1c90445cccca50ec3d28b1681971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9902 zcmV;fCQ;dmP)LCRdu5cfOhZ%F~Cq5aYzn1XC$4Gn*3Ix92cd+xsb?u&~3{0A>agML|i z%{ARSz&Xfo-lIqJxp1j+}2mS$p_Ers$tPpwf*PmUw?`jNa;LVX3iKU6f9f=Q$p z?@21IaX8Xw5GWla6>E((9t@OB#RuZSAySrQB1=zPVgg~5GWpTSZlbAhpZFV2U3#j&k3dh(Xgm(o>kiazc9ihO?sG$&5k#Ky#k?|^ zEPnNIOr$;rx7tGu_)IPr!+|&+zb8EYk5eWDVZwVxlWBH&7WydCn12t4L$$j-b#PXH zI8qGfyN_XX7{=u9)`n_g@K!D0Mgcd(dp^fbWbhsb<$`q_vEPf7NhUQKabXPi{h<=^ zz7hc!!Q*9q$0yb857p^(c;7%izl#x+fC!I?c$3!(r4%Vi_ISKD@i}Kg)k<0ATu#|E zMhqvEhow~@&Wh9RpkwEVh%||!>6s>+waDVS?CxpCrs4!5 zuoC2~_m28%4`OQd%!|H!Ud$)5+yHM!c39GLB8^F>!C*wBse^1hFy*^nj%>;frqR%yg&sGTPYPaCSnd@ z`Cy6*`+PEt0tY?`Uh{~ec{Was#{suE(Ic+PC)1WMIFo9fkfyx1L}uhO8TGi{hzQkM z6Lq>H)tcvOv?(DRc-|%@y8$>5XfE%&)Hi3v_@ZF|sAhDio<*1!JaXPAJ5uQsj!CQA z84`VrCbR~W_FtSI@EO4&C|<&<8KWl#MnuLN*ozp+hcL_^j;UwTDxM&vq%Mbw`@V8Y z(I$LNNUH#^nwez2A`CB-bBYb7>Ey*DhmLlzEC%N?DYbFH>3L6wwXO!#+;Qz(m10uu zLIhaxyT-s}R3Sx6O1gwo#OFgC8V>o{>f8Qrp~P6<%FItV01LwD>-PItY-((r&*nH+ zp6mIcPtkMOkV6lniH0DoPm1RAITh16%@$K496D>a)gOc{8)qm=qC5rYqY4vm=>!uDq+=_sGPS9oySC%Xkc81 zqBDnPa4g+Mu2S);7nxzSJzhxhJD*$~6Y(IJxHLCIJ+d)Qrt;0T(F|o+$|S)bJUCaN z4+C1qq*B0@OR1!;S94m*ZiL0RmAXF;kXkAHgqNK0idP$qVd%=>PnjSgBy2GySesx#9_9M~{KS$3~li#Jd zwhxxX2ywtQ`_IA6T9qO27-I*V&03RzlmV^*WXv=Cu#_g9!2>_-8z2R)-x}F4SKeMs z>uU>m&+h^Kk)8n(%|=IEB3#O5NpFBEHgIWXtsp~2Xp-axq&){HRYT2G66&5sIvX|> zA4ny7ZKYCGxxB2^xhpz7Jk-PcUr>8#&CV{XkT2@O%$hE(-_+?FyZY?QpR0DfZQ)da zV*_hDMldLcVPHKxdJcx%n(r}QACWoZ;dmNlvcNgZ3mr&Ojmp5n{2ZxSO3?MekXS!527!|>qpmXff}Y%epv_Ag+PHX4#bQaz3+rUVjP5`ASbJxW z9i@yzgglUY7^Ac>ZV*^wlgm7dZV2iRDT4_u$s!)Po?u2#yTpVu(v0L^o=Lfs>+k_f z?`kg6BK4Q1MI@}JB!|kTFd!LW5Ff@EBL{8hr`61aw3&d871&n2-qmsIT=8P4Y5~+9 zB$ehy%cWU6mAcKQxZD)r(W-FgP=K5}QWZ=%ayd8s|oq-UK7GaX)ukL7NaX}a6tNO;*|F-7l*IbXc+MH0g{oXk>+1J_0Go5Zf(vR=&>gtud zdi&k?bZK@&Cxb&}!-mSRz)>lt?PN@KYdO?m;0&_}8gs)eLLPS=IObZWF*HjNnwuj! zezDNUdjoo&RBYw6*Gg#T90X1zRmt^~OO61iP)j)v!{a)pKaPSpBqc+-X64bV28NCu zJRg8?Sr`ppLw*kHMB-%N=-tNJs$ReSuIA_0acaWYHFX9UrSeK=iYkuV+%KyNX_lk3 z{^Vz0>dset`sO#^(+u^W%C(gOs0!(b&f)2>g)!r38p$ceaK{wz+_e z<@^b*Z(YLf=O>dByueNQ$E2U4tz=b=;u^qhbBn*W&7&c8+%F`)LI@Iht_znNS&PJ!D%>8BGSEV~{Be1S##ehOSL2B71Q_ zHlIf!u;lZG%fSR6LsAy$vNgMMsj)_f%ZBi_749$$PzH02u3#|fe4kr!4 zhltTM1{luHFY3bjs!mSM)$1MWgz<78LerofTBnfBx6s@)z1$*e(BuXvpu~*IF-slexW-S0@W1m$TVu$& z=Y}f!Bp}wOWsKYOOAIb-mbExr(o%I6FXvp-v|-&+*m$`0*64XpPtYA=vC#4NC@@9D z`Y9)eS#4fk(4*5c9gTYcDg#Hm<0!B>EL+K7cj(%li45%~oB_2YNv6;(9Z5>qL}zVm z0B@+(P%8kDt$G5ZQ6(S)M#*g2sbk>o83do2ARFDt7lVn#0f0$AP?Hwb$AHAdB`5XQ zcfc}X;`zguZt0Dy*H!N|@hpAT%Q9Y)74+{hnUV78(Wo32=@^a;=(9G++rI-eweh&a zSsE%<%le{mpl7WHV_}QP(q~QD!GHwyZ>`9~K_LP~r_p!QQkrQaNta0jnuZZJS9dyH zMq2vt!`;ZK1&yIGrBFNY=?-c^5=Em=AFY$lWBOM#u`~qbQqy{x@ScEC(x|1E0xU?a zK3WxQ01%sKy;WCux~+J=1Tv;T=8^7w{D1W9(L>#Nu&c#VPQUy9ds_l#~caCC5{6MjX-|!&}CC&10r0*o+$|GTB02Nf2;g zSP)H|I2Yp}S6_c!hldBsmP$?^8}=J&x6ZVEKGZgI@L*8a-CzDpH~J@(Ok4LK9O(1y zx^BPnqTYS~TdFQ^;;5Y3r1*qsDn>BE?#R_>jFHpsolGWNT2Fd`H3_Ak22D7~**s56vuyA!+>_ySoQj)hXRO7P3mX-vSN9=<^-O_2Rz<5OiUF*Ln?+V5 zHplTjoY)AKa6}-^^`14(_0C(rt%HO6Dut_%8;1Y+7nLtxqCIsT|Ba_|O6KOY@zPuR zJ2Q)VXMZ0M$}3mOJM_(9;ONeW1Y+dIR{PKOaZ@Wft1&AN2U}#j2nnWVxu~1m=D$gy7QMJB8zW0Y#CbzUQkMSW7?Y`!_WKk@ zM>ZXCb1+&TJif2%8|&)Uj})w4Q4HgZ$a~fU4QPCNB2G-e%mlld_2}tyD^9mcm1tv> z(g>g#ZZ4^}d&Xxcj+~ghBjfH9&!K!aX~biqp4G335kxa(C1@HN24`uXCffG~Z8cFU zedo2v(M+4f9q1T2wI3Zd0Jv=aG#O{Yq?9&6Et+ac0UnzmzQz2hNEdhQfeh$TrzdUw zr$7B4`VKWY9JP6!p@KtoYlnbHq>FET*E!1CQUWeLY@&dc*Ksfa$NPKjW7u9xKd+sE z$expmoSbB(!}cQy-c*Y-$^^bnJ1zAPB%qD-WCVr;*DzyEX9Kj_kf=HeN4wvrOp-Qn zfMq6&Sd@)*d!Cy>ES)VCLehRoU1kAo68ub9R->2;uua5BikX~nm#3Lj2 zhaEjWI@Ch7qFDD#I}djq*ImDSP5kqDLRHJl%SQHfBPt-%@$K!x9 z{_N3LWR_h08+ova%%-6VX-aQ^V03hN+JFX+rm7{5%A^yngA5@{ww|$>-NgAGL9mpk zKy7?7EqA&Ivp8G7wO<;Yv=oh|)#oVNBo?^zvglg>i^E@I4F4%=GM%ziVwy=Y>@%#J zKwhW5YTHjB3q!r~>J|Ou^K)%%+|nzXZ)jopJ`}W}lir!0-P=*)xUTEHbq!Br`VYVQ zP`enCfflAgc#oxA9`Z6XJI5%=)KqWl;Iv5#?YR*!!{AVaK3b@nT}TFHWp!yFHkmMsSXP6n=)>PUg;1pRkN@CXh<+7$rA58^oj=ff|Lk8Yv-~3WN$DH!T!ZvWh^6>yotBJZFT%+DF`G z-eF90siNj$IVH%rCcOIovqLr6W7)=Gc9xN{m~$C5pmtkO-fnN?@W*<#laq~BVuv3Q z9W&O_*9f;pwmTd;hZvYS;_b;vqt==d({+xEx)Z?77uK60_A%CzK8v}KcJ}S{EBbFA ze5}pFyxzX?0t>lwHBA_4fxgWXnhbomp3=hVvg@N;TaWc8KmAhWo9i0S@VmCD{?H-F zNVQm?ZBezRj~}1t(X%6Vz&$4m7cq2}4N19>arN3|X16X7Jl`$({_~ZKm8&J5?QlF> zWSc@|J6#x(Evv@kXuA0$g+sTubvq8H5qU;PZ2omP=Q&UMwjPD)1gvfBWnyT42l2YqbEAQ|i8>MyIWZJ59au=9@ZNgBOpGhexm~4!>Ne zYO~Cu9B^#b&-GyYKszTbS`-5gUA5INy` znz13#?Xj0N-Z>;nZk+4OrL1Q~?@vc9gYeMwB-`(fjDE^(5lrbfooQiiQ&*sZ1@1Io zDwAqyU0z+#gTtnN^vQi)Ud#hPLYiHn#)f*l-^Qt)zWMsw`pfo?TG1ADo@R}j)kbbn zMI@V6v!UHXw)*t<0TWY-#a|(343GsM=e4nOME#D&V+T&Y6D#dZo;!Dj4d<;UAo2>G;?(CuQ4v&LKv+t6UW(5Vu(>adlR?QAE3Lv_mlBlHQt@3m`husUsN zaee`P+q9&VD)8{{y?a}K{Ffi)Jg)xZgX2Jg^E%n4xJ}P|}^noMxIQiN%%BV9HT~Y^Yg+J& zdVorC12MnP6qYxwiTCDEI;&Zf&*L-7a|951`u3Yw^!3|U)z~8)=dQBeDdPMt89-ge zGKzYAZSCyp^GEwSsyh{tEk#;$MBiGGdys*0YT;m8gqtuCJl`C;M=Ea#?2Vc#HkRY4kf^LB1!$EpmIx@ye_X?Rc__BYP)dl zXS?cbz{psE=8FsZqV|lsVT-|1&a~qcc=7F*msopFn7)!)MytN_>utS@s`;!l(t7+{ zU(dX#t+1w(+A#v&fxdjYr@dOoE#-?yxn=aMG|n^QMnn7F0BrMT8SrWvD!`O$f$LY;kPzF9v3w z?~^U7%9W%xS1YQ{6aY3<(E_k;tRyn&)g+uK=9GKWw2abP#M4Yn2`{7di*M+ai!bTs z#-{G0h5c~%RGrhBF7o--Y*jyN!K?ZAw-M}W9AxMIj{XJcyd5v<`1G8a7>2~_EjAMq z1cvj0)tsl_zkWr(hML|)lRP{eIBY14S}H$2(F?D?tMA=>MgRFPeyC3$d`3EF+}3hp z5w)iVhC}xdjh#E`A{%$okG&^G$y~lPr{%c{WmO>JNmEnoshcr%V5(#25H4=Ihou7^ zdi#ZI`kmDqS}t#>NxRuUsHp-$m^mHkyJgUqOo$`4ov}zCG>`P+YE{opP82~7W>}2> zVDC@|Oe=5C6_r_E)CsL+7#p^4&esK*n&rb&- zlNy&UmA-HKl=bJoc|^bmZ7VY?djGZW=zCXxTeEB(`Vfc5+@$?vTMOfw{`%nowUp3O zyTRrmREx>y1SEZVHm$EtJG!{Ih@7&er_}y^#DH`1c^=~mMEUM%SHIdm*1e+|YtM;Z zqSd8nLnTy@x!Js%b${#fl2)LV3DZsI77*$B+MsMV*I(8i<$3xZaop3KB-2}+MHj}zx=I#sI_=mk1^(8 z|5#si2l{~bnUdkbUH=ymiY~0N13uLQ$jWaR+8-dbWJ&*@(c0Dkf}4D{4L00w8<7~P z3t@Tb;=2Ct=Z_&LY&ST;`wLb5&hmnqrFnQbE1zse=Y9#!%*Nt)Ps4gc4Y+h-Z%-G! zy0#B`O6T+X8sgvk*RJc*^1M!Krw9)t*NQAy`AS-^z4C%q7nYn-WA*HewUiEqZU^X! z-IRKt`q|&_x$$hbEBAEGtEW3Eak2GMMQNs+1t@6ww68fht6w`umhI^1_()@>m-3}~ zmEp&q0qt?pcvK5qj~s%gEoRpyy!bnFGx}w%>7LEn#Mr%LUjOr?qn8T^=Z%p*Vci33 z)`d((y%{ow!J>?_FW|6yD4d(5aG`$4T9^KQ^BtzHTl%X{exNV!-vP`#Ev?OJac&mp zBNZVxM`VF%ZU$`erS+NbC){o)bj##T1oQQHg+(|hy1S!mG5TpLbX0T*5M+BD-CD?K zAFcY8m5N?Xhq^dlh7&I;YBaRcInq<2a{Jmk-}~CxeykEWv0z#^B%{F~@qRJJ7BbWv zDcC`^=*=!FgKF{8;7ntLhB_Hj0#|~AhPFxX4-e1O+ulW+%IJ?#H$%j~$q{2E%E#{9 zvU{TF4{lsn99Fkq+tRIW;Ncy)bQuM|Rk z)fnr~wrYBuE9nRZ^RVJ6+vw_y`SgeEp|*FMdKm*^^u$MO4)=#im8z@ybpMe){N-o5 zf!O}i+^X(y-NU0}*;*$FUi{S=dN+r8A28{kx0LPF5d4o>g3qcjNhv!st5`6>mp0L3#Gn(FH6SxO;zdBeGvMCtz9+Fy9zhT^5(B;ee=Gu8GFtQwuplxH$zOx zk$Wo1h96TqOnQkxxFZJbFMXC^fYZY^5rQNC{mn&Pay3rVC+*%`E$V0{qZDS1{DHT z&XrqW#g@~*`pncOIor0x+TfT)fj=DDkUb^eR@65)HWa|3{^AMCaJB=N1KP#2Z7tHY z>)8SkK3COiYmF8BWxTy`e83trh0Fr&d$OZ>fbPZffnt>+EG(n;-mYV9XSjNamiJwj z+mmdbGAL<70|hwb+0|P*-96TCuTgJj)XvJXHf==%h&7RKdu%_JXFMICPaQK#?%GO} zh1(-W#|KY$^{-abdi(OC4pCXW>>OZNlXa|!MW3-j-;3OHD5lW*wuLj6W&7bAo%8J!a4!V8kGeWD3%^0jMJC zMs=>L1=vx2G-O}g)-r?o5i60ZiSlID8X422WwZ{DQ~~tnp^c@Tp)M5Z6dIqW0 zdtTE^@bXOC)9-MvYm<&<0mVkv)9KorS{YBfCqw-u!s6W0nwD%`GdXf&tqA~QFbc?; zZXisgGnzHx7bT_-Ytp%Ad+x!I0`-=Mas7s=W42t@J!*Ld&sH*!3s#|bk_DZEgaf>I z*Uu}cEa(Y_-kZy+IKRw+(`*n>F=yww{-=ERbzp*eX+@JFgeQ5TF35kxB5aO~Xd6%>vt4le<4Bihhp_ekep$&asI(YHzotu0mAROVn=CAz`^ zBW?8jxsS+=xVB&N4aL0a<5|e9IUQ4fOHa1kQ>$y#Ns*!UOIpw|`=A31jw8IEbXix@ zvU;eL4OrC(k-Y<#_79JBJ_5X+HPqzd*@Jz@;yy1P>G0XUilwXiyjIs!>TZArwS=NpTESkl^VqL8|pIUXDO2+2FLVSDi0>i=(TEEk4&e9CT4b@lCA^9fGvfHdUK0K z&39{BVZ1$iT+{Mu0mqyC%p$=F0;W#ehEk@0#N4w^Hbi6?%|6;X)Fs+ai=USnCMNB= z-lQ$9L&86&y{z$}EB53ML;rilK=YHh`bU8G-r zbQIV7^L(~6r=PP_zu2cn`w)sAX-s)6qa9@d%=GC1fe%dB*;b3zb+QbApAs-a51i&{T`)xiDb*luZ_| zF3f6tc&>Xpr#hn3XGzVUY&Y}*;M4C6^pL5)MvCpBTit=|PxiZ7U;*78LJrv6U!--7 z;N%}1A=)n>qBTP&u$&>??%KYoiGm2)t|F)2U|UfpqIJ}d9$9lcCFRpGy%}WmIuu~B zLI#o2l`PZOd{XbsTiF#DYN%5r@IO5OJjsxYGg;lW2@I#&BH-yFauAZxIf7pv4q>Tl z3qZ6h_cXm93#YWw_Pind=Cx#BSLbs2DShhEqisE6J<@^o9AptBNO@E>jhGq7Gcy`7 zszv-fg0FTU0U>MGBd&c?jcd!dhroUJ7{pHj#%`ggEu3)|Me`8Q+ef9C9S?NukM;AN zI?-ZP189CS@pb06v~f%X8369FHAtS+lo_S;v>(?itJiP>%nPBhjrKJx%;=$4Kxi0g z@vN_p>nF-KN9sc_3-fN1wCZ(;jm|kH1 zyfRaCb+N)!V~a13w(&YhId2b?g+0^;q?+`|34$-v*WYFJ3M*8Paqbj}=Zp=(8}nJX zbw(S=vNvID>^_LzqUK56TT6DYt_mq6TziPcAgE7hzzxLHTjcRWhlR#mIQZDXs1y zn3$%D#ys-J^4245Fan0lRd{eq+s7SsXixU^T^af0z-DAyU695#Qu-)m8}~lxUea!1 z0$uc};fSatR7;~d6-zp$uJ`zS1;Wu}=s1cY?Rat;_n7`XffvU^la5*n+x@Au3Z)bd zNf6ayd!*S38Z`3Hb?P)-KXvUXB%RCD;VSEwUm-kvMCm*UySlqH(I!z(ttK@`pO2!J zJ?P|Se0!M2zi_##3zeKIT2T6sMK>vv*gw>5+SL*LcL&7Y4nnt`>!Tz#*aFrW9J=Yg zdS^s!*wZPcu*)Pg6Qt;yC>?C}I!sY704l>`QD2}jUt>`CG4=QhmSA;SP#-#)Kwv*y zTGb9fb-tF-ajv6%diNYV>LHOo<>wt{$Qh1XU`pyS^=yF5Pg$c}WJK*kg+FfeRm&H3 z#@EYh3%aqkL@gibQg#GG^T3)Zi?q^Bn!*3{d++G{>|DRzPV1luJ?x$9813o>`%@Zt zZiX$Od%V930yE$jsi~K!vF2o;muU%UT(RA2Xhdeb00}vS>yC-i(m0_ZTY_jVP@ZwI zWXy;N#qIALo&~ydcmTP;K>*Ct!@7QSl-8&9u11UVTrp4)=bV*%J;B%_)Ybl=Ya0wX zJFCI`j2lnfV-*#M(IVh^i-F-PC00G#*V)#ds$fVLGMik=*`p2aL0D6<{MWC19dUbG z|L-Rs=_AIl2@$Os#S55;dnTcDnMMP>W)F>$vOCnlRocfPW5;!d{TM0B!WPzqBS7hd z{c%;n130(|LO>5sw;%-HTqtt4loomY%@z9tlED4t*kfAIZ;t!=1_MI^_GH_Lt7LT^ z)P2-Jk7hbca^R<&B@N2jA8_rVi`iymzLL=;Tg$R7tb*tn?k7s;lx!GKD)+`oCM!ln gujT$M$;##b1L_e3d9pcM8~^|S07*qoM6N<$f