From d9318053e80b2aa8ebcda0fa403f90f5375b883a Mon Sep 17 00:00:00 2001 From: Stephan D Date: Fri, 11 Sep 2026 15:36:58 +0200 Subject: [PATCH] Prepare product layout and reusable Flutter theme Relocate the existing Astro website and preserve its assets and hosting configuration. Add the consumer/backend scaffold and themed Flutter package with consumer tests. Related to #1. --- .vscode/launch.json | 3 +- backend/README.md | 14 ++ frontend/README.md | 13 ++ frontend/packages/sxchnge_theme/.gitignore | 5 + frontend/packages/sxchnge_theme/CHANGELOG.md | 5 + frontend/packages/sxchnge_theme/README.md | 58 +++++ .../sxchnge_theme/assets}/fonts/OFL.txt | 0 .../assets}/fonts/Onest-Variable.ttf | Bin .../sxchnge_theme/example/lib/main.dart | 77 +++++++ .../sxchnge_theme/example/pubspec.yaml | 15 ++ .../example/test/integration_test.dart | 51 +++++ .../packages/sxchnge_theme/lib/src/brand.dart | 19 ++ .../packages/sxchnge_theme/lib/src/theme.dart | 203 ++++++++++++++++++ .../sxchnge_theme/lib/sxchnge_theme.dart | 5 + frontend/packages/sxchnge_theme/pubspec.yaml | 24 +++ .../sxchnge_theme/test/theme_test.dart | 65 ++++++ .env.example => website/.env.example | 0 {.openai => website/.openai}/hosting.json | 0 .prettierignore => website/.prettierignore | 0 .prettierrc.json => website/.prettierrc.json | 0 website/AGENTS.md | 24 +++ website/README.md | 30 +++ astro.config.mjs => website/astro.config.mjs | 0 {design => website/design}/README.md | 0 {design => website/design}/tokens.json | 0 .../flutter}/brand_palette.dart | 0 .../package-lock.json | 0 package.json => website/package.json | 0 {public => website/public}/favicon.svg | 0 website/public/fonts/OFL.txt | 93 ++++++++ website/public/fonts/Onest-Variable.ttf | Bin 0 -> 193056 bytes .../scripts}/generate-tokens.mjs | 0 {scripts => website/scripts}/quote.test.mjs | 0 .../src}/components/AccountDialog.astro | 0 {src => website/src}/components/Footer.astro | 0 {src => website/src}/i18n/copy.ts | 0 {src => website/src}/layouts/Layout.astro | 0 {src => website/src}/lib/app-links.ts | 0 {src => website/src}/lib/quote.ts | 0 {src => website/src}/pages/[lang]/index.astro | 0 .../src}/pages/[lang]/policies/[policy].astro | 0 {src => website/src}/pages/index.astro | 0 {src => website/src}/scripts/home.ts | 0 {src => website/src}/styles/global.css | 0 {src => website/src}/styles/tokens.css | 0 tsconfig.json => website/tsconfig.json | 0 46 files changed, 703 insertions(+), 1 deletion(-) create mode 100644 backend/README.md create mode 100644 frontend/README.md create mode 100644 frontend/packages/sxchnge_theme/.gitignore create mode 100644 frontend/packages/sxchnge_theme/CHANGELOG.md create mode 100644 frontend/packages/sxchnge_theme/README.md rename {public => frontend/packages/sxchnge_theme/assets}/fonts/OFL.txt (100%) rename {public => frontend/packages/sxchnge_theme/assets}/fonts/Onest-Variable.ttf (100%) create mode 100644 frontend/packages/sxchnge_theme/example/lib/main.dart create mode 100644 frontend/packages/sxchnge_theme/example/pubspec.yaml create mode 100644 frontend/packages/sxchnge_theme/example/test/integration_test.dart create mode 100644 frontend/packages/sxchnge_theme/lib/src/brand.dart create mode 100644 frontend/packages/sxchnge_theme/lib/src/theme.dart create mode 100644 frontend/packages/sxchnge_theme/lib/sxchnge_theme.dart create mode 100644 frontend/packages/sxchnge_theme/pubspec.yaml create mode 100644 frontend/packages/sxchnge_theme/test/theme_test.dart rename .env.example => website/.env.example (100%) rename {.openai => website/.openai}/hosting.json (100%) rename .prettierignore => website/.prettierignore (100%) rename .prettierrc.json => website/.prettierrc.json (100%) create mode 100644 website/AGENTS.md create mode 100644 website/README.md rename astro.config.mjs => website/astro.config.mjs (100%) rename {design => website/design}/README.md (100%) rename {design => website/design}/tokens.json (100%) rename {flutter => website/flutter}/brand_palette.dart (100%) rename package-lock.json => website/package-lock.json (100%) rename package.json => website/package.json (100%) rename {public => website/public}/favicon.svg (100%) create mode 100644 website/public/fonts/OFL.txt create mode 100644 website/public/fonts/Onest-Variable.ttf rename {scripts => website/scripts}/generate-tokens.mjs (100%) rename {scripts => website/scripts}/quote.test.mjs (100%) rename {src => website/src}/components/AccountDialog.astro (100%) rename {src => website/src}/components/Footer.astro (100%) rename {src => website/src}/i18n/copy.ts (100%) rename {src => website/src}/layouts/Layout.astro (100%) rename {src => website/src}/lib/app-links.ts (100%) rename {src => website/src}/lib/quote.ts (100%) rename {src => website/src}/pages/[lang]/index.astro (100%) rename {src => website/src}/pages/[lang]/policies/[policy].astro (100%) rename {src => website/src}/pages/index.astro (100%) rename {src => website/src}/scripts/home.ts (100%) rename {src => website/src}/styles/global.css (100%) rename {src => website/src}/styles/tokens.css (100%) rename tsconfig.json => website/tsconfig.json (100%) diff --git a/.vscode/launch.json b/.vscode/launch.json index d642209..61ac24d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,7 +2,8 @@ "version": "0.2.0", "configurations": [ { - "command": "./node_modules/.bin/astro dev", + "command": "npm run dev -- --background", + "cwd": "${workspaceFolder}/website", "name": "Development server", "request": "launch", "type": "node-terminal" diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 0000000..2ea8c76 --- /dev/null +++ b/backend/README.md @@ -0,0 +1,14 @@ +# SXCHNGE backend + +Reserved for a small backend for frontend (BFF) using a supported Sendico API. No service, runtime, or dependencies have been initialized yet. + +Planned responsibilities: + +- Consumer authentication and sessions, with a stable mapping to organization-scoped Sendico customer references. +- Consumer-authorized access to onboarding, quotes, orders, and transaction history. +- Product-specific orchestration and presentation of Sendico KYC, eligibility, and remaining-limit responses. +- Server-side integration credentials and request correlation with Sendico. + +Sendico owns payment execution, authoritative KYC evidence and verification records, policy evaluation, and limit reservations/enforcement. Do not copy its existing BFF or import local Sendico implementation modules. + +Before implementation, agree on customer registration and identity mapping, customer KYC operations, eligibility/limits reads, customer-scoped payment access, and retry/idempotency behavior. Validate consumer isolation even when multiple customers use the same sxchnge organization and integration principal. diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..659800b --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,13 @@ +# SXCHNGE frontend + +Home for the consumer application and its Flutter packages. The existing public Astro website lives in [`../website/`](../website/README.md). + +The first package, [`sxchnge_theme`](packages/sxchnge_theme/README.md), provides installable light/dark Material themes and bundled Onest fonts. Its `example/` folder demonstrates installation and component styling. The consumer application in [`app/`](app/README.md) now includes a responsive login/sign-up preview; backend authentication is not connected. + +The application will provide consumer registration, sign-in, onboarding and verification screens, exchange flows, and transaction history through the sxchnge backend. Eligibility and remaining limits are projections of Sendico's authoritative decisions. + +Flutter is anticipated by the existing website handoff. Optional brand references are in [`../website/design/`](../website/design/README.md) and [`../website/flutter/brand_palette.dart`](../website/flutter/brand_palette.dart); these do not prescribe the application's component styling. + +Define the first customer journey and BFF contract before scaffolding the application. Sendico integration credentials belong in the backend. + +Shared authentication: [`sxchnge_auth`](packages/sxchnge_auth/README.md) provides reusable login/signup providers, service contracts, and dummy implementations for both web and future mobile clients. diff --git a/frontend/packages/sxchnge_theme/.gitignore b/frontend/packages/sxchnge_theme/.gitignore new file mode 100644 index 0000000..d96ffe0 --- /dev/null +++ b/frontend/packages/sxchnge_theme/.gitignore @@ -0,0 +1,5 @@ +.dart_tool/ +.flutter-plugins-dependencies +build/ +pubspec.lock +example/pubspec.lock diff --git a/frontend/packages/sxchnge_theme/CHANGELOG.md b/frontend/packages/sxchnge_theme/CHANGELOG.md new file mode 100644 index 0000000..e2bbf78 --- /dev/null +++ b/frontend/packages/sxchnge_theme/CHANGELOG.md @@ -0,0 +1,5 @@ +## 0.1.0 + +- Introduce light and dark Material themes derived from the SXCHNGE website. +- Bundle Onest with its SIL Open Font License. +- Export brand colors and theme factories. diff --git a/frontend/packages/sxchnge_theme/README.md b/frontend/packages/sxchnge_theme/README.md new file mode 100644 index 0000000..223310d --- /dev/null +++ b/frontend/packages/sxchnge_theme/README.md @@ -0,0 +1,58 @@ +# sxchnge_theme + +Installable SXCHNGE theme package for Flutter 3.47+ / Dart 3.13+. It provides light and dark Material 3 themes, website brand colors, and bundled Onest typography with Latin and Cyrillic support. No runtime network requests or third-party packages are needed. + +## Install + +From an application at `frontend/app`, add: + +```yaml +dependencies: + flutter: + sdk: flutter + sxchnge_theme: + path: ../packages/sxchnge_theme +``` + +Adjust the path relative to your app's `pubspec.yaml`, then run `flutter pub get`. This is a private package (`publish_to: none`), ready for local use; it has not been published to pub.dev. + +## Apply + +```dart +import 'package:flutter/material.dart'; +import 'package:sxchnge_theme/sxchnge_theme.dart'; + +MaterialApp( + theme: SxchngeTheme.light(), + darkTheme: SxchngeTheme.dark(), + themeMode: ThemeMode.system, + home: const Scaffold(body: Center(child: Text('Hello, sxchnge'))), +); +``` + +Onest is declared by the package and the theme uses its package-qualified font family, so the consuming app needs no additional font declarations. The bundled SIL Open Font License is in `assets/fonts/OFL.txt`. Follow Flutter's [TextStyle package font guidance](https://api.flutter.dev/flutter/painting/TextStyle/package.html) when creating standalone text styles outside the theme. + +Use `Theme.of(context).colorScheme` and `textTheme` for normal application widgets. `SxchngeBrand` exposes the original palette for intentional brand treatments. Customize locally with `SxchngeTheme.light().copyWith(...)`. + +## Design mapping + +- Ink, mint, lime, paper, and forest match `website/design/tokens.json` version 1. +- Light mode uses ink actions on paper; dark mode uses mint actions on ink. +- Mint and lime containers use ink foregrounds. Lime is a brand accent, not a success or transaction status. +- Onest body text starts at 16 logical pixels, with 14-pixel secondary text. Text scaling is preserved. +- Cards and dialogs use 24-pixel corners, fields use 14-pixel corners, and buttons use pill shapes with at least 48-pixel minimum height. +- Error colors remain Material semantic roles. A future product status system should define success, warning, and information roles separately. + +The palette is a package-owned snapshot: website builds do not modify this package. Deliberate brand updates should update the snapshot and package version together. Campaign layout, rotation, marquee, and decorative motion are not part of the application theme. + +## Example and validation + +`example/lib/main.dart` is a minimal consumer gallery with English/Russian text, cards, inputs, validation errors, and enabled/disabled buttons. To launch it, generate the platform runner you need from `example/`, for example `flutter create --platforms=web .`, then `flutter run -d chrome`. Platform runners are not included in this theme-only package. + +From the repository root: + +```sh +make test-frontend +``` + +From this package and its `example/` folder, run `flutter analyze`. Tests cover core brand synchronization in this repository, foreground contrast in both modes, package font/license bundling in an independent consumer, and rendering/input on a narrow screen at 200% text scale. diff --git a/public/fonts/OFL.txt b/frontend/packages/sxchnge_theme/assets/fonts/OFL.txt similarity index 100% rename from public/fonts/OFL.txt rename to frontend/packages/sxchnge_theme/assets/fonts/OFL.txt diff --git a/public/fonts/Onest-Variable.ttf b/frontend/packages/sxchnge_theme/assets/fonts/Onest-Variable.ttf similarity index 100% rename from public/fonts/Onest-Variable.ttf rename to frontend/packages/sxchnge_theme/assets/fonts/Onest-Variable.ttf diff --git a/frontend/packages/sxchnge_theme/example/lib/main.dart b/frontend/packages/sxchnge_theme/example/lib/main.dart new file mode 100644 index 0000000..031fc4d --- /dev/null +++ b/frontend/packages/sxchnge_theme/example/lib/main.dart @@ -0,0 +1,77 @@ +import 'package:flutter/material.dart'; + +import 'package:sxchnge_theme/sxchnge_theme.dart'; + +void main() => runApp(const ThemeExample()); + +class ThemeExample extends StatelessWidget { + const ThemeExample({super.key, this.mode = ThemeMode.system}); + + final ThemeMode mode; + + @override + Widget build(BuildContext context) => MaterialApp( + debugShowCheckedModeBanner: false, + theme: SxchngeTheme.light(), + darkTheme: SxchngeTheme.dark(), + themeMode: mode, + home: const _Gallery(), + ); +} + +class _Gallery extends StatelessWidget { + const _Gallery(); + + @override + Widget build(BuildContext context) => Scaffold( + appBar: AppBar(title: const Text('sxchnge')), + body: SingleChildScrollView( + padding: const EdgeInsets.all(24), + child: Center( + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 560), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Text( + 'Your next exchange', + style: Theme.of(context).textTheme.headlineLarge, + ), + const SizedBox(height: 16), + const Text( + 'Обмен без лишних шагов.\nA preview of the SXCHNGE theme.', + ), + const SizedBox(height: 24), + const Card( + child: Padding( + padding: EdgeInsets.all(24), + child: Text('Clear amounts. Clear choices.'), + ), + ), + const SizedBox(height: 24), + const TextField( + decoration: InputDecoration( + labelText: 'Amount', + hintText: '0.00', + ), + ), + const SizedBox(height: 16), + const TextField( + decoration: InputDecoration( + labelText: 'Email', + errorText: 'Enter a valid email address', + ), + ), + const SizedBox(height: 24), + FilledButton(onPressed: () {}, child: const Text('Continue')), + const SizedBox(height: 12), + OutlinedButton(onPressed: () {}, child: const Text('Back')), + const SizedBox(height: 12), + const FilledButton(onPressed: null, child: Text('Unavailable')), + ], + ), + ), + ), + ), + ); +} diff --git a/frontend/packages/sxchnge_theme/example/pubspec.yaml b/frontend/packages/sxchnge_theme/example/pubspec.yaml new file mode 100644 index 0000000..7713411 --- /dev/null +++ b/frontend/packages/sxchnge_theme/example/pubspec.yaml @@ -0,0 +1,15 @@ +name: sxchnge_theme_example +description: Minimal consumer and component gallery for the SXCHNGE theme. +publish_to: none +environment: + sdk: '>=3.13.0 <4.0.0' +dependencies: + flutter: + sdk: flutter + sxchnge_theme: + path: ../ +dev_dependencies: + flutter_test: + sdk: flutter +flutter: + uses-material-design: true diff --git a/frontend/packages/sxchnge_theme/example/test/integration_test.dart b/frontend/packages/sxchnge_theme/example/test/integration_test.dart new file mode 100644 index 0000000..b85af00 --- /dev/null +++ b/frontend/packages/sxchnge_theme/example/test/integration_test.dart @@ -0,0 +1,51 @@ +import 'dart:convert'; + +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +import 'package:flutter_test/flutter_test.dart'; + +import 'package:sxchnge_theme_example/main.dart'; + +void main() { + testWidgets('consumer bundles the package font and its license', ( + tester, + ) async { + await tester.pumpWidget(const ThemeExample()); + final manifest = + jsonDecode(await rootBundle.loadString('FontManifest.json')) as List; + final family = manifest.cast().singleWhere( + (font) => font['family'] == 'packages/sxchnge_theme/Onest', + ); + final asset = (family['fonts'] as List).first['asset'] as String; + expect((await rootBundle.load(asset)).lengthInBytes, greaterThan(1000)); + expect( + await rootBundle.loadString( + 'packages/sxchnge_theme/assets/fonts/OFL.txt', + ), + contains('SIL OPEN FONT LICENSE'), + ); + }); + + for (final mode in [ThemeMode.light, ThemeMode.dark]) { + testWidgets( + '$mode renders on a narrow screen with large text and accepts input', + (tester) async { + tester.view.physicalSize = const Size(320, 900); + tester.view.devicePixelRatio = 1; + tester.platformDispatcher.textScaleFactorTestValue = 2; + addTearDown(tester.view.resetPhysicalSize); + addTearDown(tester.view.resetDevicePixelRatio); + addTearDown(tester.platformDispatcher.clearTextScaleFactorTestValue); + await tester.pumpWidget(ThemeExample(mode: mode)); + await tester.pumpAndSettle(); + expect(tester.takeException(), isNull); + await tester.enterText(find.byType(TextField).first, '125.50'); + expect(find.text('125.50'), findsOneWidget); + await tester.ensureVisible(find.text('Continue')); + await tester.pumpAndSettle(); + expect(tester.takeException(), isNull); + }, + ); + } +} diff --git a/frontend/packages/sxchnge_theme/lib/src/brand.dart b/frontend/packages/sxchnge_theme/lib/src/brand.dart new file mode 100644 index 0000000..4c5aa9e --- /dev/null +++ b/frontend/packages/sxchnge_theme/lib/src/brand.dart @@ -0,0 +1,19 @@ +// Brand snapshot from website/design/tokens.json (version 1). +// Keep these values aligned when deliberately updating the package's brand. +import 'dart:ui'; + +abstract final class SxchngeBrand { + static const ink = Color(0xFF14221D); + static const mint = Color(0xFFC4F9CE); + static const lime = Color(0xFFD7FF5F); + static const paper = Color(0xFFF9FAF6); + static const muted = Color(0xFF637168); + static const line = Color(0xFFD9E0D8); + static const forest = Color(0xFF396A4B); + static const focus = Color(0xFF168850); + static const darkField = Color(0xFF25372E); + static const darkReceive = Color(0xFF203D2D); + static const sageSurface = Color(0xFFEAF0E6); + static const blueSurface = Color(0xFFEDF0F9); + static const fontFamily = 'Onest'; +} diff --git a/frontend/packages/sxchnge_theme/lib/src/theme.dart b/frontend/packages/sxchnge_theme/lib/src/theme.dart new file mode 100644 index 0000000..0b7dcf3 --- /dev/null +++ b/frontend/packages/sxchnge_theme/lib/src/theme.dart @@ -0,0 +1,203 @@ +import 'package:flutter/material.dart'; + +import 'brand.dart'; + +/// Install with `MaterialApp(theme: SxchngeTheme.light(), +/// darkTheme: SxchngeTheme.dark())`. +abstract final class SxchngeTheme { + static const packageName = 'sxchnge_theme'; + + static ThemeData light() => _build(Brightness.light); + static ThemeData dark() => _build(Brightness.dark); + + static ThemeData _build(Brightness brightness) { + final dark = brightness == Brightness.dark; + // Seed supplies complete Material roles; explicit overrides preserve brand + // colors and readable foregrounds rather than approximating the palette. + final scheme = + ColorScheme.fromSeed( + seedColor: SxchngeBrand.forest, + brightness: brightness, + ).copyWith( + primary: dark ? SxchngeBrand.mint : SxchngeBrand.ink, + onPrimary: dark ? SxchngeBrand.ink : SxchngeBrand.mint, + primaryContainer: SxchngeBrand.mint, + onPrimaryContainer: SxchngeBrand.ink, + secondary: dark ? SxchngeBrand.mint : SxchngeBrand.forest, + onSecondary: dark ? SxchngeBrand.ink : SxchngeBrand.paper, + secondaryContainer: dark + ? SxchngeBrand.darkReceive + : SxchngeBrand.sageSurface, + onSecondaryContainer: dark ? SxchngeBrand.mint : SxchngeBrand.ink, + tertiary: dark ? SxchngeBrand.lime : SxchngeBrand.forest, + onTertiary: dark ? SxchngeBrand.ink : SxchngeBrand.paper, + tertiaryContainer: SxchngeBrand.lime, + onTertiaryContainer: SxchngeBrand.ink, + surface: dark ? SxchngeBrand.ink : SxchngeBrand.paper, + onSurface: dark ? SxchngeBrand.paper : SxchngeBrand.ink, + onSurfaceVariant: dark ? const Color(0xFFB6C6B9) : SxchngeBrand.muted, + surfaceContainerLowest: dark ? const Color(0xFF101B17) : Colors.white, + surfaceContainerLow: dark + ? const Color(0xFF1B2B23) + : SxchngeBrand.paper, + surfaceContainer: dark + ? SxchngeBrand.darkField + : SxchngeBrand.sageSurface, + surfaceContainerHigh: dark + ? SxchngeBrand.darkReceive + : SxchngeBrand.line, + surfaceContainerHighest: dark + ? const Color(0xFF324A3C) + : const Color(0xFFCFD9CE), + outline: dark ? const Color(0xFF8CA291) : SxchngeBrand.muted, + outlineVariant: dark ? const Color(0xFF405A48) : SxchngeBrand.line, + inverseSurface: dark ? SxchngeBrand.paper : SxchngeBrand.ink, + onInverseSurface: dark ? SxchngeBrand.ink : SxchngeBrand.paper, + inversePrimary: dark ? SxchngeBrand.forest : SxchngeBrand.mint, + surfaceTint: Colors.transparent, + ); + final base = ThemeData( + useMaterial3: true, + colorScheme: scheme, + fontFamily: SxchngeBrand.fontFamily, + package: packageName, + scaffoldBackgroundColor: scheme.surface, + visualDensity: VisualDensity.standard, + materialTapTargetSize: MaterialTapTargetSize.padded, + ); + final text = base.textTheme.copyWith( + displayLarge: base.textTheme.displayLarge!.copyWith( + fontSize: 48, + fontWeight: FontWeight.w600, + letterSpacing: -2, + height: 1.1, + ), + displayMedium: base.textTheme.displayMedium!.copyWith( + fontSize: 40, + fontWeight: FontWeight.w600, + letterSpacing: -1.5, + height: 1.15, + ), + displaySmall: base.textTheme.displaySmall!.copyWith( + fontSize: 36, + fontWeight: FontWeight.w600, + letterSpacing: -1, + height: 1.2, + ), + headlineLarge: base.textTheme.headlineLarge!.copyWith( + fontWeight: FontWeight.w600, + letterSpacing: -1, + ), + headlineMedium: base.textTheme.headlineMedium!.copyWith( + fontWeight: FontWeight.w600, + letterSpacing: -0.5, + ), + headlineSmall: base.textTheme.headlineSmall!.copyWith( + fontWeight: FontWeight.w600, + ), + bodyLarge: base.textTheme.bodyLarge!.copyWith(fontSize: 16, height: 1.65), + bodyMedium: base.textTheme.bodyMedium!.copyWith( + fontSize: 16, + height: 1.5, + ), + bodySmall: base.textTheme.bodySmall!.copyWith(fontSize: 14, height: 1.5), + labelLarge: base.textTheme.labelLarge!.copyWith( + fontSize: 16, + fontWeight: FontWeight.w600, + ), + labelMedium: base.textTheme.labelMedium!.copyWith( + fontSize: 14, + fontWeight: FontWeight.w600, + ), + labelSmall: base.textTheme.labelSmall!.copyWith(fontSize: 14), + ); + final border = OutlineInputBorder( + borderRadius: BorderRadius.circular(14), + borderSide: BorderSide(color: scheme.outline), + ); + return base.copyWith( + textTheme: text, + appBarTheme: AppBarThemeData( + backgroundColor: scheme.surface, + foregroundColor: scheme.onSurface, + surfaceTintColor: Colors.transparent, + elevation: 0, + centerTitle: false, + titleTextStyle: text.titleLarge, + ), + cardTheme: CardThemeData( + color: scheme.surfaceContainer, + elevation: 0, + margin: EdgeInsets.zero, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)), + ), + filledButtonTheme: FilledButtonThemeData( + style: FilledButton.styleFrom( + minimumSize: const Size(64, 48), + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14), + shape: const StadiumBorder(), + textStyle: text.labelLarge, + ), + ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + minimumSize: const Size(64, 48), + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14), + shape: const StadiumBorder(), + textStyle: text.labelLarge, + elevation: 0, + ), + ), + outlinedButtonTheme: OutlinedButtonThemeData( + style: OutlinedButton.styleFrom( + minimumSize: const Size(64, 48), + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14), + shape: const StadiumBorder(), + textStyle: text.labelLarge, + ), + ), + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + minimumSize: const Size(48, 48), + textStyle: text.labelLarge, + ), + ), + inputDecorationTheme: InputDecorationThemeData( + filled: true, + fillColor: scheme.surfaceContainerLowest, + contentPadding: const EdgeInsets.all(16), + border: border, + enabledBorder: border, + focusedBorder: border.copyWith( + borderSide: BorderSide( + color: dark ? SxchngeBrand.mint : SxchngeBrand.focus, + width: 2, + ), + ), + errorBorder: border.copyWith( + borderSide: BorderSide(color: scheme.error), + ), + focusedErrorBorder: border.copyWith( + borderSide: BorderSide(color: scheme.error, width: 2), + ), + ), + dialogTheme: DialogThemeData( + backgroundColor: scheme.surface, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)), + ), + dividerTheme: DividerThemeData( + color: scheme.outlineVariant, + thickness: 1, + ), + navigationBarTheme: NavigationBarThemeData( + backgroundColor: scheme.surface, + indicatorColor: scheme.primaryContainer, + ), + textSelectionTheme: TextSelectionThemeData( + cursorColor: scheme.primary, + selectionColor: SxchngeBrand.lime.withValues(alpha: dark ? 0.3 : 0.5), + selectionHandleColor: scheme.primary, + ), + ); + } +} diff --git a/frontend/packages/sxchnge_theme/lib/sxchnge_theme.dart b/frontend/packages/sxchnge_theme/lib/sxchnge_theme.dart new file mode 100644 index 0000000..0363e82 --- /dev/null +++ b/frontend/packages/sxchnge_theme/lib/sxchnge_theme.dart @@ -0,0 +1,5 @@ +/// SXCHNGE brand colors, typography, and Material themes. +library; + +export 'src/brand.dart'; +export 'src/theme.dart'; diff --git a/frontend/packages/sxchnge_theme/pubspec.yaml b/frontend/packages/sxchnge_theme/pubspec.yaml new file mode 100644 index 0000000..890ad41 --- /dev/null +++ b/frontend/packages/sxchnge_theme/pubspec.yaml @@ -0,0 +1,24 @@ +name: sxchnge_theme +description: SXCHNGE Material theme and bundled Onest typography for Flutter apps. +version: 0.1.0 +publish_to: none + +environment: + sdk: '>=3.13.0 <4.0.0' + flutter: '>=3.47.0' + +dependencies: + flutter: + sdk: flutter + +dev_dependencies: + flutter_test: + sdk: flutter + +flutter: + assets: + - assets/fonts/OFL.txt + fonts: + - family: Onest + fonts: + - asset: assets/fonts/Onest-Variable.ttf diff --git a/frontend/packages/sxchnge_theme/test/theme_test.dart b/frontend/packages/sxchnge_theme/test/theme_test.dart new file mode 100644 index 0000000..6820be3 --- /dev/null +++ b/frontend/packages/sxchnge_theme/test/theme_test.dart @@ -0,0 +1,65 @@ +import 'dart:convert'; +import 'dart:io'; +import 'dart:math' as math; + +import 'package:flutter/material.dart'; + +import 'package:flutter_test/flutter_test.dart'; + +import 'package:sxchnge_theme/sxchnge_theme.dart'; + +double contrast(Color a, Color b) { + final x = a.computeLuminance(); + final y = b.computeLuminance(); + return (math.max(x, y) + 0.05) / (math.min(x, y) + 0.05); +} + +void main() { + test('website core colors stay aligned with the package snapshot', () { + final source = File('../../../website/design/tokens.json'); + if (!source.existsSync()) + return; // Also allow testing outside this monorepo. + final colors = + (jsonDecode(source.readAsStringSync()) as Map)['colors'] as Map; + for (final entry in { + 'ink': SxchngeBrand.ink, + 'mint': SxchngeBrand.mint, + 'lime': SxchngeBrand.lime, + 'paper': SxchngeBrand.paper, + 'forest': SxchngeBrand.forest, + }.entries) { + expect( + entry.value.toARGB32(), + int.parse('ff${(colors[entry.key] as String).substring(1)}', radix: 16), + ); + } + }); + + for (final dark in [false, true]) { + final theme = dark ? SxchngeTheme.dark() : SxchngeTheme.light(); + test( + '${dark ? "dark" : "light"} foreground pairs meet normal text contrast', + () { + final c = theme.colorScheme; + for (final pair in [ + (c.primary, c.onPrimary), + (c.primaryContainer, c.onPrimaryContainer), + (c.secondary, c.onSecondary), + (c.secondaryContainer, c.onSecondaryContainer), + (c.tertiary, c.onTertiary), + (c.tertiaryContainer, c.onTertiaryContainer), + (c.surface, c.onSurface), + (c.surface, c.onSurfaceVariant), + (c.error, c.onError), + (c.errorContainer, c.onErrorContainer), + ]) { + expect(contrast(pair.$1, pair.$2), greaterThanOrEqualTo(4.5)); + } + expect( + theme.textTheme.bodyMedium!.fontFamily, + 'packages/sxchnge_theme/Onest', + ); + }, + ); + } +} diff --git a/.env.example b/website/.env.example similarity index 100% rename from .env.example rename to website/.env.example diff --git a/.openai/hosting.json b/website/.openai/hosting.json similarity index 100% rename from .openai/hosting.json rename to website/.openai/hosting.json diff --git a/.prettierignore b/website/.prettierignore similarity index 100% rename from .prettierignore rename to website/.prettierignore diff --git a/.prettierrc.json b/website/.prettierrc.json similarity index 100% rename from .prettierrc.json rename to website/.prettierrc.json diff --git a/website/AGENTS.md b/website/AGENTS.md new file mode 100644 index 0000000..e057d33 --- /dev/null +++ b/website/AGENTS.md @@ -0,0 +1,24 @@ +## Development + +The public Astro site is in `website/`. Run its npm and Astro commands from that folder. `frontend/` and `backend/` are reserved for the new consumer application and BFF. + +When starting the dev server, use background mode: + +``` +astro dev --background +``` + +Manage the background server with `astro dev stop`, `astro dev status`, and `astro dev logs`. + +## Documentation + +Full documentation: https://docs.astro.build + +Consult these guides before working on related tasks: + +- [Adding pages, dynamic routes, or middleware](https://docs.astro.build/en/guides/routing/) +- [Working with Astro components](https://docs.astro.build/en/basics/astro-components/) +- [Using React, Vue, Svelte, or other framework components](https://docs.astro.build/en/guides/framework-components/) +- [Adding or managing content](https://docs.astro.build/en/guides/content-collections/) +- [Adding styles or using Tailwind](https://docs.astro.build/en/guides/styling/) +- [Supporting multiple languages](https://docs.astro.build/en/guides/internationalization/) diff --git a/website/README.md b/website/README.md new file mode 100644 index 0000000..a86e12f --- /dev/null +++ b/website/README.md @@ -0,0 +1,30 @@ +# SXCHNGE + +Astro public website for a crypto-to-fiat exchange. English and Russian, responsive layouts, an illustrative exchange calculator, and explicit company / policy placeholders. + +## Development + +Node >=22.12.0 (Node >=22.18 for the native TypeScript test runner), npm. + +Run these commands from `website/` (use `cd website` from the repository root). + +```sh +npm ci +npm run dev -- --background --host 127.0.0.1 +npm run test +npm run build +``` + +Use `npm exec astro dev stop` to stop the background preview. Static output is `dist/`. `/` redirects to `/en/`; localized content lives at `/en/` and `/ru/`. Legal placeholders have separate localized routes. + +## Content and launch configuration + +- Translation source: `src/i18n/copy.ts`. +- Brand reference: `design/tokens.json`, documented in `design/README.md`. +- Optional Flutter palette reference: `flutter/brand_palette.dart`. Compatibility does not require identical application styling. +- Full account URLs: set `PUBLIC_FLUTTER_REGISTER_URL` and `PUBLIC_FLUTTER_LOGIN_URL` at build time, as shown in `.env.example`. Locale is appended as `lang`. Until configured, actions open a clear preview dialog; no credentials are collected. +- Quote fixtures: `src/lib/quote.ts`. Demo only; no rates are fetched, orders placed, or funds handled. +- Replace all company placeholders, supply approved legal policies, and confirm supported assets, payout methods, countries, fees and timelines before launch. +- The preview explicitly uses `noindex,nofollow`. Remove only when launch content is complete, and set the real domain in `astro.config.mjs`. + +Fonts are self-hosted with their license. No analytics, third-party trackers, client storage, or authentication backend is included. The website uses Astro's own TypeScript script support; React is unnecessary for the current interactions. diff --git a/astro.config.mjs b/website/astro.config.mjs similarity index 100% rename from astro.config.mjs rename to website/astro.config.mjs diff --git a/design/README.md b/website/design/README.md similarity index 100% rename from design/README.md rename to website/design/README.md diff --git a/design/tokens.json b/website/design/tokens.json similarity index 100% rename from design/tokens.json rename to website/design/tokens.json diff --git a/flutter/brand_palette.dart b/website/flutter/brand_palette.dart similarity index 100% rename from flutter/brand_palette.dart rename to website/flutter/brand_palette.dart diff --git a/package-lock.json b/website/package-lock.json similarity index 100% rename from package-lock.json rename to website/package-lock.json diff --git a/package.json b/website/package.json similarity index 100% rename from package.json rename to website/package.json diff --git a/public/favicon.svg b/website/public/favicon.svg similarity index 100% rename from public/favicon.svg rename to website/public/favicon.svg diff --git a/website/public/fonts/OFL.txt b/website/public/fonts/OFL.txt new file mode 100644 index 0000000..b6f4f91 --- /dev/null +++ b/website/public/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2021 The Onest Project Authors (https://github.com/googlefonts/onest) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/website/public/fonts/Onest-Variable.ttf b/website/public/fonts/Onest-Variable.ttf new file mode 100644 index 0000000000000000000000000000000000000000..477cb31027450d80e486a53119641bf87dde3d4c GIT binary patch literal 193056 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�W?sIp7!h9sJ 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

jZ$9%lzy@T5I8Fa7JxId2GGu@9-e&y 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

_X z4DtB^QMyJgzN?KgLD=h+!YVmjU2S3s&Ya^u?B{MncJ1AlUV7=>^{nCeGX|P?_!fjz z(W-q6*vWhN7-oLjwVBCev4nIg%Ot_OSzYBW51%s$OM~)rHW%^kWs>PcijZGo^Y8fh zOd=|>0w15p(|z*M&O>c&@b2wzYCU@5WPiVoSMc#^D~XS2F2$KS@op=;@ z17?QgwlWP~B;X^<o5m#HGm%s<@@%a6LSR$Il(QtGL z=w#UEIor2SEf)Gl;bFM?!HvlyB!%P`|I>- zmbaHrIg_u&*^x#&*v*iNn)_r5kyP+j<#p<0z7j_W|LKGBCR=!J7YF@CbN(sjM14Bd z9Z54X@xqeF2gR3-I+vDLf}jV(N}$hD;ZVSdbPkM&nbhXS${bGEG{PxI^V`5@*(VIZqI|%vsX3!T1M>i8Z$SGmc%~@kn-wK|cUvX~+fjghy zwYheGAMWcr*=7;JODfYD z*_a>}_1t~$)gM7AeP?oE$fDME6^?c~Ip)e0OE)49#nV@ZHyuOB7TG5FA`#sDSK$Y3{`Kf{C!X`-4|%&k z!YT3U@;G_0E?ypokBifym+5^^lc=;NmjWOg_;W;#KS%65Rgyz4nq-{!WAqgHF>l=P z)KgqxN9FaR;%*B}(|n40wuibx-`W}7+KZtGY5AB;;`_EnwKW!v(1kGNy;P&I$u82@_^0<&jmSyyP_~V zXDMA6+cSD2D2zpRqBlFw`3hsPy~Z+yG4Wnw;=-6@udyPWdp=j3bJrS*`2iFwXT}1m zxqH+K!u%uOV#mT4)g${KL*e5Pb*ShWBJq4;FDrPWdmH>wFaP#k)_aG<^P$C1BM$1s zup+p5zC3(PF@NNcTi1;e+@T(7h{In8^(TADlW`(XbafBQ6Az{Zwsn}|A$hV<7}M@G z7A%Zm?{7UvtbCF`g3ExUlL6_>^o%S#MJ>UvpX1>DBI-rWusrAqU8;#a`@-cw_0!-K z4(iA-b*Bh1iMCz93^g>uugNr>)m2tjT4c~65i{UpZ%!|6CZ%Pl0fU)|Fq=cZvEiI~ z{Y~Tzj(V#UxgnlNBIH;x2)P?=)^Zu1p*8=JZkw_O$#j*3@<9ejK zsa&;*iQC)Tj~+BqHclQ62R07%!Yy4}w(O1%@%Td2fhlaAk3RkM(`PCXt^NAv+hySb zcOu><65aUbc4$Lo+rsdcCu$I-EWob{a~JWuGm;}C%DqNJWF)gQvXfl`hJybXrc;`| zhBSwzI?6hUOqc)U5q&`v5*)fhUAwT0muztan1G;vGPDKV&dJEvVGZ&URA>vnhsIJn zV_(6F3sDB-?g|7ddsA~GXk=4mQfo_cjRH-25SfTuDs383jE5S7%2FRl0j4}T?}d}i z0u?+S&hY6BNZ?D8lzt?Kl!(DJv*{eCGr?;$HZ~u~Db-qqoTXzy&-|Fp�AVOmKH0aE*k2ehGU33?=L}`ge8*^NTmjw-Da~G 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

TpE}7JeE$6F@2$W}3{QMKJp7&S zyz$0={jbz_;BrECz!&asH%p0NkPYAG#3LggO*$|D-LC1w)W75352zpT1_wJkG0Xl> z+mIBFK43*C9)7>_iVffA*!gxIPdZO}A<2;`r9eNeMzShB{I@!}SXtY1z=8;lOiL77 zK`YH?NfO%W$n6hQ zfUzV`EjzqPj#yh(RaK*xaDz_A@{-HmFW@DCfjWJnS*?+}Fa#$kpd*p-DUfsOWErH3t;{=9d^Py<>g$WE@;UUw%cLKGPsU`RIYPM{?sU0a zs3+8mt;l^|#sR?*lPL)shgPM?2BRjuR>dKMHiFJG*CWw{2j8lV0SKCtNu-9mQVC$m zlXvboz}v6EAl1^D#PS`0ISCsVz65a2A*80`XCj2h5wi(Np!WV`n83Y!p=g>w%($6+ z+652$D#hWIp~PBfNX7AfTEG=nXvaX1#SjrdJtyv;8C9yJG(|;heFOknR;DJ1Acaa- zUH8m0k93x&rZFU@le(@)pQ*0a%F8S!zq@Zipx>cTwuGFs(D zv`SYpOT0N8z_G%>P=#Yj8ml&)48sE-;_;Hu?eMvm7N9BO#&jf3>Vz9ey(XPbB?V(5 zMlTn{nQC1s#TBbiXBDUibr{*SSdLfGpt@l`v@S7l?OlZ17u*nBfrK!ll#3YR%jXK^ z2=QPN@dU)7uac$&z`!ts>zAf1?d2&kf7S7>tegr`~u^QXy&x!i%rzxCme}63cyYFAP@bQshebBA?#u1r;KKzf{5E=K}?tx+Qbz|r3B_16CU=St<| z@#C4y?%m}&WJCM&n#!7Pz&UmrDzwC6!W1z!V0o@Ll8^Eit>c#6Df2{OEYsWOst4! z3V@>9jwDZ6;ai$pS^{*#iu=U@lMxDl8Q?N%v$+NjSC*II=} zkWKgrS%i~cuJSK0uHXpebu2Ff)O{e41<-nW8k%abVOB9`D=M{WaXyJc0OBqbau|i7 zww8tD)>lXpD~t21o&fUr!@*cCpRo6n1={I7HqapB#U@}cT>S8p%QJad8it({CsnJp zuA!msqige#q@W4M(IY2L?et%Fh{?Qzv4+ubASF_m+IH_g{utta_qXYokOPVzlQ(Zq zM?;ZRS}IK^J(D9N7hZey)t|h5+m{gQDjGWW@9XO_>Otv{Dz?b)qeaO1a3_5E@HvBm z1c+h*%>y-hCK41gTpksiov1`A&)n=>S=IPdgv%9)5w<6^EFdscC|oWd7tGB-rwtnf znqBQ!UM#|J7;MQLn9vGEkPuIe`eWyI*0xk~INl6UfUyX~DU{tUyH7o}>(J5uGcSDU z`TgyuAA0nm2l{t@?2*!5U{nzJ#IHJCY->+0>HIof`)$iQ@}AtIhBclEsC8XslAt4I|iE0Mkg8KvzyDzjjk6C9479)tOBZ{b z@coC_CPXn?Z`YY6$G%PV&s8VH1i^VAdouk5N#7!lxmQ$lo}Z7@`U{KerY zm@JdkF(U!#^ws6b<;g{!d|Bai+Mt2Sbt;zSHlZ*l%sISgcdHLlL)6Q>uYK`rUwly( zX-;)^()1urccz*n1(p$VTCOw`fqC}Me5F+B3;X!Gwdk5oLh@PIFDB#3-1pRd$C$Z} z{T*{Ri@OSgYh`A3!=-r{dQDe|m^q(0#_5yFC0>uXQ{QMZ*kW|O=V7nVQR|6qkM@eUZf*|s42`(ZW?$YO7>yOT&W z&H!PdmQMN7g`YCFS{Vc3y|Ri6=vNhGnxB96*%~$G8&6+LU z&IcJFuhR=x-Xbuo&Ot2W2dv@}&Pt4@Ys^^gNqcZ*5m|)mkguwdGfkR@mphR=ag1lW zY5JsCYl6qwfw82KLC8RCmdO;B$O0lMGm*&JynP5Hs;jGVxx---I2>~M>Z)3OPM34% za!PM5r^=sr>colNPo6l@HHZQZsczgbo3C9n7}nMdhHKZ%<{LMP`3l5;p~X`G6R1-t zLLob2aOcY%QL$YZiQJAv9)1|tGt;|-^Ly$d#dci3CPc27CfA6gj&jOv7d{e+Jo3mN zKSHjV@|$}WrCr5q^mvX1&k-XDGo41j0pE7<@-KN0)p?Amn>SN-Fwgvg%RO|6e3R?n zkT~Dhr^g2Je@b7zjGu)WM($Hf?!(^ULg_x$-n!HLU$FP#v3D4t{tL5ltJ`t?`zz9o zTNTCwsfWc(VcTE_D9o$E$d!f#2g+*74v1Xx%}j@d@#}f&7_+eJ@UDfMAL4#Pg*$x{ zclt||su$)tlTU_MmmN}YZBc;8rD>s}+@KG`8A9;2cfFfTLPuczU3)Kq$OGnGse@;T ziox>1VKW2OJ04h0OmJ}4kazXvN~Mej$tBn}Vc}#bY!o_Ez5M|8?B>??t^-F01^Hx7 zX{s_94dp5UmFYY7z+g}5-6O?!VL z4$hG{N206%vk2&W_;!;DXKe)zI{I>?D$p@hCKU1$6Jo{hkL1KEyJi0lV^wW?ckjWY zCz7FXPHk@8(P}k9+?-FJe(cz;R+QK@IXN?R^YZ1(AKe5Ri)TcEApM76^4{jw*7WTg zlUv7Ytvoa>r^0p$?AkRo9W{30E$;rWo2_KQU|vn7UVZhASBuvWi|g-EmwuVt2~ZW( zZ5U2E9`+F5MgWHs_=u23=*9WTo5&FWC?5<9I9|EeB558r8o7j*28DymPs8ni2~x0o z?HzoXrUGVfUIY^!W-m6acrKR=2fR+~OG_&OkPCxb%Nq#iFj$g-)k!-|w+>L>ZTy^0 z0R};DR#j2Gb6{Yg!+uAu?g#bxt zlMV7>f~D{Ix&{Wsq)q1guq(+9T)0 z*=&cm_G$g8Q`DesXdwR*?*cZR3;3hB`Vjv63UYl^IUrM}`7L$0UMLBe8>qNc*lQQ} zGyjrJ)DN!B;0D5_s&_uF=Z{Se7yD@aYDME9k2lz)AZ*@3&azDAbSgqAySRGc?=6p5xO z!2#+&!>K}k9xP$n*6%^bZ;UdYch*Sz33IF7U##*+u1Ds(G3mw$$5^n#Z}(^ z)Q%l9Gs;c(VB11CeltOP1Lu9@9@70HX`F7b1nrFE#i!|-2Tu)9|H?T+Zs4#_kMSF> z{i^68A!pg6Xp8C?6LVY^>6%~{Ht9rInWQo~>wJ;RFE4?yt~}yh!~mZ}Vw;4Fe;g5W zIYeqXc524X-RbT40_v)(7ALUL0b#qi*uAUgAO`lq9%uql{}<=;RJW}{)7YB=|3r@} zzjhg@NwNrnj}6GDVXBz9S3)S6gG{OgZfS{BEEI#FM6e6uTH>q+R_&aJlC8mIBH{!_ zuiWy`JRUu)5`x^p+z7vbRmDSM?mJTpc5}IxxiYpI3dcEOiMp}7&Et(7kQL>sgELJrN zBuy?%!3-C0S+jtSE@}iQlbW+I_0Cv?!&4ElqDC`BCxyd8Qbf^F&LJ@|XKzyTBOb3Wr5xzq)3dwPQcFh^Ol_bB@OP^VF`@^63jH`lKDdGG(| ztxwkYNEj_xwWQoE;w6a`I=G6}7E{O@g|*!#x&BZf#}+<)3sxMqZ-w`=Sx7zxJkV#DNp&$km_!A0Dr^?B?VW z*H~rHis5KoTLRo;@{_!-#tIP^l)E9HPbV_`wHt5$=zX65+O@y=?vH$B@K#_KI=Z(; z$qBF2)I&0gD&cn5XMBu_&wo%+ad94pBq2ZPmph$Ux5ymW`S}6rpJ~wMvE#kNCX5R8 z(;XdibDf)JE4yko^qpmxCqWX;-h*84l>4#n<*xsY*Za5E0n#H^ch1dqbWH0-#jA-G z+|63Stlx;k`izK|3t;H*3Zk2pG8z&HYH=bEpw-1+RJodHLNOW>0#K&l5*%vF!7SXS zIeYoom@}n-GftUy;`mtnJLN24V~O=%MaGy|1V9py^#oXNhs>0SmxCuT#}n)9Lt-~_ zCcJbR+>8}=$>=DQRw3_F&G(NMOI<|&P+XDDvuNjvGa0d+%XvqC!p>bPD_h$7sWRD; z-_GU5Vmv$dV)$W+ojapcmQx~>48*J1u!msb7yV(os;0RxvO%hKhL-MKcGb_{_+WJG z7E*GioH6hwB_}_&t8OCv{^6A|XADlh(CpQ>U;ReYQoJeH;kd$qi|owu`)bRRq(Y1HX2{9gEGVE{)Eg0QH zve3*-L`sGa7$SH)ISw$OVgl_?u12p`>kIbvemrGATHcVScsNjIW8sKat479hHkGEh z5TgR4K-6x4cT7u?LUl@|G>;u59D?I(Ef9?+_$s@>SS}Otu+H%W6L-eFAgRga!NHPE zH|%Jux8r2wgU1Fwl(n@?89bO!p#zP0eO+B;eyvzna#m%i!dX=uqZdW=L_OW-zk6(e z@dA?uK`M_g6oDMDFJ*_XU&EvQOHLdDlJTrSq}JP233zXAyG3O?b{IrLIhs{qSAn-H zr?S*Hf=&_6JYIZds`%vfk*8KF84fS`o=LbA1_8|jg!d6`?a8ajdV*lcs5IL*`gP~a3UKLoF0d_2a;KHIWxVkVo zAE}4e&jP_4vpjCET5@;;CNO40J{daod=9U*)l^-j*C;vB<=J9AOW1=UHE2%MLTY>- zRfr*+5P?dWT~l5rU`R?g66^3ue`v1>Co31;j`sgHZ-I>B`*boF|zKxaM3kwFFupTy^mmr4grLHh>`> zQP;{Beh*-_r(Xcn?Z2`AzF{w)pAYb>uznf&0er6bHxs~7ouGZqcxDfaZog~Q<;d^M z&E5I%{D+HcYm1{FkN!wrUB=5~WJoY$e^FFrdkxHdYkM!e3Hwz%90B+$Bh0I65WAEk zIejGq`zpIKf*kgZzYEVK^(2;|3_cUYEuKmZX1iOHmq3vsd(%C#oDOp`@2OkUfB zR%)T@Y#@J0%4>npX;dUjHfC|;Qye$-vF#jq`X03vE%^0!R@rw<8}ATQIzdp;Kl#^z z{9o|DGjjExe?oyW(k2k5QbO`=7tytUynp6qjS3(pKzQhD*YK-QcCtnjzl2a68GqO7 zSis$x>Qt(_+FWfHdSyqSuV^}eXKh&#*RKkT=bY|$$BI`aaiLu(_wH{gfBtyks?Dq7 zdiI82AQQ|xgMJ+8#%|x51ue@x>!MPcb$eTztE9O#Z|e^5=at(&Wo0D$UYD88dfQkT zxl)ce6ZiY$86h_wN=kM4Sd5bD(s`9C4=3H0#gV5ltFu{c>!Cx3I;xGv+S&mHJWFO+ zj#^P1I%N_KwpB8^)_cLp_CoVUFWiMP=Lch)m=V3$W8w7qw_Yox+~`{gLKDTlZ9@&( z&h`FwM8qlvGrgEyj9!=zjYJ}gBkK42Dkfl^k`=yXll)wLQBHbJ3N z2*+-dLC7j}f_o8Z2_SUf#>1}p)t;W^*|8-ZE6M4iv`zgWm_5({Qb^+- z@dPr#i#^0e`*N}53~>%oydi3Fh@BnluhNfGoFV*o*Q?aE!bb};$%;Ez(L+ka^OFL> z-VSxxb?w^7NYP_oTMO5Ym}jHmqF2t%z4_*?Tjzgy;mSuE4Oo|uTQ7a|(Kp|O+n)y# zjCCFN^?3w0?>dF)t)Yu1jtrF+F9omSeYLaq)RRv=_2d&EUnz|R!jCRRTOc9jQ}iX)KS2~m zf!-=9Pz-icbYZ>{d!!BbpqUyQe|$Wf9mnkE^PLkn_(vHkcbsx=I*xv1mqNZD`-qSEhm-fl{W>BJ`eDSU@W% zS0&lZ)Wor){p}`IHWG!avp=8D;=B?h#%NH11+w01)e|h0dn$;Zd9G9r8YGbqvu<*F zW@a@3@2;v=&A|dPKI6osR%liHTm(+HM0`geGljxI zBOi71Db^w!rD^9rWo{bQ&}63M-71|xC3#SRfyD#JZ(jnebRp*g3Gz=ZxI$Y`pcgJc zCJHSo^iNzU&aDz+RfEHPA*Vd<|NjzoU$T9*|5I}Zj$))8!$_+EwWN$0UkGQST!O#Q zw&JoU2((1Z&)E~^koobV1li&o&rNhCz49-YXC;|oleFi^(|dT zPMtc{Yt9EMD=FQsW01(`Z@}3&6^!41ynlBi5t-b>6RV(GAQh%UQ6lJrQ@(%h#+56- z`6X_A;hu3H~wK;E&M;dl2*&0hpz)S0Nc0 zwcuu>xTUpP2|9iP7VzfPdYTq;2!RC1U}%ZnoDKQ$Orj=`hCDztA5VgT5vUFL8RUA4 zr4GGE*lB5YMZs#LP$DS_ELDCbXt%o>#N=#atht0QGx8ezh8scI|EZDw1#5EWYCHQusmo}~hCY@X< z!qhKbx%s{Hmb;QZ1a5*-1qkb7GU$QXvRbqx?%FxNqpBhxMxk*RYS=|ooIn99-&{$w zd0~w^fqS07J*{a_xypE%7);v;SORenAR&=ZMnDL(;1fm0U;>FxoAxIg;KwOMrvkHB z7v_Rl8z+^_p0jRle1hd6k3YHJEKN*73kOatlLo`)?iN=kX_(F;>v05k2Wv$%{x4OW z<^LV!`$v?oe{=Z=#+8{|bgu=H3INVjxd?yPXa4XrdoUJ37?VyULauuR;H2<0tPmrfRHN# z8&?+3|Ez5v^U(O;J%hBMP@c{2iM8ZCLl1tkYuLKJ4q2Um#A5hTwOWpNnWTMZqdJ$4 zcwGveRy;Se3}S-%T^(5J(Cxz(9)TRkeJk*m0tKbVWN)amTA>A_5qJ;-SmkT%jSN># zK&pH$c6rDvh9d7>yzS?SOuP37BeCp2U#p569R1*3)U+PPotQzu8Rp!oCkeQiB1(w8 zesg_(-k<0D#BFf4H8Z|~XJ~VMVlh%5wRXF@0*H+Fc=1wQH(%#;lK1vKxZQOzFL|%) z@zQl0J;uj2hIThmb(?#vur8$#=Er*qgx-q1Nqp9OFq^jOwn~e-t+CkR;&$4tB38SV z5-l!*cxJPJYX;dh5O58J`upz|aV2uFpA!$g0sShP_V@Mq?^!juIAx-Ae5o`zoN4ABeitsEkHp$PG_qlH|fK-gp*(N)PzHRnBi8#QU8p^C8L z9dsN#0s@W4Y&7C4>@_{OW-nR+>e5qF^DaLkY~WCYwE%R5uv((oBsX*(T1Z8}&UIb}F zb`mk7ve-TNI5E=0I?Q2pggx2ZQD#+cj~>lv9Zjar|YRp*sVY0)E8#w zNtEm)N@gWpte4PX(!*1$VITbX0ze{}xv2#Q(!L86`DOVWPh%nmpuv#M5Eu~bg|W4S zO}G*z?N4lZD{0^{PhPtloj!Q9zc-gtv*{*%M+Uo~a)fGNC|L5sINSRlWlSC?iOL~z zZWcjv$E;=hVBIf3aCN&-LR|+8m!*}(Sj-EK1ctfO+zcs2E_^tHxhyFP$>8z%ZPc&6 zt%Kh1$>RqPfK4ew&b{>|N#23{5t-LTtW|{bEj$l_qW=;FFYNd0ZNZ154_}0Wn4Ipp zprGm8IWamL-r3bs#t+YqO~9%_FWH1FB{}Myx2bXbc5yWtu4~+rCgxOm+GDp0qbDE5O4Obu%2^e;y`$ldFAd`bhAf-8cO><}4#O>J_n!+Ya`xbqL z!LG&(7%t2M;m8P?2VB<(8U7h`_W565_3~>^JnV3CM1rFA%Fctcr@Rx%ILdrFq-|G!H|M&v0nJ4HGzTylAkxlO~M938zg#;lDoexf6g0>%MEVhDaH zVM%k5=LTa{2x|Ixiff}ju}QjB3DAYj&8@|0i`|L{AUTstjXMs(0KN}o{xel)LPi6e z{}sj>VuQjMSMTZR+|g{2p$DYqrX5|qfQ2KuUq;heUR7N)B5KXG2L6^6M1sRM6g46N z_Z%kJjZY?Km7!54h$8Z{Ar}sqE^67P^m{{TxTR4>5tX840?44Bw@Dg7jZMnvi_<#0 zb#ZwGrgo5$!%u}oy8{Q>ZmJ)NXvzSwlW9mwP#N50N{h9wzOG7wGD@l&>rHxtje5Z* zi3AkYR?KdzQJX2w8l>D%DukvsaHCkKJhxo8{Cu64YVzuA0+-ljK6>n^g8!zRentLf z!JByRbqt3|Of5`-CDcnbdbKuzHv;{}1A}q?zh$UbGyhh&t`5&5d=F}J{-CvU3;Eeu ziKI*bx8?#?chGY|onb5zvC%r+Ifk484#%Dup#C@U?iXH=O2Y#gE+?$+paPO%pQTg(6eqlkOs1&ff(J<}v*?8H>Npf%K5UR=E*Dd_Yw>qDH zUMdal!Y2GY3V`HK9{;h&$Zgm4?3!_3vdThGbYfz8`Q3MKsAqpRrx|_s-DNPLQqDrT zQTB6uolYi0!NsKDyLX>C^FSPh|DO2i^zk!icJD^vAG8etr`^+IjRqrltac>(^IxOP8EFsAmPBpbLVyVK@hAQWLn2_*!i~kDB0NgM<6`1I;ab zae(^Y#gC zfxN*XB1y!SJIl7d^8NQ+E|WMzod84iQ>W!1t4BbYbH6U(PC{Zzny7_8h(-ictax>FISPFSwY7!#v zSEdGuo?o4I2>JTFcIq+U2iaCyM`Z%+JQ`3!T^iGr4v1`E-JoRwyBHGokE(8UK-9k0 zMn{28dCEp}qQ$wj6TR7m-mI9Mygj`%I<s1eyU>d0J9rLJB3#hbsphz#Rv*Kdua zQWF!`KDo0PfI$~ng!DCa3sZY-ZF9MY6<~+Qv2at-kvwzqB(b8p_Vn&UWUt+#)6UPI zJlWTXz#*Kceo0FY86QImQoPMY90tuH)K%^+<(E*(FQJs38w#3hYl%=KODr!QUt}=2 zTu9ViEr@BZRh#N|VBcvm%9u5P0XCF1SrxFNM%r-YT`HT{h6;jd1R-PZ+$_1NQR_$! zvxc8Y+`he8eY15>U2YnX>WPq4*9y6a4JpooSXe<&ZFsXRr%ehcZb4lQVurrr%pkpR zU#S-?7EskEQe1=@C1MF;KNAy?+Paob_(dQrD2;$VVVDTXZqj>Wd*SXHpcjrEbGZ&4 z+_kf7?|}mccGZ@byIjYP9em=5G3|6Z6RMW3gP1_W^v<0&5wI=oEv)?8u)^V>P{xN& z>@x5`Ug~fZ%h-!D_M(iiBWx9^)cE+#$%Q);3-|!wJdos@cS9rGQ&=sA3>sH=(LDLUw;~@D7$P!a1eZKmEa(l7naldkz@)CrjtRCQI45 z)-C72)@E`LY^>_3A+ zE^8(2d-~vhmOO9I0TsOh!_`S?Yxm>0Hqby>h!j`I7q``KUZyLEzktsLXe{^8Lx*Yv zo{PYFd>rCb^gdJ^#m}PkpGE8MtZ%N>36a)}I?2^CRaGNuV5zE6Dyt=gQ#>ajiXwoD zC!kyezd`_Y8fvT2kTV7s9%_>DpZ3gbt{%mPtk_B!#5_6#VX>W4bF~uDFR_{m)25Crr#)g0(eI9DZ7g8bg(rQ(z2Om6k?C6n# zLrPw7NTH}0WUsxJEA%(Jmgtj1*j}zYs#gAPFTxhx9{LcKIH%tt6W#qKua-l zZ4K6%wpLL5h+9ThGQ9Eo$dWzFRWtk!J`A+brzG1z@|csb&tt3xVHi_ z=$^E?%F=zff7P?P5|Y+8b{)hTdE)HXo;!N<*nOv9C{x&6`xr@iUC*II#~(a{5b#qE z_L!xiWt^fhyp77_%C*-qgns&)D_3rSZ3P|>V7z_qm{3YfNOlB&9bfwrTID6Q%3dvK zpVZKvk7g-x6NlAgWUIkWWk$)+ioHd}cl6Jep)blSN9WTlbisJzHF)urLASPdw*HS$gfY zqJ@YkIMqaQ7AWM5v0ngMN(5q@SA#gOLKGRXwGkWj6B|7-ZbNEA0q%)dIk=$~`HPV= zs_PwnhQ8V%x_`iid^{WX5EU()e(P{=f|*q@Lcz$IV01JzH6;*;)<$tk9)fonZZ#f< zb=FXg=lCH}`16NrkgH7p*@=TBXOrLGZ`gm98le6Gdjc%beK0~D7w2l4(D#rKG*XhJ*cbcy_U*&*zs)vOL5`C+_%i~?7FKlQtkKs;)1+p_ zGVDdWv2mj9)xD>ug+kJT+bDe7xTL!040pEG`8J#1dk+I|JFRaU+YH6$1M){5Lc1E^ zsvmI?CKaXG@8`SSWo5PSim6odw*il~6K5N~huK;aPY>(u5l6DY&kh<4-}uJK?jzK{ zAaVE)sqa(Y7au*^dHNgQFc^-14n6vP>}GIyc61cJi+;GNDH}aCRp?vN1|(u=fI8x| zLjoW^qjb1(D2lRDOq5s`Z^M-`1aKlb+L3P_UGmMb9wJHTL)T#l$v*n%A;GgSbmRxV z_BD+rweQhK6A8^jh$EGxRf{8lz73bm?c0T?AHdW5@$_nqM$7RmFT;I9q821b5*G-d zwU8oXf%sp*Fs)K3#bTvWp((S$MH_G|V?SGVu711P?arxd+S{QVNU+x!3j6e2ZhN~i z;&#JU?6M8%mmD}S3IvNwAs!hFm3t2jR8&CA1><4MSg5M6uY`1vRtxcN7^hP!Y)maJ zFUh@&i2QsOh%2rT0XC$7I6WTc^3u|`t3n}8RdX{^%uohmH1E*qnwt&4**x$7R0oDc zBjeMv>GaIhqR%GwGS*$)5=qytwvzh004-67!w0B&+skZJz2+!PLw3(6?+VaPL!2Bz z*$#2U@TL``ssniM&&(9k4!6Qu5*U-I0_Kw zE%54boFFCSfCN^cSnkZ3qsIKg`5*uI$LAOGRY%UOXDe=>xk#cVe{QB~t)Lj8)3c~YA1yqd;jC;=Y?35|Y8_Xv1626MR%uEO>tpyAmfxrO(m%{O8ZD|d% z?7~bilQ8G&DFEOo7XJqL8m1Z*4^pkbk{WgAQ!6_01Zx?(bwiF2S0EB-CY#tRnoy0>|I{GL?4yc$6zm{f%5 zORaHG6D>4=5kesCcn_ST)&krP5O7PAFB5s)sN_f{UK)5 zZk^Ie8-m{LyYaVFkwI@cQKNgh(m=X$bJuPD+rC>J-63_?@VD>H-%?WsomPX2Z9iDo zdvN>ST=!^Zh*ls>sabDEM&cE)5ja9HJ;gGJegS|(5Y{{~CWn}p!+V790p3i0)+R)5 z4s3zNV8T|NW%994K7r)Z#_-(yw|%FSD%f3njBssVx^#(TcP}osw<|?h=*21>{$Ix- zJOJR;LB6&Siw4wExICLs-gq2G!TZ|ewrXBFhopH#uY5^9VG2#H!GBo%JLxNBJpI<1 zeOj$ldK_pzrDmIJviWa9RJ(o6KCM=~>3aRA)oi^cTWTfd@x(OE}6IB!=Y01FjF-8b26%^PN+P6CIZCm2|nbAaA;JJ>yI37$m_p2i4lUB|CM z3j(J;C1ORc6<-0$rm07QYQ2UJ^B&2$G4Le<$OZ=`zJyXKBKLB&rn0u#IIM&TxCq)G zBZ_F0P_Xswt?O{M@QUYSXu}iVxW>ZTe7wMBJHM+OwpR0oJ+C!4sy*TGY9Q)&_=sr_ zLH4TL{5vr1f3=V^9D1U#OCLiG*lee5mUli0;=&jJ^B4i#JMP_-Wk~L!5u}24EZLvW z)oin9TMbw&Azap9K-+%{=}udBT<{fyNqbLxcx?k~Un-g9-f<6I1rajx7nZ$bb%tN( zo)s8^0cz5)T0>1s8|Jg!a_@xIpr1bf`Olv@-a%Gh>ZN;ESb2`0CvE7QxOVv}W@>Rp zl5tDC5S0m5f!X1P??9skIz=oJ0KKT$w(t+`jAkTmD9SGKh^8$kk-OM~M8Oz+%G5<5aN-q_rRrxSJDf;B0I zI};~sWVUZun2-b}uW7ckwyP*!(Kemm#;P?Iu5{gfW#LJA_&0G^`37!#^AlN|y?6s> zPdG?P{H$zsb!;^ZV-B0!&C%;_dUR&t->*|2+8BZwo$x1Z5^SA;K*>BWyL|cT`>(?v zOQwA~`p)-O$1mz4@TD*WINGF5A**)@pw*?j*jhH1Bt=TeM@Vy%U0$d`7(*BD8DaL{ z^Iif0J-k;3%C39fQ^6B}_YA<2-}7G4v!O$x?WXtmsQC~G0;0B;hcVALy;CR&p>ai^B#xv&=4n0g-h=-XiJ8ouqJY7u&G20giS^L{+3=3A!fvu@^tCCjaEq)Y9~bq z@}B18U$Yg`^u~J9L-HS{RrFV1L z!n>@4YW>|(n_c3w*6X!%!Qn^S^eD(mapSbb^0bNTO;yoZt;QiL8>(*KwjqH?PqP@=V%22dKnil&iEfw-^j0p(uxS zXPB2uCQ{kq+Jq}2!Z{pHBjEXJYnw^_Mva=A2`?bx>cXLMWhIk;xsxkMVx)8rWmm;q7tT6F<>0<(&5JK*sw-TCOF%O8+LY(HJC zg5{D2Ktw=bD50?es-sYKPQveD(KSLMnPCvId@21pQN*=8aG+5wqlnvgbi#q~E*c`7 zO6BHZ+yRqfwH7cbJ^S0$TsPW!l~-2Ri^SPpE9U!wa5$@NY}|8}S88&l(OsvgJgu^KRe`Zbiv0YIU8-iq-%w zXFK!_cwx93z#E%6=DGu>Iv9BIbeiCDwn5+A4ZH!~roED@*F#+zHJ)4wZlG^SH4n1r zoA$eaH#EJND2F2jF7`X4lT#~k(4TCNzB!J*9zniVW%g1aSJ zKR^bF5V@WnpY&wXZZ{_eXj3$bsB6GB1O`#Ncsc;2Mi$RE%WZh!9K;K4SOE~y+tZ+H zX=yxoYH;xIVZ?eYsKWX4QmIXDu2%E;d_3xEMk+mjz8K}%Sbc(UWn%5$g8)@=|9b(Y z`3jlu$avEW#agWy>4nxRDfV-u_;WEjrxyGvNi|j#tV&#YIZp;NT*l9%tFv~w+wGh_ z{~N%3uZ~XD%JahqpwuWBvB!)R$ zKG!CaoA;l3{PD++TlqHS^QY^XNH!~!>wu%EREn~N7T>7)X3mfRrs5=sbylpHC(;LYNst7)v(O z)vJ^lqJ}t{roloK0l+E?l8)NyFfTGJvQw|?=UnWzfMMzDH}IK{58Xn+bFQDP`{-n`byTfOgzjeD*Kad zK;mq!^fsJSo^0S5>L7Mo7e?-~D?o&DRw9~8Ld$ZNf*1i?AykLdW^RUt)q9Txlt=D7 z8HxD0ZsQbeVAk(H#A!xL702@CHb9ypwr{nr#GccSHXysKiNsk~9J3gnBa*b|r4H$c%EpYnWa>CZp2mw6(k{2L=1*Zh8BoqDj*X}q23Cv2^7$a)r6X< ztE;UI`%DBd1)*d#>~%Ur(h8ptsX-E|i^HID1n`PNn&E7dut3H_PWx>K>`G*8EkW%DVho@?Kt&e^roVNmCMU z2;Qh(`$lf%Ww>k7(lt3oK#mbW^^gDow?RsMW>BD0A?P+prTAT_>>hFH9_5;Q$onOD zjt$!nYs2wRNWeaRnqT>)vmr~up4>%I;pA9qxsW@Lib%+ilOv0#l9uO>(u1H6EM6&> z1)U_aV50?DlwV_$M1~Sl1HVoS8MwDaO3y5{1gCByLn+8;H;fus#`sZV+6$xhcWCE- zM>~zhT4T;%S#VgM#!6@5wCwEMUSC-0$wbr#Tg3q=&8jMc23|ctzQB%A%aNo>R{BpB zdA}y_*pv=+Y*_Wc|4!x7I2NeYeiXlC01YJurFb-gRLA17--_>3q^ie(1+4>FdooPY zA`_BG$g{lcib4dozLE~u)GdmwFdj)FenU)Ak2 zkHbJlfLj}?qLhP0DVN444{buSO5mR1#`SOU$-l=4^cDTEd_;yltryEiyx6;7u@p;F8ca@~c6rG@F~@f#N| zT=@Mb=g*)2=;Kd6{rtt*>HbmPiR+ciz1{_{QmFs~s1#W8N;AnReEK<{zn?gE^eD5h zLCI^SpFl=`_Z4LH@rUmsq4=F&fBf;-*!TzvHg4Uxa^vQmJGYsOYbDgXK|+$HC5c3a z65_F`x#G=vhP}S6^`1yGTWAG1{pKEL+WVXXbf(N*yITJfgi3PQo0R^zpq}NDAVnCo; zje4b2qEMrxAsmVEDwG&YyEmv!=w_i%CtO+r3uG)7T%Mg>vct}p9z~AK$gI;jKetq- zKksKYU0kZ~_t6Fs6$`=$2n52HE?gSNtWQ7s{TWd`g9Na7>5OdN+(g&{SNKZquZFMIOQSUI{Bi(A>q+0-FluBL5@KzO&7a!b%vRU6@NG$5a+1*kkeHRDt zzCAz(>_git^k8k&bKKw7A62#<%DpDMk^1dd>48S4t6<@$?PN!noht0;<-2{t4ysF9 zbc!A;*<##opDS9z%AzG)+U?WiDv6n#D(v>9YkAZ;f_0`ZT>BrG5&wc2(I>?5n4IE- z*;qIRa&QW)9U-wyU)Pk3gi;;tEmeZp;@EhLIy41}r${sj_y&+~yJRv6gJY#%9*8E8 z(7&*_v z{}wXrDfc@xh@8XOXaHp)!Apq5f8*pA6$=JvJQivV>Dg~A{j_taRd)fnf&t}=+fO|>VKCpX)ON9Y;!sd;O= zN7GhX-@M5t!0!P~TW=-7VYQ%@inXg<#_Og0supcnw6cO)A&W9Ug1hjXNAVo^DodWD z_Nw@TR+QN#L8>4|N?#l)X*i5SgmiXxetrl57A17WrPS_c=<41>xi^IOM4u4h0~oJ} zugE5o0QzNN3#+)d5)@~GXkjYzx@psM*AiZPt$$fX+-x}L5I0--8%R`dse6#UH>8K zXUr?>M-d?2LZMv!7Ct&hfG2kthmDQkUpE-GH(J2sVQeBTmX_vS9tNt`1>KCtf&2wdGH}31vH^IuQH(_w z*vm?O2c)vi5x+x+6_bjO`w_1O@mK&8lU%h?ZUpK&NR*iKT9CQCcimhzP)oNm!Iil0 z^Wn0&Ty8Vy%jU9+e(VKt!=pWaa)>(5{O~^0xi|}7#{2S_L}hD7kz4$d@-P1GgJ1vh zm%n`Lo%i1#9{%zs;J+?i`25n18&^IhjcDN()TZ;Yv#e!q!GRZ*mOanE@@KEV{`wDp z`1B#zB=dS=c^I?={;Vkf`^Rw)0T$j;4CExgNG&cYFr0`c9x1ONi$j4ilx;h+HabTX%PN8@52RzHnM5+NBP?QSgU6 zazw(hSH>Uf$f0OR!SB%gnFj#f`BPchnP&Y{$WgKEDdccidK1O4e3IGY|48tnaYOfD`ml<0yfJ+9+Nd^8aBpufsd`CCY5f<0_Gi+7 zBX2Pqby|~Nr!y=sIFfJ>DU@oMlG42g9^V5GZat1!(3raFDxiaf2%_lu%frJnpd3Ru zT9mczWe`Z&zkgSC2ARc6&ZMfLcYj!`4Tlj9(t~M9t=0l%r11bS1ita&$&)9aKY_}| zX3%iucUF=i|L2hT?k(El+mwL`kc77Fkr6L4F}XW8H@OXg0O7N8O-;Fmko@pfEbIKb z71(;WXh6pe21JwN+q%2AaXaN{^zZaT&MBV4tbMN>6l0rCo%#w>2l!sVNfeA-yEgVv zQ{;xH<#=3Lf9ouABQ~E2^%Z7huW9uWX^?0;e zy>|4t!wA`iLiy!_JemiChuq7qDJ^^q4sfiR)6wOzW>G>Z~V>Qyz$19Po6ji zmir^pfhUh1+_&$*Q(xhveczo^%)6a=uk)`VyWc#d{@``x`|tiAWQ`bp{&vwgy!<(5 z9sX_$lWcbdwen!0=4JX2`_c84#v>uN_FI4YgHxwY^;2i4Gx}4fo_+R(XTYL1@cgqU zj`j5&er^ksa(4walm*9T){{k$JmvQJt!FNMp4Dl#vII9@~m` zc%s5U3=gj=6o8_TAYmakJsgcjLO7F!;R+Ly{HtA$VnG3qxT{ed<+aBr7?V#Pa!e%F zR%;?BldxKo-(9~N^Lrc!$AKx!FPAICB#j)IHz+e>qFWe|0~JPO&z>3ph#`{#i0`KD zdmfNo@-P;fUKEb**|kkC3pSZedO{x4)7#mJ@h7~LaX^BFfoz!G!m>C}VKnCF zeMp%=R1iM&sB<2r$`lfJq9GYL$C0UFpF;t~+zcZW^JDRk7>j>=$gxjKvnUz(-LYVV;x_64(O!M0R*uDixwp5Vh$cS5^KmbB2Rw&|g zBPag)uTStY>x9fYA+xGA0x0$$1>b8Hb-puIYg$%pnC|{>`8r3YDeg0VJtKovE&N(W z=3h-u<-VSg*|8&);zx#5ujcu9%DfSN0NQ}PGU)dtsd40g`UBxuGyt`+h&(lr4k4E} z5Kd*Y(=)RU;+E*;+!7!n$>e|&2F5NR+ObM-wrh|ht;atA`ium^2%=H}sBRFo4DBoP zPi(7^(t;!XySEuw!I7f}yN~q|kp8aD&Yg6cssfgB>-Kig=WhGPH(z?L;Hc>392F4+ zB#^0#Y+#f&ffXo~iXb0j*%wPD(>WX`#afhRsgRHKrNWwjrzzck&yWL!O0V5-mrBKV6!pnuI{uVHFGJ)i- z1QdE4^wQw>Q>z)89@<;h*VY<|?5SgWTWiGZ;Ufoo+IAB5vSw3Dzc^Fku__P1ihh#2$LY4ziLK$ zHh-0`=@1v0HAD%~xP5$9X!KD&qfG=@@PYn;M})K8bT>+0^Zthh$ju75sf^_SgD9ye z$4mT)N?#6w2$VntFx*P8hWtpAC_&x_ClWJf(xcX3h{b>t zhorvp-V!MCGkOr9TMq#B2l)@NL}t&PqeoH3HmJrEe^Y{UeEV&#{(?jUIlt~2M9gJh zCPN@T)2XZ|iON<<6{$KXpqDz5IL3AP%YibN$qLFOQO}4^Wo1@>3B9ydOhuM}UJ5(6 z47c#lXokwM^-^5%kh0nlW{{z^z7BHi8m>m##4&1`2X@ zKqVq`A+#C+%c?oEKtMh(t}qQp3K*Y<(WAqVmzAUzz&;{I5|sj4RK_(8`FcF~;Y)Zt zDB}YHYbFDbair&!aIS445OKONH-b1a`mi=IY{SS}OR1}>P12?Fy0@+eY!TjIW&Ai1w1Abpt4 z1acnVP#oqwqC%1S3NV8_dV&q?FaraG=t{58m*1ASuLclSv00Gc8VvUL(=_)T43Y%b zBK1`;ST_6fF|vFuF3|*&lLQ(e0gV`9N?-|-hy#g9J-t{wH)o^qt(}__i&21E1V<2y z`C8m8AaIW#C(s9KH7US7e!KvNa2z$|Vp1tDk(@kfqw%dhc@pQKRJI6yASvWM5iDa8 zH|Y}O>4K4OFEZ6?C5jrYmMeSOh%9LL65>Yi3lmg9Yt-pMffhk9?=py*Nlx_|fWf)I znJ%%2cohLI7<8=o;_;Bxn$or+C#i@t_(X#|=Oj3T774VAtqt+`JjS4=Mnx58=SH}} zZUwi(NFQE7A3Ei733ft24b~D=6|IS7^;8J@rJ+_T$WuGplM;Phb21b`+il>AKxH~i z7n)v*MN_A1;0tb$r>*PJ2Uiohp-x(WLKuQQH~|2td-fHhF{VVZK>N*6?;04wj#k3_ zD9>gSaSnvAHg~257=-7if*ZgHJJf|;xd}bE51(IBH0hWm6mfZmxOsJzhw@ZW03HKP zQ!p#b^ZA9tWGeIntk}%rm@BU9g+qBa>iPx+Gc#RXHceL-)ZXZ*PgslcqXyPD%Fj!J zpmP+GYuu1QZf!KsV0{-Le<@$QUO<#F6<3MIvI~Qbp;yb~q;|b=LxT9VVMls;TBae{ zu^dsHt!`~XxNGEns2-w$B4p+8tGOSoBKoB+8N+bG;+kMNH9YteQ{> zpFvez9BJ@sw6&dPQz%S9(Yi&3HA3Lo_SMTW)2O7rbaNp-J}y$!V8Jx0iqH$D;=0H> zuOaCR`d=Xxk%IO7K1lc<2;!oFoYs*P}&KTA-<<7^%Z;fFsNjuI`w(HLz| zt>U&ej^=2nF(i&HFAI*J_1<8jt>0Tzo#ceHQ2;RT>*vB2K6dFdzPa( z;^&D55;T}i=YYsC zHU?9b&QUt-)5#MyVG}vhMMo_l{+>u`SbVB04I&ah6o@Ao17JV>c z0G|w~C$;J)jVvnz84~&a-uKLA?)xvkX~r}~BJp>=|L4^6D3Ce#UNGWVv^3H5O9v=( zyK2}Cl<23c=2INq%5iXz3sd0YUiN_t4zVYM z%G?g*UM@QQU|c|5s@osRBG)hBUzr$^zW&-PC>r~t@BiRON0Ar`=uiCld)XU*`P!fT zdwjk2mp?j84N^AhH2ov$5cRj@d6c5Ibq}`QM>^`2R2GGbjWt>!EH#Cx^-*4G#N!l3 z`}&kBhaHTkSfETQ7FtE4T!`W!l|Uw;Vgz5x?aLFcr6U0^!gBNW)nJ|!2IhV`j5aqm&AU`dFpD+8m4Jq)Lq$C2mHg2)UIH>ixQ_s`bL5=}z>y;X4L(8X6*_ zt#0Ur3E5*dsEI`*QyUt#HMdy)m^z1`=g%NL^5f){PpP}qV*bw^>OA!UuK$WU z%l~;7zkf=qgs%xtj8VLSpE&*dvCtPsQlvPOtfSMs+0@AZo zTCSl1?p<9i5M+{Z{1*exU~@VuP^byWd_(O%s?Js`w%gfc6vcm2AlU`vww>&A04=pU z3qHedqZQvqE4r7LQOx2EM$!V>?E_X8#Fz>IoyChq1Czb>p zt+g`p&nmOEnaZh5wT-A{+fKFEIs-@t@-AZ;r{J!EOF9=`nVX%RMb<~$>zE>y$P*KM ze|!ZtNW$x5u~JeA#lWV*IYJc8>>zbkK?@l=KjO@pwFyMN_Fvip-l>P9l+^cuANXGO1boE>Kl(2PmxtfdwlJ zo+_18cv>Y=s;iqZ`z17 zx>mTcU?>w?nfs0W4~jg1GG&dYgxTQgYB0{mLarbxKp}((ayXzfJkcaA^jISiRw`u^ z5pNvp#hZwyQl#q%06wHJy;DgTu^K7LQAKJ}=5Er6QC%!nSHo(oPGwK)L`n@NsMQM4 zdl(C~dW}MO8aOXj+wOEa;F^bxFt-{8!y*-NV=r_^Xi*3*#b|GMB*^ z91L*%Bl%)4K_(s16jJ0fu>i)>M^3&J`jv=AfAXQ4^Fwl=>%o?*yv z000c&jiOMd1gbU&w06P)=Jk1qZ&SE zsdSD1T-h}R##D|m9Te1vsh|x7ZZO~luhs+EhCCp@7E0Ba%V(*d;s41kFXSM?(mM+G z2y>DJ>L!2BNg>r%;hsT(_$GCZzvsIwwwsO50rAf)b&bF0RVmQQE8W9h031Bmo>y}a z)y8|!p3kWN%ir^ZCcayo#w@j&9;VLo_xx!+^?1eS2(MB9%HQ+d8fss~dsI%8yK?P$ zE=AQ;xCajayZG8mH8)w;CaoHOa0-|r>Xz| zw82}=ttO+f z^ci!VPLK?M#O3fKZC0}^hHX!<<4AS&Cvy3L1N}JV{8#CJdga)$V^8!nfv&~YBr@(i z%(Jzed}g;*w1`TaETQf?Cl@EfG>M_{Ehc%aFQCOO5rI~pXR3)N!a}nDl^T3Ely7jr zPugqX+B-6e4SbO>4#Jn@#X($B&owukI8$piieLwGt*xaBjs1PGv66gaA8SWjQK`xr zy8HW|eD(z_i*Gz;VdqhFn}Kgb`ms!uii_(t!W_SX^Jv#r>=Y7x6AWVc4H&4-rs@qB5(6dbY4;SUi_#meWPO(g140^?HTIQo`p{pp)U(TIqARLf%O0S~h+z z&N0X<)*=ydn#>QVK<<-O9UDKH1V9+xs3^UWc!bQ>GLI1WKQr-`@j=#w0y{%FbuDN> z!`)vDq*%HeZlSUJGSyDDtF!Hsra>W?YEk7O2KlG+(aGcXL2!TmhEQ`5Tb6K0Jb_u( zAQHvnlam=i7REdnic(rFtG40`eoJ5p1#PFR+uEQymlqaMm$R_2@X<#f-I#F3fb>&! z1{A0w(edL-JqaeY*GY3ur_c$%?oF_)16QaTA3l4QSdWol)ak%eKylC^Ub*w$TW`I^ z&vw#|KCT_X;P`kv3oJ&z-y4W36qF1HTXUTz4LT}69@X9spDchqxORN-!3WpI91#g} zm`OWYS_TFrD&o{=HVKo9i@8NO_O9GsN`jrL7F-sjZUcv|bRz1WnL;;E!rdxZ9)9=d KKmYj|>i+?92fK{` literal 0 HcmV?d00001 diff --git a/scripts/generate-tokens.mjs b/website/scripts/generate-tokens.mjs similarity index 100% rename from scripts/generate-tokens.mjs rename to website/scripts/generate-tokens.mjs diff --git a/scripts/quote.test.mjs b/website/scripts/quote.test.mjs similarity index 100% rename from scripts/quote.test.mjs rename to website/scripts/quote.test.mjs diff --git a/src/components/AccountDialog.astro b/website/src/components/AccountDialog.astro similarity index 100% rename from src/components/AccountDialog.astro rename to website/src/components/AccountDialog.astro diff --git a/src/components/Footer.astro b/website/src/components/Footer.astro similarity index 100% rename from src/components/Footer.astro rename to website/src/components/Footer.astro diff --git a/src/i18n/copy.ts b/website/src/i18n/copy.ts similarity index 100% rename from src/i18n/copy.ts rename to website/src/i18n/copy.ts diff --git a/src/layouts/Layout.astro b/website/src/layouts/Layout.astro similarity index 100% rename from src/layouts/Layout.astro rename to website/src/layouts/Layout.astro diff --git a/src/lib/app-links.ts b/website/src/lib/app-links.ts similarity index 100% rename from src/lib/app-links.ts rename to website/src/lib/app-links.ts diff --git a/src/lib/quote.ts b/website/src/lib/quote.ts similarity index 100% rename from src/lib/quote.ts rename to website/src/lib/quote.ts diff --git a/src/pages/[lang]/index.astro b/website/src/pages/[lang]/index.astro similarity index 100% rename from src/pages/[lang]/index.astro rename to website/src/pages/[lang]/index.astro diff --git a/src/pages/[lang]/policies/[policy].astro b/website/src/pages/[lang]/policies/[policy].astro similarity index 100% rename from src/pages/[lang]/policies/[policy].astro rename to website/src/pages/[lang]/policies/[policy].astro diff --git a/src/pages/index.astro b/website/src/pages/index.astro similarity index 100% rename from src/pages/index.astro rename to website/src/pages/index.astro diff --git a/src/scripts/home.ts b/website/src/scripts/home.ts similarity index 100% rename from src/scripts/home.ts rename to website/src/scripts/home.ts diff --git a/src/styles/global.css b/website/src/styles/global.css similarity index 100% rename from src/styles/global.css rename to website/src/styles/global.css diff --git a/src/styles/tokens.css b/website/src/styles/tokens.css similarity index 100% rename from src/styles/tokens.css rename to website/src/styles/tokens.css diff --git a/tsconfig.json b/website/tsconfig.json similarity index 100% rename from tsconfig.json rename to website/tsconfig.json -- 2.54.0