From 2d6a14611f6c64a23d567b3b63736c82b5661831 Mon Sep 17 00:00:00 2001 From: William Chi Date: Sun, 24 May 2026 19:05:42 -0400 Subject: [PATCH 01/21] feat: implement EmailCampaignRepository with CRUD operations (#351) * feat: add the existing email routes and handler to the API * feat: add email campaigns migration with status, format, and recipient types * feat: add EmailCampaign model with status, format, and recipient types * feat: update SQLC version to v1.30.0 * feat: add SQL queries for email campaigns management * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: use sqlc.narg for nullable scheduled_at and sent_at in update queries Agent-Logs-Url: https://github.com/swamphacks/core/sessions/1e2e08e9-0737-47dd-8a01-bddead1ad570 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * style: group stdlib and third-party imports in email_campaigns repository Agent-Logs-Url: https://github.com/swamphacks/core/sessions/5c4475ce-1d02-429a-80bf-15b48fefcd07 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> --- .../database/repository/email_campaigns.go | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 apps/api/internal/database/repository/email_campaigns.go diff --git a/apps/api/internal/database/repository/email_campaigns.go b/apps/api/internal/database/repository/email_campaigns.go new file mode 100644 index 00000000..055f28c3 --- /dev/null +++ b/apps/api/internal/database/repository/email_campaigns.go @@ -0,0 +1,90 @@ +package repository + +import ( + "context" + "errors" + + "github.com/jackc/pgx/v5" + "github.com/swamphacks/core/apps/api/internal/database" + "github.com/swamphacks/core/apps/api/internal/database/sqlc" +) + +var ( + ErrEmailCampaignNotFound = errors.New("email campaign not found") +) + +type EmailCampaignRepository struct { + db *database.DB +} + +func (r *EmailCampaignRepository) NewTx(tx pgx.Tx) *EmailCampaignRepository { + txDB := &database.DB{ + Pool: r.db.Pool, + Query: sqlc.New(tx), + } + return &EmailCampaignRepository{db: txDB} +} + +func NewEmailCampaignRepository(db *database.DB) *EmailCampaignRepository { + return &EmailCampaignRepository{db: db} +} + +func (r *EmailCampaignRepository) CreateEmailCampaign( + ctx context.Context, + params sqlc.CreateEmailCampaignParams, +) (*sqlc.EmailCampaign, error) { + campaign, err := r.db.Query.CreateEmailCampaign(ctx, params) + if err != nil { + return nil, err + } + return &campaign, nil +} + +func (r *EmailCampaignRepository) GetEmailCampaignByID( + ctx context.Context, + params sqlc.GetEmailCampaignByIDParams, +) (*sqlc.EmailCampaign, error) { + campaign, err := r.db.Query.GetEmailCampaignByID(ctx, params) + if errors.Is(err, pgx.ErrNoRows) { + return nil, ErrEmailCampaignNotFound + } + if err != nil { + return nil, err + } + return &campaign, nil +} + +func (r *EmailCampaignRepository) ListEmailCampaigns( + ctx context.Context, + hackathonID string, +) ([]sqlc.EmailCampaign, error) { + return r.db.Query.ListEmailCampaigns(ctx, hackathonID) +} + +func (r *EmailCampaignRepository) UpdateEmailCampaign( + ctx context.Context, + params sqlc.UpdateEmailCampaignParams, +) (*sqlc.EmailCampaign, error) { + campaign, err := r.db.Query.UpdateEmailCampaign(ctx, params) + if errors.Is(err, pgx.ErrNoRows) { + return nil, ErrEmailCampaignNotFound + } + if err != nil { + return nil, err + } + return &campaign, nil +} + +func (r *EmailCampaignRepository) UpdateEmailCampaignStatus( + ctx context.Context, + params sqlc.UpdateEmailCampaignStatusParams, +) (*sqlc.EmailCampaign, error) { + campaign, err := r.db.Query.UpdateEmailCampaignStatus(ctx, params) + if errors.Is(err, pgx.ErrNoRows) { + return nil, ErrEmailCampaignNotFound + } + if err != nil { + return nil, err + } + return &campaign, nil +} From 5e1a83888c1a9b71d066d701ad7eba7a2b46cc68 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Mon, 25 May 2026 17:53:52 -0400 Subject: [PATCH 02/21] init front page --- websites/front-page/.gitignore | 24 + websites/front-page/README.md | 73 + websites/front-page/eslint.config.js | 22 + websites/front-page/index.html | 13 + websites/front-page/package.json | 32 + websites/front-page/pnpm-lock.yaml | 1781 +++++++++++++++++ websites/front-page/public/shxii-icon.png | Bin 0 -> 209155 bytes websites/front-page/src/App.css | 189 ++ websites/front-page/src/App.tsx | 57 + websites/front-page/src/assets/background.png | Bin 0 -> 795754 bytes websites/front-page/src/assets/gator.gif | Bin 0 -> 142438 bytes websites/front-page/src/assets/nnnoise.svg | 7 + .../src/assets/shxii-icon-transparent.png | Bin 0 -> 209155 bytes websites/front-page/src/index.css | 30 + websites/front-page/src/main.tsx | 11 + websites/front-page/src/nes.min.css | 15 + websites/front-page/tsconfig.app.json | 25 + websites/front-page/tsconfig.json | 7 + websites/front-page/tsconfig.node.json | 24 + websites/front-page/vite.config.ts | 7 + 20 files changed, 2317 insertions(+) create mode 100644 websites/front-page/.gitignore create mode 100644 websites/front-page/README.md create mode 100644 websites/front-page/eslint.config.js create mode 100644 websites/front-page/index.html create mode 100644 websites/front-page/package.json create mode 100644 websites/front-page/pnpm-lock.yaml create mode 100644 websites/front-page/public/shxii-icon.png create mode 100644 websites/front-page/src/App.css create mode 100644 websites/front-page/src/App.tsx create mode 100644 websites/front-page/src/assets/background.png create mode 100644 websites/front-page/src/assets/gator.gif create mode 100644 websites/front-page/src/assets/nnnoise.svg create mode 100644 websites/front-page/src/assets/shxii-icon-transparent.png create mode 100644 websites/front-page/src/index.css create mode 100644 websites/front-page/src/main.tsx create mode 100644 websites/front-page/src/nes.min.css create mode 100644 websites/front-page/tsconfig.app.json create mode 100644 websites/front-page/tsconfig.json create mode 100644 websites/front-page/tsconfig.node.json create mode 100644 websites/front-page/vite.config.ts diff --git a/websites/front-page/.gitignore b/websites/front-page/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/websites/front-page/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/websites/front-page/README.md b/websites/front-page/README.md new file mode 100644 index 00000000..7dbf7ebf --- /dev/null +++ b/websites/front-page/README.md @@ -0,0 +1,73 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) + +## React Compiler + +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + + // Remove tseslint.configs.recommended and replace with this + tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + tseslint.configs.stylisticTypeChecked, + + // Other configs... + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + // Other configs... + // Enable lint rules for React + reactX.configs['recommended-typescript'], + // Enable lint rules for React DOM + reactDom.configs.recommended, + ], + languageOptions: { + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + // other options... + }, + }, +]) +``` diff --git a/websites/front-page/eslint.config.js b/websites/front-page/eslint.config.js new file mode 100644 index 00000000..ef614d25 --- /dev/null +++ b/websites/front-page/eslint.config.js @@ -0,0 +1,22 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs.flat.recommended, + reactRefresh.configs.vite, + ], + languageOptions: { + globals: globals.browser, + }, + }, +]) diff --git a/websites/front-page/index.html b/websites/front-page/index.html new file mode 100644 index 00000000..339f1e07 --- /dev/null +++ b/websites/front-page/index.html @@ -0,0 +1,13 @@ + + + + + + + SwampHacks XII + + +
+ + + diff --git a/websites/front-page/package.json b/websites/front-page/package.json new file mode 100644 index 00000000..f9ff5f17 --- /dev/null +++ b/websites/front-page/package.json @@ -0,0 +1,32 @@ +{ + "name": "front-page", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.6", + "react-dom": "^19.2.6", + "react-modal": "^3.16.3" + }, + "devDependencies": { + "@eslint/js": "^10.0.1", + "@types/node": "^24.12.3", + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@types/react-modal": "^3.16.3", + "@vitejs/plugin-react": "^6.0.1", + "eslint": "^10.3.0", + "eslint-plugin-react-hooks": "^7.1.1", + "eslint-plugin-react-refresh": "^0.5.2", + "globals": "^17.6.0", + "typescript": "~6.0.2", + "typescript-eslint": "^8.59.2", + "vite": "^8.0.12" + } +} diff --git a/websites/front-page/pnpm-lock.yaml b/websites/front-page/pnpm-lock.yaml new file mode 100644 index 00000000..17c5f261 --- /dev/null +++ b/websites/front-page/pnpm-lock.yaml @@ -0,0 +1,1781 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + react: + specifier: ^19.2.6 + version: 19.2.6 + react-dom: + specifier: ^19.2.6 + version: 19.2.6(react@19.2.6) + react-modal: + specifier: ^3.16.3 + version: 3.16.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + devDependencies: + '@eslint/js': + specifier: ^10.0.1 + version: 10.0.1(eslint@10.4.0) + '@types/node': + specifier: ^24.12.3 + version: 24.12.4 + '@types/react': + specifier: ^19.2.14 + version: 19.2.15 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.15) + '@types/react-modal': + specifier: ^3.16.3 + version: 3.16.3 + '@vitejs/plugin-react': + specifier: ^6.0.1 + version: 6.0.2(vite@8.0.14(@types/node@24.12.4)) + eslint: + specifier: ^10.3.0 + version: 10.4.0 + eslint-plugin-react-hooks: + specifier: ^7.1.1 + version: 7.1.1(eslint@10.4.0) + eslint-plugin-react-refresh: + specifier: ^0.5.2 + version: 0.5.2(eslint@10.4.0) + globals: + specifier: ^17.6.0 + version: 17.6.0 + typescript: + specifier: ~6.0.2 + version: 6.0.3 + typescript-eslint: + specifier: ^8.59.2 + version: 8.59.4(eslint@10.4.0)(typescript@6.0.3) + vite: + specifier: ^8.0.12 + version: 8.0.14(@types/node@24.12.4) + +packages: + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.3': + resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} + + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} + + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/config-helpers@0.6.0': + resolution: {integrity: sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true + + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/plugin-kit@0.7.1': + resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@humanfs/core@0.19.2': + resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.8': + resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} + engines: {node: '>=18.18.0'} + + '@humanfs/types@0.15.0': + resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + + '@oxc-project/types@0.132.0': + resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} + + '@rolldown/binding-android-arm64@1.0.2': + resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.0.2': + resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.2': + resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.2': + resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.2': + resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.2': + resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-ppc64-gnu@1.0.2': + resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@rolldown/binding-linux-s390x-gnu@1.0.2': + resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.2': + resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.2': + resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-openharmony-arm64@1.0.2': + resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-wasm32-wasi@1.0.2': + resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.2': + resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.2': + resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + + '@tybys/wasm-util@0.10.2': + resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} + + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@24.12.4': + resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} + + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react-modal@3.16.3': + resolution: {integrity: sha512-xXuGavyEGaFQDgBv4UVm8/ZsG+qxeQ7f77yNrW3n+1J6XAstUy5rYHeIHPh1KzsGc6IkCIdu6lQ2xWzu1jBTLg==} + + '@types/react@19.2.15': + resolution: {integrity: sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==} + + '@typescript-eslint/eslint-plugin@8.59.4': + resolution: {integrity: sha512-PegsU+XfyJJNjd4+u/k6f9yTyp0lEXXiPopUNobZcIAUJFGICFLN+sP0Rb3JehVmiij1Ph0dFGYqODoRo/2+6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.59.4 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/parser@8.59.4': + resolution: {integrity: sha512-zORHqO/tuhxY1zWuTvMUqddRxpiFJ72xVfcNoWpqdLjs6lfPbuQBJuW4pk+49/uBMy7Ssr4bzgjiKmmDB1UbZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/project-service@8.59.4': + resolution: {integrity: sha512-Ly00Vu4oAacfDeHp2Zg85ioNG6l8HG+tN1D7J+xTHSxu9y0awYKJ2zH1rFBn8ZSfuGK+7FxK3Cgl3uAz0aZZLg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/scope-manager@8.59.4': + resolution: {integrity: sha512-mUeR/3H1WrTAddJrwut8OoPjfauaztMQmRwV5fQTUyNVJCLiUXXe4lGEyYIL2oFDpP7UtgbGJXCt72wT0z2S3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.59.4': + resolution: {integrity: sha512-DLCpnKgD4alVxTBSKulK+gU1KCqOgUXfDRDXh2mZgzokQKa/70ax93I2uVO3m/LLvIAtWZIFoiifudmIqAxpMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/type-utils@8.59.4': + resolution: {integrity: sha512-uonTuPAAKr9XaBGqJ3LjYTh72zy5DyGesljO9gtmk/eFW0W1fRHjnwVYKB35Lm8d5Q5CluEW3gPHjTvZTmgrfA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/types@8.59.4': + resolution: {integrity: sha512-F1o7WJcCq+bc8dwcO/YsSEOudAH8RDtaOhM6wcAQhcUsFhnWQl81JKy48q1hoxAU0qrzM89+31GYh1515Zde3Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.59.4': + resolution: {integrity: sha512-F+RuOmcDXo4+TPdfd/TCLS3m2nw8gE9XXyZLrA3JBfaA5tz9TtdkyD3YJFmPxulyc2cKbEok/CvFE3MgSLWnag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.59.4': + resolution: {integrity: sha512-cYXeNAUsG4lJo5dbc1FcKm+JwIWrj1/UpTORsC6tGMjEZ81DYcvIr9/ueikhMa/Y/gDQYGp+YX9/xQrXje5BJw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/visitor-keys@8.59.4': + resolution: {integrity: sha512-U3gxVaDVnuZKhSspW/MzMxE1kq7zOdc072FcSNoqA1I9p8HyKbBFfEHoWckBAMgNMph4MamwS5iTVzFmrnt8TQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@vitejs/plugin-react@6.0.2': + resolution: {integrity: sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 + babel-plugin-react-compiler: ^1.0.0 + vite: ^8.0.0 + peerDependenciesMeta: + '@rolldown/plugin-babel': + optional: true + babel-plugin-react-compiler: + optional: true + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.15.0: + resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + baseline-browser-mapping@2.10.32: + resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} + engines: {node: '>=6.0.0'} + hasBin: true + + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} + + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + caniuse-lite@1.0.30001793: + resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + electron-to-chromium@1.5.361: + resolution: {integrity: sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-plugin-react-hooks@7.1.1: + resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} + engines: {node: '>=18'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 + + eslint-plugin-react-refresh@0.5.2: + resolution: {integrity: sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==} + peerDependencies: + eslint: ^9 || ^10 + + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + eslint@10.4.0: + resolution: {integrity: sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@11.2.0: + resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + exenv@1.2.2: + resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + globals@17.6.0: + resolution: {integrity: sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==} + engines: {node: '>=18'} + + hermes-estree@0.25.1: + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} + + hermes-parser@0.25.1: + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-releases@2.0.46: + resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + engines: {node: '>=18'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + react-dom@19.2.6: + resolution: {integrity: sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==} + peerDependencies: + react: ^19.2.6 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + + react-modal@3.16.3: + resolution: {integrity: sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==} + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19 + react-dom: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19 + + react@19.2.6: + resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} + engines: {node: '>=0.10.0'} + + rolldown@1.0.2: + resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + + ts-api-utils@2.5.0: + resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typescript-eslint@8.59.4: + resolution: {integrity: sha512-Rw6+44QNFaXtgHSjPy+Kw8hrJniMYzR85E9yLmOLcfZ91/rz+JXQbDTCmc6ccxMPY6K6PgAq26f0JCBfR7LIPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + vite@8.0.14: + resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + '@vitejs/devtools': ^0.1.18 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + + zod@4.4.3: + resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} + +snapshots: + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.3': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.3 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.3 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helpers@7.29.2': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.3 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@emnapi/core@1.10.0': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.10.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@10.4.0)': + dependencies: + eslint: 10.4.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/config-array@0.23.5': + dependencies: + '@eslint/object-schema': 3.0.5 + debug: 4.4.3 + minimatch: 10.2.5 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.6.0': + dependencies: + '@eslint/core': 1.2.1 + + '@eslint/core@1.2.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/js@10.0.1(eslint@10.4.0)': + optionalDependencies: + eslint: 10.4.0 + + '@eslint/object-schema@3.0.5': {} + + '@eslint/plugin-kit@0.7.1': + dependencies: + '@eslint/core': 1.2.1 + levn: 0.4.1 + + '@humanfs/core@0.19.2': + dependencies: + '@humanfs/types': 0.15.0 + + '@humanfs/node@0.16.8': + dependencies: + '@humanfs/core': 0.19.2 + '@humanfs/types': 0.15.0 + '@humanwhocodes/retry': 0.4.3 + + '@humanfs/types@0.15.0': {} + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.4.3': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.2 + optional: true + + '@oxc-project/types@0.132.0': {} + + '@rolldown/binding-android-arm64@1.0.2': + optional: true + + '@rolldown/binding-darwin-arm64@1.0.2': + optional: true + + '@rolldown/binding-darwin-x64@1.0.2': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.2': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.2': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.2': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.0.2': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.0.2': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.2': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.2': + optional: true + + '@rolldown/binding-openharmony-arm64@1.0.2': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.2': + dependencies: + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.2': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.2': + optional: true + + '@rolldown/pluginutils@1.0.1': {} + + '@tybys/wasm-util@0.10.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@types/esrecurse@4.3.1': {} + + '@types/estree@1.0.9': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@24.12.4': + dependencies: + undici-types: 7.16.0 + + '@types/react-dom@19.2.3(@types/react@19.2.15)': + dependencies: + '@types/react': 19.2.15 + + '@types/react-modal@3.16.3': + dependencies: + '@types/react': 19.2.15 + + '@types/react@19.2.15': + dependencies: + csstype: 3.2.3 + + '@typescript-eslint/eslint-plugin@8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0)(typescript@6.0.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.59.4(eslint@10.4.0)(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.59.4 + '@typescript-eslint/type-utils': 8.59.4(eslint@10.4.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.4(eslint@10.4.0)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.59.4 + eslint: 10.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.59.4(eslint@10.4.0)(typescript@6.0.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.59.4 + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.59.4 + debug: 4.4.3 + eslint: 10.4.0 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.59.4(typescript@6.0.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.3) + '@typescript-eslint/types': 8.59.4 + debug: 4.4.3 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.59.4': + dependencies: + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/visitor-keys': 8.59.4 + + '@typescript-eslint/tsconfig-utils@8.59.4(typescript@6.0.3)': + dependencies: + typescript: 6.0.3 + + '@typescript-eslint/type-utils@8.59.4(eslint@10.4.0)(typescript@6.0.3)': + dependencies: + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.4(eslint@10.4.0)(typescript@6.0.3) + debug: 4.4.3 + eslint: 10.4.0 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.59.4': {} + + '@typescript-eslint/typescript-estree@8.59.4(typescript@6.0.3)': + dependencies: + '@typescript-eslint/project-service': 8.59.4(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.59.4(typescript@6.0.3) + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/visitor-keys': 8.59.4 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.8.1 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.59.4(eslint@10.4.0)(typescript@6.0.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) + '@typescript-eslint/scope-manager': 8.59.4 + '@typescript-eslint/types': 8.59.4 + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) + eslint: 10.4.0 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.59.4': + dependencies: + '@typescript-eslint/types': 8.59.4 + eslint-visitor-keys: 5.0.1 + + '@vitejs/plugin-react@6.0.2(vite@8.0.14(@types/node@24.12.4))': + dependencies: + '@rolldown/pluginutils': 1.0.1 + vite: 8.0.14(@types/node@24.12.4) + + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + ajv@6.15.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + balanced-match@4.0.4: {} + + baseline-browser-mapping@2.10.32: {} + + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.4 + + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.32 + caniuse-lite: 1.0.30001793 + electron-to-chromium: 1.5.361 + node-releases: 2.0.46 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + + caniuse-lite@1.0.30001793: {} + + convert-source-map@2.0.0: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + csstype@3.2.3: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + detect-libc@2.1.2: {} + + electron-to-chromium@1.5.361: {} + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-plugin-react-hooks@7.1.1(eslint@10.4.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/parser': 7.29.3 + eslint: 10.4.0 + hermes-parser: 0.25.1 + zod: 4.4.3 + zod-validation-error: 4.0.2(zod@4.4.3) + transitivePeerDependencies: + - supports-color + + eslint-plugin-react-refresh@0.5.2(eslint@10.4.0): + dependencies: + eslint: 10.4.0 + + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.9 + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@5.0.1: {} + + eslint@10.4.0: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.4.0) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.6.0 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 + '@humanfs/node': 0.16.8 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.9 + ajv: 6.15.0 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.5 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@11.2.0: + dependencies: + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + exenv@1.2.2: {} + + fast-deep-equal@3.1.3: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.4.2 + keyv: 4.5.4 + + flatted@3.4.2: {} + + fsevents@2.3.3: + optional: true + + gensync@1.0.0-beta.2: {} + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + globals@17.6.0: {} + + hermes-estree@0.25.1: {} + + hermes-parser@0.25.1: + dependencies: + hermes-estree: 0.25.1 + + ignore@5.3.2: {} + + ignore@7.0.5: {} + + imurmurhash@0.1.4: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + isexe@2.0.0: {} + + js-tokens@4.0.0: {} + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.6 + + ms@2.1.3: {} + + nanoid@3.3.12: {} + + natural-compare@1.4.0: {} + + node-releases@2.0.46: {} + + object-assign@4.1.1: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + picocolors@1.1.1: {} + + picomatch@4.0.4: {} + + postcss@8.5.15: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + punycode@2.3.1: {} + + react-dom@19.2.6(react@19.2.6): + dependencies: + react: 19.2.6 + scheduler: 0.27.0 + + react-is@16.13.1: {} + + react-lifecycles-compat@3.0.4: {} + + react-modal@3.16.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + dependencies: + exenv: 1.2.2 + prop-types: 15.8.1 + react: 19.2.6 + react-dom: 19.2.6(react@19.2.6) + react-lifecycles-compat: 3.0.4 + warning: 4.0.3 + + react@19.2.6: {} + + rolldown@1.0.2: + dependencies: + '@oxc-project/types': 0.132.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.2 + '@rolldown/binding-darwin-arm64': 1.0.2 + '@rolldown/binding-darwin-x64': 1.0.2 + '@rolldown/binding-freebsd-x64': 1.0.2 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 + '@rolldown/binding-linux-arm64-gnu': 1.0.2 + '@rolldown/binding-linux-arm64-musl': 1.0.2 + '@rolldown/binding-linux-ppc64-gnu': 1.0.2 + '@rolldown/binding-linux-s390x-gnu': 1.0.2 + '@rolldown/binding-linux-x64-gnu': 1.0.2 + '@rolldown/binding-linux-x64-musl': 1.0.2 + '@rolldown/binding-openharmony-arm64': 1.0.2 + '@rolldown/binding-wasm32-wasi': 1.0.2 + '@rolldown/binding-win32-arm64-msvc': 1.0.2 + '@rolldown/binding-win32-x64-msvc': 1.0.2 + + scheduler@0.27.0: {} + + semver@6.3.1: {} + + semver@7.8.1: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + source-map-js@1.2.1: {} + + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + ts-api-utils@2.5.0(typescript@6.0.3): + dependencies: + typescript: 6.0.3 + + tslib@2.8.1: + optional: true + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typescript-eslint@8.59.4(eslint@10.4.0)(typescript@6.0.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.59.4(@typescript-eslint/parser@8.59.4(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.59.4(eslint@10.4.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.59.4(typescript@6.0.3) + '@typescript-eslint/utils': 8.59.4(eslint@10.4.0)(typescript@6.0.3) + eslint: 10.4.0 + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + typescript@6.0.3: {} + + undici-types@7.16.0: {} + + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + vite@8.0.14(@types/node@24.12.4): + dependencies: + lightningcss: 1.32.0 + picomatch: 4.0.4 + postcss: 8.5.15 + rolldown: 1.0.2 + tinyglobby: 0.2.16 + optionalDependencies: + '@types/node': 24.12.4 + fsevents: 2.3.3 + + warning@4.0.3: + dependencies: + loose-envify: 1.4.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + yallist@3.1.1: {} + + yocto-queue@0.1.0: {} + + zod-validation-error@4.0.2(zod@4.4.3): + dependencies: + zod: 4.4.3 + + zod@4.4.3: {} diff --git a/websites/front-page/public/shxii-icon.png b/websites/front-page/public/shxii-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4dca2c75f3977656e81a3753b2884792f9e46b39 GIT binary patch literal 209155 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

>&sg3*2}* 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 dm2j-QLXE6}XD%Y?G`+p902iX7s literal 0 HcmV?d00001 diff --git a/websites/front-page/src/App.css b/websites/front-page/src/App.css new file mode 100644 index 00000000..150fa74a --- /dev/null +++ b/websites/front-page/src/App.css @@ -0,0 +1,189 @@ +@import url("https://fonts.googleapis.com/css2?family=Jersey+20&display=swap"); +@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap'); + +* { + padding: 0; + margin: 0; +} + +#root { + height: 100vh; +} + +/* .container { + position: fixed; + inset: 0; + height: 100%; + overflow: hidden; + height: 100%; + background-color: #050902; + background-position: center top; + background-repeat: no-repeat; + background-size: cover; +} */ + +.container { + position: fixed; + inset: 0; + overflow: hidden; + background-color: #050902; + display: flex; + flex-direction: column; +} + +.container::before { + content: ""; + position: absolute; + inset: 0; + + background-image: url("./assets/background.png"); + background-position: center top; + background-repeat: no-repeat; + background-size: cover; + + opacity: 0.7; + z-index: 0; +} + +.container > * { + position: relative; + z-index: 1; +} + +.container main { + display: flex; + flex-direction: column; + align-items: center; + margin-top: 100px; + flex: 1; + justify-content: flex-start; +} + +.hero { + display: block; + text-align: center; + position: relative; +} + +.icon-image { + user-select: none; + width: 100px; +} + +.title { + position: relative; + display: inline-block; + margin: 0; + font-family: "Jersey 20", cursive; + color: #d8b286; + font-size: 99px; + line-height: 0.78; + font-weight: 400; + letter-spacing: 0.045em; + -webkit-text-stroke: clamp(2px, 0.18vw, 5px) #7c573c; + text-shadow: + 0 8px 0 #2f2116, + 0 14px 20px rgba(0, 0, 0, 0.5); +} + +.badge { + position: absolute; + bottom: -90%; + right: -17%; + font-size: 2.3rem; + width: 120px; + padding: 0; + font-family: "Jersey 20", cursive; + color: #fff4d8; + /* font-size: 1.5rem; */ + line-height: 0.78; + font-weight: 400; + text-transform: uppercase; + text-align: center; + letter-spacing: 0.045em; + -webkit-text-stroke: clamp(1px, 0.10vw, 3px) #6d2e1f; + text-shadow: + 0 4px 0 rgba(67, 18, 6, 0.92), + 0 10px 12px rgba(0, 0, 0, 0.3); + animation: badgeTextPulse 1.6s ease-in-out infinite; +} + +.subtitle { + margin: 25px 0 0 0; + font-family: "Jersey 20", cursive; + color: #d8b286; + font-size: 2.7rem; + -webkit-text-stroke: 0.2px #5a3f2b; +} + +.menu-container { + display: flex; + flex-direction: column; + align-items: center; + gap: 5px; + width: fit-content; + margin-top: 20px; + width: 330px; +} + +.menu-container button { + width: 100%; + padding: 10px; + line-height: 0.8; + font-size: 1.7rem; + font-family: "Jersey 20", cursive; + /* font-family: "Press Start 2P", system-ui; */ + background-image: url('./assets/nnnoise.svg'); + color: #ddc8af !important; + + text-shadow: + 2px 0 #5b3119, + -2px 0 #5b3119, + 0 2px #5b3119, + 0 -2px #5b3119; +} + +.community-buttons { + display: flex; + width: 100%; + gap: 5px; +} + +.gator { + position: fixed; + left: 0; + bottom: -3vh; + width: 250px; + transform: scaleX(-1); + image-rendering: pixelated; + z-index: -1; +} + +.icon-list { + display: flex; + gap: 7px; + margin-top: 20px; + opacity: 85%; +} + +footer { + font-family: "Jersey 20", cursive; + text-align: center; +} + +footer p { + color: rgb(161, 161, 161) !important; +} + +@keyframes badgeTextPulse { + 0%, + 100% { + transform: translate(-50%, -50%) translateY(-0.15rem) rotate(-15deg) + scale(1); + } + + 50% { + transform: translate(-50%, -50%) translateY(-0.15rem) rotate(-15deg) + scale(1.06); + } +} diff --git a/websites/front-page/src/App.tsx b/websites/front-page/src/App.tsx new file mode 100644 index 00000000..48808698 --- /dev/null +++ b/websites/front-page/src/App.tsx @@ -0,0 +1,57 @@ +import "./App.css"; +import swamphacksIcon from "./assets/shxii-icon-transparent.png"; +import gatorGif from "./assets/gator.gif"; + +function App() { + return ( +

+ ); +} + +export default App; diff --git a/websites/front-page/src/assets/background.png b/websites/front-page/src/assets/background.png new file mode 100644 index 0000000000000000000000000000000000000000..756323c791426e9e26640d4fe880513bc4fd2500 GIT binary patch literal 795754 zcmeFYcT`i|+bs$r@(Kbfq5=X|P>LuB2!tk5q<5r?ROuZ=Rj!ln_?x^cO$G{m&cZRdz<+!(oxgQ-J3&+7PJzYlDd2o{6&rtmyUG?CFHE?j$ zSy@M!j_!RN%f1~WIA-%#edurG<>Vh^=j%wP_Qcu44)H$Kp6g4(ie6sPvv0vib$kuoo)j{DzprI6Y^W-g z;&I<;7CSLF+ppV)m~Ei(&>c^_csz0SH>H_hVp;}r^&j_*6{bfjH^3nN&(Hs{!2eGz za9yk_eC7LG_1>0t1(8-8w{_;f4RQTO!QD3pE_(2zG?jp1pt~u-FXs0|3G&}(|6cpA zzxr3KAjki=Gyiqq8W}A}{~sD6!I;Kk*i zzi&GnT6jfIe`pYYLtlntV`rL|+JP4}ILLJ*5mwwIrXv%2LlyPd^DB1L_WcH}|A$K6hC*3fG8%%dH9ys~lJ-k3YWvi|_veP5uQ;&t;X~2=b+6l=eD(Otc`f~r>zDREe^w$+ zi)L2w5SRPzcXWyvr=QrWcO@kWl=rk5MEi>J(dAy14J+CU!^Lun6|3odW9Ia6BVQjD zOlYLyz8+=THz;K14_RMPdu&>O$ib}diW!-hTDNWO?#(#A)G)UgjNy(uqu>1QjpmqC z6K*7V=OE}Dj|bst{S5@!+D+(-g79mwLluBcPyY=hkNxE|pLo&8O;Q?L#Oa&+A+>g` z^7o5+3q8`>c(?J#1?cIb>fL!J-g~^%u60ZG{gHBI$7E>jSl#6r9Rb0Y)sy~T69T-N zl$)?EVz<*P_bINN{dU&1T$Rg(RyS1IoL&agEr0jK25?!6UQYv~(Rc~0qwl;#8dF8s zUS1+8tsg8NrIe?Ki_urPbhCI{n8&*H;9aJ6Aurb-lR0}8kGj*M*ErTYn67<(?*{Hd zr=yHurz>T^@2}gFIbZ)Zco2w;x%7KsMHbdL@rJ3%(yvx|YA>6n2TDa|g7#ev6`67! zL*7vG0?mIvelogbo#*gUI*?qy-({mkPv<>6yTgRG-Pir>TSk}lKY2EXOfCN>c{GGd5u_t9+{8_9hCp*Pz-FMPu%pOG$ip__n>fgm3q3_}QbX|)Q1 z-QizgweQ|wB0e7aE2kjSVnC{0^6}c6*}uuj+W9?0+HBbSIW}wpzF?hS?|wG(qMgHmueq3+;O>B5u#27zxs53)x%$1&-|q)qiVN$-8?8aM|AE{N8h znL+kzI+oaR80*bHC%O`&ETBW_xiPi^eEennmn;c zxfrTN?8{MGAFbWlsBL`Pz)dG4XhG8oQQ-S3-TrwdH|CupA2PF864h{p!m{T4Pn~#R zn{bx$9;D+DMKn!Kr>mT9OomfA)!0eqLI+7wy{#^t{?zs8snOWF2p`cp-y?M4TJadB zZi4i|_-|Z6c?sb6vGJH3;3+0b2TxXg4N8TSyr)0(=dAD883tSxZmZ{n*XjNKUhi7f zOL@K&9f8cQ4&{Bn%}u#Yt)J_p(4zVI{Up)q^kjXQ*}NWgXMP=!hn{Mp|E&hvr9HI#_Q>hDqwpH67liW|D+`Puo zkE_T0tp_WMqP?T-ubc6{q?xq{U#Ryz4`Iu-v^Yba(FM zQzPd|JSk?W5x-29$8CqO`uwYvjOd$-Qfz5&e}X6C(ymg6vo3J7to00{k^52%>t1Q9DrVi*C)Ko+uepcgVhyunX)Om3!C=O*Ur=}S2xhIVnsn1MpD@ZDjTfaoldxN&EQjr`RdMv#kl)V20bRetX>grCN&g(YSG1ZC28Wb&wFl zlbAOw+I)Wcm)RsM(%}Lv%O|kSR7?1GLq+ORP^!~NWN@$$YP&7V0YoOh1k3~jlxnv` z`u8#leevKCise@dQ5e-4|braZ=Ac|rKS*bY#n>DvyU>9@YZq}QDR{NxJZEIie zr``p-iI-)*%hzo=8$PY+3=5MvDO4kwGo|P@E5kCe?0-31qWBvtNl@btwqWGF@bw)B zma07!+V4Nsy+5dXNlBvLyq2wNsx-LX8XRNej*+^OX6oj$o84IP{BXUkx1nL#Spl_? zJNvE0t`a6{Sa=zlaG@J4iR5S75dtHTh!9_MEQL?1B%B!@r7P+a*!G@y1 zhfjg%@C-t`g%7=-fblxW7U9KL4xZCQ1!2p+M2d>!IKT4jAZ3=_9ittW(=dOb=~UuX z{27k*cSgJ3<8$(tP!NpOD4@GjYRkWCV9o3QF&MHf=ZF^kyu6qTGNQ~CEm7Voolvxn zdd|U0WmZ4D@kNv($VCU)DDo0Y3SBpRR6^K7K%k7zM9fNAxP~p-O6uJ*=BHM2 z1`=AITuolzS(LNmhp&=m=3rqo1)~ZRsYs>NlCkmi5q2u&QyNPF0^zi7SodBrx-tZp zG3feCm<#T-zBVcL$EVI%`dJ0jnd%}B#$bt!V>JED-Ufl-#+ZK;2i-M0xQCU=TstZG z#WI7{40O=doqcM9aZq%b1qx<%w#c*Mx%uiR#4|f9Yw;+udp5$kt5kmXsa;no%IuB7 zGod^hyYV?FEGz+2@VlG9i{JN;$4GNP6~YBBp^!(QupWRD+E!@{2bs?nWWHcfnJam| z45E4z6fI=woCvGqPVkToCN`D&_XbD&315qYU$~AU%o1{PFs?0k(g%jeunnUa{+FA% z%TL>z%l)K+OX`0f#YL&r9Ybr%Td*rxb1FSWnDX--E3Y0o&*s@cc|*0Ax&5RkcjC82 zV~xYaz@}4Ln47E<`iQ<5g{Nv-`7-fw*U^eZUcZ|GmZ~`wwZ|x_dlkqQpO)^`u#Y`w zUEaLYm3&E6)RzRaqKb(7b_FGfLaQR+C!sJ1m@b`r2sq=ORSLLN4AM$DaEH!r!n5tC z%u1UX76VZp-a2u-)|G+F3#&}SLctZAm3`0s`~AJ)-o3oxkaS_}1(l*P4WCT;x_qTg zx?H8b5B9kV+e2I2%nIE9UScbM1F^mI9HJ-(^49Bnh&T|a8C;n0p`-jzg?G{a+x61R zn~>v6g=2{`XM`t&MALTMs!tY-%-xxcjx?+&5~>PR_iz%E^D|%GUD_>zbZ?2S8}sP~ zJb$zAHA=BpuR06U+a!+VEMI03k5+3d8e6oVkhhsuw8@#Gr+278?^<9;=lXC&oHcUWV;%*b^MSClpl01nJC#-Ez%RR zg8S#u(Y1-YR^;0&l@Typ+J>`h9vN(0_SJ7$rGjb)ougBN`3KxHJvSbX8qIk+(_WoR zt^gU`vEChT)#;+xI@gG89+}5ViJGZ(wBPaCfa{ntKH`DG#Ft2t2T2MzX*`DiKKSpN zG9pem9wUt3e-4)0+9j0UO9=9qCIVBl!7sK%x_%otmha_kwieOGw^J7>9)m-XcO!T_ zn0jHGzo@RGm0z;!I;~B6v~QZ5uDzX`CD)1eyLa#Gj8@_=O6cwr(I*@`k5Aa`1<`h< z0=?7Hc^x+V<%!bp5G)_6Sc~YDlfy~pu(ptg?R-lV{i#6AbKi8|lKsxEf5V zy3cznq$PIFoG%w^a-%O)?*S7oX=y5Rla|^h+czP=+1_&O&!1$?`*pDDD01kzEo!{>CeN7fzlIi_(3O}Ye(YQUEQwI zLSJ7pqVqlvr9!(22Q_+O9E3mpA_}d7$dL!OQUv9&8UhZ2^#P{6$O9^<+b)GN)^=aa0uU2jr7VLnQwEK_mRiFPI->Psd_c*%Z?wHSZ?sdxyxL*L3cx3tzu%g zjC?w7mmwf%MiHw7eX6Nif-B=!n5%Yf?EJQRjS{HN_Gw<>j|4-{tFvP0Co|=0n&S>4 zwqrAa9SGA1OWN-*jgD9LOv|v_8}wx}l(p%l54af)EKliC70O#CuEmN3BqFMDeuI7V zV`olih^%Gl+JxEe*2mle*q^6;+7UN02h!I2CZwC#w}VBAi}qU(oL!(;C%S~P!N09K+TsD zk6ApA56wN+P4H7j*eZa?1Dr$&1R~5O6p9H73$T((;S1mE&F3Hb(RrNrjf4LZY)lqk zqvhlyVLopO89Gwh$2GP}DeBQyZEPECGn7#8)Vw+iTgf06n1I^e;Q@BwT)c3vmBQnl z-_d6BVHq1^VMv!pq`a^W-8}5pmk=#m1Gf9_M3R{G{1HXx^uAKdu1%x|won;sVVt=j zrBN@sBxAF5`(zZ=LOvc-@>)oO3%}pJWtb*)8cGEoPy|xRC;b&X7{2HdsX>Jt4082G z0_Gf83uOgJQ!v|Q`Mug;-tldtMKK5E>|ODZ7`9_};v)mDMTSGJuA&^e@~{7?T8aL; z_vmrSNUXW4T0onqjvZVQa#&BSW~&DR{T`*9XxR?ORW?(3H7libLRI^LB`*uo!mPIQ*@XWk8kMg$w2$ zy&uGp`AioD4V$9K&D+lTlte#OGHv@w?Io<_M)auYWb_Vw@94PmjcJsH)DJ?jXe;%s z%#MM>gyr=6b>ACJzwg=v?KxV^hcX~Uo-dw?mRg$x0X>*;-j{Y67IM?jyfXW!! zfT!T(^&L!v-HZoA0_LHR*RYy~!X?J9V`bXe|DLzxO6_sZirY@Wl)Ql`9)nUZ0nfOH zs1XMR-8~S8suD0}EKpcSJjON(q8M^`F%E=NP+uxKE|CBa#eNB;eg;4(?_dV5r>+yR zI^Q&7Y(}^`(eUs6&5_{-ww>)|7YX``v~3qT!w?&#=5sDLe1 zVZMQqK11#!8`{xqpOd$2OQmb|F?-F5v)g6rTWUILjbzOt!ev<@ce zOzq|PHTOIi8Q-b^U9eJ3Npg(bd*(Ougo2ZX^Y-;@fJgf=U6?8#Ptc=Hb%bnuGo;bB zQd%s(x2So2WU9*{u9&v9vrk^5bS&t^Gw2QX$;6A{LmlEEw3GOKSKwrPP#6h#BT?;e z{SrY9_ILdP%PS;aMAb0;_q#*y`~1Ed&dN&?E;>$c#naN+Rre{jm}qHsyjSU|(XZ&& zxu%i+{m+{^-6LMg{5v0-cjQxTC~oKVerNLBuOFl1r~&F$Gp77V`B?JwOQUgel0y51 zCygd4`rXIkh6)4N?!-KBURiuc(=+jjycz(r2un!x;TL>s*Kj+3(J?TqkF$Y#dCTqe zXqY&|Pm?;Gb1hqDd2gz_jK0~LST2g1xH!cNZ3>dv`= z-#;Je{_DI0s}d-u)0hrW!XS8yJRp27!c~rdvPb!Uet@+L5EwhnmS>n6B2F0AAdXAA zgr@f4;L_=pW-Y`z7W35d+xWGo##f5`dEft#`ne$bQRm%i)%ePzE}@e2e|?IRqu;*g zfxmzFZSzW%sT-z8h(|dL$?U0xd=rv$B1jZ9(;lUJt5mO}N=USzcq9e6Y1aCOi+En? z2(hT2Zn_fq)j{EstucVgKItu@zzD@QKcP~7I%0? zO`Ay=LeXBImzZUQ*;-}Ov;}3Mq$~88)Q-H95lN`HzlVB}tZHcKkz&2sgbCghHe}y# zgA=k`oG#KSN!H6X&V~FUKZ|ZL6hl)qZSKi@`{(Y`!XkB2c`sVrrd#~G$IQ~N&D+;& zcIZB9srHt>so0DN5Ma9B>3p|3aX_56Z-N@40X)HG>+8j;K!@3;>n>=qW?G!@>W({C z#|Rd$KjFivZ@ENj0h|L=;V6`P>@OlI<;RCwJ%`XBOC-R1s({p#0+tOA9;C0ulc4lH zsW<)d#Prb#>4JzAmI*JT3Dr+1kIPL1y2QxndOzV`9qIp2vLY;BNcRV7Y@TDbXTE+^ zbxcPVA2hrpSkSmG#8oLR-DiA@$VxmyH>xtpK3g$Sfa4BOxIAvp#M!S<-{GL_;U#)rfG%a1sA)9~qk>xyg zA-KvK-#YXSV{Bh1o~i6L6`NC3{f)I|X7l6Xuknet{^37)X)p9__Iu;E`m{TyJBnp2 zR-~GSY|6a(-l^1tR9{`5Pnk103CrN9;hgGvoWpa2hKNO<)1H>oc(?DmOx@+5c$gSl z)6;VL_06PIUiBT;s%W{jOBHExa;1eq)NJGD?-Z+Wt2)*d}G7!mOe`V>C!4~kZ&B&kna8!`> z#iB&o6_Gw<0mkCo+8=mzT`KQFld0-%UgNh*zxB#2v*$gbjeJs@gqy||>`*|@$OBFl3-loy&dqmG;YVvQ2x*uCb6 z-E6Gk+a#B7_7tD^hVsA;U5Ha$4bTWG)$OPw8?|w48`-)m29)djj2$VKoAQAk2 z@Fi5&?IqH{{cLY;s6sWMP!}9Zsn@-0S-55^4!i67=$C+9X7c1`55c;b0m zFDILt7@~7U*F$k(?CtfvIM>p3-$jrPyLq70gmYI=C=Mu0CLS|!0ZQc#OY>MFv5tM0 zU2tC_Y0yKdAfz~S696py46?&EFk2Ha>|Oa#V2-zyQ1Q5nf(?x zqx2qbb`xsuBaqPfJ@yngrWetI z&yGD^Hl4ZNf`-9aolbsVkBXBnS6sb*VRxbHkM0J+EXid&UchDMvH$K<(wi`Tg{Zs+ z>l*Y%uywgrzmqVr#1=72ZnQW|y}e9AwKt>xoT%CXZhUhe_x5E|u5}9PPWwptgjrbz zDrPT-8Y9Xe%qEgHHWy)vn;(2S?pZn1UE0&uJ20{}aQ#x!Zs>$?_|G@1$w zDO$b6Mvs4~6SPeA-6nG`B0rT9%^i0WTdxUM+mmbyYxHcYg6%Ji2ZZ*{Uy~oDrEwUt z#pD>G1vqat8weQ(Ee_9P@yZY0qu46jE z{7#_C^Lx&Yec#{Tx+<$;J=>~xrf{Qjv3F+x3dO< z)eH(uu_f`^*<5YjSs5xmxbO@F9;O`E5`P?nC_hJt+PFn z`w+Uh#WYjWKYxo7=ry;MGF3j{)VLl!o)eq%q**g8;T@VQ+kA$myf1_fvC-^{7xw$6 z{%^lRtF%v@424g;Wf)CA#hA7H|5~EuVg<=7Si#0** z^AD%~6GHXDQhEPsR!E%kILh9!GX7DBckrZxt53K=rJ`B}KSm>WJo(vf8H!7O6`GJ8 zkcA1J>+I;5VtL)SG#PBpu041>d?eN2T~i3Yd;Frd`usyCqD8-(MjN++4h-%{^R94n zeEv~6EYK-z=}V#zyjO*&B}BQ&0sr7ej>$;MJ|)CJ^mVsNhvx{ZbB)i`>N@Tia;apy zE9$oEj(vr_WS|)6!HkJgE6;rc1|JCc2s#xuTsXHCp>|D{{ysn1PA4)`^1<0U=)G@l zWrbnmLgPW-j`r!?n)&DdZl+9R4}tv(3c1nHbI{y-1~P~q|3RTh1<3`l**U;>dt)K| z7~s0>P?!{ckU%&P(VVvIPuZi&b<_#05>vS6r{V`aG3j%gUZ^y$Ut6~Q!H+0^KCf|& zbizWK;GJ!$yPqjabFWAuy8IGuY zBP(=V&d&*Kn{`dyi3w~kpFeFxOpggx%#3MB4*rwN5gDYK;4z(sP{}RDdftWg#x7ZEgDSewHZ9e181SSe^B*9VrDr z;!4gT5x!CI)e zqeoqffd4F}Z1GbUbUGjdoU!Czi!eo+kl7CX&ELOwHFdw!d;!lYlC3-2JHF#T?k$I=HJ{aD%;GeXOpqOKs?_>)YGVyW%vT)0Kd*QNUgn0(N zd&6hRGLBCiJb3C|?C#jd{=ssE_9_KkKW=tE9ZRkW6w=8&KMe6k?xP*@{??BC>HYbs z_D4C#H|uKyRd2UBOf|h7sO<1hY2-9Pj_YbV%A2S;CZ#y$y}{O$0T+*Uh)LmmVpgLD zYSx@HP#7@a8Bp!M1UY;k26*hFP}s38Erc!45=k=wbLBNe@!Aq;;>O~h8{maUE}Pps zs!oqpBw&&-f+qOCL3HWkg+Fci+k5O^jys=crIsVS@rk$IHSegb>ZIRx!i4zfO~|n% z-P3n@E*@ zR^%%r#=Z<)X$@|@3#(XX`gG@vS=Esw9scEM1*PHLe>XMEcN?^O)%8A2v^lj9GL&mw zA6~n0WAXJU=X9ru*uP7pn0p9h1ONewfJFF{CVcRK`dActo#eWT(lgtjX?`=oUs3l(S01BNXgI{q%p4i;> zLGkM~C|l6r-T7sZlXYri4VsUz6{s#C?7*g;cW>zmXc75oluYykmV0A0OJtjoF*~C(U*0(hUnH_L+a-B22Rfxsduli9%Q}h?J|WEVV7V zMRd`Y^6_5RPPZpNu?Mw;@WLzp7+#x31)q}$@l|D7$IB>$PK({I^>pO5b*-SHgY6=@ zo9oCfa_8l*r4Q9g|C%{+!_3ICB-ZxEKXf;D|MYl8Sz8hZzBgK3vP#ocC5t2X_kO+( zcUJrmm$T(gPX1}!$5}U~C)%^KLByF!chPIb=FGTx>lieJ-NRQUG&t(7L;R`Y?-O zBMu*ENYW}g}G*^cvJK~}O zTc30J%m$};L9u1*V^sDlv+iRb(XRpr9(l*_QK1{e=Zu8YsW~E6ty_Er_6l)qw7Zi3 z$i2G|}!OW$wTug%MqOty*D>#IU?(vPvr0`zI@iW zP8MkAWt13bHT;rWA{|=lfXZN2LBt84IQ52!lo zPEF#0e1;Ybc=U@Xb-QlDkkTQ_2AoDHKJ?BJ@RaI|T+w(70O*#L5lBkKVYw}K6f6LZ zlsm8>-!@G4me!She3i}E*6P<%pI^#m*V;`wW}R9ZjQaWl&m(yxbILz;z@)LhzGRm) z;+IO6h&X`Kg(6g&QZ479*7FfOJH~01@p4ey+l{33RU<;tak{dhuRcB zQ-#D$MD|4*q8P^#YAZVyUa?v~f_5UY6$|e$M=~ac?ss%JT0WcWs<$(!?Bq(NP)s1lKwAFf;^_2;m*e%O$Z76a@tuk%i0 z0x>xNqi2IOiLm(;oV`5zO3~QHEcy?ojpH`kzB@KxWdGzsrNKgNs=rd6$0zg?vT$9B z3S(*^YsKCVmg6sop>o-Q5*8)g#|o~?JV{E`io6<2>@f-?O7-}d`}wRA0B4pf#)F&C zGO;Eu-kYmN|L9hjlf4z62+KVuQP5EGnQGQkqFJbStYO5Hmuq)mg=%BHM2~PAQb>!- znmrp^a?WNAgB%!pjkmY~D&~tQv9nN^BWRZc(k&Xo4`LAa8wd^bfWLyM_3Ds}i@ThF z;r~mo|M&aPq+o0#fCk20BD1%@)IaK<6EcQ{V*BRijFF-i3fp^e49Hrew?7eH&jr)# zwQQ8JZyDM#6}_^;4l)IGE){rF-fG;f+E^E5*Pi5NxKh`0u=296yQ#I&ia1@CVNs{~ z++M=omtCGQuN@}C6{YiKs7kvSn$~Yc79oG+mWB7gz~n#9%w1M6J&BduQus2OxI;uEVl0N-C}DBpOmpLflrrAe`L>7cO7K}?dyVGJoFrzAN5;RtCNoB7EnJ5Wnr;e<8U!<(t=Gb0+DRdWXGRF#(CH`BsFf;+e{ z*Ii6YNV`?C{b2XUDpLmY^wP!O_j-g3ZZ!^DR|#&E8^xO1ni?Dwc#PaU%d9gZt&pt>tv8T>hYfWbF`1XE`yz85*Cz^cu>H}Tb zOKGzH6_}lS73Ru*as8N(FjX^8_PJo|PUPE)0N?Wp=;#Y~QrV_vG9f)QH4CQx!V66- zuJR!ru@-v8oJUpeYKK@5$sSFEPJT6KDzuO3*u*v^)%)U6Uqo%D?&r!6 zw<^`HIHpj>0W~EB>i>h4nS{v!eg{ZdP&k0tbO2yWCH|-N&b$F^IM8PTuCEESAfrGs z1nIC|e1-G??3akoyZ1Rt7%jK!SYn_0aI-=v>a0goJ1$^!bWpl~ha=!u7zZ?VDx~Pl z>d)7%w`gYXPHy*}w$uy1_phl*#&*egZ(#h3#MJ8hGiG)3^i~(+UKfa`j5rnl@P43Wa%3l33ljaovX|B{#5>*oH}>A5|%0R019lp=i_G627sjly;1oDOb+2C^YH|*7(lVPB=i>J2gY6tl=ix)8Z{USgTEt<86tz{Wd{tx`S`fY_Y}ba2d7cK+J0B5dwezE z3RYpI5v@8PE|RlO9&s5lD~1OSf0|?7pR1}XvWujj3@l|&5qyGOoVKx_c{jvEJgd(c zp*#^o`4S{iN8Zv-(d{4VQlZdl-Jnxu=+AQSH$oL2c+c5NsH5QG=ZUme!Mpnnejzh} z2^Y=`Fj0EHHfdcc_Y2*;d?Q)kJ?9%N#um@gdyVNlV|w^@-7)FbA*SRIsRH-iMziqB z?8t#JC)Vz8}sXC7@(X_3}%5nh*fhpy9gK?kAdj~k^?13e(11Jf6>n;$OD_I=! zNc@1AQ@w%`XHC&R31?9h&`u4>mN`Q0rqTjxeUfjSdMiSFcy4dU3>LX{A+28zq&r%kuT4?&+Kbcyu)z$`%tItQ}n56S>X8s10b zh#h*G!BzY|{%_k^J}VQ`mID@WBt#JaOh7qR)RaRNK-tDM)#CO$_Koa=kNmRj+w%Wh zsvq2xe%)r$|*#`8Te6MnjFqSme@4cfT?CW4`&3vFm=I{c7oOSs(Toa56 zFk{a#LikXn!{Ay8rkNRt?tzx)&M7b~#%8Xk>+J9gtz9EM_rfR{gDDfcK@8FbFYk!h z^lhd0Eb1w4k5NANQb$Tlyd)&~oP(l&LHt{X7qnYQ^;p+!1nyQF&S_k;bGAAzOf5Gx z#Wch(1pjrobn4+)?|jvS+nM`|vUb_r%)32JyJZ$PYudLU`tLl=gvCm+D}DtlMk!^l z>fhHYauqRWi1aj+L}cnP=BV<_V1q_;1yw}s$xpQ;5s2IJBe4PGWEFl!CD}roCru4| zi?%%vQKh?0MZvI}PN|~l^zX;;*i&3l-;o_w@Y1=BrpL0kBL_5OW9u0i+O&sYt{2wo zbW5n8be+>2=wNy2I%ey;Xi6D8jb-{umX|jV{2R`}eRd<+Jb@AzTFK7IH(6=^e!hZ6 zUkG}oKqpSRj8ZoOO@YCKWk3%^QAnU6?;-dAVL>SHDG-bSR)Ya;=a6w5lv=ZHvJCXV z&yH*#^B_*a9$fi_7Z1v=yW@EZ7BXWb>P2JZQ}mxh53gve_4Nh~7A7U_g%1S`8W$HP zjik*qn^i7&HEg6Qrs_wxG-lUvUpv*BF>{pE+))>>KDgRFR)*AvMc zC(9;1&0Fu%=FC4~L{#EnO&(->O0IdjRcLJ_rsreF4}O_#1G++$^|ZL0U~KR=g24JR z)U?|Nay(Lwdh6Z0q}lcSiCtPM@orO>$!l&MJ+;iPh|Hs?oPH0jr6!d+Qe>o3--C2v zB024qMb&FX?{HUN`%T_j#erhYs-@7}H@zwC>i)fD!n^DVW?PuTUC3;Fhx0I!jrWZ=r9tt2S3D&Cd%^akV&F(`N*}eZ!SAUHQHA zKWK}I%l=#^Oo}Z$+KQRWH;gXLOh)H$4v07k+%d7Joein8XPkNd;pF@Lfc02aR;RMf zUD@&(kCv{HwR<|wERidTQ~8CSX|6spNnAHfil9{kmH7s>iq7U3p3D#0f-J=R{bL3@ zRrMFv3*MxEuv@9A#-r_t z6<11aQ>Dha@|m$l_qPRPQ;m$CHUA$ZzqVjXvB*RMgXiMacpC8$U^>2>W~+#R*;N!9~;`U5}=L>exqK}7lo3IkZ{ z85R(oQHOX7xZQzYfkFYC03CJ=$@kox3>21d$mOdiUFadyeLI{LO5+}hom%~e+UcEL z7tPJm^7Rk4IN-ugYkJV&-sj**-Uz#tlI-rN*~_8cb;v~1YCqHYvXJ$MHVN;uWhKkm zmP@@NCggZld)?(~cKm#6RqGy1PH+BU3|W6LX@M)7d|gghrU=xvkTor>_*M6!lM-ak zvoV;AHhc_tT07b%I_tyq!ZLe6;dW*(y;tCKefT5x(x!;@=VOV-k)eB>cyh1tiUW&` za@hzWEu^r2C`t5-f2|=>F^+}3R?eC?#5>osJ=K&wsL^}sgmc5KbzE4YCix~)ZPe$@ z@!ciIzG2!f`=2LG`k+{mU~|e*oxX?rx_?o5>P9VXYq~tuwkdRP(kMb%aKVckNWjvA zLl7myUt-XD$XK( z>!IAq98!64_u5{zj+~?2;veS!hkSHehaQ7!ZK+{5l73_8sueG=#nJGFpLmp-H%GR|cwsr-z z1kM=cC=jjCnoesZDg|%(f}y3>v0AXn1nK+eBC_)>Ny2d>F+JJhT%(0}A4?PM*!TMp zF!crtYUmB%nFHs#O6Zb<$8#iq(aEsA+jfo;&FF6&-TW4YlnLl`udrwOXw@c5Bo_so z5oH(-dTTowaBR>isCv1-w5;k(Q90B=OOhAW_|mSH7BfGR(*iTQTh|mq;MR@Md2*{XZ4lZiGzgbaeatM6X>h&K?o3tMirkAaG5>L(fsbw2mSh-O|&*J7?*+ zC>HgGzDN3|bb9|-Z@}x(aVdmuuk_d8whHUOK<#<5xp{LZ)Su@VS>1xHR!>7(?WJq; zIs8^1X|d1{ym@!(`Y5i^xaqSU%Mz#t0XNJ}S9Bk7fR6zl1`g@eO-KTg#M6h{PS}@# z8y>u;@TCn){HZ5L9UckW{@f{cmUB+zyWq(iEU!oT?d3TuQJhp19Gp=E5k4czQF|#U z7unL$8T!Bn9wz=iyUtUu0(Ks3SUug+fh&X6Eb_raxU(TH*BBN8F;7*6FYUT#jNGwM z@2+iaEcuB0^ush~|4)tZOm*syrMDvW?p)`4WxrEjoh6w6UKW>Fc*dC=k;*~8fmXKu zLlw#kzU@rbkpD6E<7)JG@9zQj&gOMuD0@k`@K(>+xz13M+{)_QQt-)#^J0Uay9h$B zYe%!?+xXh#RprxacYpVXnLNw7JC5ZSqw{_I{b$2B4+{Nfx$L#-Q#e}R@i8x%vE%rg zTRY)9A^j-6O{OgOXZOIGd~hI&&pPxUkU$tg0y%NG^+4nK;r6Fz`+wi_Z2P+#y>ISB z9WKk$#J|5_`@Bh!-Hmi#LgC%1)3J|I*8BWwqqxtR1=`!XO__-0`B80s9jFrvc zB{!yMTtnR&gc$5G*64M$Mm|$?17Ce6qiAjfZy$;Egr%&}&0=Vy z4lI?0oZ>^QM{th)k&sA@u~e{2^O@Xg4by8}8rgMs=1oyBlM}cRU+!SD{h}n0xAJTz zuHkK3fjfpbxT^1Eh@T1nu;&!))wyj0C(iYPdJFLpye>2u-=|2!;!s~L~{x6d1}B&%-|c$6*TY#)e%6O<__4U*AV2TZbBa5pe~`}fRF-6O_G5K7}P|dXzU>n zfToibH1#E?MZ?=t;mA_q13=HfrKD5h zw|nj7=jy%Dl)0^^T7EkIe<;xQjuRiTI?icG*S?$hfsVmD+M&(-&1&~U$<*SrSGePg zxw=2Vl*B|lnwr8wa*G$80w~lwwb>GCSRE;D)a*IeK`D}04M&O;mk4^^NY6|a`5IR) z+P3ATCfX%rWQR0m6X@?u#=baXUhRS;*U+9W8q%4MV=!L54wI^>w{})MktnY^UP+qi zesE$$4*|2Dt(07xH>Y63%dR^!Aj_>YXExUTvBwjRtj^ZO%inO>H_Z;S_b!+a43rFs z(^VTEiegu3+j0xKH;@C*7Orz2&q(6nke%z>yHjzxkvLp3C~Gg5woUITM?KQA6ZmaD z{iP`e?_mwhZuI|Rc3aQ^1e&M=>w~Up5(e|^5T}g+EC-t1hg)@XjucSiqF`6Ajk8sl zS%}e!!v3_i<}*9rJb#geX_^y$HjeTw&a%Ctzf`xK}3OjR?&GUgPHBYW_At$h{Qm7N3gCgVht6$K6dA$)boPt(4X8+Hpf=f(rP2wDJ@ z_DUxxf*mf=twNwb^6$k(54OetAY9^y@!jHvYg9s2_yrFxtKBn4my6I zi)=;*rKWgYhJ)RAX9G+?r>~|cE^NwGT`#Soq9$xF ziw%OLw^{OovZ6JcVr}45+0urslyk1BA#`B6`vyud0dKW?1Yf@$T-lKz^9Ms$L_b;v zS_jHfnQf~~U8RuwXIGU(Z@VbpA5qDK)zrZt>4PTOr@qsxf0vRK$NC7LPpr3~euR|C zIjD_#SJt}oIBxD^D&6s9YN!5_M4k6mlkZ1IYwA<|m**-geb#MiCe{c&odGU#FCE~P zqm{zG>k=$`f|vwZ-^YGem$}Y0)o|ZE?o#0>krOEVn{drCV^GS&B+)lru!qtcd_;MY z{htYQS7LJNRE-A@QkL4%b!F{nf79L*{C>~XxlZ-e{4nA46h*5NOrlA=>Xfx83hUOw zRTptW_DSOfYtI{scHcxL@}sbiTl9-cQNV(S8^-&OoH|IGbZ0#5!y!nJ5Gp{0bqfsZ z64(|9lxI}pfv+1OOlRBMno;ClTS>=mVh}W>+RTHz4>3qvCr+;~M&((frvqV* zyhtHBx9-!7I;cHJ$6YmIw7wDuUpG3QU>#OQ`DIR7g2Sb(%V}%2 ziX|E3=7{T8Ncs29ioa|R`+gz5`mW6P(KSBwzrJ)p7TM7omRPHW#)jHuTegupr-Gd zsl3NfA0)?#{ls)S&7b+Q4L|d7%Xz4(q8EJxZ9l=VCy%F;h*qG^H7r`S7rf@-r|;$A zTD@%=JM^)2-kjf#X0avuMhMOr{1M+`t`c2(Zh$J@yj=PzxH?)R=VFccyZJ$((ydWw zufEOhRgt!B#lf_~I7{_~&V|mwKeNMV>DLNd4Ue&9ZzhV$9?zY!Uhxj&UA0VkAP|Oo z#JuA&^{SvRLk@tQ9VxI^#10e`pthyTERo)L=(8@7z~Tb?)w_V?0~NBU(oK+10oqj~fgt94T?*-6Es7Sld{~ceiat>~o~8MfUCK zuncJf!;R$D|H0Rn2QvM~|JO&QQhYk4LKiBcC~_`cQtmT%<;s1|y{(d@93dpf6uFsu z7+WY}SdLk8EIAgl4KvIRzn4DW@9&S_A3y!$kA?T^{W_k{$Mq6D82`y`7k)cOz3Zz- z=bj*b?>VK(vPZ89D>17P^i}S>JWP2Nb7)ri1vE8pg{K{E=cV8N`n7;p zEKk1Fe#06=$deD!4Q(83ao%gGDq}sBKQiXIa~3k?=X*xu8xeadOZHZ1+>K#!@ zR>*|UB5M{+N6GZFcJ!~1s*wtUSLs@RUSD@mEnHqEo=rBr4ehBqWrsx62gsZ{YO@pk zN-6Y#eV_J>BAQCK+zEx%O+!;GLs@50-$>u%jTww}(Vj;?s{|#q5ZK_J(JuNK1Roy& zr5hM4mfg{m5}f{&^&CYax%=jxCn4unrtuDcI={GFQ<(J}sEG6B6_NFwS5<-i!uG{17ro6{7A*xFD01WGXrUyQLHpK(O>Lqt* zeZC@D{!N%DrVLHBVqokSf`7Q;Lek3hAdnA#*6SZ+O<5l_xFFk6wNzUk9C(R}-91e_ z0}K_IJ5dgA%4e&++cC@G1HNt})|TbZ=_^)f`2D?Z-u)G^p8D4^S2CuaXh1--6xys} zzP2M&3)rv$styFOTo=HWE@Aps&w(kU1l$!sSKk2yN5NBU=No@TvNN^cm_n9C8i-~f zKmOnU-@mD^zn#~gJp8e{m0!jS^JdgBmNXhz^hXVr8Tb#C7I@QJzR-XW*@Y9X{Zf)= z)*1}!9Tz4KAtOwUV|M=T$SG>t}Z)eS2{2d4|D2m3mNz zJf@`JnR5y(Vsh4i*$ZM?$gZfue+c=shKz{}sBq{=e=A1w^yFwgyrHcOY1u?W>%ml&{ z-us1`&B<8*p+y(mHsb3IFRKan$6(E6si!JA+C`$&7!3$uCsmtNHZ`zXyFpmMiG534 z>(c}>0Kz;#S8*-02dD>urcerS)kX?Kz)DaKoaY7E& zd6=oIU?b_j=1=}Xm zFHFz|EGG!hgljJGyG6g=Zy13`wGI_0lc(Qn2@8oF|3;?YjIMvW zlI}DwUbjm=;A$=v@0lQT{5~W*e#3Z}MCs%Cpyf=IgYc3O-1X^OJrwio zquwJtJBP7h)EjEXFyS0}jL*Mpa%*i}e>`|9%mE~M%&p`XY`IKgZZ0eX?$g|VjG+C| z8wDHlEyxeOE2{hf90Htb_nS}{w|FgpJG8hKilBBjBKYoiVJc6e4Sz~p)8HR}Wu$0`BR$p!yifRl za{Ln@V5?Ac^V9?4G(fY05_OYH)tUoV2nRAyr2%2gQ;jUYYmPn_3(@>W?@KH4&SdV_ z69?Tcx+sy`J_v8j(0@0k4xIba6SQyqy2fb768DGn+KmJIwnXiuepNINe)!9(^D&}#0Eo9Bv_i%u!ElJdi32s$@5+hKtpxBrrwM*&?A z(yz<`(6?y}B>fu-{{$M#YuO1ePJm9v=cr}uw6>02+~!lw-iZSKzyt9`Ijd@SX4d1A zx!CTeDqC-y_Zr`YC+I7_tJ~m^)B&+4S6W;)k_@c*$aNz-ffJItb6=Z?>>szqNWl+1 zGbW!6G+zEk`^fl|bkDb^=ML@oeGV0~yZlFwuJrCht&7m-0<9^(w-}qwK6q0+;7Rg& zs2CRD9<|G!yv=d3ha(+wE~;AG%FVfS^>oLf1o`j-UDw^yjgyjvPRSTr0y*7LupNO+ zl<(l61yeQwcz^*v1vW{t(EfNtCSPi+HUgSf*y?b~TIx@!;L6=u6AukYp9PE!~X~KBx z-j-i6YOXJ86{#b3MUZ9ns{R6axZC*9UXDdSa-+>Kp_u6I-GTM!xT3N;-6*sri9O5A z5*I>`g-isG$YlS(UV1-`Cs}T2>;II=WH1YCh>YO=*ycgcha5PrxluHB=HCmQ=lE;? z9%t#TytsT}HkA9c*2)E7wA*>qBANrl)kYQc*G+;+3Y18b12K;>^KkG6V$%2jF8*Bt;K$J}i(cs^*Q$4fk z&pa!gd4&=}mi4ZSsaCge;jGO01wYJRy!l?aEp9-`_Oe&zFT%wSZ8}k-r;cCKa(Z%J zz}zqj!{cKmZ)y6z+m)YquQ7h8devR{*SBIN?PwFyhc{6e<4Bcxcj&t6gtAJ0w#=#L zG8r#@J=;R0C8ZV1C?Bd)rc@_H+>I3`PGvNfO4APPk6F>J5gimbum5wbucegRK^@fB z@!$Q*h9B5qsSev&J8rl1(;%g%6%d$?|7AFU2Soz+2>$N~0Hp*Vp%M>+IuB%rfHl7a zoT`9MyaLiOey9;trr6Lvx*Rs4V-jI@?(ajlTys3|#7791ayRM%!@15O6MLj8(Ea-a zq(dP}`uL~ICYR7VMP#4Ww@5x&uK(BSR!}uG#C#CzV0Zj^!>9|9_*h&yVl{>?+{Ygb zgCus)py-ig?1jiwRV8;gK#2{fC$lax&e3=6z~Wyae>6|G>Cub zxtUEintC%0T*7-owcNpnKs~E=(O#BF6>kXHfA+_t^1)Sw;i3581Z!yH?z1Tl2$+Sw z^6|jIUm^+g#Xx0C2Q0RzNkcP^IKcd&IrD4Vn>Y*x+lZraWNdHVE{W8(1eUawW7ETr zia;j7#|p-TcMhmfyuWX(YZ(Lg<@V33X*m!nXpbS1VUD3Ss8JAXLwcm^5thTo#8@3q z30l_qxQIWA2r(~trY_R_l%_K_6tII{MGdr`>yV_|hGr;uVOS&gfGrc{DQTH~T2OO? zn?@-+0NrwV#1JxGWT5^s7ggBNk(|EHU&dMr-r5-R4xOVQ>0{j)E&*-tzC3o>a(vTV zdk;&62X4Do zJ2gGMsW;`*)$Iqo0XIPn_}^m!=;0Q~0s&kQuvG0<1vA9=!e6z+B-llPf=dOc)z@Bb zGUl7Hq;Itk3*g3Vo|Y`P-I-gaUWV~zA6wg-tJOC&j5P#GtNRBn6Hi~u`SNT>Li#1@ z$;Lyu9rXB({mv&moM$`gC+neJy{ER)Kd{7kaHF}%_JEal8Bkb*vP^gr9NM}W>xgQr zkaPu06NFBJ^-4-G1Ka#*0q_S84z>xFHTjAVa`-ebQNSKt=hg3CXZXuB3JjyN)+x3wcMOdB^qcLcFsD8qSA&?PCT{8x~4MgPs+!~@7X z{4Yug(wxBDowNlo@&Eml&S4<4EKL4W_PN>9)!+@uJCv^(2i@xDI{LZsZrsP`zsgd> z^Q>!TQltb^Y>jPy;w(ubhOPeki9lv=UT9G=*S>vFprb*{;NI^?$F7G)TbiWcuSwOz zyZP%Xw<*VlwkO}!ZMZKgnCosj9mUe_7r0yUD<&-!5#TvCU2nikuZyJ3o!cUHpe*?h z>V${MxCQ>7b?ElDG`W=vvy!zxe`ZC@x*at?Q{9`Ac3x4x>AJ;carKvEGZvp>n`>+O z9uI{BH817a=EOXEdMRS+zwWReRPNw-`kxOcZU^Gtxid|NLdFk;@0%PyuVR0Eqo_c( zYbtF1Zo!^&O46ID6iZtDZzudTp(}(7X6G9@_jIicu$>>cAv?YngVyHI*~g zDy+-Q?5!_gd|-`GnZtO_#)?!Hj5_Q5d%Zstb#E||G`@_Y{cGN=W&EP*ub3MUWjf&9 zmjG)gFvkG(-R7CK1-$r4>%Uq(565AanT|@s>AQKI>PNc*M(I zt+!oOV!NJr?Hn0rzcJj4${@vGDRpANsUGA+KQZ2Y4xv?Ufd zxI=4K=Csqva~-k@?XF-?K@ee-=IlD>R`E;br8=XiE4 zmF-qLr@eB4{Y^G`9D9hSldDnOPuJm)q`8q*Z-GPb%2I?GaBT6w(mnVWLK^_-fEylWEloz?Hwl)7p_AcPNpSO<;6;S7kV zjWzdGPM&F$J5iz(NCKgkj|2|VyvUl_1~YTh(2qulhc;5IYd9bLXMH4aq+&3%BG6mL zUU;3m8WV=5S%`Of`m9RU2<=O)I~Rs1f=ez=pSwES0w052wMz$eP)Y%BL28z!8wK^SVhs8P{B7ZlIKXPjaqpGA>+B z=@p!p+WW4kJI@S;IJ#YMKIOea>TY7i{nDYyu-vPpf2Ie#(Vkgqwj1GYvdkc&i?(w| zaV^M$laPE-Zi>!SAgYW=SUf%c8Y8lvv!B(ZWom>1E+f$VoVub(NLyUx6{PY;2)k|* zN|X%hfkTN0s>Im8x|_|TgAG=jJjl`$|IZ!_TB}W~j60XjuG3#<@Yw|K<6KXr=MY|- zin??egUuGmAiM~M!Hpn4Ase}OH?7u(NV5`rtEu>js9C6b`BQ&OPB`3If|BWM_w$Ks zQEG9GX8(%^G@lHDrTYh-|1cH$-p_~#Zzn1q@f=AECRyCM5dJx5z^%k#gNoq|i=mw5 z)9)#XODo>c*{_Rqe`XbJ9W=I#fv0&~S(R;3BJV$R(5vLkGVy&`{BK>Wc@}s5v6|a3 zgc@2EHP}pzT&+4b^k6lEz{Mr6D7aKl=a0vfCJc3x=Q`HM{hxj1a9XoG-{>H2r(Uqd zo`TZqZwa6A>}kyqAndT=J;1#c82-w7xpW$7+*SC|t2<@bY?mlRXC+}au>5M|L1!se z2u=o;`5?2n>trWC+W%#0y2l*;hDNj7s;fQp?#&v6m%rM{T5vWQ9~|P>d;DpKTl8MQ5$Z2*DH=!Q{IP~}Ihh;4RFXBfr~UttTk%a(39 zA57P+GL-qrn2q?j4CF9&E}Rd&b+;d(i{k&}s|`sux@Y(=>F0t<6ELS(U(JIDr*%?K z9ywUjNMUCPs&y|$#x=9k&(DpjzCUaVG?w3Gk0n=LBYM~Wr$!N2$`Sz2%cYf%~K+)Ypo0IdGw^Brb<4D5|@r@47 z2lwqMGt7~j7Y#y|m{R6`1rM=1>T5K&8g_8J(igdzd#o!V4C2#~ zihGo^jS*IozLLwBxrw&2a1DSKGY32#ieE-rKc<(|v1f<)m3fY-NbS!H zq~zqzBjG^$xIEDgLtyV0rjhVrLFE!_TGk>@glP%&y_}4gGDpE1Hp&N9KgN7Fl3?V5 zQ0T+-#fb4(eyZMR}j6qYAsW2GHg>80#YNJ76o za3|-?8HKfujU_DhzGDckb3|{)z_eftjG&4Z`v65EDxdqSq z8Bnc{QG-6B4tAbeq~5bwX3dUiDj$;Q0Oy}M&D0g(&A=rxa>kU}h*=j?kbxfW0hJ_d;oAQ4t8{%_*zCPlCr<~+&e zMnD_IS!`w`g#Dq1nbtx-ADo(nnsL80AnJTGrIQJ3_Xyu0r6}KXT<&^@TQ~po5-g!t ze^`XD#<>vzSXLd<78_Sk7m$Cq#OGM~pQ>UoE6$rd&eK_WpbJib8>v&xOlvJSBX#jz z+Xc&mb69sYAtl}F&kOEQZepEG(ewMBPZ$xOmHH6i5&(_dQy65ie5KmDbVeFSELjD0#q=Jld`akzx=Dgb;y(>< z_--VLgU81M$0onJHw0Hj1zL@GiJ=2WaW%98?0Mmxx!F@U*BE5il_#bb19Ff5=wA2& z5ff;H;jzPk^TYIx7})E8S|KT!d|lXCaCgJwDyxqV{a&o zP1I5FDA@1-K$+n9SID}llLB)A+mA$|JVM}Dp5u2$M>Y~?%Wk32own+lNfClA+PNYd zZDgJU9G=O&#b>V~HZ}~P6>Xpv)Sun0zu)AOvwqupP~UA#e$T}>eL zNxt2-F zV=beJs;C0O8oP+*ai_05zirsa>G!fD!St(Qxx{xq)_4gf`S|VQNfUvhh_@AeJ=W() z7(ZmQo8y7Zb12xE)82hOovz;vZ_1(aC|k}M6-Df-D@u=mUy$wMeUtf(7^F~ zry&u4N-)vm<4nxhO5^E1S`bkLDY>fnogG*N-(YFh+pT?Im6>DEchS@6vbDfQBZ5M1 zvt*}Ud)q@)4F`%Q8;h)>!^vr48Ot#s?$fXY$zPYRe}925aJPencCa7x_iN%Rh?+Cml1y(Y0;P8a_a+M_2WRvXKbts*+KD4;XWMqA4fsp{2RvvUXfHbd+`UdlLn1@7Rz z0~gNSYFiR)pDs2&M@uh`j0@|XFRs!X815euV9?W?m9r;uGG?(5F|Qqv=BF;oKaR6J z$5bn({W0x|b+Piq$F1{A&Pq+Y2tQ2Rm+fi%cXGTh@Ev0&F>Um(8Z#N^NctuT-n-_E zQJ$_+p=^^S_HE9zvc@1bAfcae_pCJT;Y`sVg1h}E&J=jJI{)*}hv&q{4i|q%8t1d^| zWn3Yb%g7C`wDiO6{NY#)2S$WZ=$OOC@>D$fxM{uyj>J^(xQst7Dv`HIjqR`Oh@olk zQ+ud?(V=wkcbq_ppGDoJR0ZS)dK(!wvKSUpKkPA;TP=;(?(XQ|3GwqM0f#E7qwNb1 z5%gF!pUXQf?|_;5%?kl*+Hrq`vdv1zGjI5zON>hLL5ME^mAnlWO>A@z_qPqSqA zFHW0|RE^Hb6MlAvog?lFuo3Kz40~|(;+)G_nQ139+E6A4Cdci_D*x^D`Z&w$fp2&< zWC2bxHK;rLfqyaN*RzM_ZYERt>D}nSES8$Qy3LMpx9DTD^g3h+_rh50tfxIQ`N9*I zH}hqBl*64*&$LGt7OSy}fH;o~BoNVGr`c78HJqOke-bjrLYbOu8|gbj2t&omStoCi z_z_Z8xK6c}b~Yn`+GlZx{^eEk_9cTMW0N$NPXa{Opim6=J~_A+$hD7eJaVI@8B0Oi z@0Phpgu;Ow4TMdAB-+gs=grFfyB<&&g>Am`4B&9O*h^5zE+u@}t2jM#yTtd!PS=1- z)JvVcgtUxfo#yX|st^bHkd&|YYpciZZi0P!>*7jnHRq&mZiK6oUMjEr?9nJ&wMY`q z&(#{b^s?E!c9<(ihpG@deROuYzJ8feDc$qwPLlZ7a;0hV3p?a}a)*PZBrKrJlCK=o zaCKm1XL4C|l73!rPhGCT9Rr`ZF|Pk%`)gvD@U)`68jcSiHYP)g@+bJQQWE~ zx5fn+&`OKWJXz22*pY{7fw==5K4d+lG)@J&I|o}o%< zb?#z{phR(}ur&s1(Bq%&l#3>*OO$kF&qH+y%yO0)cdi%v88fY?<^;Ulx;EU1qcM!zh&K#mY^HKgc?WKyBA^IUgKy zZ*qma!~sCvbS+oZdJSE%{q8OAjk0G;{5AG%s5;-Q7|-T=Bv zUt=4HXNy{4(m!Ak;n=m$rLLz{SY@@j z*}woz>a3YOjpPg%qTOppvE~@h4-|#dSF$d|^ReAp^1(*~QPaaL^105lHBK^5GD{p+ z+q7}jt339jqV~y#^Y53ZKY4l7YN~MjLs|_+=!iB9jYGsF)n0U0RP@HBqAI$N56n5= zPu;J)V3N;ZD4Wunno@n&tG!J++cr}g?l7|g+q<)}t22Zrab}6dTGRORo@m2`! z@OSM$W{#vo@45&baCR$sb%v+bkQ`ac?+bCE9%+B-mIR*zB7L6JrSxt`*NPhf%U(Fu z;~iaDt_E=rjgGq|*ppAiT@}3aRPPI`Xe>+OwiM>y-yqHJ+8K{J1T;DuKRHEK6sxcf zbNBFf>ZFFvEoGYF#VN5pKq`HWZZDIcj9*Q;JHxiXl$Zxs;Ow1dxN;rjrQea^gc2SRqFwvRRTPsELtlj~74_kfQ#!Up(wAjiV?Of~)MI!_QOqUUELBxnbYW zWCnE2Z89cL0(;kQWLYiz*^$V|(9Y}qpt!YHYHvwkYu<;A1>b@&-U0n2Yy@&PP=hro z>7CG2hsc;i;jkk(1?uryR+l(e-yLgPOd(ZvB~ky#i=Zwy{9CqKgwl#=9Am7xe+qn& z5Na6#ix{g&R@CKInVk1SjWns|NeGlnX|eJ{qV#fl$5vxLS_Y8Bb#CR!qRUi zwhY}hc=zs@ddR{v_1tyx>QC#v^cA7*R=R+HRg~j~wO(^Fqi^mI;`_~&gy?X@_nIn6 z>t_?yg7JqSiv`|ip8N@_6Kqw~?e(ns<@7q~$eskkx2biK;R~4Ti_-WO{Y$d9gv0K^ z&Sf}1S}n*&dY*jff~E!EaaH~UHqt=dbCSXsdga@Ol)dJv!ykv&o8ucXvkl5T7PPhV zFbD?OYH#1}t)YE;hm%aX;RW8G;U9y)orD1CV)u@M(PQ@oaH0m(mycPFZtqi~KZvj; zoPDxaQd3CKK-q z$6BaB$c2)Kh*(Wg2k8eHJu4&~G{p|Km^YPzgf|)Iu71M!LSYT1vhQ*ac_;g(*p28+vxB_*zkkVx%r>IjE;_cR`;0-%KFvO0 z2jlOtj zQTGdyLFzq-k~`)y_F_k9rm)f%&)`>%3XG~2Xf|$xSr04p59O~XtVtd;#KiB-?lYlZ{Eyy@%3q}95**BZyigNV1#HiVaf zgWeMBb$WNShsO_3TBbksuOn$EySI&<(#Y=yRpi3^q~QxPrigYzXm9n!F8)EfO<8;p zt+abvQ5-IdQtkXvJGSXI8c}bm5Uh4Z))AlJAlP~D1v-N)rBrC!T=FciJ&(HfUFp!^M%;X;7AX-73yP1p_mv%k>OL^XEDG`9$R2D&o>$S+{Qy zcj@ZU9s@qe%Fg+9qV?NQiXvXMUy5UaX>PWkb`Y{Lm-o1=S`_P{Hl_sE77euJeKUp? znMMn2+&D9a?&_s+;7OmxZx8Tf9wW#i9pe z@GHQ1BecX_2P{6opXULY3lf($!$)eru-Q`kX4osJ=;)_&d@OI7c z2NkjnDp_Srv5ld&lWL``ig)W-w8B))KkT*yk*(!a1GTGw9m10HlQE`W*d38J~-<#>x4= zfmQvm|8Y7t_?MvCRdUN63YS`?4Z0J9-w14hs_py^=$}R7Idxjs?IeNLC9b1rGhP|lbJ)Gn zwjXuZitJUKmEulX-u%3iR^4fp$qHt1^PKGGktQ?J zrnPCuQXkv0Ub|^g?1+F^Cd$OnEBwi+(t@ckF0%qt*dnjQzo%=uc z4t>PmpXI@@R}#aBOA%II_*rEI>uM{}(_PFIMCFLDx@igv0(}sQ#r$CH&DsQHy3&1Gh=1Iud`BzLk^GlaM^}rB1Uhg z>324JBVmJsV?#p5e+6T(-2mTw-L(^dm~KCOqH~6lrOu1Z7TT}y`^8>n z3=h-J+o#h5>Mt~UDkc+$w!J)`e?)Ta#I2Ppt7=zT$lhaA_v2S%Yjye_M?Dz(k|oouBh)1d3i!slMmm1g2D*5 z?|iTQr&s5LnuF2Tx5dS~WVJm{5`0p9k(Vdx-59$bTD=r{ZsztpxW$(8TP^7{L(|G` z)&4w8dWM`)Z|2I(KlfUl-FEZ*%VuL>dhWXWhEhU94_ewzh0i&i68AKPJ-Vc1`BVeJ z@Vflho4&~(t8I2oB_Lu$8=Ok1IUd_H6RtzGmbhJ@LqFV0NQmIfiG;9)-i-+fnOA7g zm1F&@-@Pm4b_e%{DefYSAp9DP>;;|AYG@+@x~IRr{`8KbaJa1R@$zz>BJi?5err#l zKd0%-JW!59*rQRs{c6yMw{LWYrKZQXMqZlvB6nulr{tcROK>oM-lD2ZR4{0_V{v85 zC&v}Onl(Zq;K5);`jwMQ0UQP#U7|K-Pftvjqv8ib#9^hGGg~VMyc>p3vPL(! zbg1+30nmhh`0D>qosw}tt7dF<0DIQYP4sgaC#$O7dRFh5Q2M@^DR(AU>=8F=+0}eJ ze=Mp;5&7`yw-|bWy$nXJA|AFwOhbgj_nhvh$9AOk9(40WqI0dwQaPl+IwQQZCbg{U z%`m2sH#rS+D;ac-Peuea&MkkP6s%EyZ>1?KU!sq`@BOoQx+?TiUmm8gw34pBSTWlAPJ(6G4+u48Ql!PkctIiMndZvW|_i`fK$!@`r;8nlC5c z8;Gb|V)~5W+-qy_Z6bRu9x=H_&m2WfWM~ve3~Ex+;XbY)n7bb}9HLaWo5>}v*WZM$ zD$%NL+Vt+o2D`;>XNaW?0e8DE6zksU7rfDCUZa?;sDQe z7W~x_z`21dC6atlK@KCD5V8w7D5A3F&}82|%i2NL?2+uH227U4{7rvF3oF}qdpq&0 z#;mMqivrm#9Oi_+C5#(L;j5+_ctZT&Q`u}7m&cwdh085>|7q%SI*`CS()J3g(UuH9UYR2RnpX>CJ0ZC5c(SU7tlogL`7t z@rOoZmVpuPC+#bKW@DP<8vL2Ep9j~`92J>=%@A&B9T4OiaapjUY{UTlpSyix<)gbq z-K>YV8fJUV^utr9=R+Q*ZY@+<5d7djiY58b$cKi6U$l?=!=i!$kyPkT3BpOi5iMAg zUxM=%jdTr%A1@x`Y-Mo=5uEkn+nJt;MfMKZc!r^pdJ`gpLOKkDL+ZMT%Lm-7obMm6bCNSJE-g-e-_8p-HfT6{M!EQHagDvPcZWNrFJunuo8Dr?Ks~T2 zXu^rr9%n!t3{GGhh;$&3k1$G5jy#^Tu@>T?MEZ41auOMQmH_TGfL*r0?+@JFKKV7Q zwRVAd+`71412Sb0a@9EDo8Oz3g%B+{E6NBp0@hC%v!nc?b_L+@Uy=8kQz#fULP&8} zWEgwi|EW#zFM?5XMFTJJXt#xaHuBXeW<)5HBdMW2z6*ZQ$mU)ut@}?9ZapMIuGzZQ zGaKg_n5`h{`+Vf?x5~@uJN;l)W))ytR{+9aprqJzk^n*f84!UDE*8oISx$gloYv9& zxhE5eGSL8yo_9%EV^;65qi^SsJs)z~27O_rmw=Q%?5>!RbzEsrBY&IqQcX)v$qP)! zxp^U6vmxlUW-rcgkcE zR4yevn>HGLg`XKB{UbFz9=3sesCfXr&_`OPe!L?uE>l0_Hx{l|6(6Ul)Ag7odCm#eI97>^ttIgIc!wSY#x^Es!p_F7z=uB150zA-K5_3cJuLax(nOK!K~S)#V ze@Y&-KUA5qZYO_+1&plvzwddA*!rN0W;MiFI&WeqvhJlKP&LHgWkZoToO*%8sP)Pi zG)a4775aPJY==vA1LQ`xe?t|g-1q_}zWI|Mr-;;7OxwWry)-I!cS<~n>Q&21=IBBClBL4QGG1ZyGzq3 zKO%ogT6G3QSV~DjRy;XZ?p>*y3=Wlp&Q((KD`A|(%Dis(*pPX{;j_dr;)M7eF4t3e z(m>u>CF_E%rkhhugIdrN{VS;vEA}e9Ff4JX4%dY1ZMLYu0>d!KNA$^_!qcXL&o9r1 za2kmpBZm`L9d5Z;+dBu^yuKkg?A-0u8@snv!{OVmtxHEa3SM$OK$>&4L1z1(_8{Ua=DRy_0>WXQz6qo&m>;&EnJ%>I83^t?`M%zGxX-4IM1VS(a}8Qyy^kf$ver=bI7z`#>nqw;o}CvHU9oBF&oHS<^A z;6mLbVbCqOnna?t47t;bzSjJ6tX2N^f_+H~ZNmRF66W1ejv`yObh=iN*P!?C@h2qU z8k%Pl=r+ya&zv)LhiLa;P!r*HGcezU>1j~!wLLlgE9`p!I^Z1z z@3Ggj>4zk}>B(?uZpC|>3tsITSYJ__phmBZRfTw54DaiLYPs-hRY$!g?)1lTp0jx7 zLZ3GS<)~WZly_Liuoi^)T7aJubu$4HR?g*A$5Z>ueNAv!ECxVO8=rquyISY(=SxM8bilQQos^)HRP7HoleWOgJKw}4zyunzC+bfW@e{M;4j+`CIc=? z$u9$InoAUp8X)$T26sL{rYy~npJ|yWgt?T^0&oZ3R^LlKOR%$yc2MJ=$y)emjQ-R; zgKlL#YE4$y4>u7;{o1c42e>?$$4Nb@0o z_T(%sjc)j6v5W*|JQdGcSSn7j)&0Ae9>h+A1*;}mg_jzZA4*o=ce$bwVZUqZK8825 zQvwcr{zE-7&~zy$eiuQ1&2|1AxY+jcDM1}OTgvR+h!>_b+RVkQhT^-OZIv42={5h- z))CEFPbGQCDzgvQCbcPqS1SSF!}@F zAJ90+q`q<2#XE0D4x_`f)k9>I+~sR+^;4Rxv|ZlQ>v&@Ooy3u+aA@1J!Pf#(xWe-s zlp}<|8HwQ4cUFJaEu@BCAkLzLyU@HCyNT-AQ;YMuCR|JWfZ*CxP7T$`BmHDVQT~eN zR3+jbYf_2!E$0Dtf$H0Eh0~yxl|x9UJ=f~!eBc-w<}^wT?+R(Tc2feSfw*SUUsLHU zm_Jd*h#N7;5OWySTL{B7?=-ASgf+S%R!24cYORad5h?X?iK`xVSE*&OCq?XP8g19B z|6n?T{H(<{LS5WO39YO4N?koiC4~_)N(V5dC0|_-{TF^;&5Yh3sg|r}*&b+;ET1|J zd5E&FdEZOX#^igEi(!37EbG#jIjt)WF0n$caj%npVa66acJayV?64MX`<$!u2;v74 z;@62G!YzQcm-jG}UuIveEd=aUXax^7y%e!)*K1yd$(KCx$Zl^RY4-43Y}3zaJ8hR~ zgW{d-cP3Q5^-<8q9-U!VZAroxmp8ujV?9AUi&hP-yVYE#P*XWF zI%2bLC1g~L2+FeSyO`X%`C~0?b+2IVU6jIj$pKVzCypRB{SfMsoW0z6{6l-*uTZl&TOhEo6>u1g@`d@oHM>7Y^vac51n?zP^(-@83^J4qeapGe4Ig(Wq* zCmx#)DTd4!l`ST!4^^5ZFKR5Zgmjr)IZ${RX#}}rC>b;SZ_Ql0XC49)nTA>7Fg;+VBX8HT|`|?^_c_M^A zi-s1=zkj{A!>4Xf57(fZ%ufzyv1JEQgp`p+ys9OE*(iF zy-J(+4wigH)*0*6%3Y943&|EQ;Vy~<^Vv4P9hY6FOI^=w+cf=o9GKenUIB+| zWZ-x0V=$O&4oS)7jqUIYM9C?pJJf>HRN;k3^6^*MyPW%Xzz4l~_N}-OC@0)I++f}{ zVoBlmyl`#US_`E5(WQa8=~d#mYtjKdIwU%}=pK_ci@vN`4p_JuRA9a+^pS9>Fhj$)EXZQ%G|zXi|}c} zs$CXE=F#Av9uXVMz2BH^oy#>C2~TGTwPvA{6_ypxbH{|&>$xg%t{8GLNr%Qq*Om6( z?Y)q^qcJ@%1(DQJi}cK*jF__*18i!4CJiW%9G_iK-{2#MIms@TNpkxCs=FU(SI2cC z4fiF2f9Wa1=_y1fUES4Z2hW+*&u-t?8ijj0m1OIO7vB)DJov%a^3*|-=W;>SC9hI$ z1e*!(n~>0IV#mMp`aTq3MsyMA-Xb9Xqy))-_!X0%v-UH(`o@d1*NDj9q#D-NNQB86hbiv(+NcL?rIaSsl~DHL~?LU5-z!7WIFzIi_1-yiQ?D?oB#-L*J# zX7=paGiM*;F5Le?rtl$D4D=*qoXCoYi%-ZoG57gIvE(?XB2z8b;yGJDT9GoV&mI*W@n6=Q_ZcWR7JhAx$3>3v+lDG9 z-jJa3pZgBB{3K)&&g43c4@BH(@g1d+iDL=)jK8YUlOJOS^9Cr!-~n^Mnd@JC^mEp2 zD6!?9v^t#@qZlWqTp!Xz zO;J|6|92US;)21(0)Q@b#|18Z(PHo`Fwc4+HBGSZXs;QihYqOim)FcG>#V*uWlq6F4ZC#25}j{ofUA*nN(`YMg+U67FHeDI0IWXo-j3 zg5$r^#f*AX0MU(1gnwUAVu;AqKEs?gJS#|ivOf*G{lEWzdQaS(dmaCw#_WXS3h-?w z9DK4|#UaZ7nhR(hFoHdi`tS>tU? z>=$Fimkb5g$6IH)hU`+Lupiqp_Cxp?E>0K5PT8C!+3cMb)iUVJWp%HoC@JHE@o1eo zAO8?yc=GPMIvw?4jz*OmKkLpv9Uz#Xj7CSDb>CvPXLU~5cmqeyQqZI~VNF~WS3cEa z>_fEZdqt3N?+^NGQAe-Q?3~!P8UCm#FwTEn&3^KMjst7O4nv3 zNLC6}@uooEh=kfo1=1B(1$;J)DHn1o>td|vNkWOkrlJg-JW)FjlP<8xZ|`4|v4pM) zp_Vkg+V=OCI4(a+8j}!I`ny3EFjkxT%cS<1e{RDnV78A1!0v9|7~a#xcH3U4Qf8bw9nQ@9Qa)FX$_GUt6c(cl;K@jN{EKMbUIpP`@Aho1; zBU^^37_2|}IC4ewpg#E}Pr?lVzH^p!jaWT#>zdRp$tM`LPwlS~y+BD{70f#q>O51> ztKn&FI0udU#l9t_;9^UsFx7X<381qQCk^hKzO}2()iq&|7WmgfYlLMl3W@`K5;49 z-ra#;xaeh$-|SEf6xO?*-*F6=h-IXHh!2L&i4$Nyz@h;LM!6s7Wrs}oGkUXx7eZz8 zwnfhoX%OLwUimFV*Yk=8FEtncnHk*+b{tjg^iR#08~11b*oK(bEib6ooSfz6UjoA0 z?y*33o*W!gj-7L%>m*@gHP6Rr&8AeFB2VM%?V%TN$EG?5qPU~pG@x&4yZR;BX+aUWEC(z7(C=Aj? zqnYb+%45uOCuC>%n}iBsSsQaI)7+7Y&Z#3Ok+bx9B7US~MpnW3E%;P)u^8|A&P0!j z=r3*J_G4tOa8Lr75ToP`#m5P$n7ylDvmYY+y$C(h7!5nTh|YF@LSHt&7@46wY!S#0 z0os2Pk0=*mMXM_Wx2p3$_>qypl1Q$E;+T;)U^Qig+QOzLVsIF8|@LrBgKyipLfGFeXhc(#*`QkV5ms1Dy*u>V49I0+my zRF}W)zAuRW4movtkywmc=c-=0amirOa(HOwJ}Bv=c|U3b0Fx!`b``3Tp#67gzJx!(YBiy7yHFB*SkHRFyrK7+%^o|V_*;YrTF(OSR>D%6ga_8Xi z+@7|fapLBv8W*_S`3id#h6oJ++Po+Qmj__KUB35;uJo z25OU#f1DX6DkEwAmho>x^tCutgm=U~OvL}^+k;Pt+w%>bTdo??hiD*JS^YF^%&&dI zcGN^jJCsTT|&>g zaZlNQ7bMy^p5Q3Mc!hV3b_-AQe~Q+%Z;e9@PO{*~(!a`L1u5u$Ie5PFNBBowTsEr^ zCP`QsI|fAXi>o3XogFIvZ_~0r16e%!pD0P42Ml}CH6y0u2H_3Ne*Pewif{JWmT$Fn zM0_&`Xm*7*?CjBunj|o{e=7<(Z1t?a5ZT*lTr3IFrTE;X8H{l>(RO*3BAWf{ooh14 z&i@lUlWWu2Vx-6+Bi({zvFB-3kGO2>i*n$wCR)aw$Dblo-+{kOh%WP(Zw0{b0dix$ zSvwscla;Ri#&5xm;8C!P#9Kvt32k!O$G2y=)+k&;(rP*8&vlb7X=t&puBHoY-K z$hTw}*0ta=DKb1M)AL27UAiMc>_(~*s+yi%SeGEbelFv{lsbV?4`wr`uXuit>&oTN zNqpZnU~cyZg2#loTRDfiXc!H5IhSXDC=}F2p{0wIsp5?!; z;=X~GFA{G7x@3`O#pL1Rf*mF){)+JNmWBNMg?^8PyhVllunPwuwVZy>tdc1h4UtcW zKiF+VY{O=@6=H=~>H@d%|1gJFORW9GO1U}_siy9NE(_tJ8#=BrY5kPH=M(*MSrpjw za_iSS^XAln+bEnkt|XmGF3)Qb=GfsVg4b0=HZAj*oZ5q$`jiqp?Y03ate&5&#Hu@< zNH(kc=v;TMgN@t7X=ub1YD@*GW5r(p#y-3QE>isqqBlwCCV_?N?Y7|@+Q;>J>yOn( z-EQ69?$i~Zg(mx~l&`&C`E!%`r?=&GiHG$oa=LW(J`+Xh@&kzfk5*>h%A>?*ER&b5lGwZ^x z7L^R(PYLSWknba0)-@B}f*s78=e<%QF8hX&b&mLAn8q=o;LP_q*q!T;ueRiq_-F$o z*mag=eiO#*A+sK~+_qBO)wRVzAFDTq(PGAkeX7tgq9OGo=NoqP{=sfeNUL|wYxf9{ zUk=mE`?9V{_obk5j+2F5Xv#^|Q@dJ>8vW{5+0r!;Nt>YOokDs8d>>7v$%I{NZj9=}dfH{byY38&1eyF+4{o)>Z`~ z{jdayN7$!olC!lsJ6%#1K$qmPAqX%)Iu`J4npSVGk9l2SOp^j({w>=jr<%iD*~{qf z$vBn!%l}-1acvVOX^h|G)YIjdMl(n#@Afmo%7?>I+OOUJHjqS8Hlst$mdO-W#gDW#uKvb2Dyk^hP@(lkR9P~gJL_kZcSP|A_S8EE6krVJFgSh=X zoaW=FmOm#rJ3W9sb%%i;j*C)dhFlCUw$*qi88G|F41gtt5^Y_P8&BFSKb`-nbfe|o z-V`RMiEtYE@BVthBGE;Qamgj;4(c#AmCpMj-$Wa@OBF8BcTX8hdKC<_nuKj^6%Y)5 z5<&*aMPR$Hzx*ZT?o9=$MG+-{rIt&oy(Q&kG)ALDrPJFhU zbwv$Mt%^)n7&s3tYJv2o+8-x z7J~b|^K7bB_or|2a6Z)Xivv9otlv34J4yRPSA;U){TCSQ2;Ao!6&Xhf^jwb!{a2^x z>HY3cre4n*i#~9sX5Z|Rp+RUgcp{)@BSv~@A}~MxCIYz8!zzHI62{#S8+s1rBpG9+ zIsLnGBDVX4!3`ZWr~0teXT8$dZ-Z9QQ7_x9Nt~@Jy4rsGOLmRB8wL>*UvD8g^98)5 z&uTCk!3D4LBR#3Hv9Y7)|Jx1!0nr;QWHt-x4D8`PPX|3MML*pZ>1MA2CVji#+t&<6hScJCk{*SFmEzGAIW<84&kWV&9kEc>3PQDF zYbqs$fPUEv#qjwH?k@)4rvX}4;~Fb$MGKHaHzHi*MT2**$;pharPxr)jCAgTo}wBXn7#<@!s;G%YlZFOm-%dI_lyyzo|!z0Us2P}5%DOU zOfNn;xq77~yard)S(A3_%GthGy-k8Fltz0njriNcwpKOTPt1&qD`T=+D8Z-)!`AE5 zS_?BSw{>pv%lY%?2>npxn*O)Sjw1iJ$bJaEiZ}t@N#r}4FbEJ0>H3cG@Dm^l1`8|~ z2(h^24ETfl`Qim~P*T~?>^H2+)8_ZxuSSQ$KIgti?oondPW$9`GkvF2g)u+b1g*61 zD48s^^FsB_)&0MoG|}z$653rPPU^>j?!hIMD7hp_-3-fo_&4qg&B}p~$|Lq)MBm!@ zvfiRAp>Za^^AeHEU?x7jvS?1SdMnLUdeqA6ez+Zo%X_hbz(y^PGvkXbqwjNQ({6JP zq9ut0hBj0hvRd&!67x6At!w%AG3rSxJfbPr@~m-1q9IySLKJh7n?m^oPMf{_ZZiSxpoVf>lh77qSwd6&6L5oBDW<#cz&g>9ih>)w1eF>a4z5* zSH+hyL624|^llqNxMJ3PrBm?d-Z~%GDVA#W%GbqGhg7Wm>^!^-Px`66VnZUG#nM`V zPkjH*f-}_{R6*O;LvKnBj$cFpgZF%dRWf(Im4b{+LX3p5ZNvN%(x|`&-4-q+dDwYcI6X zsGGoRSK7wFhh?~S-`v0URQaGEG(-rcQ7v)w@F;zbsUhWjL31i%FP*CA)DZ`Va##|V zh4{f#h0jkM9Ljuax+N0*IU&EUpKh=8Hgs?k29&8;? zoct5`yv3|bZ!?GTp~Z3d@o@!9OuqWHnUr@IjM#ZSp6gOSd= zr|u|8EkNFB0<2OC{A|O~d#YFldYoYGGt?xta2Y+pFmnd@CF+GYU*ji#+NPFBu|Z_| zIpQkq@6pCB(MHt`$XKe6OweFNOo|)kk7YL!5ndvWT)t5{(L9~+ap%T^J0yr*{!a97 zZ&)lenWcXLA>-h?t#IL{D{*&Ba$DlFf9tbbo;&vT1r-fyjg&a6I0g8glFz7b($Q=vL=o_O@{*M=cx8L*%;kN*gW!-yeUTzBsMM4&jM# zUVOo@;I4h~O~#u__%1hrgWz`8PD&DHoYw8vUniCE%4t?#!{{3f(a3l;!DHA19m8ik zBF#RF)_Z{i9_nedyVw{GOueSfectqYX;-jf=ICr9-DK9MdyZJBxQpxN)B&?c|hKr+D z|3pB*z4ALS;+}SPK-UWK+2h-9$W#`HPXuRVBiTu}J)VL2$mq7GK> zTO+9TevX`{DqHPQqdiCSt8!fwd;IizJY^Gc)>jU;d7?>D^MU0(EgRU7&NzJwTD#Um zcJMO7zCNl&N!`NseAOXX+jyn5^2}Kzj`*y>LVPZeTSTt6#D$t;CL&2Z4lD07V~5XH z35?)-c>3m{7mq0Z8&umg_eGYp(P7TYWyV1w{WqG^=$v!$3YbGjcSJ7B!%^~}A^sLW zRv1?$IaU>f-!comFXT`dK3>$Io?& zk-RrU-B3o(-R^%R5##aSs8pver$#suy++|6TYWa2b}J(N9hj9xkbG_&@(_2csk{fN zsmyF6Y5=fJzw84A$8+Veo)os_DtXHi$!OG;-78|;eu@}U$(<^$W55!P`}@7Gh6&JL z!kPXC_s6L#%~Y3uAtwc~f`KVzL;JL*%$K(HI2Yy~My%@W+e%a+e$zC#V1oau1B);I z-^xGrV?zHk1{iY5*^zFU8|j|4kl%%H!9ap4*nfVQ5s+XYRx=KDKt*O96Su$p&-6il zYizI2LaY;oaTcL8eE(+v9Xi7e=6}U~IE!Q0sIwDw$TY%*iApbm8hX|2e%q(mQO1sc zWKB647Uo?l!L2-`I`@Pev7HO3H{7K+B>BwMCunIOs#AW4cpF;Gi>)jcZol<_%si7H zvzl7CMp5bAG@CLYwJa)I@MSH$CF+b`t?sD5=6~OWjCCf-wNSn55^g7fCJ2_<7!g3i zurdzlVh!m}3!9m-4z;hX&|1m83JMefG?DPc86k3TrLEt7cMkKQq>jZV6+0H^FR4w3 zMhQ&K$0YK2@qGt_OhK>S#h((!!8s;{WYefL_O>`bty6sU7D&-Y?s{zYS5p@IpouO1 zxrE0n33>*y))u+4qw4byAxG34g2IR}T+1}3_uA#DZLD0Pe9P~omAt`vB z)+8QHyK2Ae)oZz#S03{fJ6p#OW)(Nr2xT?=Bl^x?S0ejK@oa2G&Fa0;x=po~@_ec8 zkV=V}q7$AV9y?gpEIGu(Ye@c;~QFFvHjQlKJ=0&&E4`!EE;poqsoM5=Or) zEhML>{&rg4gpK8UU8E=NRg`{rmQ-T}QV+8o0 zHI>Pk`AFgQK`o5o57tPM8W{JI*d}rN)7XS`$smgv9bP@BX74#d59wM2<1!#a@BuNm z*vw;hOZWqq$@8bNf5@A7nbSy&f^;fV2o`{UlSn2UbOGES8{mmKES@hoWe{HEyFg%( zJti3bE(PHKkMJt;yuN&EFvPO8*EfWb&hv4Rm2;3;KX8TQ;ZRj7xTm|Y%kHA78Z){p zY>m4^jzGjx=m+_L5QB8>3=1~oRkriaP`0JD1*zdd}HwA5U=@$ao zFZ5p-#pAGWsu3H!t2N>~&V^1AP%uP?62QD(*lp|->8K0l_C5CD{_|~)M@`h$a*-~$ z-eU|euA?SCV|2Pc_`!6_6;snSIt-3xwt1ktKe(C=1U}v|anJvmSl$sWh#&CmAG_P~ zQni4ktV>ThJ@SQ&1ltSux3L~mAUlG;EyEloMizQz-$==l^dEdO_J|A4?>o(%0KqrM zPo}q1W7!_6Y1;mavqA4*h8HlSeLoR7;&9EVgY-UElxfk%ZKw0o#~g;=k@uX+nUCS4Q+r-){ce<`SfYBm zkm@8ox-WT6YPv>hS1Y-l!GT(JpNebwbg@Q#vfqK_7!y0_LWUfCxPBjI$-Oh%E`l%q zQN^&mTmVp9Fw#G6*u{~gVQMJi3+lu@xrV%ozg?8`0S-6)gF>&oSzPDi!E%%6{~|9G zH|AQc-pv;}s!QE1obZe2{n3`iwf`3$i-Pj_lenpe5;Mb+Hdo@#Re&Trbmvvfdr3|z zCNR%@agDzdT1V&3U#90~;HWz>_&Et|*gXe($^4O5`im}C1Lf|xIhC4}@n&V*Mgnc2 z_<3f&qoVxJ;UxkB<|oCpXh$Z(bc9G^Wi29b1J-8nP7KrD7i zJ@v#x$II#7>|g?YHwS;WS?S}s<0LZ%2d-FFeSd8u5$7Hoe&1i?=)K1!Npj{Zh7~GR z(D{3phv80|=4Dd9YvsSu{t+>dADScg#E;)Ol@bJXFUFya-oBftPor~up*9FRo$K%9 zOki4bIEX8{Jq~YeqI@5A<_|L6m#sx?v)|u2jgVLnku!eAe~Yv9aR{dUBpXo<-et2kBDTg5?ZR zrinE91U2XzU1?m6d%DFqQ5)MfA1!C}dR}#|1Xm<2XqxmK@X*Cjyy`n6WbvBr-uN)- zn&psFH_rdv?G_`mQV}&4=-Mn|FRK>lC-8K7DJy&uV{hj*ANS`9rdHGRI~37KyT*5v z(C$@Nr4=7PL-zf>oUonFOtt)g6t>$($BwLzyRUCFo;|;n!Dr{QmasU@MP3>f&2u%pnKgD7*F;0edG$Ct>lM_cmi> z%A8Tx8SakO^rE>zf>)0VBB`Yu{gNzSO)GVc_pA~q-72`N9_&XNj1PS?l>Sz@5nWU5 zzm?Fb@*a!O-1?JEWULlga`#+k&_*+FGi$~idnO!3{gH)9`$ZLHc)VyuUD*{l9|nHGYo84WX`8*zEu?bv6uEcNYK(G zftegtGU|5|8Bye-faB?^XX`v*l?yF$XkZ6EJnNs5`6vm?Dp|`z^JS_Ax(w`3#Q8MV{ zx*%rp<65L4OFhPI!Ya<+!a)coy&ps=<=dI-$iLA?8a$GYa==19rV~QA_zury9>icmkkN(C+6Fu1&TSwKV-;ijz z>7?&{!hB^lY`#_g{RCqAk7Pbmyiy_$Wu$76ui-S?oEWIgY^KEqt1R+`pOqWF!=u5G zsP6wJGux29^N6{<`TBw5H5%Kum%4G z8H=gKq|xZO@znjxL)qN-e9S=l)ub2wzr$OLXt%E$&jHb3N>M7?k{}tq)oSkz{&yWr zD7*&N6>p)xPD@#Z)oEYf)4|e4*zh`B#CyIuB=kST0a&Tl9iy)~7s1!r#UnBN=fvw= ze_mU2(zM(9ex zkbrA?-Xy2<4PnfCZ?Nb9c)y-;=H;-C#j#n9Isi8bK-h$cqrTOvwar)W&pXD%FHp<_3C8Y0s zMh!-NAx3K?DHToh>0f)>iqA(yGeF}QIjiz%B-)-uS1U>l$H43FTQ#~ZwY2DK_LYRn zjy1cz(l6GG>h3-ehMk8y{2M^Ygv~`SuL;Iu6|g+UEs&{}oI6StoCiAcG~O!)j2^`M zH-`(aOD32;9A0C!KV3GYtWDnFHIiYol1^h1%DgzONt41@9XNwLT@u?B=b+zw$>Cdm z`;(WfBq?AIwP5B?ns%Rit*`%e)Z6!__z@Yq*hU#4}5#X<{QHZBP{dVN9AJ`lq_%X0Ad2-nOS3GY~CuUnZHJ)8^}<8wHq z-j9{_SS#Y>eCd*(&=UJdN}a^yZmOcI_mAwm9_sDlAJTYKyG@YYVA0Seq8}zo=jnI; zHPD^`J@83KHh(DE zqcPfCOE3hK9x8>q`8**fa^gPj3kyU}4oSsB$>UnK|6KR_2prC=sk^XoOf1q!puaE^ zYX`io+S(^ot1Vuoih&0ZetGSixLsRe#d$2OH6ZoZn?-vo zW))ri6v4I~*iZ3$_{Gap2YLAT_698DiyF4{o#MGY73Plo$8~YhgXuQUzn1SS)<`5E zu0r8-iLIW5p&QGIJOg!`Ufi}pB_P0H_QO`ZEYK1FlxP}pmCN1)^cNaaCb*cJc5diC z4Rv*u=8<2zUAOWQklKtX`oHe6WdZ-%{x*3c7EXEW_M(;nr@f`YhmoYGKww?}amt-6 zJ6n;4#8+**Zhhy7*IOZuHrF#NmZKWwL5s1chX zPXbi~f$;3_YTKV{Fc5L_Qae0;UW!X%&G?T`O^laLo1&fGk^!5OpF0b$a#xPfR@dI{ zX4V}E2XDe|DZ?NThH>cjA~mRS^#_uICu!S&RlpOk?i}C`kK3>d+&-iUiTs^tXyNAl zSDYx|LzMEb5b1HI7n31p9%8*lb)i<>CVTg_=fTHTNa`R>cLW;U#0|dP95^yDVf`{o zzl0q$NSr-L`&FK;z>r5qMdj z3wIBapRQ4@aHBlGY^{;FwtRQkUy~%{tcdBt_GVqpIeZ=^wMoM6zsc*(M;YN;BB?e< z5!GW~ws6WV$4ouyD9^!*(@Wiugq~(ORRLL2qJ&>AS2S{6Ys3;dOB3$?$Z8;8pt5OW z>B?IC`90#BbHK%Hb{U$)``hedqSPU?0QX!b$zgky#pu2h{uQgwXaJID)B%K!yMyYa z`fZUKLn%M)OqZ>1MzQ8dI;(Mujf`m;?VWP~u_!^Q^}!*u^WdA-4*^&$H@$*InbY5G zvzcov$~-{_2y%!J%*GTc`XNsI3Gv8;mDresg8(xNGv@tB-rp*B^{ca%2Z~0K%gmZ} zfO}msB+NbctxK*xLQ+rYgA4#1#6C=8;&i`qEK(TCOs;SE~4o%{wsj4|0 z^b3{TevTs^rWL5_N(~;p4K4NMSzd?h zEbq7)d!q5!+^TK5%2G7l^p_?iy~AQ~9rEPNwxU?x)m6U}JN053i8fng$c}Mhp+>JW zu{Rko)D^ScUkro9B>Ne@WWLStdy17&n@m@e_JwEZe2J;tUNTNIb|Y8}w{R(XxZ-d7 zU45)P&!p>2{ZE9@YOQ7cEoiQk&4Nb>4IA*Z+&{K%x*MM2*N+b-T*qzyKz504)-aVa zy%71V2Q$ckSzB<5D@rXd3kApd&6pf{!S*Zj0Q`zrGhz83eZ)!1OR-wmK#dG&9Of;OmYgGoRf z!htwur4>aq&1Ba%V&Cn)3k(c3EN1YN87zXC+oII8l=Q_U^osM$24I0bQ}nm{N<*6z zM|4oOPDVR{GB;`9NB_ZDj~nKR^Zhzo!}+7z)GONR8ugDp7u%Qm_84pq`(Gv92%w2b z`{?5b_>)>@L0Ih~H5YbpB-|{9kaaZFd=0)s%0E?(c%4s~><-fZ93*tN+S{ejl!>8V4yD z&a}2{aQp0(1{jer^9Y$ORTUBgfW&1}w^LW%@u7+Ua2B%YcS`}Nw;O=YObl{vUT;Ib z@(Ar};Sw%SgFycSk%AY;&M&H2OD9iGUX=*Y;s%(npfsTX8FqLTF5~^KV;T(xWyem6 z+*x1ata=J14Ph}CtQ=J0M$ovn)$v%hruVhZjXK_+@!zo6B@;l%MB+3Zxw$90T_juJ z(LSOfCk=J6V1Hk9NbdE)8EuzO!0nmbti{Tl{#pf`Lm{p|I`V1m${H?bQ~!AKJI zC`zZtqo8~g4PQ7wBN`gEPMnX6>L*j!pgJJXuF$Yr*FsKSyW4H$_I%6rDmKt=?(+A< zEh=9%G#bqoWvI?XnlWkcw|m(i1AVp^NOqLqq|P=ES)CM7W+accR$f>ZN) z)7q6g&znDR)#*Im;M*KCbd9V!pj6_z@h9+065?e|>=h5?8%VS@nD90zXs;TE^Lk_6 z#yzu9<_7LRN0Nyb2}EG*mK%=uei-gl|EbVT&ADcO#T0`afk4ajI>$Q!&cFKc4?ERu zp^u99>%)(IFn7#G)djQj#{>!*8ubRW8|AJuEZ-t|e^m>d=C-W)C%|Z<$Jyz2!2H_w zg<Ku>3DsF+`%VHcsChWS0PBhu7Mc>N4ojUYOCcbE_L0Qo77d zf4fh@If4Zf8@2nK2UZUn1cXTocW+1zdP!58bG^+J?q5#ouz0-wTf(nq!@sxX_Q}uD z!C1y2eL5p8Z` zUHH&lq1M#g>HGZiHKfc&%m-V|b%)cp2*k*#;VlT1+^Bsl;sU?fan61P#B( zIw#!5QRJkdqrP(laoGs;`8d8Nf@d6th>t7*J&^+215CP<+PN-qXROlib61s}z>`8? zRq@Qg`R8WO;`;zLd>&Fdy7~PJb8XzXx6gRqYelcHmF6!87!uq&;j=K?i|tYM*P^>Q*DE|-sM#yLTF73Aq!51CikMBX|uYg+>OKWMLLzX zxd{y}R)LcN(amJ*Y~KS_$1oy&t!O^cL}!q#6X{MYEu_1YQTp95$9c8b*k`QD_%|19N)eXi1gE2goAAy-sLW)Z0XxFtpU zKPo=?I6i=646t@PBvT8dk_$-#-Mon)aF9Zt4uj0Jm5rxd9FrPv^nQxJq|?uAChUWf z)&jr;rvI9^5Cy)yrc$~W5}*n`0}*s?Bfb75QVINKV*ydtl3oi^&lUtSOc(yAO47bW zY`vE77Y#`R=loP9^mwf_q<`0&YXr|4h}`t@zhLE21jSPM-DkxU!mqKAV$nWnlTy$V zz2r7)KeP+vhSiZPf3}SuI{#AQ9TAuSgBUDD+8N`2d)8UHXlx4@JWAW#33^=<+Q?zU z2k6=!S>qDu7UiB7>YBJ~lwqe^nZJylb{U`+w-Zk~|I+p~ZSe!#ps6RaD(F8|j4n}` zah|hE&A7V*`8lzEAmjL!=bS$Gk!)49g1I$olCrOadh8!`4hFS!P zf12S#l9pSu{SR*})2M{Y;!F6Ai87>Rt%P)4Ouh6_tI2e62Io~2(iW70N*z@i=_>@^ zx-Y`*8!=BcwKTq(zFON8HR^yBV4kY^GX| zJ4y53I;zf1cO$69O$_8zmR$Xdlb~a%05%`LcU7T-+C1fySpb&qXg!+=3eup_(v1lqdK^*2b>yWw%^7SlsPNR zbB%V&=O6!G=f>eXmL*&|k3h}Wo%KGu%G{IKx!^XxTf{L~o+u-L{<&Awvk%j@=>{0J z{`kFv;Qe#IC}b?kEPa#SAB5k;vQWvGH7)W+)UC|B97$NJheJFDGEZCYWm(?u!Z3VE z!&rY0FFedBoJ)935Z`>=YZ`~@EEPH%?F_xF*~u&~Pt`d8Sf1%_xN$9>bGe<9Ev!#c zpTvdJ=d9E8=gaH8X}Ln$YmbN5HNuTi3rU}gdl=X?e{oaU6n7wUbafR zOu9_H>?vz|w-QqN#2i8l6nYoXyhbR5Ki_|5mY4YDmAMkZtZB!@TRo3c2O^{-!C*A< z6SuuZ!l)t9&QjsopeJ!>PSAu?8 zTk!Koqj^Op%hSF_HHWxc@k_+FT(%tC5NEH9dKCwgYE=J}XK%A)JK`!1yd=h>x|AnY z6_#_&*-wQVsJTx7&6`4eYr0}~Sfwc2h;#OjuIixzKFpQCR8*GcPok;=&4opwvp)2q z;L#;DS5vDFp^KIp!ZPs$4)3^G>|WyvsuxSaN7?nZr$aDm?Yny+bjdM=4(l1+nInxW zcr+?U{H{{=0$t=?DSy3(8@P`9l^xxb#t}L%HHGdj?O_$g?E~3bVya29Snaml&e|ic z@pt)#`9W-IDda&~0kBz*v|*MzmtfI;Q-ATXMJx&Cv~4CL?bDd3G^;<{o3!c2!>;l! ze<)=@)pL`rsNuH!Hu(^;{=n!A^kV!;8|7csV~Ifi7xAP3WEwJ*Du{Ub?``En(c2dp zK1Oy+m2D`fBrD4l&c2rJL_?LR`(A^y6=r>6(&}|1x!!xfH{>#(+1hlMT6Q9*UD(Xf z?OMiueHKi**=Z=VC$!-IM1}eybM)o0xE!}u^+dh6`Cve+`~-PJssH@T8Y9#~_plzb z(O=4G`S0<86PHzxBez-}5OQXvhS)Nb=3u664*%Ymym06hu~J~5UXMC)bWRdtu$ zR4YCj6BboM2Kgh6e)mOo4GFGo1^4oMzz_Y-|A4(J64;L)$;>A&Y}=EH0$r=#+)LWa zqtS#zRC5FdgzFwksF~42_`|>6#CT5_T-;ww*tYq=6UTPP?)hUSN-z5n54|Rba$b0- zRW_^-T0#fvxFwIRmn-HZes}oBp5#J#EE>YSb7vNhE~;f zddIHpq;br2v?d!U#rQ9Z4M`CB_QWABGZ#4kQmO}M*$@XF!1~uZg1^h4<4pJiqpTeO zh-?R=(5YJ*5FPlW;RMfqGN~9h;f$sZJYJ=C%^!EIL6d$F9a>raMpXS*hsJN%j!Lq{ z|0??-A4Z&f1>!QW*B!bPUut9E{m?#)Lg+ZtBj&&zalsJYBY*l=4A=@QdepJe(X+OI z_~%o1F(p!__O)E-K>y?F?Ps<=u9)>s1ZJz^)SBD7&m$BSl-ly}ftp-(K}@gLOJGle zX1lA_o#d_;>2Y4tO=njI@Is)G`i$et#uKihC9>iQ65hb6+hVrEMJj`ur+VElFMkLu zO=-1lU1QL+d;7|vrZvK}gRSZ?H$9%uBZIUfY}K{OtpJbpq;-rf6IA?VgQl;4zKQ8Z zoQT|4oO)MNo}HT8S^21c$p*nrJH8~p{j1t_7Fev%h?4yC==$E&XqcbRwdk<--T6Q> z0XDFYPlC*K-;FHHH11U`9&R}I!&N-DF(2@4MQ>5SxUA@@S6sU4iNte8`h7G~h~m7} zJ*MNE;F9KG3lfjB6~@O&)~e4?J=<=bI&<9&KV#(uhg;u%Tcp|&%N^R-wYhHR3K&up zJH2`_!Ht~TRwYte>S2Ip$cs5>ea}9{YA-B?E_6O+f;Dz=#c-6aivf=T7?xho3M!$} z@;W}{g0IUc)oa>2bGkcU(2m)j_O-<`-esMMn22QxOe#e%?-UCpEHsg=A4&}F&Ygr8 z0o~eEPV46?InShj1>168Juc~zuto$W+gf892pjqSOY5O4W5}(@vvu0KmHMkt+VjJx zb3fwGQb}qvH^*DdZuhHI%pfJN+_o%H10c`-W6PvZDUm2`xaperO@ThSWB&S(&=(dL zGG!8{0F@$=5As*c+9=5jyS%w7(a_g8imHpAQ0ODv=Yl(r&t)X!X`@&Sbz{>69}I|1 z#gLAI!8JHK&y1&w&O)EoqlKyy^(_;1!M%E7Z+?hg$~OlWwD$uZ9$-q-R+p7h+KCb& zy96FI9Uv!k(#_AC_3>vVjsoCWY)@Hp*MRr6Qr_WJ1bHHUHRb{gxVI~{w?nd>5l`%T zHy3qRDs?EO+4nn1WfzsT<>w$4k1E+L{O>AsS5fh2C@+X3^sVEertg0AqQ`6Y4v#?$ zjN@F>*L-oe6yZGvy7D;qb1pi=25G@3RksF{YzcmyZfbuD=hjYePpd?)cSmY*9_=5e zb9HyGZcNI9(6ZK*=3G<@E6W8sXQ-nr7F7pdIC}+76G_%J3T~RuqY)kL9k{f)D$}lG z##z=O+AESZ^ux&tO+m}m^k}!l_r1`<)BEeA3Z_NBck2)sqHq5b8UdEx3Z5E{rdToU zSbX(Sx%KaHP|iD6mU?o~ZJ&>rju`;B+Q;(*S3H!@bGKGs&%$YWv-A zgxz*vAte>r@#u!#{L^UmLJ=%F!6UVZ54NT=LFOcZJFhEY3qtHD=nb>aRV27KJ1-5DYR51P(^UMb#vcdHJpAMXfc z#3+1u`*L?&?mpfg;TUBH;oHsUMVR|^1KOJRdyja+TL@k?xwHi|NySC_yhpaaAyrj3 z|0%2bL7kTJO+3vxI2{5Bt872?>Fysh(7p%z@F2BP#wtLjRoku#1ZXF#x7l&zoT09s zs&pT>p!gvWvDTNPSh4v#dL3j-Ncd_N#ks0rOpwq;va|7 znUL*ai|OBlUxPz&jN0;%VT1NK2*T56O41#_KE7R)#qI-|JW8mJeuV$H_yBr&*aGyI zBy5)`JoAM+F#ytrkmME3{2pvTACgNjAhMs}dw_NS%6DM6Y7V?nD4(% zTEFGa7)W#>yKgH#9$kE0e>^3Mk*kj-dWUQ&Pz&|lg88#II}YQ`v|b>p0%R&K5RDbq zMR|ZcQ^tkBNQjg@a_RyP_x<@8u#=7!eF9@=un5Q)&~?8;yGzl-_-E>8jNQ{%*WK5p z-<5wnw`Al>lg_)foQ`rALZdg)mT;<9Ug}gnl2JZAol=7yT=B-D`tv3vWP-HGKlg2( zBP`#06X^f1En$(&_6*nEb^`QzbcbV68@-(uAVbns-J5szOEv_Hc?3ha*8F>NX6&@y zuG`s197`(~1l@wL^x*jS4LLG}fig{+`rl0=xT@`*I54^os1lmQYx8G%3=g2WxLGST zQpzjCuh<87D>V9Y>J_ip&lB4T6@6t&$g#41L$lD?&GyZIaNbv5WX>EEe8}A#^5qk1 zFo7v}DaoTU{VNN?eA?vnQuBEc{l?aAkwtBmo5UqQp?pJg{TutXIU1kJ{|6dD<-Ri4 zQso7;qRVV_+Jpsij;Tap1W&f9Y8|-d42L$%9T)s?IXQt2&u+(QEfFv(nfrKZ4A|=m zN0JWe*z{_2PDihINnh%UIkR~L^J%*dY?N8)c;!ctK}Me0Y@D7?vB+ZUVcK zH|V#);Md|fufyn;za6B{m6A=3+s4tsEl8;xIfum$(!uEcfkVlY%UX@=2c;rnLZfi@ z=v^G~xd$rH#qlIbyeb$HKMh11uv%EW`>*hMJx=zB+VM-St=avw#DwwohWMK}^CTP&Id3+g0G zG|eqf@-k=^VKEtPO;C*)SU!*#iK_J$c1k!(J>NR0I+B9Xl%6%{MvW@Pd}{%S8|VX@!rE~VZ5ldAbe(av9qdg*V(br} z&xNhxPy!pOXVxI~?bKHULm9vJEtHlr0dEd|e0H`bpQU%5BtAb{gU=UzI6Ujbe17`S z@i-u-ZT^1hwyTWqMZLGz6Wo&MGfb{Yf>O3L$XcDsNnoPuij^*u&gy*Mlm(DTA5Q?Q z8YGh|8#J0pTSWTGqe@*+2Q;*WI($B}aei1-xD5{>J7=M6XiR$IVg6PG?`X$%T-_02 zS1dYKaNr8<0f2(0BH8~aE2?bSRUrK#<6W$XEfw{GHEFNJ_ScAJ_naz z%@N7Zc7eQ4NZ9+LFZ+G%gW+*&0^!4m-!XjtR$%!2c3}AY<h(zJx2W|zf*o4l;>L1aK#Q_PleCdCr&3L>D^ecU%Phu1rafp!&x^eAiYy6=v|>0`Exqc4oD9V zhp9cGdqVrTqC9sw44=O@*ae?ohES{{vst*bFq4ddv6Vd&5m!vdV={N&7VWUeUn-L; z<)Afuem$(q=cC5q^=#;3LCZk4R~OhI8z9BWk<8elVsLU=T>o%07`A zd&~t%1MRMpVJA+Se5{Q{_6e&Kj2XDL2VHj%D4D~)5_$l_6D!NE*z z+sslS`dfZB#vZVle7$0u{#*lWII2EKuPhJx| z@vFzbDUiy_k`OHQV%0NljjHBZIa_Y*w>{>vjulNP%lDG^Sy~=#sITaNAGuzzof0i^ z8!~N?h>O&*qD+mQkZ}B{d!ME2&K7i8Ipiwb5^Q_);oc(=l6y^(?eh8L$FA-k*b^DE zF5+setn7U0H+Xz3y<29JtXPxdUW`%+L#$d(lY5av`53Hve+8QK85N>Qf4A1RSmwJ( zT*}1x3ZQ*2nv7F?*y{XH}-?Pd(lgTQ&`D^Fx)I&vC`%$-H`ZKGZ zRHETq;Y@7eaNbuODnY+8*oAKImuwnyyIEuL?czN2lTI2Mw)lI7olC@V5I8E0)h z-!vbX*57Mjfo9wmLU-pt?qC@$$Wx(^GaOH*?@pnN-$gUmb%#tomJ zg51R$N{0Y%S)rAeF?@ajhR-jcl+V{6!0wjN*5hfG^7-ilvm8?ySHN<1Rq|DyyyE&? ziJ?`==d+*gUtmY6aFQV2JR(}1~z{=liV1CD+W!FBo^b&gowI<1D z6>D*FECUq%^{e`yS07^d{Ko?;vv<>|JFlz2bwNX!Y@3F*r?c{L$%%5!V=0|8(=^7E zZ`npKUqR6yL>T#{)tNq)Xk?UeEK+{cHiC2;P?Od ziH;kbbl}zNlP8xzi4`O|mac{Xj{@8o=%+uwlz|rF8NL5-4Z1-9wzOiJ3t&{`I#{uTBFZVpZm)9IY(9?%e#i5KOwUdN9FNoK92S01_%iMs zgxj&>xDBEJqQEa)0%dNmNBdr>>g+zO!fd9FVOX`@gY&a4{Nk53Ku&6Vp1m{}2`d%J zT^nU(#7*b-d<=QA#rpQc_mjBVsP8AcC|tehif71R5d`9Q z?9*5qi+L1RGQ}Mg9Ov=n5Z)*5k~X}+wxknsnB2{GvWi@1;C7=uA^+A#IJ07d)A1r; zB_csTvy8SQUZN@+_#w0jyu$U(B>DRhE8`jLH^R9k0~1hx?+aa3=wQ=nxU*d+QRnki zC4Q@gbwLByL9feb&2wERKCj$GB)N#ch~VbqT<&Tmn(^#qw-{%}pi&o~i@6&HvJ%%1 z-;ag;CGD`6FM71=@xFo9{aHvt!ge{F^jCLytOF>Z4*cwLD0cy=5G@#N9iC?2!|KZE z3WAmP4a0FEBPqEqovi{?-oF{aY^qDxHAE`e6UT?sDMq|t`(C^}FI5d4(O(%eTzzgk z`}dsN0NSf(mqL%}+4Z_x^vz-#z&r7b@@o!NmYhjFp&l4LpMy-4+A@;9q`y`kk7Ido zZc)|o%5#F$<(i6LTrY5^uZSuVqD>L1T_@$|INdLwJME^~jynCBkA8P~0f*-B)#2`*Ubh{V{|@_U@?<# z1!9a^YAv$FI*04T<21K79$C~5Tg+2vh0jlakmmIlV%=yX=mzCEo)`TFZQ3up=JOW|!58S`bNym5 zwMBgjj%s?>$-1EV?@5ju=fWJ7(Gr9Y$+)pjAD@84cK7JaVK|0SJ|)I3%1zvr(5fjv@msTLB2T(KXDzwA8$O>wzgt}>9c`F5Zv+>l zcE$;VWS17?^Sd2+W60~cVolpy4OBD}IW_GgkULK2{WU!}IXjPaFbUyD>W0GJALLFb z=8+hW-+ud^)`MjieiD4XxWALLJ`DQ_S4cAm?U~UW9v;T6CQuqa-=Hq?e7-CA8BTKk zaf+_C1#K-n^=^i|^yMOwstdLPN6apKVP3kTfJ zfeW@0Fyh)VE?_yigB*tEttZ;$E_ik^SyeoY@q-w%zP4E!q6VKYuPy!2d7h~XX)i6d z8FiYKUup=CYzL|D+HD2Hh?{k%Xy@cRT6EP&-ak@J!%KOG6m&jHxY|7M-jUOt1;tx8 ze13aq%I71TE+=`YVdawNn(+C(ju$5x&V;>$aVDq>-;V@GC;po+RHk!^ih`GGWi~`743q zJLUFVRoH!f;f3D}1fTK!+mD%@Zi~lp7~kcu#Oay*@vmQIcDh91TK@T$7h+5d+Yzml z+oT$ZyL}2Crp=^GE>BB8x1Yu^d040&^9-MF`1}fiBl_fvpPs4W5sY}1$3_%FYw`Kp zhl$VM1(4SXeEFntjAE?zt`Vx3+A=@0Ue{d5hF|^33z;}6n)}_4?@1uz-(P+HvUFG1 zU4UZSl`p^#!k9Z;2lLtLxa>4K9Vgb`s!R#j=|I2Jr@1^HkKxnxZ|VKm&H>yZ+b{L; z5RdLxwrMAeok^ZFFjxl+6H9zJcvij+A{hWCvHE_I7`nV1#*UK5tfXWshmtLv`~IB8 z$sT3EW}aU3OOil%w$c}q274U|P1O_jM4`bTv`$yPjuTojXl>xq4=qT-0RM#g7$#8& zhUya<+7N83ra|EYL_pJj2t<^WB@;7GBL!) zD#0u$IB>DOn8ZjVkg%ZV7+11l`1+~Du5O1DL06p=QvFbM5(_{(GbUIFa%>Jeg)9sZ zX8wM-Tad#}{w?39wQcCaU}(erBuZl0*1U228m^_jA4zA+&I%-~z7ER6PLCCi#Q>P` zJrdt5&e4N|M-;Hc0p%4RG&v~6_(we^?LETr;s}Kg`>O50#L0941_rCZ10+*rfPgc! zgwD!j;OCCi8q~L9qORp@qHOYnY&scqQX5KU%Q7r$1 zQJ{`xaDho@d_6s9o6=n-`AcEN87v92PT=Q~yYU>jmb=gl-Ht8nA}>|pZaG49R76%x zQsZ^6t(h3J0dT%qFVXInn4pE|tEp6xg) znMrWOi$(D{;2ZPQY3dlk+XjP7z|w3AI|0fv8Ph5|z!7ce_v;rh#X~fofavvME$oWV zcb)1moKVQd$-Q66=MRTYoOsQYT;Erq|5E!~5Rpo#(mQb2wnGV&d7c9kWQHf%wF>>8 zlhF*m{ryLw%Pha{li>5kf4xoz1}FUt_k;2#5M$`!0a}OQ^9|}C&*yunv$8~AJ!Dk* z8q=`F{bTYZ0@Y_qxMcPDd<@{#Zunp#34AX=Qh>k@{iP$0s%2Ef)} z{L%g0XlYC@esc4H(=$uUOMK2h|K)RlT=FDwou?fbZb2}hZ8n*2$DqV>&n63)JgA9b z_N&p#xX`1~wTeg%OlkbwVeLDydeEW*Gk zJ3kq7EcGt}*OF(?hBTj0|9JPCcVx5S`_b!{P-?~OV7TJC%arSl3Q5EI$&+|rO(+x^&c1z*)Wr?vU^{!a8+k;tpkBPFjDJ}OOak|zxe*2b=&Vm_HV zrYRV({ZnWd#M_jYer$oN#!>RcvU9;|^WrmRaXHa-S1GK&$Uyn;iy0#4p zmsOLmP9c``x%FC$j(oPs1ZLWCSic=rZOaPQc7)2>`YmHBSb52Ukpfn|#Q<`B|4}F- z0GHX7wVDC4DtVz_Q^LFcJ??O#JOUa$YaMI~tHvy^tae>-%C&KDPp3tWh*{b5ZObmr zs5CkkP8W+-bG23=cFDA^qd#h0ztK=l^DiuU*)|FyxDNR0bJjYh^pE84HpT`L^Z6YCgZXh-}K|SKR|!MPTOIk^M5PF%Nb#SL^fn z>NWAN@dKd#<-B+z@{h?Ev3^3;stf04vCS0krooyg;nG+HgOy0>UiHQpuXiY4eGIQU zem9HoUZIT3T}OV_`cC7yq`tJpwXH6nzbWtV7|14gYJZg!l4;#t2VEC=XimFr=COCc&0DMEB6*Hq!=x6H z*UPwmNS;IX`_%(uB?=P0qE9vt=pUNBT=-43!q4b+DUtY&lHwq=CT!0EO-C-L&W( z*brC|PHq}jt@W+ksi^^QC&-Qxo*{0_9Bx*DrVj9G-L3;a`=iTJCloq!u#zPi+e0?(+8H)!}au z9{N#Sod+w9TP^IK=Fb5p4^qjhs<_kZd2oIu%b|Ln9V-+5B7{#L#xxG8(nCcs?{pMV zwI$0=o+0`fpFKO1PFHcd+nW(+#_00m1RU2a_1l2wx-BVi?VKfyLaJz(2P*CECRGK+ zDd!8nHnAjkl@|J zaB|X-va@SL+nx_xzuvu_%8Gal$3WGQ3qHF!FUIbXVH$6xTef0q z2o!weZn-niF4+|V`wuGybvkz8q>Dwcv@)21!Mcd%i6gArw_-iq=|HS=YRsnX3_{$| zpiEv^R(n*|kPl+lU)TwWL?aH6XBkq|$M0_!v;#HnHeicm^{({~W4Yx6w(9hxyEM=N z*WH(&^_5M-;lsNb_`&9~Y%+`B?T=G>7GBqatIJN~fD5c5SN8075yXYNTbHd-RqK{? zy5&C8PTJJlsIy!?@5Aua+jw0k+3Q4E$1cccx^27kXu)u&KpS3uahkl5hEO0d0T%oG z{hM*(@UB2Ow@Qff=8a;)cC+2X&@nJjHK}Y`(dJrC34rrUH%=Pp30-&7LV=XO0FSNzOxl=WpMG#iHjN4*&tH`kHy^un(!lN@6X3d?G*hT%yg#b z0bxmVZ8u8fCavcVWResav=hL`fgFgqdo%9prJckSXcMu@wFWtxrv!W!xMPN`IIo3R z-xo9a8S41KJU{+0cw5LUul;_yf0)J39_PVRz+v(E4fSC$;rz&tzvJ5NmJHT>{vZAP zIcPU^lnPV}m65s;pO1R3XBB!7pPMsJ&bg0#KJFeuyBPB7irj7T`E)I;uN-FqRvj0W zjw8phYx9bmf-4@g?tDW&fBYcttD4Vu;OxSoG3bgh)Ad~H*TtN}`wznY^20b#BGr=k z*K{PuFOJnXC_tRx?5r3203OE4js>TKPOV*e(r|>|t=I7i?_-7Rg}tnzP#oSSL zpB0rWeUUBrYghQeh?rTDCULZYCl)B zbhi)$a*+5P1nKJy#e?RHWD?5~(;VlY(7OZwF!}tAdb(LWyYFP2UBcKvAv<1yL; z7Tn)0WT3A&?ESktxsHn)y1Y7p&%e0H?OG$HW*`>b`^v!0q`r4| zHxfF8k^KhkV=12x#}Bl@W@9PWP!Gpl*+?RZo1Y7ALI+5@p0k`=LOt-A9rKcR*Q?jg zI+zKud;2M*M&Ry^!&9db$91Sc8QM{?Fd^*%o|S+2OnO5`{N3i)66bSDcs%h;ZQPB# znF^nLT_w=AF_AESMf7u568Ud_FF=RrH<1IqmqWZ$F|ybh!%+?ZTyurfI-e znt6uLU!TuMI9*P$bHtYjKg%XVvfJ@u-Gr5lZ{$}dBbf|`yN`YLx&xA%S4jy=fV$z! z&w8LM8#*aI25s$5N5w{wy^t%!Ehh5ImuJ*IY#7Sl5AWZ{F{ANufcj?-Tw$Bfgn<3< zej?@ek@5N1H_u)SVIb_@La&QA#^VL)@yJo2j?RMOvx#aKD&;U0eR+LzmlOg4NMa=S zgwIFWsdvOfP9^Y*er_6PsW?n~k-VO;DQp7tL!VysNT0yIAKwcbYqXG?Xc#_!>o}J9 z{6_(C?GAkT^#v>|@wO44UlRuzpU-iJS0BFl-7WozzL94y1~I3OT$=41-Wb7ldmU9k zOBIV*7agHHqCYqk^GU`8RLAFIjMb~xau-kHR4h3vr^09Q-FLSnQ-ehSRjDhp5vN!u z+eydgGkE>#Dz@W3e7ueAb-;mUpPWwCvb()^3_*Y zh4-;Kz60T&#$?!?EOp;?KY)D=p?i8h+k7tP zU>)GS_j?{(J?msDuCxj4tLsnm*r~Q`I3g+SIft2@lThtD#chne$+6ZC2wuCS!!$t#PGlqHg3d%9()lZ(RJ3fh2Eb(BsIljBRt7e{X)I0Oi zz(*qEgp&c2C+XV45$p9h=n{Cb-6tmNaL|QiK5m@57nd@a6P?PRuKnsLzy|Q=LN`^} z6@ww_ubsvcl2fq43d3VdvIPUQF@Z9F0bW(sQS>!-TPC4LeKqZ<#Wm&RybIfQjP5G9 z{1}1H{z^C#ssc_>T}GYx@E1qNMSFNSZAXH&Vt{=i<75&o&M}$N8?7R~@a_Wp} zN;*eJM^nOr$>&P8c!cW*28h{9D!3 zr{qO1O7R^)y83o52IM3Q{HzVUbYAmvPA+%IQ30QX(-C8|!)XnSxJ7F`B^w9_qnvKJ zKx_wOfLP1Jay(gN+VvE0NPPY}X9+P1fruXluFawCCyRXk7hj$iuPZpG84^b-)?^dC z35%=bA(Pya_xFv@mqD;L@qO6Vs>`;?=cCOLM$4ZuuECh^XO+~Y!oV{bxVvpBD+dJz zOxL~ALJXz(N6)&s zk{X3fyqUrKchkbIns;|o`oVtn!w6o#z9{fzcrNs7-rvhaOONJ*TzhcLy#C^u;(26{ zeJJGH@BZPPSf@AVz#a`^ZG7?Slysi_P(vv-)A0*se7^X*w+f%Dk7~4USra^pR)x}hj+W;nASAnavl%YIJ>bH-!hn70~{4dwEb0pi*;SC z!wuIQ(jhQ*&~Yeexx*9R_CgqGek6-1flg`=yu-9c(NM$ZZ^q{%$2}O@$&PnxpG>S1 zVjSiR=<(F&sN$e4j=X+PxZEx-yK%v%)qFmKtE+CN?djK~TU8{{;w8>5hj4l!gGU0P zOFoQ02-`Wz%^3!renfVB1j!DU$HwQQp8fStuSlma>Z1UkZpKsq81FZrIk!JgfG7|c@nUYoQ!Y7!Qn1CaYHswo)muhlaBcD;u>b- zu`dhL7(RdNIF|VQ#{$lsSFeYaK6=82e107qY<&JKfDiBFhBMzPNkL%D3lF#)AVBEKhO=bOXi{mfU7e2jHGUIa^k3s{uf38q!l zTo9JEv6W_Mf`cxx zBSWM3Jd8hqa)J%P+g4N$UF%JO2*h~&W>I@wGFEUIByvqTlmOxY=VJF&2%y$c{@mpF z*lhJo?uo_!ZgZHZr8al%RX&Qu0g)V5(ntm?yJEXjpvK7?jLq!d+21iY`a!>2s z1S`=G^e%Y%a}#f2&@K{Z6aB^7kiC!d{mi-2uh^<<>a`+qXt4arYP2nGKL$@jGw_^K zG4ok^&U2*?q~t>K0j!Pfi`}C9FWjg8hwR?fEh>|j2K$4I?NtKXmPxeq$XA$4{Fn== zmZ-dmJWjp2YN+#~tVq7g8p`%&^NK6E#Iy;)v*&7Z>CM-mn%}SLD}AoinA~^0tFp^- z9Ab6fu4i{;o;&bFhHr>fl{60-dW@#x(2DoT3sY#TFlI$HHe)0b&^gMSoKXqKli?Di zU}tr=D2Y-;Tj|=enS3piA+&3NwdF~>=X^dZdxlH+eAdFOTXmnDMe3MhLMNATcCe39 zRyK>peN^DsnB2vhrTBd96N|kiRo$zVlnS>>-j3sHQER)GjLc0#+u-$kxlAt0U}9Li zb2IcauX)h}fEHPGz#AT4eZ>{msqu^sgU?SL2j#k)=GfTQ$4Wi}H@s0e285^>fk*_Cano=Hme39pTD$hGvk8U#Plf>DtQWvtWs= z+lOlY2FHT-`20hIT>6uB0<Ibo%-in@{x_L!A|Bh^Q2+F-`m*UcZ|VCmTs-AKgyL9dO1|dqXCI+?!lG?! z$;~Dz^ikH>$5T89>HAz3_S3%RHuO_jz@_2%uM54bENiA7XT0RQtFWTY37;P&V>4n)U9KoOq4l66sA6B z$1;@cfT=sgM?cg!VF>sak%Ku{d&84b^Ee1iT%ih z>kbuIF$`1?H12|89l5grf%0_`1TpXDI_0V#%884!^Abl5hugb*s@Av+p6d$PG9b>T z+wB!JTxlSSdFQyaLx@cDEt9JjbUH~J=ksFaU~J)H5rCFR>22eyfV&XcYOXs@Icb2# z5>|y_Am{Wtf_ZRaD;bNj*4YwUR|GDz&z|*2p5Zh6^nOM=?3Muyw~p&TryD`PFOBz3 z&w{S!3R&b+<(yt$-oDp`M*;QUi3P4J<>ho5!h9<4r_;r?O4d~JI_-2ZjtD!oOAfVx zu{eMM2ez}%@MmZtb%xFvZg@2OY@4` z=7X6KmQLWTUK(N@t@=ouTeudTUwLFF;Tk)7n2}wDbMEZYi)GukMUU41sWQE5(=H1L zl)LwLa%arhJc9S{WqCf_QG#}%v=Vl#+jV2nGhYaKy<&G`B+~|cPX&TC-~T`T*x!!80DGoFxb_aZSeR&dGY+!Fk|CK^jaqv$X5?yUTS|-MAh|SE$~eB=jO0G z?Xv|@B<`nVgASBI{nRduI7eNl+W16H{O)ER+p>NTNr!}tW8EIax%~x)@ks4Pp1Kz_ zTYMplP=DD=a8A3e#}OQNKJJpBV7*gK3%cQvy-CIg!5@J<0^oK zB|2M8Y(q{xRkX$DBTsU6(%0Vrt*k8;5q!LTDDe4#5Zv!RJ;amvv#XQk0k$a10^N{^ zc8s9lGyF&u=R)p*c6p1`E>TV-Kid$P*y$;53q@%Vw7=ujKJ)p+iHXI|QbqZ2nO?=` z;{(AyvvXV8x9gK(AjNV%m`lei?1oFg>wALV(oY9TDbjXP`{ z)2?J?_lY-Z`%V(;%G-Ge$YJ!(r0tAc0c$9RGVGl;J_MpEPl}k~#-uw`XFHwbVpxT} zZJ>>=IeC1&tLaeZI)}jLYY5kh@HNUI==$7h!VU~0JGedF%9qtOF3J_!8OZoWc4Rl7>s zB{r!|yX3qSUyEX19CxnNVoll#>&ZB2cSLa;qiB_Z%V?+CW)}e>{qk#b73#(>;InbX zbGo`Zi~I25e$q;Sy1~;#+kF1Pg2`Q-`pTXrU)fyoh}btNE^V9Z2%gyyepBtkwQRXl zHcoNe6@4;_WDJV1XYQ{9^8Y&GS>al@5ApO>K<=?Do-7jlnZLqbL7soUKz{_&hjA7mP*;XJlHpDLff@;u^k&c;!J&&Q5CLECssB8=>5VQ1W4`=qByKA&ek zUl-U1BnzpCM3PX4n+^1a10vp$jC>=NPck04o_%ZfVl+)EM zp~qbbe=h2?xRIV4>%!AnP`YDe8n`REw)^xm znat*JcQ>Z%O=t6!&$z+&tC^#MO-t@3fz7A#UPH)zrLObu6|1M0|+K-pIK!nFmluw08&c*(?c>X!RKdg3r=xtjuXBo*j8G&yx*`edS9a zZA2}6sz<&)r#y_6-k4*#qFvJF=yV3eQ8A@I>b9K?&d3(QXE7C%an%}%PiHthi3@V- zx@yR^_j)n%!%g@&m%PLT}RhvZ3z0t1U;(H8{Jddu7tCb9BbmA zhx-LN?1m>oIeRup?cSvWmO^3RjAGKR4w2Fo&j)pjdIpa%b~8ZY%ja=`XUE!aM?qV_ zapf!G8i{1w#=dOypp*9O?6mMc%C3jeXle2!j_H$=0i2zj#fkHUNGwSkALR0fiN=MeGWM&c8s6(-zAV~h`J5sHZ0NzW=iRs( z*v|4W#C5J-bObRdgVkue(L=Ayo--8NsE|bg7p`(95P1`AyRzT z(qX?#fe&=uEeBh;D!>k}Gw2CY{;W%%pdO3C!?;cdLI-~TZbsk1WTcCWPNv5(nGt`G ze0&(qYb8&fopxc}=Y|gUb#*w$wM9Q$FvG$UEaxD6$}IE~0|w)~_-vRYMv4V)fgY6< za6Zn0c^ri32NtYbIgktIcCdki+wQc_m7vo-m=`CKhx*r0iZNX8J>eDTbvu<}4Fe7C zZx^bvqL62bAF{Wc9e~`uFJ#mGP0}}UrRqo)d!PjSJ)GBQjxPM7K7|3#J=OQvnIjgZ zs&8)wrp^*@tGs?q)AQLJ`a=sQ)39_$nL3zb^5hbwl5_?9CpVUen`scxk5`zESJ-jl z=k&}XJ5~ODoC^XaPj-ZEp9_q@$6!qv_%k_=(UBj7%@*2i$f>7_Hu!vej$L8%U!4sK z{NZ@&!<$ccr9Acb@9*fhExz;OatO|fx!|jW1{_>221e;^Xq==amhXTKGT<_>gpO!$ zZcHM#g~6c+=_GDDd2;{xe0|T9Jn63H^HHw3j$0@u)}~J;-W`kQWsGQ}C3Wpxa0$eD zb)5Lx7(`xmVOhAq6F)rO=?s%6v7a${^2LiRzelXG= zR+u)s3H4r-2YF!o{YA4t=Y2uXG&wBXs*5Ptcq*RkKoig&7FlrVXBbCZ&*$!|b+K^)ggl;=x_1+E*N?phpP-LEu>UvOPV zaCav(`scF+j2&#GuQ6;;Bux8^A+`Ill2i)}>?-d|$dqb-%H^+83mJDrZ=@MH^Q zaiB%4?>|L8zt(v$F%4ZI95Q@9`rKT1i$b0uXA!~8b&x7<1Fb+7kI==|Qzyj)b8i@r zIlZX@%8mE$-it94#$14IqeuS7q%*0wG$tR2e#&pQ;0Pb1-3h?y%FB*M`^)DeAN2K4 zpQ&W?EUID;i5pP`cPUoK9}~y1Y^j1Tg3k{lM!vEtwE5Iz zBBWd>8FOe;vOJIn(*?LNDKe8h$;w+;XFa2}bcyJ|XL5FOF1Yt0>5;vTrwUB)RNHL0 zyu5<*^Gk{^fBXIiczC#9s_R9noRNv{Wqw zu_I*%x+{yf1m6t0I z+9nmLSbQ%1V_=YA*@!4Jq`4Ze%N)P*Ba4ELtfj}XI1oE7R+0~DiTIksHa}-pwRat? z3Z9TR#n^U(EO=DTy3<XNV+stp;S*1(rTf?(1Atw%WPK=d#)igM_r+Rv^pD^RY*` z|2=^2Z}|v#{GJK8FjxmH){D~m$_6@*9-nO>ZNB8+XZ2diczpQkW1-?erI)fD3Y=8T zT4lT9Ij?L0S{FEEckEUF)x0XK1?rn@FIRUJD}T>o*`(ViDBBI>*iANyWlDd`2El8c zD6UleNMoh#>!$B7KmH|cz~cL*o%pOJ(?rYkyg1*Ip1`#c&2sPM+q4AwzV;4uAKG5Z z-c%d@PNmL68%t-}j$3DZ))^jAl;TTD*67;0=#t}D#sJ#w+WS~w%M=hOd7i26=S#n7 z&>kA{`SD^^_8BWFY^8L#6?{I+{apuq85ObBfwGxRQHEpV^YuA&5=oM@0n-j zLdNU?benm+P_kIyX`7Y&Ad!3z1K`q|nZ@_SbKTkWURh!XvaQY+4SrPeyGmDQOa9t> zJk|r+VmIwje8%9A*m>nRG(I0HIxyXSZPyn4jvIj`=PtiKle?v=c!11RndD(~jDXx7 zMG9LjW6OM^Jo`@p7yxgnV0g^8VB)o<&QHPdEo?w$MQmjNDr!!+^U&i+nc`J5`k|h8 zCAy!1K^wp!#3Qu^bHO5x@YK3vb z^HZQEHYr$^Dc%6-n3Sx2tJ}pO*YXNpvFez0v8qqj;!;!hR>tQyncFyP1TWRc0|I3(e9+EhpME>cxQ1Q(NAfDO_S%7(zomL`3)|>q^)2nZm1bcr<$n0 zqxxap#HxDZOvVPI?ZeZpHDcX9eON{&6bb#b z4q*8FU7#I4pQ$;YiM`Og>PkM}Qq%2tV!4~*kof#M%}CZv4o~T6vKkUfb9k6goUu`v zS|2POpDzi0uGglh$dmDmKyBDo<$r7Q`K&FU3j)7^VpmvqN_Zym9~MDj4y(-nksGrC zRxnX=Yy~IFWJ0Lxm8LN6WT`UAlLiL+3NEWttSw<1h!B){xWnYjSLgIPZD727^$c7~ zR@cEwLuY3f!jBVz>rCP6ubV3t+GYTDLL4=X?RXmRQG?Tqrf4dBA&l(id@YSmaUd^VMaR^XQppxHct z_isitE?w7#%jf-rSGut}k{-ME2800ut52gs-tBp`n+fUwr>C7b=oWX&8)Nk!am-|z zRMqlaOZ4S{o>Sn5Fd9whJYJ0rj?%#EoSqG+Ivd`GWA9^B=pzA@E+=`uO?NCx&wZ<9 z<#!e2cIWbnSfL||*7N$}a7$P1bDh;{AdRWv>C$R{h^~jFj%!kuid?g>Br?xx@DT%TL2EFcfRcor){7K3XS;0Bm z0u3z8!upb!r5#jCnj9>o%tv%R8BEd<>%6X5B}vRk1}^|pdVsyr7_1ADm$L|b+>r*b zT7Q@yDh9g-lk>pEonBE#jTkH@$vCh*L$ex`Bb+Az7P1OHj~zZ#sZz;ssv_nU7iSz< zUaD$7?%cf%IH3bN8PHLcywJ&mb`OH_8Ukp^At*n|Q3sqVf$^Mo))I4w2^lXA+o{tc z2$HoR!%I~(A`sni{b?p0ZKAI(F1(B#gH?`)C!M7?k>Bwq4bQ8yj;8bmu86miqtNcO z(-~4E$7CR#)`9BUaPjc~TiD&m;IVySl|xsxbC@DW2b&A5Z81C zcd+u>s6&$uCl5q@ZD}<>+#RaK)^t5-6YJgTah@-eeiqrEipvofoW2d$-rWPQgH^*d zXM}Szt#jgOeZf=ACsHq*Eh^4~+()Y7fBe2^?C{i1#kK9HV_nNQtTw9rI&gBM8g`#lf_;L!qH>Tt29DDzxrooSKd|BIN>=k93>*@WlFyG|^dNP@$t;W)7f+mf zcOm##f!4>^8;Zn+Dz3nlG19B{b5o+SQo!{-}RAj9Vmm@23aRBSyN zVqEA9PnaX6m;)W0j&CG<&bEQ37p?_bzIvVI$A0r)!~!L-=kx7%3=<2 zd^@NQ%CQ)Bvf=l({*HL_&R1J60>nG`$k*-6W5-K&y+l8Q-WfR9zQJTViX@&19E3248V`z+4GKy`C%E^h4bMywCVjI-FefgQ>^8=J+?l|9{NU3)Or`e?cKeM&-a>L8s+ZQ#VPSZj7c9v8(3#_(vHb~ zSm6Ga>311@AZ5yWP6v|W$*CAHuS@#(GW~^Q4#R{*;WOzEM4J}X@)2WCh2CyEJ8*<7 zfk~b;FxXSj0y$S&&6a_}?dzYsfWQ2!Kc-*^z2z{oTzK{Tr;;#G1l-GKQb9*Uz!rwx zcyuQgoEf}(b1#(eti;2lw14`?5Aii#y*dM{WU)b_!Y&~=P`TSX=L0%QO16iVZAH?f zhE^=TJP?M=S3fzIRYL%38^`NHJH!j^=BeaKv1Uz2%eOFJ%mVoKn_H>4_l1IaDHIRq zuoZ3`r>GDiyw3X7iO4azkmu=(=X-h8jVp>w$I`Jp9sBU+$NP+<5a9}<;q$M~NSQ)s z!ymq#5?Nq3>{}e4SC^;q+yJ#Inmi@A?)u7VX72Aea@s}X!Ipu(i@;w$c~Z1{t{fJU z+;LV84-6(aJw06++iF=2_9kt7IIC(K)S9gUn2oMTgZsWO)uH$ zxN()Ue9#ukYNsRLW7h5nB9itC4$}weJgbwph&uC|A7}L15qj#`nU`5-aIKJXqWNNo zV*vZ9nL1&|N&lJm@qR2@7HUY|lso9@qB7_V5ew>Sdo!`4(zcVq@qox)w@a^aU2}y~ z5{F1f=%Eh}(_O3n>jBCC>5PIgD1d9-0B$Z57<-+1UIGjxy?UPX-P`vX{AJk=&vhs(LU0)O&#C}IlD;umF@F@SOzBNjn=P{9^h2$F09!ljw{y2^Wwar zu{aK;V^RDQ`sD*Ln62hoEGOLSdDj+p$>-y^Jv-~eXV1@afr~Pbxy)|I;QudQ$v`9I zUaoJ)g>iyGi{HJyrPnBfo_#flcXg_Qp9-9|QqI;itkn1kJANz4ljv~osNg)}=C`S* zJp!L!2X*-T`NWTXH2r}G&t44a**fAM{Mn{nOjV#Gwz)yI25>BU9a)$G`zIJzC(odr zaB||oa45%<=JzBYkBCgOlao zL78}?xHL=*>z`P#jW&1HI!v()tMo}Gi!j=@qeIXPnt-?2GE0^r;<<7x>Aa#KplIG#U9k(Cn}-1wNyGxY8LBnuOl;? zr!ya}ug9`38P68dh}$l%-|N|HPt8WE9&#IJQlL{?K0#|Y-}T(wZcfN?`{Yy1+tbT{ z{t47$@z}3_atgDVif>9MNs3PE#zjz)liETTIz73h7}wci5hvQB{`2FTw?c=LV~$7d zN*>}+9}+&_d*uiYDVyC+$rYV0eD>MrON-1d1Kvm7I31bH!Gs+$r=s<^2G}*OJMxQh zuXwIr&#N4w=%;;nc!2jGZVI2t0zACrI}Q1K(TJb@(N!vmdbgY$#mRV1oXEOS@??<2 z>5)8FO4cGw#bIIMqf?=4F&UHE@0}HaEP$6LS5DDJ6A!%)w7`SL2(Yh=tcJPIgza?#8-*Xvmt*mut^UWz`G_M(%LAy|-emFnXOj&h;Nb6gHJpTF$S;@`Z_Hjqd7w5HH&fq*w-$yG+TCs7Ns8n-%|EcX;W3 zPMx-_Doy+MU+;wbkhEZyxZIirso`b%#vq4ug+r#I9eMm&%5etGkkOIW9e4SQ=Fbzc z(vLPB=5nVkNxbh|p6KAgNVg-4TEVEPHYaNkqwJHSEwKI#HhIR%*IG){q4kSZU6<-G zHJix_hbDHB!QrA%&6?@=Wl+5?4nX58DhiH$)C;IhoA3)n)XM%}UM-d#>kE|H0nzEqn`dF#jC4VFSeWrE+8)G>?_2 z7BN`rqbBPWD^u!u{11tiNFT?`o3d5pWXt}eB|cvlM62jv9q31TkCoM2@$a%&DtSs} z(^)0g)8~#Spqwnk^Kg0YCTMePtQrP99>=@^(^ihX;PY#v9-kivWAG$VCHB#5Sudt$ zJchgtx!Q@W9;cUH7bO42Q#wta&zG<)nOJ~9e~hiac0Cs7SiI!^*g0Aw-CNOLvJO9L zJGKE<`Z9NU=~rC#-DTfz4OQ1uJCe}O$2*qcyW;bcFQw&E;*Z>DTC+5tm3lLOkh&IA zvXZCt$TCo~O8O)@5nHR>^4X%^l2w9OT1n1umasMsC4PZ+xUwWarq?OC-hqKZ2335% zR^#$xhNb84HrJwkh1LNc@!l2XRtc8k=D0E*d3t?-7G*(7kFGBh6FslcjO{q2j{_@o zQ2Mx~2b>J=?W}W6&#KjncnvN&fyK(zh_t;$pIIsSrgq8MsJBwG0MAM5ZYoKG_?Hsi zGvg22AAYP7gf_Ja@{Im&G$>%4B@)VD+pQ$|N zaGz=0Eyuplbw4S-LoWNF>9WK{t`CYr+T}HPAlRRngbU%VO?jnzC*u-aDKo_#^y_^O5l{ecV5Ui6d2){+bF$!UjnJlU0UX0ZxKGm|^) zL@e2HG!LxMe0tWUg%T?j+}|$bt~p`>y!kjGa~l`T^Q-PbD%~{1)DDkrKMtJ7(}@qa z*E1RdxGlH_R?HfTaX`DhHQZ&#;BioY?iYa-(dhe(QKd8%zaJK4GmZtB4L&r{L+xXP+ez3Z#7b@(ls(-~w z{hk4hxw~7r`(r8>o8YOciMX7uN3rI>u|~uc zbEifNj%}B!e{&cNms;jF`*<=^nV*$#kPLEhu zNkaJL&)IShLF+bX1MwKZvC);Uk&ALV($=V|wx#D2RV7~G(7@5;xTzAboHbgQt;nM4 zxfxl{9quK1%#-Zbz|iYq1Cc;-rI! z#whCY&H)g<8fbSm2|LGmRdzJq|7;!qC@^lI{08r9&BuNa&5VP<}@x4da>P89cu_A$NlNEwY`E|7je5Rf(i2vM}`5*t}%}UN_Jy= zmNgt?l^$a0t6Di<2)h?J$n50``f|U+3{;{V>T1T+w*j zh19x%Jd#J;67ubr&xYiSLi+3GW&{rpbEs%?>DndNDY1i2L5Qto3~&=sV}KUjr6xq_jA;6MvsIY>%bx0mpABIQto2 z6poQ`jZC#Q%Mt2s>IntLB6>xRPTYk`j4xj%|M5I?!Qsy)GB#>FN$hFYv*db%@k`>~XBB)t_9e#k&~sP* zN*t4ScfO2!v~Z`Xc+7Y*hsktK zuP3v`%I`Gg^C|xLvs2<2nVJu@iA5wiX}e;xTs(K%Nu239+xEH3V29-s5bb_m5zBym zgu6PQo(^JrDiGY2+Hh6+)-C1Vzn!kU55wm-1Ku)n$F`7>tl}9V@75J-P#f!xMK*Xp zPI&(GVN&Gt#bNuZWO80k0~2E%9wgTZiPd9#Z(R>LGu8ayd1K0&Q*=#L3# zIQ-?m_!T^VahV~(EtV*`m@)q1#aF_ROoXAVfMiqRLm4nQ_vb(R=XCs=H*dwU|3<#= z*zgzs{0kDkXz+e`{~KZ0%EW}<{P%C=^@OAP;@MB3<1K#{*v4+ju9t@bTx`#UBjW6$ z7n3i;P8XV15!oiN1zpdjMHP*xG6QBf^x&sIza$c3bU%lO`}crc*&ZEp13JRp2F44LwA1+o;8N)iek)RX% z?ChKZJx_#DczttCJdj{rl{~qxK*!dPKTOCOCy9@w6Z$8z z&;k9lVAJCHJYbFT1pf!FC<-YC8!~jf+2&c=(2Ck9Qi6sAJa*?%P0bGv&9B;!5l^`d` z+uOGs%Ix!w`!t-EPac?HJe64pC?`(Ng&iRDe}5KG!k+7)47Upe3s#5h^_A10dK?%-6p7wejSOl^X zr{{@&qspqPSzJ6Bj^u^}`dbaa<1P}jk9~V;j?z@Tnt~md% zPTY*lM*_Fk^VGFqHCQUh4;`#Nl6A%Yz~|NVI%LD*ea#oXXiG6b2LmmFg}gs>=5{t< zLTCPJr=P*$0QHOa?`~2%Vib`CoF;#hNso@E^FG+!^@31$4wMD1Lw3cc&BZ{7>zi>V z$r<~^6LY=$@(j{!IUe)=Ey|Jw1&9nzJXkBv1Cty_A>3YvnR6pLT?;N>$os+|un%wQ zSK7ca@aaPk-^=F%S&7x)@gV1yv?1`dRb$=2;wqzu`fE5Ykr&UL*ls%HK>uFHTiSlf z^=;0lV($)wF0l-#zx?61gSfPq8Oi_tHpgYl5B@G$Aemc=lp(*+eA~>l5U~+ znEd;kn-P=8e)0Luo)7t9x?aKF#r5y>?1GBhSk{m61-jiK1zI6L^VQeS;mfa{k^b=a zzxe@1fB&ZB0@c?h4t_S@n59EKDhgdH2!VZ%#h~R5EZH;9=Rx&au<9BI7{7o%jn98_ zPOtGf{^Q@xN`ux7pZ`Qq!snw-h|^>^w1sc4O9Fva)QUjaqICuwMgHh%B~K#1K7Qb` z7@~{z1MC&t4ui|*4n03q->2XE^l-7gpWbUyA5EVxVHVOfOc!Yi!zu| z;w1Wb4@2AD46C>x?1QVjZ4C=91Cjap~cXxB)8z|b-gT77NEGFj81)o2A8IC;ssLnB*ApQ!ic);?~)=3;q6CoGctxB(gq5VB%yDxs{`x3T_FR;n@M{^SXFw z9bk;x_dndjTj6U%=)zUY(3H9S^)kg`M=6k7M}VZ$HY-A0mi# zuhX**{OVV)RM8ljud&az1L;65#5d!(r{dSS2b^0H;Kju&(N{LbdVlldZ`UfWL%e`k zTZa8XymRHcZQi90XObrko*Yt%(+7*%&JLw?VWl0Lwj0jvEFugIJXg1O4wt8233AVc zyok*27Lu;e55fU$;7c`=6Y_W(OK`b2;~f?__^#`McEC(Qc0?KXZxJIOR52f zxGG5+_{?;b@$@nJneH;{f17AeU*?cZ0A5NI=pqe|okWZ6T7KWg`Ayhha7g!)924c~ z9=!OCwx$%X4&rGOT*(jlTK?TwE>K5Bv@XeIMUG8v$g=pK^n6MMX~XVDYm+-$w@vyU z@n3D&@s#}4#a`BF(<+n?_ZoMSv$9sVi7#mbquod4+SC3Tv+c2R4Ep9O#B&p$H7n-7 z#j#Umk(^NDv!{YX9w@2j7i;i5Nw$^+Lx2WHS|=`?qhTksZ7m$4^^qsF=(m=;DF{DA5Xuw*@@q!m`a1`v^N6?-bZ)~9UhPwvy)H&JyQZzBNeN~RfUBxnTf0N_oO*R(SO-7b1S_ONR_|z11 zzYW*bO(1o;Ek)*2^^{66YfK?R@Bl(JcNz5Se5>l>Su zw#%M@QqDPKxS}-5_x zV%?pU%TCE)Gd&pfgc92`zdLsx()X;aDy2g-DTJz z5(6e&v)I?tKz5|3CvQGCm!4WZTZ(tKEh++nx~s(^Ax%;=Zu^D&cm_JV!;#C6LNkHCI?*lF%W--J350{SGh0O zP~eT_JlSIzClx!0O{7fnq=CVKz;Yy`U@;qBzkI0{$!bzt`+89jdAZ6k+PJi2W+gd2 zaDmXtkX69M$qyfYgauU?=J4$DGw~gdcKk{RcT2qgnkqPKe3J z(rB{Oc^^wf!>U47R6Z)X#f9uS?g})^Ks)rRCY^OP_{u>)Q`b{p$D%`aVQt#mb zmfe!1z~DE#yy|dUz;TY_D5PDV7zF;BmAtqlOL@2eF>7El4rvEu66^8l$a5#wmzlI9 zInE_URZtKpZ?`GlsX&0;Y)(*x$A-W)@nNL)W6U`ePEMSZ4c$%^U|iq*D5UPPVC4VcVr0 zKj;*&)ecCw-joG6)6Pd?t}*r9Lwxp+iL_2!1zxeWwv~12&rtOst5T zI4!K0V2+!?f%K<9?d-);*TV{XIG(o~RE)*3>~bBvr3<6%>2}>LslnwAvAR%98=xwh z!k!*aBGMy*p#6@c3fVm=2lK&4`-lhw82s`%7}=rFH6MZAXKI~SkUP*5zOQc<8go$U{TaCaZ08luF^cVwyPJj zaB1?8yb&E@&R(|NpO!97d>1R@I#JG)qN2!=es4RDd#J44OKRH zsODwa4n(Sza6g(AbWv>HKyb=#1Lre~M7sm^Wx+l22EjUbWP~q1y$9xfzUWFB&9gi2rnJxGWtbS~*SwWf1Yqb*${^i)lMZZgsJq)%Q15vrm6!Hmo zbj$<&K@r=XEMYh_v{{wG;tp(nV#m?(>hVGNAi8w ze13dgE}u8rqG?l22a$WiR@g*ubi8iNrRd4U2IB zOvMSYaQg!wMD85@M#AqO3f-F9C36LzwMyu~x#o-i_!`muX+A%tCdYVeKA(8?8r-U5 zt!_tCnQBptDDDSZ{T-5RWidvm4>DFrR>Qc6`$+cXVo`oCd<_=@wN=ddPzcJ?Q%CA| z#Eo!9!Z_W7oW|A zF5@lKrY(_dJLD31WlUF5_uhrBy$z6Vq4f5sMp6sS2Y1QmqH6|2k95Yya|ijy$y_|| z!|TVoNb~svbR^d7Bci#T)qMVLf${mX%tk+&HyEA@K7Wrl0NQ)-Y*D?s@lZH6IvrQ= zL^6$C$=uHzcWh@hH4U8q5pk*Ho^2BZ#MF7{g zH)Mzg{({Eay6u}UW^jG;iPq@yOSU3XARSS=O{_^`)}2s$IXWjqF9{N3Naf$Z`tccl4?zx)#1i|)$BwF=#iLkMPGR4HgyZuUL%4c2pf7@5rEXTiFhLe}Rgi-L?En?v207x-d;2WfTH7b!p88Ffl7GCRjk5>GUNQL2L-c3ygVItq4@CI z+d05yQXZ9|tyznP$7DW(`FIL^!-0%}E4OzKu@e9K^($E^iF;DPC&9|#?)EL{D1>fL z%UcfPF{e4WEyzG?FRr*(W>{q3;4m6BPv{H;+4P5R$FWhT9rS2-efiZ1CBArknoX=)K;W)HOdwnl4uy9QfW6N`^nKwKXgA^yTdEqmZrK1O*$aEFW zQSyE4?~b?z9^=CyVLDOH7I9lc$2)4$9_Q%k^WytR;@rHoVAYiL27=bMkC$LA!@>{Y z!}SOb0>WYHPfL>Z9O0-sx07T#>Bo?jA1(P~lT%|i&z6sb{129VE`AndlgNWyA-g&U z7%hy>R9uG;x@TpKy?92U2mKREI1HsTkqdS!h*(_VkQ|J;fUncb0i2xo)QOl(z;aPP zO>|v!qI!bh!T^vkT$IW)lhzBieEDF31@8KKAbnGjw+hY!3#n{rKi%BYUc; z{xlUb1_LfgzP++lB~P9?-*mE|q>}s??R7Cpxwlns8KdiTV4La&7P)$UHC%E;JMtd; z^7_*pK75?VI)2;q4T{WXpLy|ltz9W1$nEe1A2uAwAQxd2JWOUdV&waSo;ZZVhqp5rkAkf_3?B_CJ|Fe5pa1e@5}?o2 zc%)!GAMWn%RHB=(tIkR2MiLbQ?7NvYQ>OMN)4fUkRFX~G8t+{ZHIv8{m z@luhF`rhxq|5Ok+I4=MAtLNYhy0w=&%f~by#j|?i`8)LkS<%5fEzvosIAm8Pc!-~_ zr}@0Y;O6tddDH21;@qh!9jyP#gJ&;JNT$Ah`ylxIcQQ#=Ka6F3z6-lvJ{}De3`jw8 zwkqPOcqlbzu>Wpu7J}2C(cc|0cTdiWo#Ti;o6mikQ)`K29FMbE{O9Sw-b>kjtni$K z!$g_qmn6Sn;$&I!WFTZ`u*1S`Y``$4W$7GE%LPwx=bkW(k%hsep1CjOWMqlgo%zAd zb(HD-o|Ne*_aA~pj%%F=@BeY9a=)jmL0%b3-lTjf0j~AB*E;Hkp8qRP7B0vhbsL09cfV=gQaOdf2mj zLJv`PNku$?FMJm$_uIf;#V-h2>{oyCN~}rBZzFW~p>Ss7xcv|R?YD7JjVc&Ef6uWd zpWhbh*si0=bgN^1Tj;nB#c0WbuX6q{TC+N2!;ud{$d}o?CP#{~C4y?}s-!sEU2!<- z_5-nC>;$5{bMdV4d4!f&U#oZk7XJg}&r^prjX{a|eB?{S z(D4e*d0ajp{cSO~8X;F&zV_nyUe%1IGSx*NnV3(qt_9ks#qZ*}p!M-pz)L^ei+OfC zQZlJMJ|E{k7Ieh({rXR3Fajl>h-Wk$Uc@_}Z>wPHQ!v+E&!OVG%e234r%X;D$D8zf zTYP@k_26Iq^FJf`j&0(YbQ7w=Ks*5VL2{v3BxZrCS>_oricRXAxirVpdOki&jDb4D zWO{6K5CpZ4$9)H^C88bs_RF7N!aBe{{o$KixWAbmJ)e*A<%^%5HMXoxu;^-4+yjj6eU` zA3vjYu-*9lB&T5+9)x}*i)?b?+qFwKfI)e^YNM`zILh@o6-;2RYAbfxn;-At+i$O_ zFFRdK3dT>8Z%{1%V0$`34~tIMw8!xH$#}7GT=nv6V2rI?0C*~N0B!#B&P(uUJ(t%< z?$sB3;_u)5E|vVde%t1A^sRiLbM$)y=zQ4&&ojxB1_t{An%#vor9<#e;x_Y^3{|vL zR=rN1tgOzcZVMABBc`ijsETOf=cIoMm#1IRxzOQJClj9R3aqe-J9~-$K3;z>4DnBJ zcQX?2%WFhY0N1yFfa$ygub%%pBk+@I+7K_WX;7sC2B5dnUQ5x|-&e0o4?$&>mnSF1 z{no0MFQ47MLsn>#L7-K2>U2d33hu!}FqbKn_oDmlD4qT_Zb^@7B7~w8F{H+1y4YKx zLfW>63Fn#XsV9}Xc&%G}Iw<5bw$VGR_WNzlp=~`^p8l6ALbg+>OP)*ZBqi1>%N0M7 zP01Vxtp1(`O(mv@(ekyUb&(FmevQ{2NUb3aJ3rk{lp$C_EM?C~S)z!Vb{vaZ@Dxex z!ru_b9wcw90N?lk4c74Z{eTp^2iE8{!Ag@~vnx#+Poq~fSm_O?b%MPGD}5>TKKxxm z0JFk(_VES}Zv^IT8^-cID|eXG0TT#akv0Fl%(qCN&j$W-mQ609b;s6(zqXZ%ZPI~( zI(asZ*KRP#X&(^B%4w)8ztnh?#cQka2&_g3e#FCI6OvzAfl=zV0p+ z$+}Q|!ZdF}$QVQGA-_HzB=)@h`9NEWtEUJ9nJ}QQY=~bQlILhBq94mme1%<9V&P zCX2UjiM6tVEaWTB!B>3B9^uAyo0uY^Sxy)xx#7)c<2F`;-ShdSt!SX?DkJ{d_9hrE7vd{GE z(gP|#sm3xspXK!9ntXodJX?AWb-2}4mu@aowWcbq<7HrqE2w;yknU>PqYXCRZ3NA0 zB!!|l`9GWP__Xe|*IK&r#@U{Nl2JR$(+4owB7ZB69Z^AsLien=@0D_m$pmK9Rgs7E zG0PWKGkoT5mc8=4V!P*J5NcL6y=?1UGV^QR(V^yj*=rU|pjhwNCOjaLHPbvjQda^f7BBAY!OWsF^uG6PXEZUY? zUjl{yr4 zO=Q9CmZfr#7_a#I`Lk2;+on5u|KYB*e->25QEC>R%fM+;F+qH%+wIA~l%?dpLq--} zJ`ioiDhIf9;_g}fexLd(2z-?!3bbR(lLf0*oT&d6xDB~tzO_-9_ zIAXrye{{T+^ijAi)@u(y28bHF)}AVF`v7u7i^(7FU==n?oWw-@Wx)bcd1rv)*A`34m)T zRu^Tt=Y#Wsf zbK_~p!m=^i9GC=^<091D!D^p+EJYEN(jLs>hwIb?88C%1ay}2}KEm9N2K#nzG@mPU z-ohq*sKeOR`a>)2DJjlO&asMst%zhoqmYEXMmkYZa;B0=!=g7l%I?UhkHvK)5hRqdcay0&Oo&`^)0Z5jJ)I}hJ`sRz~yL?xHiXWB)SKy9$(3N%qCca3$)S`BTDmXSOX#~FGhl!4d6b(9} zpO%@yXh&|H7~SpJg+wdtx`lX-VW4;#Kbf1@-&jc#d)XJChki>BdxyX=5~#7|`_*!X z63FdhH5iY%nZTkntWfClGkH$iN|fu6g(TZ|0iJRoXTZue1+6P*0?jSCTaTs}V^x32 zT*0n#JPTM=moho$EYxqT!y7k4*FJJ0c`Cnp`yRLH}_qR9P-KPPiPuJ(_du%{~yOBGh$ z4<`3nii>24>zj!=io0FVsVwR6UI%!#*yc*>ge)r`)7Uk?xpwl&8o;}CtlaJk)U{TI z&%e8$f=(&K@%mJB6zUh0H*~+UV5ws>;`1eEW{GjkVml&=hZd9LX+=MwonhO{D{qrd z8%g1Zr`tu)r@?_DP}~`lwm9gaMK+lHBWtr|Lzt~7k%y6$$UV14hzK432y($j?t@hX zNv%mmNt;dhGs48juqjuuRX)E2p2yap`Gr#eUj6-JJPCj8S?9idzEvA$H@r#T=HTN z`->yyNPl*ucR)|hPX(#94+xVAai?#VB?>Is2CG5mP**xjeQ2n=S+*^c6wtQ~e&+s| z+Ah$txoi$=KYoFB&>MIlImmS57(9&TYWHTt=kE(P<@04gu6#}UPFoeMR?2C`eXQtD zD(K!8;a3Ae$Yb*b<2uTocb#=Z$|G4}M)L8?Z4T5kDKDg=IB;EH(~!59oJ;C`knd|* ztc$AP2aCC~kICki^A|trbhcb@jLS7NREb;Zcmd+1OZeloP2CubHP*G;^_8whW&2X| zDNt?N^wH2-7|DmtQZgi-bNDe&nj`IFNIg0;`9AQ1dFNa%OK0=_qz_gKNmin#kAQ@e`!5EeO(J< z*D&w^^+Trv+XSu&xO+KXGw_2_`HcPE5eu##6nE5$Xk88CH5P5+It%1BELG?&m)J;c22lD6R4eDor`V*`s2hz&_cC71 z?g$yvsTYIKAm*KR0h2sw@T72iJNr)j`d_5q`(OXB{>z7|7RH^92mkUv|DOv5Y7D>q=D($Y_`-6U3W&IW_!Ph075DbP z```R;q1W#T@@)bC`~SoLQ8?%CGhfAp`RWBcfBu{T_Qs=IxW4%$gH6ODF`L7a1SvSSUFs3QVfk>& z<6T7WuHVu7xM2Rpzj!T3k!`DotKltNl^j?N-|-=I>Jv5?Ac5PX$HtI`GD2}Kdp&^R zxtwd~7elzZq8m->FpOQI6k_ZiHNaXqog9eK3{TJ;H?!FJC^RKu0v*-o5=k zcBuFJomelB#6N&OskZtRow4W7t-{&xx!=AM2Dl1V3Z~`j zw9}2i_6}GMi`$zB88MwM_H?9X!F@p@&5F;$?Q%GIRwURZDYm6ij>O+xvDfgO-k@7D zw*)cAX8@1f)2&@yoCxhbUFkE#;sBu}uMvyfGQucc3vHGKh^0=fcc^D#Ae9TfPC|}j zGSZzOsia>E*TxCGk9N?r=T`tMA;pnoJUNqzEx0Bip%#Vz|%%Pk!zpkQ@5; zn=!q{`~Jl*PoUGyI^pp7y?-}@+nYuFx31QCb=iRzuezio-`vdM#~-E#<;cdS&ZZnb zz4KKUhn0(->NLoLr(uX+c3*!!$fBDb9 zAf6uO`G5WY`Mv0etkW5tv(t6V+J|6jo?MCzLWavO<`5q)vof_E~hgBFK=#VlXG4(C$ZO`&Yy>&gP5wkDk{N zcJF3kGTY?y^FaA`)O~&zniE~$% zmtvi;l>czO)(bTjPS2$ewA-&fuF6m3xgGfFPk$N*nXO8CK|QO(`XtY(-KvrAA@wIH#n~_Tv|@c)*|h`RhU(F`@8p{{P>>VkY%K!{_e@ zHs$lN;0fwADCHM|JDu$)7=}0j($AL!+>4{o{z5%$SD23d*fcnO*(V!Lw??9#9`6cn znvy(H{aX1wjG|4Kl}V^!3#U<$^W{T&dbLeuFdFchfE~SW^F;qjeh02!14EhKIk3A!dR9356iSF z@8@6pdcyv;XT^brYx2x5Ry9RkVkrE`*uY3|YzsCiPG9ujf7VqpCY`Lr;O@hi{7Zo) zzN=%hS`@OSd_Ho}f|qbFWszqcmW8~=Xgn7_G{r$z@U$c0&v^Hv^l7-Ruocg&r9KV( z$nDq^LzV}|9u1XDz(D@VGMTUjNTzl>P=8nU)$OY6-m+JwOP z-icVl?r-ZAV8Hu7JMY4u{rTr`es%$#uw|{lhI|?iaw@*ib>H8Ah%Y)&G90PI*RRfm z9p*v+i_+_y2%E|G?YIDuJcZy4Z)KJzs@vG!-gy|u$6(RE#bP^2Hje>}r$e7f8A@aH z&~7@1dgm7N?#1g9c*akbAINJYi!<149wV2h)~BYxZ(z**Vnw`wol3C%@!R)>q+MLY zzxv55A-DF2Penfemw);kY$0bbF8;6o-H!!72KjA&cN5zOKl!5zxOy>o^bJO+aJMju z<&JfNH=RvkUx7m-jva4__o>3B@%g9=cPS@jJs|g`fr+-dm@fLDAW&hED!)2fr{qX9t^yz0_TTGrCP3vl?{IL+rO9I zJ~8KCU&&*10e-HIpP^m0lsiPfmbXh zgQo_R=A-l*o>x6FF{m=CNS?GxlsuU&od^mJJWi$xY6NIHwiMgynF0@&YcOeO^#FS+1>hfeDnDagGKnItvPmj5a=a2tU62T|z1eA=~fw zV0bbVr1P}W;S#7Q3jF*`w0$0+B2?33wY(8%=1G6=>Sll+w$p4@n)vWwjQ3V@vi@-9#4#x-yO;$zcr~ z(;&`4(=zcbvLn9PmLN&xbu{}Gqn69qS9CD_5A6MEuq{h=9)_)~X^&^V^YrGSU%%Hg z2m&BPiUdgk1Sy7SNv14^EL(Os6n2Dv=nunogdF~1`=7&hgnu|3R)p;zrbJRQ2#F9# z0t5*((B0_n*8|@C-hIQJ@0rh@cU3Ca%FL>)s;s@M_H@p<@2q>zIeVxfD~FY9eQWZ( zJWogGSZ&b3^<_Io6J>PK>vn-diqDO0q^hz^R(VF_GLMps+&bfqdIyt@fih#S29Iq{ z_4718duN$M%5o3o@EGsskbMrlH^R!u+SJM2dFpg-xQ8*e1P?E`Uv<(BlcF%$q0jIT zE{wFj;5=?AwDuGea8`-=PBKE;_zyoD^C=y(!BT%JU5BM#Q?_}BO$DsSda~&`mu?AY z9bD0rNW~+`uNDV-&7Z}MxRM3=Dg6`wKL4b64W%*Zd-Jcn|@o7#B%%w(^v0Bt~$zexJ|U3Y>k%#)zW z6ltF0u=5*4#>>qUq-^!~vd-4HO(%R`&r_}(0POdj)e+i$t%}EIPEc$|uB+0z2B+XG zmt{7r429>F@iQf#r%{S$j>wT*y{4cLAy>#kp;)a$;!JFz3DD-5!= zhBwjC!o&-hBb`S}%jT%(2Oh|Lu`Z0XpC4xm7uUy4xCZVSE=%cMoDwtYnXf+ANe|6y zRS|M4PZKt&$uVJ29bz5hadD-0=jX1)z*_M=`#HYG{d?Meti@=S`3$uS*IPiqAd<;#F-d>Qb3 z&J$ge0i4qKvKhWv0Zrf=<=d6u;Zyr`QS;5v!*b9XOa3x7H$qDVA_^N^wZf8a1*99W z&|S2`k$ko5p(Orus{EHt9}{L7HyzNY?NS`3US>AR;Q3q$$c~%u)3_~DIyA;{IZQuR zA)CAq4^cc}No$K4zZXRs%btYi0~FXin8b%j$9AC7Joi%tEa@? zv*i1zzh@QCj|%v)Ida7^Qgt%z=se>CBz0h?v~SC74ahzVqrC@XY3lXB8jPRy|C+Y} zl<+{n5>48FE3H#Vbhiru5W<>lzNlm;=2cr9>7{> zO(;5}IKv1s^PS6=WU#0>ba!tThJzuUchc!f12qqz-Uukm4Ht&&(P)sm(3Z8c0HOp_Wf}&AkNOLrJ1j+$X2_pzS z$hkYea^Wy$m26_L;vA6a5R>{G&K}9^Y5C8s&c#b499`tyOo63Ty4{vwfKLyojJSO! zq61=`GV#kyd}So)UcV1x#ef@S)BzYe{LZr9>VqIgSf^R zQ6RpDfLxS2-*Ja=QUO~AHhg4!6wI22+5QO(6zdi%Q_M;@W>HiOOhw`3Yjc(!CuSO5 zSF~WTt3tIEhcT~XRtL7KRdMC>D4xlolvDdNM}|?Us9#fumssNyiAhIj?&jMOj?DWo zs&bn?7c5}J*`~ABR-W~FR?HaxxIunzM2B>$%wgeaqhZ2da2n!gM=y$G2BC}V$F zIXTQkl@tBX;VP7c8-~$bv`;y`K8GztDpoV6Ju|Rn3nam{K%+sdo-5r zSfSX1kncxouF&UP0%fTGNf3?|HV89pqYR3Cqb3Yir;)Xg404cU3!h^)KXYW2iL+{Q zMN0G`24QAj<}?@BY$G5h-gqR9ro&!DnHITPdX8&rhje7sWcn!Da$98sU>Z%I*0+`w zc;wJJKv`p~qGz&!FVpC(ZePXv#_Y0DPP}o_az-KTB92xXE@krSx0UE|jOi#kD3`0G4>?c*#BjzC;kTdO= z^F*58&j6`W-)kAqoTJnQO8Mjl$_^HOlDnpX-I|0~iIfG-7Q{=p1ScgUqYlqA_<&3z zq4mf#Hp7goX@@;r|DA3>xqrp+jTlcbhiLlAIt#ySU(z0vTr#lw)E?ilV`P+>{bUFO z!MA9fjLTpZ0H&;}SdEgae(eh!z1tbljoH`%k2|UM$On?o6t@)?OKA+g7{8x}`z(^q zO4VsfsHs^0Y2f*1iAYuyGV3tJ^%W^Tmh8*1*TAGn!lhF}R6$-cgS}U|_ei^zT6ZwL z8r`!_EY^XQP4O(?fo9Q-qTwl2y?M;<%UWp07&I);7Pq#^gwKZFEbYchp5T!+VeULM z51#L69e_L5&u49=TVj2qUXD&ySw7^72f{?pAy4F-S;)lmOB5Vg$ZWF)uNK;o^=i?) z-vw(8b7jb)X~UH*7Nm|RMHv&zgbX%l+$>INQ(;t@rO}{e7d1bOj$5|>Lahy8k;`s3bWGlv0 zQheoK;m+rLYfbcH$YqNpV>U}R?w)57h9=iv#)MDxsHOJ5TXII+g>@YA1* zv@1xZA67w9FSYOc^I$Dys7QvCm~bR9M$b&ymL_w46aQC}MYkK*^l+?#&{%@WFALAd zin=62p)BPlSPl8KL~<{lHHU_69q52$+Lw*BLj8yS8K5|c+8f8nr_|a46IVi<+hs<3 zlSYO-r2UrqY{_%dSGX+sV~qGzJbye&EN$3+OuR)tK9q1(Je8~VFe|atE63QA%)TZI z15N~zkKLtcD5-wcEK((3qwmE&(5Tm?&y1Leoz5_pkuec`J!pU@Fa8))@sFkxos1Lw)_h#`|! z?hb{?I88g#oEy_ZWKRZ#`)AqnZSA00q5PpnBdOHVSYrR2GLDM;B&hqO$NR2RxL$|- zk&p`=;>G582AG6WHNu_X{I*bmF%`A(6* zvP3GnydLu+J6ai^ku1JN{`sNW7yfbB!tcp{9pdB|95!r{SQe1{q5iWr^GBVIP-7(jei6F z{IC247z<|l@bO1vd7;2i%sR=@@g#)flYLT_!U7E($7Q3v6OY|^JQm9AJ!Q*aqAg8W zYi*Mv+iY&bm7O~@w)Y?3gQL#7y+6z7UK^nVb82e+WN+{6n zK0Sh?qYh}rNmhA)<&(G%W;_jeEp{OFJ)d5qz&I30xvqjch=wpP;dLmu%|iX*NCtJE z1FHEx^;Jr6JEPzQW(z^(G&`R#Tgh;^I_(@4>*JFn7^73%gyTj+IYAyjOK+m{-5amH zPJAC7rKc(7$d`Zq&UP4hSULLg)|xcJ ziz_{Nd}Ix_EJHo9|6<@u5kERP8BM*0sqxk8F8IFWu|eRhgwF|429EZnOc7w8h@osZ z>$&5Q({*~iN&)QnEck;o97X~ZIv+f28HD?WtzS*Taqsu#oSKyoEZDf@fQ?C<9EkPV zlZK;kAoj6Ao(H%!v0iGcO;YeIQ8;AuV-l|8_01Y=UkdVo29qFNr`IQ*I}5o&PVom) zX2xrn@^E|`tWw`-C}0WGrF55K1X~6*f|}xmNsF-`{irE;mPfjUNeD3c0^#(~(1)@s zbj0xobUyBX>ua0ja5oa`Y$$X+hm~_|C9FG^W#ndtI@$igehhxw3^h#2)jIn<9^2s~ z;=Aae60Ql}xYMQUlgz)*Nha{T2-Y_DU~6kr=rt{6o=9IG&;Q{4&j{thNBGL?&r?F2 zRTIj|bxI__V8{m0Wj(kcCD)7ba4a(MJnIiDQ|%pebD!h%>vd=3-zYl?qx9WR_F`~d z%SOIXP1ZK^YXrrCqh00bBZhzLQgY1UE-$tOgOne?^{v}b3tT#;CuBsd?ivj_?Cy4i z-gg{7(>bz#7E&Od69Z`S`bJ3mepSM~{^gg}WwHdp2i|}8Q1G;LMEy)uAEqpy42b z4?jF2o{GF4oiOkySLi^mzO)8@r$(Db*<{+i(I9?Zhqme|PWu$?IUw~QGA0S*c3<#9 z8F0A@;9@f2xUX*sy=`M!hB&crj(qUOzBE{sC@YD0$r|4vV^zc=7&nHH^*Td6;^?FU zt0J7g&3Zk)yPZydT*?w+Vx4X;|0JcBBqy9T8*ERqlwk0l+fe@IQs*z@V2X!m>^9qm zS_7*`=CpO82S$m`%@dioCiLGR9ONv(=uqY<-=5JZB3+VBjnFuXx{|tvn13O6$%*%i zFYZgDEr)83vM7Vq6TRK*2U7zmeIbMT%A!6JJko~MH5xVe&R3tK*Qi5>mSa$s`@s)B zON_6o?{J^|`YX4fE^reZyPtmWg;+xadah4C*@e4zcWKOSUE72!n{9es3leO3BybTO zP>#u`d}q;_$TJwc(lbmVIj9n@KVN&!%9^f=d2xDp{@EhJ^LG`V&$V-uT<$et3u(7o zLQa{yHxTA18 z^;%Bn#sI_!?i}Ky_W2Nnrn-Q-@12fxKu(XP^Szr=L-8 z_^{co6YxCjkKxh5G0aaKo<2Q^xyO~uYeJWq&8-r7yq~L}i@}*)zF8__zPbmcOV9~x4A zI9=j)tYv{zBtu4M#~a9f!HpbYU$N^Bjd~;gc(f~GEjg5N*2tIP)DyP$=SL3 zCE#?0od9faZNN9b@jBi6=%@?7`#V2T_`0xTT)GU`u3jZP@Xnomc=Y%ojddF4ntjY_ zzO-weCXsAE%#S1DA+LVr2E6>*_1t&ZKgY*MLYI&>8^kCBUnOA^d&>U4)@RKAjU$@k(MJjyTI^Y3=PxdU|`2-5St%$WkM}aFr=Cou$osKY~u>K*mGoX ziDW~DFPe~(5Bi6o=WX4u(O=nbeK;3{IM}EbzwP%2R_q%6=UlZ0hk@V~&TR5M`Xe;Z zS72U#ra`MTBeRt#4e5w;b0@Ze!s0KmW<2 z_+t~#f8&kID)>^^ZU5{s932km^%tKW!u`(Qaoo=ietv3% zK19A7`(f&3=ql_9r{E+!AJ=Dtij|oCc)I!0W3CzV(hprXx6`xlchKx!O!0P!wJf_bjG-G?X@_ICo=ty>gWJ+pIWlsx(Zh= zy-xSigwN9H;b!$7Sp0#L`@e`Vn`s2n=*a(75`iPE=sOl4GY|1>dZf%< zlHbWEaTc}(lOYGipCqe`6KI`0xBeHmYK3C(`Iy*Tbza_}bhZ>RDcmw8_{z^t+aFj5 z$xm*_>~22UieZsL<$HjqPb7w~Hvx z4?IizG1q~fVv`g%;;A6V9F>DvgC-YBstHX0Vs`eptQDmBYyQ(L&DU37N}sVDRx-I0 z7S%)vO=`;;P7$l`lw=R(EVN@gjOD&Um+gi*dym(8yzExt%n#O;dZJ{#~%` zXr~2~>A2Dx7}=?rbiC!WI$4~(`4{V&rj5-2;B}LE1xHWPM==qW!(xogdT-(*dFM;K zf-^0%Ju_dN{dJw~U#i$KVZ)1!7)UcrHhnwC;CeAqU~UmCYwpie9*2;RhkEX?f2qJxb`XzNMQjcVODuD+okzBRW9e# zSy;Kzoqdh62|R9ft8caId}?o<5}tn+DZ%r3>Ql6(G1XDi`)P6|%^SO*6PWlI( zG2`mh^L9SZ{9PvTqUSF9R7z?R=PF;ZHO7|EFTztvdC`F}(tRc{1aE>4Y?FH{P5@b% z$(8fW9P}moFWB%+^jXP&%JT0n@ccQcI-Xzps__&$J9|N_NAbz>DmMYG1y8ZXnq~73 zv4keeew)MxxbaisS`a4*U&Y)|TH6_770ZoV?-3}3VLADaYVEKzjVc)pWLVwfizo-farvT!;{ zCsZIa@F9Z(yGsa~G$}JCT=72YZhA0<)l+anx*cf$K))vRSHfTywEa#DD67os&d&a9 zBiS$c&k1w%Wa2LLcXP?^og5gO_-3(tFrKcYHSH1w#tlkt;9=5uf9m`~JB?S6_>FAf z>iSX6hBiS+KXarQOpz>6Qidpfw?){Y=LI$yOf_F5Jnw9bBeU5y6qzjy!vZ{C@zm_| zpdSdD2Atwz(~F^UMqh)@%lcUyrF1ksRBCzJ@ceAA<=56}?;}$Lp9-g&A1%v2KXnuH zFX-`L6vxtR)yP*^22V=A|uQ6ll{rb z5{ultm+W;6_`q5uYVf)SvCL6wf$ zn6b>ajS1p8z3vHBr^F0*>uYQD6!;7nKq)I!^x^3ENM_xv)u3LlCk7ncXh!)AO8(u_Zv%OM{}aay3jOW{!IV_8U2A-(5v#0exp-3ZBI2DR;{Tzl07lgbjB#M*K3{o#$?A~NII7P75qK37A`mh>f_#ow zfJ%be_oMu{#@V<@l#vHV~ZbK6IlU0>|=qbMhzk`n|# z?4&V|!cVKb;<;4~^;Vn*wA{f`@6ogoslAi-WP^vEE{Sm;3Y?CG3Wl(^NQb_odg}V# zLib<7^Dqfo%$5?v9%sqDvB0F~Cwog}Dsj##<%-jkVOBxRkkzfEbY61u<;<`GC;Zn@ zvgfRJg;cumny?i8hiah5z2OY1B1;D=HdQM>Z9y8ae` z=X3D^RzIVi)OBH{UBy=?mE*kRDvEGYk_VYIgDgN$nV9ic<62q{D`0G->&ot5&OGJH zmc;-jxu_M%IAzEtYuXyJO8NJ!leu4&BCf_SVqk1(H4Ll8Go2yp9Qs@HA;xW`*s@kyCUl6&Q(+iR(rPd<@`dNl-$_Ywu+?tPxUQJ3E$Vd{QD~X6s@43J;r~q8LT0iV zaX$w6tUf8zbJJr>!HdTW?U+kpbV$z_*|C1C{rgc3eWc`Vo&YoP89Q1!T~g2 zDd8(%;`w;LSZs6C^0FDwP-Y33$LH^?(0GCX=XhxRm?O37J99<&VcT z7fBx-zFgfOFD;(cu(*gZ2r~?O{;!y;S>Bele4-gZ>`m z3op;a^#_S5lPuAQtQV_eUr$i zGu%teON4T0enwKx3k#~iE^5!g*5ZDR7@M{MYWX~MkBawW1@CgBme0_!64LrD=lMO0 z8NaRPvh*CVACv5nXN4|;CokxNCJ|#fWq%gJP3rDvpTpZf|G8Zc1j#_KD%J6UWI*d{ zE%+b&JHJLjlvM?I3`YFV|Kab^hKbI3fBQFo6>i_WvQP;$k{%(kAo%g!kKp+Dn3QL1 zv#%WNe({%{lbe@-4!-+GpGaejLHOKX-2ViA=l8!)jy{(Fz%^UwF_ zd4Bu9{wMG||Ls2|CxE~DYyUd@t-tvjlmRBbPAYJXL94ML$4}hgxO+$~j**xOgqz_j zFTMrO-+rAo;)jp#!ax6)|CoY0QAlhy<@g}b-|6*p=i|^dG0>BYFbq2V9-MVT!R*?# zHMo4aMZG1nSlTj50vzn2!*{w*(aGZOCl5h8-hAct7b;beD@Dt;u%ok+_}6k;fDeMo zHkOgb`GbMbSVa|sC7&GaLU+`sc^2`-2$fN+F5m?n@P+|hA7}e>n>RpDHl9@3u^Hv?#F|DC+YMJjeiS<{j&n7GK(}X693Coh}stP`|ARJ)H zdeJ9>wT$sI%z9N5P#qi5Tnhr1ezG(Y%Iu^nyz@}6--qs?Ki?7*W46|A!^_XVr~o90 z(IZ`LYte-LH5e|YPjLNDbDBrvzUxUtKhEv3*eCI`E0?cJg+c6#z5b`rJ3N6WyC?D1 zG!GBKd*Ock=<%^~cm$PvU_2eIE=hR3R#1aRGueMfL)@mn@g60ve?%3 zIyBe($u=Dv`T{T)Kc%EDpo|g6Vy*Yn7sGdf=Tp{oT#G}Lmqv15M?To?cVS+_dvv?W zbz03v&LM3Tg!^<;$UMw+^alwj)vh<8e<1dWVN?w0iuu|R{qfPm&y}+U!1|WF3WB40 zu6m*`J)OnAqMU^Hz{E40dzI%t&Y4S>n(*g-`FS`#JcO~}qlG}fVETPACS$Sw_1=j4 zIG*b{vf9FT|L9{1nnW|!pX`2`cf1qt-}>53*xqSY)_Z56fQxy`H|X_9{5x@QPMt-` za5*ITcn!3_BWLHIIpWrHuseASae5v+ohHADx%-RHf#*w?Vpqwei06E9?}^xR#^i8O zrivEsPu*kbNOk#A9lrYJrgAD}vf`j_yU;Ov-6}fJd{mUcl=NWyNPypd&A002ZOpl{_xmvfRPtK8Q{jvCTwg<`GOonW@PV}1$eF1 zD9pZUBW%UdNvHJjKsZl8`YfJ{iNJwe)`<0c<;sqbvl`M-&2_B7 zgVV^wVhJOzo8QXM@V>kIox&{4bfh@u@URPe`-h3nZY&c0j1tdRa!}2KS6|sQvaXB0 z1M@bQa@6DSr$6{i{FT9@-}vS&!5158o-JO7b;Km)Yp*YG>2NZ`^c^q8=|`c!H^aP+ zEHlN|^h3fgeC-ALi!$i7E@@Iwd#g&)o%7lWK*np%ydjo zQZE$0o_p>F$waFlnFuTr*hFvXQaL*6@9&?8IW(S#=VL!$l1<;kJ^h%@Dcd&GQQKmk z;YDzLT)VUeM;)oh7Roo`;+<|{H);!PYtc@XxX#P$b?tUtVTxSX`}$CYieybq*wu)u z4hH41x@Ve1M>UKjv3>E6!(?F98w;M^lenypB?G;481aO4k~ZN1(hWI)Reo8cd*qPQ_%8PxhXYodBsW#u}aC zS0{n$?Mj`C+gI$4%e(+dUH7KA9 zJl}y^H!s6_yCEHA#ZTytA@o8qr$e#kRMIJwbGsv$wc-ZyGyI{~#!=cX%Qx4!|@qDB};7CHO zQt)^>5VcnK$e)1C;CpBiVkRfY(x#5KwCmT=W+iQoYpn?m^(&@{c>WE6uLL0t7GV$t z*U;z6L|u#ubELi(|JrLC&}g)BJxbSgSA$I;Z+`jKt76VL@cH8>@WJ~>gc}C_^nDih zg3XOhVOK#Xhe`8-EyWjV(L^?nVKuuI`a=x|T?(Awd^MYTKkP`mf)HcYYFh#W^~HW| zZ#Vh?RS9atU`$E^M;L7J!-!c8?Ts~j0j=#mJpD-6%R}jJQ}-p-N`5q|NXx1T?}_%S zMbJR^En;S205w-*6Jn2XJN>_V3Ss@<{sUi~051S1-fbT7Bir8~MuDz9s#M5&L}m2los0 zd?cLPFTH-5_&2ikPe0y+r;oezJoi37f(Q3xaieQD*5KxyjY?|={aS03Ajmi;CpZ+4 zI4nF!`nzWHKo*zj2mSLWLLyISaj;ZYB?`D@|)Lb)ll;Q1eYd>?c& z(l=gzu~fITnn4^0*y#*l5i}IS-B9JpMV=6-m=0g?3B--C<-`71AfMH6hi*3{>|lTY zKwx!)SZB=hQ%n#xqIK*0^U1uJ)axs+Js11g;`8k6+@f{nau=F@9i5C|o^*87Prhr_ zfk$CzJx5ljNFtb-wCO`Z*WbW|idUSm>r3lz?VL&*)sM%6pYE(g*8Qq}x0ALgV8`D2#=e5wua zN3Jn}J=qFFI?7+ZM#k;Iots}1#@c`kUGIGOM{_A5S}-Q3E=Q$Z1BjgqrJt z8M9u7TPl*4yIt&oT6}!PIhW(8MeO%WMr!vk-WkMGe@b1;di@13ACjv|vIUuKEar+6 z4umfcWd*YMV^zIpu1vt`zuEgR<6gOMmoNsWzN}fkNANMxj)LGgo2au%Sq}B4n0GQ$ zw&Aujs*_3vfJcsC4jHF8XEC3*>B4xA(^#fT;(}+5N#vz~ z^mkeUNo6cvcpKDTJ-sX5WG1nw=p2?mMq(?LOK_RhIiL7PR=ka(sM>Vl$<6S(8p}z^ z?fTa$rlGRDW# z1-8|edjLZxIJ4|VJqNdaV?L#t!!e3cX0UkXYLi-#YEAC%^6Av2i)VvaS-!9E)C{90 zxz%;%)-8(XsOEQU>VBiMAs6ZF`ZL@fwBgzb^U1p8api0Zl;s((70X8j(p+|bn<9GJ zPAj?`zVXx^P}UJ!AD<0QAJw#ZehNKi-locz)~z>7GtM*&QDi zOe%|d89bjb+NrvoB3AqXIRdz>;5gg0me~i>8z8fQ&mfaoWX=4wVIkPjvqWr$jwXB2 ztlg;2JrDfQR;*$svAyI;Nw6cEattew4GbB;at+&Mb5)`A=U`$)B}knhlOaq8|6JcC zc|#_QO^91A3p0K;jjW@ho`Di)O)ZZ90UlLqCkBv<*bO6_x0dhSItqlfWikH z9!-EDO7L1kT2*!IpbX`*|2xWuM0^|?LBATSUxojI_5&$Hk*=ney03-KtnR!7$_ixa zEsiZ!6xRt`L>G^JnFzzfN}i6K+ly|>ir}f3vaVN)5EE?TlbgNxnqj(d_30C)p?BrOf08roAkW4%4s=!$NYV*W6Y4JYgzNGt&BoEU+q`A z8mWyZXbggA%7bAwYlofY(_;WAlS$HDR(VsDNvzIKWyysTQ+s6Pz{&ZLKI6~Y|73qcc<0tPvnmfO~#@zHfgL1#bCl6EBs!v zxuj#Nyf1uC`Dh+;J=x2ATu$HB{>RLQ=Tm}@*)#*WWU~5ARbd>8JMkRrineZ$dq=tc zDaP}qJ*j*{irbUDUzy`fii+-Kd{7<#XR+O2(y2VQ-B-G_IywC@$^xc4SgqzkUGRD* zbmC;da}%G;H|?}M?t(nJmCi&<)MEos?jdvEo=w^$PJu3hCokwrPtsY!&RMM+dIdtm z!&qgQq0eLJ9o};2Q#wrxz^T<$A z&;cpL^&FZ~sVp;20S+oNh?Sn%38tm3a&%fs=dy?^wTDIj1=bIq+LupWlfmEb2t6Vv>|J<^d)B#ruyvD?o1Gq zxLz?ikO~@{F%k1@G;gPt;FD+&X9|cV-s)J|uz)=xP6$`}Qas&;F9~srK}LVBolw;$ z!k#NYHz$gN3OTdw@v9+n2BSnjJa$e){S{?i+_#EATix93bL+SG%y_OBNIk)x<&djN zb}~#89gAnl*j<%)?nQ>q>Aam}e98tuEw2qgd}r3Xu#{ZMRdDW<@U{{+a|^1nXqg4) z>b%QO`Bufw1NuW$iS>TPtS7C2czVN(_16sc#A&&*!~r7aOVR+!xntiCRFG(b5ltsE zSaM!@71;*q(9WC}Doxz@J(*&C=@j_;!br^r#MmGVVNrx@+yTG%o)>gJDW`bk*QLe` zZRb`{(JPa__9Q$aiW0e`GM;bnKq+6z2a0Bp@yhgphA5Uti~{mpB}JIk3KQ%qgX`M@ zO%-N7j>5EYneZVu3HV#);9JOMG05(X&mxgTpz(Z_)XZT##`8hx2ADVjhtpq01xkgX zQ5ygjKC!hEcrNIKF(VkNz_BWA0036tDXgzEw{y+%-Pa8eg zLz_)5-qRty#;7?e8Ky(7)^GjW{IvTa7OUbY~T_}Q4`o9Y#j5}X6=L{TOKHCB)?k;GbvbrQw* z#+0@^O2s4a6p&nX|D1onHG>FCo&eg1LbH)YihMCIT!1Yk4q#%%pCgWr`?$LxzNPh$ zD*RmQo3@Kp!pDrMME&SMTtUuOTObauRDqSG2N&57EMnz35=UmB;kn~CqGA#4zBf%kbFg0szXU%E6{-#GPbP5cf7(m&j{(Y=Xy>o zd(GmXFVC62O04{N3T8cV7)ahIzpmt(=5b=1q+NFZ{3`p0KGdPf%q13RG>z^XN!=2^ zD`W@Si7w|X#j7X6(vx3nz_5=c zfoEKqroq$*rb36JcR&0H-g*ChvVeuWYUN730dVN``|w}>li!g}wE$G1@pOqn&8v&Y zl27ZpV`$dv1l-F$$oC~yF8QDQhyND5{_3}=AO6?>+y6Zr9vv0lfj0H=CvJetfwzCwF>X7!4(lZ#0_VdqH~t5if&= z*sI(@th7CN@ECsd_Pb=%GL<}E^v9*`^>}W~lIb6_-Q2jk0grc&V#DgC?KXYBC@bWo ztDx=v=5s-O5IzG|9qV=Ta!U|+u(RC)KM-vlNrgVJOxxq5zSvtO&#l_dM!g12s1djB z4@LyOKI?>;j%ov$4X7+$)Dp5VQ`Vp%WyG7!8KEZD3I3QwvYL=vd;P`BLNsTZ09*Ak zyhK$_5i-mECTJoLc_Gajx<2QTofJ(9zKK% zsz?JZ`{8``{5VTl%@5$!8_&`B3FqFNCnRe7z6%rcSR1 zhX-T$@ckz_J*wIC;CV66Yz`Or$zV97tmk0W0bTgzUwMIEqmkiz-@PmNar&9i(d4IZ z-;=H(;vTQOdKs?YT$fA`Fao^v0}S{rzoZ-1u-Cns{xcf83P58eZL3-XwG_9{H5 zz2?K~Z*0aEaCgp%S?jIlR40`$hn6n!#}kD?qRzfn+mud%0a(&W0}vQxo5m{R51$;x>Q$BN;65FdI6kb8Ae1M7JMc*#oJ5}EiM8y}N*qPwsWt{r zV7PzbS6`I(60+)_eD_l!`^f}xeZ-|yW*W?}K2iP<&$4@b0KMpl8awK<7|-9?Xv1qS zT%~{wU+@{vl{%#}a_I+Y8FDf9F3BjC>?aMeU%QqHN+>7D3P3>pFd8l{n0!^_iEVdF z;rTUzVZCwdCF=X0&|CiKCm*UnkP!Bt+^6H2`0g9uzAo16a`F7Ju%#Uf9)Wl`Rx(9f z)1n+k@tL0NA@-zQ4|wdbRd0ACn;~JMvq3*Url!w=FLb)~wRK_dIZmxntm1a!=@=mr=1Vy9$Hx#5|ULDV>^{h)FZ4gLS%nt3Y#n zTmgG$66Z#~u6g}5!gVxF=Ej7y-QMt-6u9t_I^9GGb$8fOoUorILSC@eY*gY2?RH%` zb~AYE&R4{1pKN>Yy#F5T?H|&2w{G2ptCz2&&XY3h5$ryF60dQRVUGLo=*gksTra^OFC zJWc-voYOm(TVf8C$3ZY~^6ejfF8;1Y?pijUkG9e8yzvtG5uv_-A(6-9!`vAT8^SRk zC6_`OLD|u2L0u&<5&UsY*@BRNb%s-Yk!m$R-iL9%4F=_9Y~(Rmi9%xn_aE++J{RZP z!^bF(MUe4JO}DS%LV%9GC~x-!f>}!5mVzDHL2usNOnpNRFW-~fDXrbdwD2~ zJf!EBCB#pJTuUnuvF7Jm^!ixHO~<&uAlr%nN~j1{^2G%H>g~%isdwf(!U!6259Hn$ zX02vcjOU|IjKEKPr}UL;zEA#Mn3!-V#=o!pN3a0F`i5Ln7?9KHo(@*R;EUJZ*oc|3K%!tcVOz-J`MBnf4SNsTIZXbAds4T9otxG%@sQ@42d{nQ zc`^6fpn3Q*ZGur}m6?@Kk7U(MSLyu`6=%s3;tm6g&kT+o+OOuBdcDDb{6fkS+Rlzc zvA;z!@Pxq@$tj~@b)TN0xG&nPnmc}8cSQf=lj+y+m@5Oq6lOGyxEn#_hZiP~5=1^G zLuH>7+ojuHT&JNt_UQ4x_}K-**rIZ{x{XF+k9_CdyRpt6@$<(!P^bRJw{MV+8H(rl z$)DaQpS`MtU9d0k)WHxJkI+4pe?IB)+f8`mjcbBuc$vU41)$DK9QF5le3kyNZ$D;G zxB9{j1ECK&&mO;b6`qf(9{Lcy@Zv49U!b1z-9N1EpO1RuG`b|lnAVdR+x^3ym_t$_ z=o{F1t&V=b<<~Oq^_OdFrC26D(}y2@D)yCe>~Dh83^A0OH!s8X<~n`$#J%1n}lpz7hwPBWADfQf9RyPjX^EXn}#%gNYcg zyMiS9nl6GTFX&58x9+?JU)+70Di_WYa7Pv5ltBbfH<=$QBWSFgRyNp12!e%F;m#or zjn~l*4YL9ai!wGg8g+Q(r9TIn<)Xvv?vs5XB%LT+!QxnpV6I@MjYdN#OQVv^np;1@ ze&`KC2||mFq1%%cO{xW_E`SKLCMObZrFiE;_EFR5LfI+=Z5qP@zXr48`7;l=)} zTw?h+E_5Y-b(`CAiCmcEE2F#6j7il>xLIYzMA_^MP{pf&K8rDxb@R)pU{85y8LvI3 zvUL_H_n18X9KozWW%{-4NjNvqe=CX-B}ei;Zu~5dq~cRFPQrjI48&NCrpfF1qY$L4 zjh4&`OJ2NU8#JGz*AB8XbT$lgm!Y5-C#@`D#$R)4<4c*HDN1K#1nD$BceNar*>4yu z%;Bum?VSqGz%}11UjB1su8IGCc^E1ycs=QO7RxA$=dWyOS60_2IlTPwhIimM*=_y zKykk#w@5%-IuXvJ?h~NyGHWJG-5$zh&1`L|&}%$DW~ASF4qad0|J0@#V@CTJ>F-6= zlk%rB3K*eEvC&vw%g}wv(G?wND;P?o?mOG8Od%Hx7P=Rf8S*dtR>*))oy6u^V8-tY znvGKU(;4qdEz;-&EwM(RHYn14LF&)C;`J(sZqFm&h8~(f$P@?`AkNR~q+eAYDtjoa zrYGYOu`HL(Mr`^-$|ny~d5W*2rNYd;C(J3U96RSc*85tN z;!*bdGQCMo+7FmMC*ecSqKq?rZRI~-)D(&@mV3Wk-kHct+}K}$=0sT?YZ9S@yle3} zh!A6U*#w4A;kkM7PFT73nB?;;fxvR#7o3)|eJpp>(q!tfam?E!KAXbx(@&V^RmJ=l zhZO@r&>?^6ek^?YcZ-;>XN9J9XYqEpm=4hLNZD)aJtut#x4fEiUwsj)kq-(MrR^e6 zei5!#jJ}`((nBlxXf*d!#=s{Y<$Z$B6U9l1#*rOwFG+;wbBX7pD~I&w07DtE2=4PN z3YIrPOgQw*L#Cd@WN;+nS%Rz|yr3^V zp`*sUJ8BHNiGOH-L194}XQZUOs49rlE~7K%vf_p=jB2$SRX#%pTi?g(m?u(zO77H|#@hE}m_pH!sEyxy*JvreLSElSNVrTuG?2 zj;++>=>`7A!0FIZRmF3^oN0(>5pvHBacLw2R*^U6P$#agRicwp_hFL_8WY=KIR)n} zlY0P<%^#~7IElq`wGYVsr>H+{t;)uIu*^HT-Wm0Ck@I8L0FOsuQWVS>I8qr^BMx@Z z5S9nNENc|vk#^)*Gi@=1#Oz<@nRo_cv5~8sMP_-BGra9CjOKAFOwEtH)qNp!md1eT zUrT09xGHe{$Ff32LL8F}2Bu>`{7W6cc%lH5XwgDO;#u5_S3ncjXK7rycnszK$EV(p zXTAK4OEYpzg_c!|dC?>pDRnKzN@Y*iqKTYGtniqmy$MeZM^Yb-_yl=I zir`?t0n?4s43yk7eY#C*DGqY7?e)5zMSf6HAIX0nmjTbV?5h$NQo*kUS3=!^ zf-{(Om|!Ima4bD&MbAOS2u~vk2PJ01eo;YXp0oNkEQ*$?4KDNAXO7V6-@sQ9qp}CZ zoB^quLn=_6449BOT^jb>RW?cC1prdF&mTisV#i$Z0EP7~sF8Ey`70nE2Q$i@5FOa! z@8V;MPG<2nvd6^xHJ8|kqdXuSg(gUGl2e9W+ONe-@yr_+ikl0V@4VnD(*}ZTiS_)F z#VUK@G1 z)ITxtrm)u_qcpwS*y4OB;^vW`LPYZ#9qM$F>qS!nv2o=@8q$YV0#Pfkw?f$nEbUV= zZDxJbJ+X=x=MpQCLKvK7#_KShbXcuL$SlSMlILBWm>I+n}Bu6xIJZ^ zWiwm@GQpB1`h}JaQ>xIM+a}L#Q#QQ{3fo2P$Xst(fk)~Z1lfc~hg{j}pm32Aeq`YJsqc)_sEVY+X&mF= zekbkAlz7xGmnKdl(j8oIo%#A2`-Q4 zg9#6{BDx5kyr2tOAYs7MPv3b5KK}GG`JSput&S-j>~bi&9c6>S>HrX`a?LI&fwL-r zgTWB~n}7QEVQ=pV@iLc5kR6Q>@4WXZ1(~5h_0`v2unK5Z2sgl&UcLm+J%5GXd#(q6 z{n!3o!9K_ETfhAe;Sc`cCu9iu_{00~`KOQRnO=MC1NdM3$NzIU4GMxf{MEnw?^EVx zlTdK~|Ni~|8w^H$I8Bln0fM}+Bmj(CmtIs=JUQHZ@-Z3gaG#bXyVDyM7FpeYDg}vp zgBR{+SUOy1eK?D;eS)5ckg`+qfnYWBPINxf^cXkj)rh|_kO05sx)Zb*}49u3!p^a)#;z^npp(3TeZ9}hyyzW!#B+T-s~JhqW~iTwgkk4?ANR4?>ywu7*;-JSE^h{UDK|8%;Lz z<9rWPz%?4^x=xR(EaKYeux@-@D{8GoFU9@mr+@a2d@j+EufF^uY;JB$-REkxKVkg{20Vt3pQ!r)Ea5%j78TDr?v^p$ulQ{d-wO@?YDofGBfd&R@Yc2^@S`j8jaw_ z9WQ2|80B_Y_T)rYR*$_5U(SaO~u8VPQ)PmIK#B;@%_lF}m&&0)4 zjE>|!%!P5^m-!oLEjENqB7=4#=wi9F4Vy~A~l;OPshN?gdHC@)75CSY-_QwH^lcAczuq;s14l>`qX81_5R-iV;l zlCrmtEHC4%a@^@!hY9(`wQFl|`BEDWj}D|9YJkg*rHTsj=e2edM&l9m!s&Zr`gt7q z&Ufwzox~@{il6`NKJ4yw>GcQiJ%*3oe?q+exfizK&Yi8L1yCY?+TPft*P)PM4vvrI z7br&^*w1mcU}Y5W0Ghm+n-j>>2cqAzfG{4{2OFKZb%gB1oKPNG!%BFwl4~$jd2XagWDO zPGnoe>3h3RrNJ9yRaV>L>2|n~d7!ixI0e=Vz1y!h9K9?ikc2?VIGH1&xM$ z{;|LpzIga3ZeOcb2a7MU0L}-XGcsP@*%9|?&s6c;6Psz^wV=KI0^MgM`uqO=r!+4y zDa`tML-ZSmAN}bg!k+LL9Y|>sj_KV`PL$&e!1Ws~*xC*z8g*(72Ah}U0nLW9934Y6 z^{A8RGV878%A8a*A-?tAdxs$XiXC|C)+M;0gvJ8H!5<`V?14WF;8`Rs$7!ebZ-4un zf`6dFZVcc5!H;BxBGa)-%-xfd!KoX^(1HK?=dRMi?smu29(4H{4EjQTE>1+WEW*1z zd3rL@h>CL0(c!VcKD#mhoX_rAjb}{4^H)V758?d>pAoi$-1XJ#&y!q=9T@J*&OqJ- z)^-X!s3+wQopcTf_n2GPH{tR|J3fwn3q|Uv(}T{*E*<}5uLFArpU`~XSgXSuFWn?8 z1*^3CuAjTxB)PZ>;r*IIMnPjY&e7g*kilZ}G#HHO=R6a_+Xqi%uxz6yp8bye+!Jy! z>I9)0CynRhXH1Akw&co-l8YHR7S`a>)ywhx(VTrSj9_F;W|f|GE2+CHI`1e zr#G6QBOm&8fuU>F%;>*J@LR4}O#5mb0x?&)0J^*VAq@Ib_8AAlmerK68E=5kJ(xGx z5xL+~XD@z#Iog4BL>QwpJ(X00SrAeD&*bg=?V+(%c=1&UKjHSFrM3 z18PoYeTs4M*IRID{VIHR?>_waXMd(_>)fh;H)>6>Z+(rNqeDLwa~A^}9kCt<@WDrq z#r;*{-+>%zv~6nv4%g&Q-hG>@10ojE>q#t>_>|w04vOl1y&fos_6Qz7x(|<^?vi%D zwX+RZE?-V1t|&vzRvmux-~0v86R;@L{;Y)UdGoE?@WM;drjM8s>cML}8}y#=3C)+s zi?2F~GRvciFdtG7^ zI2BF=9v_{uP-^pEz_s^Ff9VxyHRSw3xvksV2OWb*`~7(Ur4jGx`3M9P?lTxk`5E!1 zqi#p~)rbdQ7j}m{Fp^-ph?ll%o6z=K6q$A;{^4KZ9nD(a?~*&C4>;$Go`px`3v`HX}XE^94T{*kzpt zG(fu`YpM%-;H}%Wc+b#;@6b*^fax~DvV@O$?Uql^j$`ulp|A<`q+|2mlThHdQqEix zW40E!R(x+q;P9U2kI$GbX(;r>VFg_gb>4QP4s(0Ai_=@;I-W`#Sk$eFeE&G+**16tKl}6( zX+M#8eiNJ^KaCyc!YyGtU}Ap?!+WrIct~r0`;wUR!X7#rFArCVPV9D^>}Pu4LK*e7 zJFkm5=u&Vv=iW?#7`Xob@o)Vp*`{1Em;ct^`t}qX&vJ;0LX6An{SGDU^W$Ksd8Qi5 z+&K2+pav3~z~Ga4{ReQZb$W^4NUPDXwzC@^6MH#0?!x+5$m1-??T;6_WTZr;`mGg`6{JI}N3-RX6=cvPwjK>!z z0AWnR-A^CNq&Q-(Klj}A+5PiXgULVtr5(6=Yb*Vo=--Erj^O>1C$vxOJ?+Au{Lx)n z-n~T8xGDM}v6mqGPpxq1_qPB_GZ;)dYV=8wnRU)4@}q zB>OQ5d&!^&I2L zB&az;&~7%H;vNG6E%aSbK*Nm<4;`IiAcP(}KePFd$33ZVGB|ZW&^j_?d>fN-u_uIf zg4Ybkg6w>bm1hoCr9cBZ@lWB6&j4xXD9~UEH@=d=q}pi24M%cDpxt82OY1e1Hugvd z*)JvWN*|wHDliJkqG57w&E%A;WKS8?kTzDu0zR!pSrJ*yFj}-+T_9meX0_Srm1pCN zgNEaynH;beNw_Z|x$(13COX34b15?3>uMSLR~3jS9J{e>Kx=yilb5gHCd%|6xszLd z+<69hWw{r5qIoqZ3oKZID|d!p8WkCNSn5v&Iz3@!*+WugzFN;04RpO_q7F;|3(iz< z69c;4aX59DSPXW;QYf{Ko{{CW2+C#NE$AEBf9f@x(uLY_&N7&B)>d^uKHSoR#V{Z$F|ICRhpohWq;%5F=EN!UsP37F;8St3>A&x~c2zj>8Z(U`^TmkUMhTP=9)r9c*J_n(s?U znOXW9KSRgfFq}LV+8M(sTjhe8JaYx}dJ$}4#%mzti2dU_t2Y*$WlCo;J>Qkz$`Dhf zr)VDt#k#He!XU}X(adquyy?uSH5`Mg9mSU;3Y5cU4oA{aX4TD z(GGU7TH?ic{whggkr4&CT3s&L1WwI!FVs1Vs`F(l3z!$vRWFff-{AI3Wv@$r=2UW+ zajm3%&o-GumEs}#;|!i3Ljy~mo8;KRlkwEMADeX_^jxTWfzU-DPIOk* zmPI@Rk}4>KK=M#we(4#s$|Wt^q4=0hx16&vjM*nbIljdx@n0A@B(2U0Ih|_=kEOv- z8y=e8*A*7Z3l#eW$ih6i7(mKWaJGpRmgY?MdUV!w9Z$};_`LKCj`>_>GD?R(^a6J& zS>r@JA9a%QB;#lVvw`Xv){^?jo=ElkMD3L{DcK<|}vJ0?ET$(GKV{{kg( zMQ40hCY!<}SM|V)_xI5#T8TYuZW2xO$6f(npWg8?F34rIcEo`wQI!v|4~JdXfu&HY zwXFC)$lf9ae6b?1I(2@rtij@-^7Jv%Ws6UAo-Jd#w#mkYq=sw}{hQm?3T1C*{FX!k zm#$+84w*&JDt8Rxu~7smTrS0GCyWEj$U_&j0OE2U*ycx-Yoy+0*MjByY(hY8p2w5p zvO`Y6YPkg|=kX#E$kYDMOJF-w@cfA@Nb@3CUUf0k6?J7xg=;)|@?je9pN!{6itnPJ z=frbGRtR2lRkkuoF3o*Myzr>#h_-dWOoa0dgBE2nPB>RQZeb>VmVY~||GSR)Z zFh0Uh%a_#8#{R9V5F_EfFxRbTIJrQxFb{Zkh_OOEKmIs_=bJLxqKGRcrOG}z%ev&~ zTM%XZ^FhV!c<#bwh|q%P2boFo;V7N+^S?xB&)~As+vdtq1~H*$T5w&O(zm2?E8#u{7{<4)X^LF-9-n1YNKok3WWtE#?Y=ZwwFEG70h;$uv^-m=VhGTU6NU6x(*>Ns>5A5(VgM1z$| zE2GTU`aQOptH$8xw1>9pTX<~rPP8a7GmYFd9$UU>4HDBN}^>wekn0ox<=XRRj|hl7ZgXZ`4bwx`O>_ zxt?5SVLVjG147J4H3mo=xbpJ69$gGxLH}S~X_5lF(0MD8I&By&e&L*TDbJJ>QVv8J z(mXXg&YJIPUFAGdyuU1nsL~=`n30j}%OC)Ip0AvWTuLNIypJilm8Z=*Qsx`Pfz*py zC8!hY#C2vyRn3Fw^K7OYJ_ko;6-U-sXBlzG;Ny0qZX683jqA*S=i~J~RSkY-EPUb9 zIol&e$HXllz7ug)9FSjz3yN9X9ykwa zIf&=x-~tB700Amr&Db6sFhk|f58rdpCK9(@AyA}axib5_Gy5En31C!$NX<_;#MeiX zI7O0VCz_(`;4$59k8A*u%L|$&6;RjpNX|pMHs^i{iy@hdCA^R;AqI6YU9qlgr3XA$ zJ9gug^!@7YLfHU`vb5@%w&?rG*(DcJO1xP%+ljFdnAyKW>ry6$5`|GL=ciM5Ia4e3 zEZld2OS?S&n1s(t`zssMF+(wT$2fm6nU+`H&j4FX&l&1>3CZMKXCr|zw;6$0`iRuA zdS8X?X^|bEUeF$Cjn#`WHJ(xr*aSIZrbWurPhz`%HW;`P9trmST2>;C-^70wB6}JA zS1IDdI4sik1xyNppS$Y1gyREMy_UW|ETsd-O^9GRPOkPv+xcd5q)(T8UBpYIPR$ht zaDL>Fd1*P@1y8>;WW`d%jK3^D`&d@@XBh~98?vwZjPOjyew&GHm`Kxmk9M+|@qCC) zWT!nN&9>nV?eIKrD)eie%9Il3Xv(q_7vsueA@N$DLR4jtCBcGN0TnSI$I3(Xi*!pC zNt65~XpUl1Vn^!eCrRg?y%O~D^!Niqprz)Wrww@5R1;Tb3ZZIn5vEJiU?-%Ock zh8|FO{d2T_V?6(q{PShPi0K`c#jnfgNixBcY;~kIa%&=ocmXeF;F!7`VvG?FQ_qLR z)nrlk8SfSAr@X|0i(n2KCsgm4i5uF9$2;^n5?Gc%7r~PkbU~n)ydx_^5eKe-pdpC+ z{U7}V?mc(_n8_LgU8)%K#zTOUBMBm2-d=~l{crzy+VC)o9vLk7k|fKBsf>JMa@<=K zD2%~4Z+zu>^$x4@Rckv6RGnT=DyCrwvk>Jbd_RMFVl3(8yM=2g+H}h09wvQM5|k z51l(5RpA1&H(uVlg=b2D6TXnnlm@k$0sP9Zz6jA+W-xG-qYz>No0o(!BUEFr{-DwE z=kI(f+aqrH`s;Uc)j3a-u#erb2LTVLtv~qLXO#IBdww*|SK-4YbEyH8gmxM=>NNrg z2hniqu~@GBxhpqhhSCff@w7^8^pU<8cf>{ODu&`MV#GY=At4Dl&`yyMFa5eCL~Ar`NlCd+VoSZ|!_Iaq))jHS z9`6J6`GcP2+T@LVIj=yt=ctE(O?#KL-ar=nc|* z9ObQTF~_&J+SW?E`RnU0^9^ox` znR-*`Z3y;@H)B2)b5SPHC^H*9q4&Bix%cBd>-X}q0*7>f{K=ufCr0^e+4dP6w(Hl| zVQs^Mr+WwDm_B@V_ksLQJk*8|cy8amlA6nyM9b!|ipQ*NY{kxk=pab@gi%F}o$hp|{hfdQLy~Ker~GTb{05x#cj?}5|L}>@sn060SoT1EeB7OH@5FhrzdwYB z4|+)uhh?%fkf*-3K^-g|F65YE_377M-4L=^ARRAou2d;~e~N@pfH)U397h&GHQo^W zqO4RiWTIakuAKhPKjC_5G-^2>*%12S-~LvVA@#f|xeC4ID&^=IBme9Gt_da}ws`KLfymRAu z_}-7dN4giuyW-y7XqN1(jAY_gtCliWB7YeUU|t9kMd`?-kmcSjz{ zl9R}DJa7Xki;TlDyn6F_I++4QbOmH|e%p}pA|It?u)4sS8V$v#)?}M0)Aas9d`uwr z+xFF3%07Vm>rvFV+J+B~`|!P=-c3GGr`2jT`15bQBy@LYqFgM`kysSYi?W2bX^MO3 z49f6qu$LU+oNBiM_|C?>;~8QM|+H@BhlAYikXdM7WGkIs^LzSRvsfcY0mxch2NT zm`I2d`aQW8JlCJ9FXH^G`L#GVVB7}rZ#&wO`=V6APjOB>cq(Kd zDUZDR;u~TfwrHJu$kAD0P zt!YeF+#UAFdChd5=3x>vg4g-kdp{xjYe){+dBu|O{7Y@yRKbN29RA*uPM9*ai$ew+RGyCzkr1NNXwq9AW!i4S`aKWz)zqmf-g%x z9F7yY37>64*vve~ofv>{JUD@2SYF;LB8fNp0>kdZJMZ2tsY7sba{T3A`6jg5Kzo1Y zYaxS-Qu+|C+0Vat0*6N@DKH10_sZ2RxN>Rp)B`9b9?_k0l;G>ih(oK5kjN6`A~$`cCMjyL+8jcU(%vQ*rNRtpRx#b_U%+F;<0b z>5T{Qw0}r=K+UbehTEk5UT8Vcyi$vU+nk|%E|N{j%U$ZV(LT?uc?!sk14bDH{Tf8a z1JdcZ4JQ>pM+0Gx7|6ivR?UU=n!Q2{+84q|;=F;_-#zcycU?t4I*C7Ou%f~)A`V?| zG+>&b?)7|dP}rt|1Td8xp-y{kDJTZqhX%KdgW)`m*yYykR;SvujQ6?nAxH<+kv`zaB-Uk2qLD9f=-Md0*EFhv=OeY(T-ex=7#!-pYpsUW*KwX? zC@2rEDgK3alTK$e^_=?;4%K~y&Ee`soG9c(*!{RA*uE*S8lA-3v^#4eAJO4Rtidtq z>hHaCC<7}o9Z+d)A3NGd_P^?q21I#AERsgOn$!m8U}x$`=`Zi%(zDI6Z{oMTKZ zB6!jl_nyL!e*Q7}>5(mF9HsgW+pxLWgx~y|-==AgW0CZ=2fz87-&V_krEDl?jd0y* zIenJdjBD5CQ#Q`X7eg_odhaG#wuEn}E7(h|;egNUQ0F)0{v`I_dyk}j4fnXNmdCLz z^;%)VD*WDSD;9-#ZO493U+`wShUR5c2>oRuKU^txNd66;th|o?LetjEs%eOsSVPIr ze1TJV?sDe8mgkRzJWn>Ohd?LiZoAtC`1mYC_9Amb>*N5-^;U}t5>O+QW*@y3Z`wrPV zv%~~8=nee%ITlVh%w74DB@>4pyJ9{0r@x*gMk-|@Gy9xQZq#a_{poqo0kdwL$a6LR z`I{Tc_e9+PP}py@tUK25FS2wA9|g`Y66x3B~ghaQGJF@J+AnNK`u&x zrR(bKmC<4iefVtXaC3aTD*^uII^4MZ6*6qkOUUa`$e62r04iW_c0z;H(b2JLRPuSR z(_0RhS&?WH6iRu$UK|`S7z`=!NnuZOlTIc_4o^b(&{a+IMAq+AMJ zX4heLF$4j|UX&9PC>g$G+G?jwenv7lW=VFD0`f##M-zf>Y}u;|uggl~crrt*7>nqP z3JxnL6U+mnAJ0Me#0ea6e-Q>8GYcxMk4PFkvV@=^DM5@+h-K8kBDa6V6HY3x2Px<0 zIQVf^=3*HHTs!DgC9~8f7e?nL?PR%VBJk0b`zAVSYUix{ahA`hA3_L+At@7M1c{ZS zAn{5^W^%@$*Id(i;Z;Fatdx8Aa5Mn3vKCWSv(ONP$}cIXM%Eq1yd?AI93AGY)RCAI zz^@%sCBU9Jf+uz$U0p|?D>I?0ADEvg2AKA%^3J9>~l2wOyV<)jIwq$t1QvdogwIJ z8c8=Brq(9Dn=RSe*(7F_9Z@a}yhbYd+uHgLJlXpg0!zl3Q8<=~e_YhT7c&4#yA^Hm zVrL+vaWqu8pWrL#DAbfZN)wM}pSGI+rk#_F1F}5SqD#_tTw?E$@_eW-Q<*f&L{t>{ z9%h(Fc_r*Gs{dy^DN(nlUL@HM1H$!8I8(?Wm{J|f#Ri86?pYVIPq4T z0=<#>Z+KYQv77Ia2?PyE}i_6NfJaz9y`{B$()B7`ds`$5VK0aE=Dd59v$oj(O z{z*S8VEOtPc;WZ59aTkdo(g)Ef1L@Kc*JM(+p?i&OevWXpPucyWyyj3#?7X1ADYKv z4TVg$FVdCZ5Tm3uVjLXH@=pAo7YR?1agHIwadXSbh>j`!d_uGJC88zvFvy@q+D9CEq`nkJfFzXdY!rz zgSjw*LYYrLa!G!y?P9s6a0~97ku~w0ET5EnL9$Wewn+DIRWKkX`~Y66o6UNHw4TMa z0yCjV&S=an*8rG`8<+>1H=GLcq~A(xQznXcluRFy4My7g$3oY@q;%l~#)JVC^+q0- z#kpep{H)SkQl(S={CIrJl3L@)M*`)q%AK*Ydof5|j+bZ$GsNgZpr9fj;xK0i&PFls zIE8yxq9xn1gfy>w>1X%PCt?mI=*xrxI&o}MoOfhzw zKc-%jmDs+xAYxOaQL#>5#Xr9ak=$p5&!PV=#&HCJ56;-B=BH!IsBF?fmbbj%Bvx*U znzzOA!9*&U?2AX?guO3was_&pOlTLulNWSBz+y*~!C){K$Xn&q^2hR}a2=UBb1buB zM`@t={7^=qW71hge>WP9^8L(YCKkpp6T_cpu48qFXjg6-o#my>CVHhPDSJ8n}RiD5t zTc_oqf=0!NtBf=u5GWFb>3)`mB7DWEvPKoE=BAT5m-Dz%1+~MSU#ML)$w1pl2P7}> z*fJGmx$%nIE_F^w8vK-#^OUhCVLvv|>58u^AkB7dP{xdcPT}gBu}>4X9AG(LI{Ah& z3o;K=Cy?X8gmsGTMIZ~;i|KfsGO{vQD4>*jwj95oY@my;q5Tbb(m=xo6nCWU(PP7- z`iq9w(MW>*5?HkxkK>tbX&ePmqthii%ZD81&6G|~8R|Zc35d@~()k{etnpj|?@?4d zJ<`UL<*ww!7&52j|7c`s9XiYD6=En+_At5UMdZnZWV%eyP%PwjDr!h(nM!j(?1m zzFw&Grh!iMF_vpI!8{akwWv7coKjQ%+J-!sYkQ$mVMx1b4Pt;KcicFTijpmnlcRK6 zOwN_fA}qpjq$56qoUW}71(_+98xDQ;Hpxd_-5w@&1)kh|3Sly_05g1Jwo;2IL=|sq zbvai+27h41x3iGsYZ(+fox=r5%1#PKa~-S5WCNVB8drJ^OP3_f9O^2Q4t_7OO<66M zba62Uaf|eQbZAcNl0}#zVNa1xjK)+IRAvNTTL1+PgpZ-qG&=5^#%{zP&8jVmrKboh zYLYCJ2p#fRM^|oQ$@LuR9E~>#BR73*CWGt~Y$_4fr_H-~FRrlsijL*ki=F{W95u@9 zX7ll&N_WTvg3$h{DkqStYulnG{WayQr859;th$ZkotT7(^{)rZE0WZ z*Kk)6D>8yq`wM8}Yi>`ZAR&Ctqt8sy4Au_M22C0mo3w zs~Bj1hT`DPCn=m#2N|MW(2gUk&D4zwE!u5+NWjA3w#xJw&(EC^7 zm%y!fzUwT1KP#eSOJG)8JGUHP8q-%ek&?1YExAQ@!^CSbeZ&-mv#3vypBr{u^RiNJ zhImkCHGy!ARPk(^Aa)d<74w|2K~{xi05-I%@Bn37v$Bm1!$^FFiFXNb$O>IgC z&{%QE=?%=h)&)(c%owDo2#`=%v1u2yoyS#T29^!FWJTww3(w6o$_##nS6EJ=1kWJX zrnVQC)|3)h9h8Wfx%cT4Gu9f)tcZbO%MdrTC8xsAbzq>I!RIt_8tZ&ei;knE+c~P# z0+W2kMm*xmZq5^Z)iP$N={;Q%WBz=FdwX>%W|VVf6w zNL|~;0LlzBv#^dyd&;V4#(T$V6@W^Zumb=50{uHn*@QayH>4zJ=@X+UEjPHX;h#TV z*5WmM=9Df@n6kLvpg*G5b*E+=4K%-)c384rQOewjl0UtVHMX(Xgky<}Zqop?FZu;Z zx(J@UpbI($!XlO36JAp2WWf3IkbYj0VV@E=!i>SnkrWIIG6>5IUZO1h2ucXyXdv!= z|Iz0_@Tm}-ZeG4a_bMWE&b+jBjrMoX!)-$gz!5y&y${3jAay)CQ|hNcq2~2h@6cZ~ zT)+F?XC$Cu`#$*Ki`Xde%F8#QUR!-8CNx04{my;SS4jpwoq0tE`C;3?{l*JooFwq` z_6PT%*Bh3+15cbKW*{8H&-NY@u#9@gEin$>X;keL1J!8wz;a3G8MIn$F)wtL0iO95 zVy9Qf_28?o{}O!g;XCk?Kl@Y4wp&DKJnIhza2|-N_hR4VEI1r|XoC|;M?>yT=Cima zj)n&mu*e3=F-aMJuu7p>`ibD;x_2O;eDpGwTzh!8?B zbKTtpn2?Fu6TIx!r7QF-U8fg+-sBDNm?s^t`d+N}xNSC5mQ!Y+*OW~u@Th9DlSx&I z{H;G6l~VlB$vO1WPIS_+8XEj8ZzRU#K8*RwX2Iak-hUrH{Pc4Ii^K7#^8W2LTzKxq zJ8Q;qN(L6ZlLT@My-CG+CXw-u_wtcKz-Gg3#qzn+UT^rjh zexG#!!}YPb-k`B@mMw3HHXwi2<1~-_gyX%|vQ&p2i@oD;d6{Lg#rl^2K@}pnoJOa4rVQSEjdef(1&G`Cu9e#W`SdY&oUT{VbO$R zfNOmJpbwdF4QUK4F-V7d%CSc9=xbLdAB*d0@1O&Np$dtQ62Pg~K_EpscCX>I*@iPm zxEvlnIf^sGU%Rq#>M8(b=&aXcU~gJ`@asmSVPrR3%mZN6fWY-~K?|w2V%AW<7K3%A z?u?EcJuw&6QXL9eJ__ah3ETi)xpA9b_XZ>Q?8*H&VMc#E1dq$gDwqKkiG>b$T_r0E znRHyAGYL%QL217@?7$cIpNjn}6yxH;)hlbUlghNfdlYl@ULb?V>^-@*CHiqB0d>zn zqw4DnHk5I@*X1zm=i7Jhi+yr`0|d`@Vg9ZU8%_IAboGg)s#{khqalW{Eg`_JAJx|hmsNQMQ~_G!+S zc%54}x8U~k8#0i`bBNbozO+gDx6JU!$l)^(V~rWQgTPHCf70X%xjAUm;KL6;p}C*% zI@y*NUwAQ<0EvnDbM5LC`216$Ye&WVEna7PV*|FgHmQP785TMceW3NS<8B}J4iD&c ztJ#FtZ@&&Balb$L>5rA8qr?Iu`kYnpLC3};P$MR*%PEYDJc)zB=kS0}lN7?J!-}(#i&9D6; z{K@zJ6z+ZgThvFIkY`=HdI$c!fA>ES`b$6;ee~cn_=7+E$6}78nFtSs40QtMo5Y&! z_IhwZl1%y7w8&n*d>#JkU-~CSiJv-@IC`Un5;|0QJN zzLANVgkjXz{{e5=#9f3)w#{_xn(a9lva_=+3#v1h|yl~@%xbmrE z1WU)nW#-!by{9CH@9*tV5U@Pnf#+|&NSSa^rqKK6`=5M}JPY#7Terl$8nmxG5$6vF zeR{^t%^kRM`6}TPnw)x4J$%$1!>6Bp3P(rBq%&^`p7z=+ufwA!58&YFh@R8;d}0ra z&PH1X&qwEStQ>pFVm5?`{d7mp{)87OzwRi^DpGDqS4j%1IFN0D6&G~{C3 z*N2^PeBAa%9bUO}jpoIP;2HOJA1R0Z1kdk@{rr!9{DDeL;KDC{?IkhJPN7_k$F(q7 zX4>{%NmkQ@>(=vUlR44AKNy^D^2S*R1F>&!Um=+W`O>FPACgRj<8uG-2~}pmf46S# z*lh|+mWzi1WB8MweMEuVrcahmLPyU)c>Z%@UJG6%=Jb!>yC<-c*>DgZ{{l+Zc_`!| zEe{}W*y*FJ6j7$?W@8C&v)7a(pwW1`9Ja3*FDJZ6U?3yJ zf)EcCa%F8oFp=(udW-{>9hAfot<#eZ7di|P*Xg#9y+Pr|xHe}sFPhF8xX$u&v5?c7 zYeFX6f@?cBMAvBN9z$-XBpvcRlrwQ}8VlJ=SLVYx`@#1=5V}KITh8*x-8P&o=h!4% z(f!_<)YF}@_`TFe6Z%Uhkws9nXHI7BF7RH6ne6Tz(>q>xlmoYJTqV9d6jN2E2^rjxcrW2UBRJ_F!rjmA!KYt5B7QQS0ncZiwA0MH`Qu*vt#7wLf_L0dzY1^eoq|z68Tw2oE3swiwW5&DYbV z;c&S;4d>UxgGc1}jBD%i`c?2*+NBKl>P>%B7B@qF8;r_12MYfD_{ko;`{5U|+M|&$ z1*@%wB_dxno*x99Y=g~a%iKC>-L%Ahe0X>W`}(-e%_5_yf%H+?Ez*7TWlgkz+uUT9-qfRm;ZaoC2ru$9qxrlC$hGU^qsw(6Q z@QQR2_LEvfcgyhe< zrUCu0~MNSPjSAjFL6E5Y`?jr{#EP;qn+NuP|0TP$9!9t6@?fJ?jeG>Uw& zHv}?qpY3*tNq_j^2}ENP&sXP8VQbioot+x&T$UI#`qFuZKaa_$^c=tg(W!nsp6vf+ z>a}P;=?~}kd&0H7xqV5{-Bc6DIp!;URq&?$)7JwRNxqVsXVJfL zzKljyc#-T&UhtiboPk%ZN>_&PUW3CCI727)he7{Drw$7z-}T}+*)lQ-_ac(XQjtm( z2v4hdL2NG_lHSQJ?eYOx2Of_&Ss2akYZ~91IpiOvB72}W4IdFVN8eqYL=ADxh*#VD zmO;CFC*)%>tmt!8%|HKwN|6}iOP8AP=36(w7j|y+FZuApd&Fl_cz$mL-}~cFY2LYF zP5;6#+?g3;M>2gO%vshK`-sL!c!5C(ZS$_9c0@z|;C)#&842w=Xv1Smn#0&K4}D}^ z%NGl{CGO*2dF?sEte5GZzqVF~HIV!4iI5F!axU74w0Wt|A~+FRODJTu_uqR$pJg9c z%T*|Aed{}SMEhK7_mAJc51r%1`;HH>(xvieXbU{y`RAV_oaOg^|9kM0pMOO9^56U` zzeaw@NZ1x0O)i^*z9r*ow}l~Voj}n^;uspL&r9VE%HG2A;2bs|9k6{B za6C2Z3Yj*-IFMIA{#3Dbo;9P}trE)-Rvk%0Pu?O_Vm!q87$k|;8#;;c$&Z4hnH=Iv z%Z$!YnbH+@K`8{XVn@=?4B~3NWtu*rDHBf@Ox$5CwxOZXsn_eID#lhJxhMGaLs_rM zh&czL!yzehp#+K-pa+G@87b9cOtCnf&D8Y&VoYU`S`CBeC4=Uskz5lNC6=<+FZpRA zmMng=aI4WCXM#~F&f=6&G_?}SR={7S(~@i>$tHS{ESOM!Ah04UO_sb@EJl_%o~m1r z0w3ni;aawjrmVA7%Q-2Mi6J=k89Uvk7!+qHFVP_Bl<6#7UZky116Y%e)1YeE-owMx zygc2~1+}zUfU8^RdiYWriF*KjkliMu$)vY$AvFjN_DlR`glLQ=KH& zO8yu}9_M7lS`R@)Z?ecNtM184odcm)ES;6<>pLoYqUK`@au(%=tWZWD=3tkP<$k5- z@A6l+xz8g14a3C@1Y?%5=W;I_NBMwdvnxEum-@0XUlC}>J{KMWms3A1+n9Vl3y(oo;jSd8=_O6i4#a(<>saz1$PI*)X~T9(ZF7- z)k+zJ)sx9FrlVN0V7qQp7^!)doRgmI^3U6Z62uWeHD0PNdN`#@IdKVN=%DG-JQ#%|k`=Ri3OT*?r9)kSP7GYi z#*_AVW&?U=!JwSkvoTZE<#S2`$svA$dom@NQJp>1iJp*`==nA0l&>xqbFwRp!^z5b ztKNV{%_lwBapr6!ByA;3K+OpZHjc1@G`?{{!c>t5MY^iA0Fg|;T13r=y=C_OD2z(! zH;G&ZrLZq@SdH=0>U|J}5?hTQfr1hf9ucXif%$sZE*HySX}p&&9rrB!*R+S>9^i@} zb2l9h#}tsZgdL$A>6>B$+{q(Q)IOGZO%G!&&?Fa=;UkG8sux6t{PF&q?R|Y_#9K|s3qA%@) z1#Q&ps0_cu>$ciU@Io$0*$M=ch~#AodNZ) z!B7Tf=>0RkotEwS;wn_nLfCDdQ=oeZJ{P(njk$}7^|%ToC?lIHc0v1N5L-)Adv2)Y z+(pkRZ68g^^B^JBvNDf-!T@FeAAD6vSsxoc;Q&CSyIudneaq$H2C5GFvRL}!zpN7=O!n|B$RGm%Xlhb>4S!DNgLiMIop z9pqonp(I{Nl+bHRG9uiv$6{Zkz}gJ2#&fmm7}N!Z-D*p_hhx8{4#dXimF9sYMUK7> zV&OWt6BDSJW3T7vOqh#p%t-IbXa$DKaNdbk*hlkJeFoYpKu^5<0@ysqO0tommo0JY z(ED0xniJz=u}>MBdd#9J!AQ%?VKI)h7zQ>Mk(d(lT;hzfC)@D+>+FNf#%q+hu2FJKoe@P$C0!KVaZF$VU8+@vt6*Jyv9Rlq4h64SHz z4li)gqwn^z{qtSNwB;rDNIry&-YwstuLt6^(ImeT29)3(eJ#)@$XQk;TjlGb#{_*$ zaDE}~hO$j<9OQV-)Rq`>w;9h!eO-70%tfS@l^sVd4=s3;sV>9KZfjcxT?9{F&;@0v zEMFqUj%(p;!u9h0Dye(OpaNGi%Yw=o(Uj|F9Rdkx^`w)U&VY25i436#4Er(*nk~B> z%e+7X^boViW`YhS_^p(3t~Vh@*)B9PPSr8grO+^q8#5Ou0SXJa5sn4YSIwbtMq*&J zarH#^rTa%R+ahLX_p4;Z<0@kmKxFK&seleXMd^r@-bgxQ;Q8)yH%fBsLLrDlF2Kpj zIK)tUGRu+`zA3yT%th2tIGst7B4#m;Inv?H^``O}RGzXREgIJ_c-WjHcolMf8Jqzv z+#m$19dv#U(}9IDh$9WG5O0}f4r@oD3_q_#W$(-6{Kp^;XN*o4ZYuCl^H9SiMgNdT zOF=)8^s!$i0d?jzioU5t3K+yWg>BzGgjl*4rz2TkG_?9X#={EPpLS zb|xomu8a)@*U+*)*QtavpkM0#6O6>hJD8QYGK|l(wwP%MSpMQno_PZEVfJ%MV?1$x zEbe)D!Rtj)3?hOAayd+qmG!JoP5zSivRqate2@UMDbL93Q-TX_$Ii5#CBNXQXJXEr zV_+<0W&|seo|aXpnbcpX$}?#FVF_S1%QOzA&53#XVBXm_!vt9bE%KH{{1c|!M)7mZ z_)PMl=c=R)5c9h%i{KG2xae#KWStPi%8Pj15TnV4bWA}`4pIRYBtsr{3ywTErT zssMU#(#~8MxKyU~qhUzKDy$4XGwBWKem+ZzTWms3N$ok{9#z!saAjpngCZxv_7UN6s$scVZ3Ix)vI3ClK<3fvN~Q8q4x-T=N=JP|lwTr$w}GD-BYXaRXGh=-Qu` z^m3kDvheJwcz(jGa*mB9y4r^4BcXm`26Zfo=3OTXpFNpAqYSf7!b5ex#15*sUm6Ay z!m>l@=#99R{>Jl`=irbf(<#H;Q_1kYf<5U}i6=iKi?A%FzWCWj$&AJ_XfccDy9VZ` z?<_yEDeq8jjZ(IBSz|K}SS)BJ&wnJvBg?`ox;4*yTO_CDbR&fq0ZRf9^|@qo^Bh_i zMUKRGZ*joJU|dX)t96So92d7|LR)1OQdz;y zv^D3~F{fA;3djfDuPQq{@*1r0$g6d-=2gQARb9-rnW{n_KbFDGCNzhsK9=hT*F`k( zUW=mnuPCb$p^Zt80|oAxdn@G9=1sXIX;?5XDbz7e23yQWu1_0?mLuxfb6%B*vIs>%=bvADY*Gc3dD5jE2YaV%3R+L)a8rHf7VRG@p zS?v8}02EWW^>Tx&%RpsPMwRV|bahS+xwUHZQOXWsQiWAj`kW#kX*&WPFXUv>+wiTs z3WmiXHk2;tc4l8XzGS?qEL{XoUeE=lNE#QgTr@Io1UPKU9tKYS;731(gQG)YKSw7WurZ=x z51`-Af3D*vkau3cwhh1fD_@t{^D#@8S53Ln<*t!*Q&BDkT~MR@OPSMI<|FT6~7!GH3z@56^5zXNe9YDHKw88b}lY|jrKenIU$ zJUp;&0pUpY&0xS`Yik|;&cFQ~>f@767yi{BexEiG*XhCce(-%5;6RCn>^=Ey_!qzb zdo=$4v;XP;5}LIpJnMu&`lG!sK*BdJ+`4vW@*Ir4+GSACX8RIkjc{1Xnz47}8!=wZ zMnJ)_v#~VU0_W0CKe(ra92rQ7go4={uV00l_(z5p z3e1w#(rUtJtE-&0*TrMiq`|CGtm!!>bVC06o4*W=b_)`HPl6Q9#yUBSP8}|mR31S> zUVG!l3-Aly_?4U>d3d}J|LkAS1Uc{r0!MF0;Sj z{ny1F=eQIA?=l^%7{VtXe-5rV7T4WmG^1BCOz2mQYpi4F@1WY7TY3HuFe$eLwal3WG63-ehCXXf#f;{LYCyp-kTC z4WZi^P?k|WpYZoMtd?O8?SLmo$~j7~gqL1gk1cqV5iLWwf9xJ~$YBck&B(}J+B?C7 z9O}3UzA)IlUT+YKP_ynyNZ6-?;aFieyb=J5Yw^mZHPC61bJ>v>Oei;@Ojwo>Fzt&y zsS5Q6128M#ErKYJMav%xMoj~;hPjfnac%dMGu;ps7t6h{np31E83OLUE7w0}5%zj2 z_(H6Sam_9-bq7Q6qC^%!r=l01zXdv5B<}Gs2+6TB+?LQEo3OjPC;K%6P!7a+j#b$d z?Ldfo?4?Vau(`GdKmN(bs`^VJ|C@x_R8IQKOzd-G`@pC%OI^ zjk-c-{DLO&TDvK9>Yd8LCzA;KsJSC`Vy-$4YPIq??C_rB(zCs<#p=$Kn(USH-#UIhB^yqM( zFduX_I66Fz9ZADX=H`4?;eOf?_u)dG-lilrvk+Fr{N$q}c<}k#v_4KcVSyumLa1AB z)GyIK<~mOS^WP&+dh?B2&~7#8Iv;)T03PFd7Z0(~+=Q()A4XgT4-N;?2+$Mq{_$}i z(nc~a_?IvEP{V3i!9**ydZ32I&eyT|T_I~s+E=mfZ(q3$jd~+K4y)#U{X4%3zxRi~ z3-5pMv()vb5%$^By{GVxe(N6!{@R80_6GdzzxHoIAli!8KM`a5PyYTtAgu0!iYao( zFsv)*(6I~t`1C;LGq$E-@Vj%{+!tI6}h!m#A9bRlemGPhPNrc4-Ts9oZ>hehALBijnv02rIlN=rm z%gMzk=N%j#QZNl+;RTi6rs4TW?X?=*d0~rWG^|qKR>Xg7cs^d^%{Q+@UF;?JS*tZi zpu5>_Uv!cu_Y`O3(po7^=*Ms*8yJokBX8rgd9G1Mm=Xi@$!P@x{IPE^P_iNP>uPWam$xJczN}_a59$&R6^$^|cpYy%|?Tn2H&eB-sS;Mkf-a-AU-m z&CR-UAau56P{i7E;$K`ur-|7Y)iO1eB^ zmZ5U;MS0@uuisMlLkwT(Ou$J0(pOwZ)jtsO7UB8R<^?BSdnEV;&dYwcnw~m|itbz& za&dov)skd?uL-O(Fbxk}+PQjzuHa#k?_+S5*3UezCi=fY&yUy<%0xG=UxuyiEgBQV zXvUd9G@OTzA3uTP&WY8janP4ZPRsBieHT+CRq5wu%tu)eWL@34{_ zRXH8w^?UH>=>yp&Ly2HX7sV7Q4@ulBhvU_)HS8;_8c6NIc~l!%vEJxV;ZoxD+EpRL zdUCxSJAL2^OY7|ops%_Run5zRg7B=@EzWuh;aZKVG|8aBo!0Kekk3%6`91V_=;0!J? zu!w?blZk?Iz(9Pa?S9C!Z(Y9*&p&@%9FI2W$MEsTpOuD&gz7@F`#bOb8DY6$G(B(* z`=TfK4Yn172g9LQcR_V5iV_G5%%~k~P{p7qkdEv_HU#Z4iV0BrgPv&HNCl^cQ!A^L zA=FJVDQ`BJ4c=p#E`vOIeNEV<>UFqt<4y6mCV0;PKKk@W-3BJ zkKv2YAEej@_7CnCyaJAE;`xX*{j}I-SAma`fhXBU2`{#S1wi{(FLq={-8_+BVPSJ};*m79ZlTt@!l?ca_>|1_!9p? zIhpJm74}`kSlouZI8CW3-GyyvY{>p4{q}G;x5*d#40+s7e)=A*FO*@w_U3EkyR=Bc z{h3*k=;)6Sr$9d`N^mcJUViTDg4fik`rG>-{Xp>MPVSn>zk*OBXAdkwTS(6^Z19VA`IW9FJ5Breo4r zolVQ5IA-3Gd?PV%^7DI-1Rs;w++b+uUuE$8jm?I@-fxKZN_(uk0RMcv&Ub#{j?h1G zPNQFGAlBgW`1x5OvfGNWz_opHBJlkEhyo=WjT(IWJJ)I6VdB`kcOS^44Py0v^vM@O zM=|D=vSYn^>qYQcwXqnChN-HM@^vT4`fj>uT4K8^WA17^0 z9z*;aJK%(A9!9~w(d2nDG7@Itv&4bGi}Eo;40OO#?~$-yAMQSYhfg2Ty&^~|X_|x; z%U^xzMUc-Ubg<^?;(^W!T?9{F&;=P(tNHN4i*M0u1Pt!qdk+rxpX8VzGMj^wBY3)x zil7D`^4G(?c5FICRH%C1i`yPK<^$qxozx*3yz~9^7g&+LskA&baE%%4Q0HdkjLnUih99Nfv zSLOL2-PZF&D6k^oJeg(~FgJdgg*Cs8I0mqfa}$LassbW?rgB6MC;h}RJk+S`lAvb- zHG~098=XyRqS4-!b038o?W7*^#Mp_6n=od?Iip2gmofV=6Y#Zb&kJz3oxVPUN<7QV zw2J4Uk5-*$fiI-%YWXY^-h29NIrRux6pkQAvkS zuBtMWBEFnw&SoD(a2Ac%XOS;1oGe=uenk8t_k})qwsD|rOxn;@)p)P6cQMVYWh{95 zkdl{TQ8K^5pFYUa31>mhwICfchZcvKS*AB(X&jSUG9m8@!-AKr+x+!~F@9iFFEH+h zTUspVPv{ctf0^iUT7OJ`7+qOq7Ba!6Rglb@UB0cfN}{OzO2O-^>Vu0U0`3+Rh?%8y z6%dxXYf)?BDhCHttZ^dQ72zptI<6>oq&>+WY;EEd`lJ7bf$k<&0bg0lKM9~zDF6|A*E|D1E8lkEw~dy9cXf;~dTgvNBx#(~> zfQOIn)8D}$gsrWs#7~g|?;z(;enELcTPs%?+|h^zXTUB^MzW0I9rxE(yA7KgS9ACW zQWfj~`Ni(;BZ1|i<7_&S$XVNm^c*gHKFPpSY>adl6^x}nH|0G(q70*F)si=usC zI-V~bg3!s0oR2(14=&vf3!V=cFjb@dgx)V`K+QxD7|2@re8qP8f<)w8f+dn?r6w); zymV|q$M0sNMm!v=tOkb~t{1rOpqINYVwcPq)Ma9Z^a#SBK1TZjlkQuRIJk8%Y&7<9 zIs?C9feENdp;pVbvq*oL`tbMS^*&7y1 z*ghxB4>nU@&cImlQs_*%v3?!e!oE~wQ^MfMqs~3STl#{Jc!hQYZd^BAQBEdnhzOG$ zrH3Bv#hJA%*HNN-5f7==q0wvr#^KlNI#{&C9MbZL`04h$(xJG-X|$bCH8r`GBQ<4t z#x`DtXfNe1>09UsC+AO?+=wc*3LKP&3bUJoQ5*BaaqJjSxuqxcc7XwTV!T_eP11!t z7oB2V3ap$}7Q)0Ow(6#{5MIYunB01O9eU`MtDen{A2OP2)OHS)c-Bg2MeUJxf3c>I zJJvp^+6;~7<2>8mY*7F{^3F!RDfa%gl#{(H=Fp>uk6`cMslHo$zal(8snWRG@ggY_ z@mprMKV;uWdQDGirjm7d$c^9?bUc^uJTG}pU42L5Lr#2cva7mzT$CFQq|?Z(3T6Ju z61HKjwg!PyvwSE2B40=Ul&;c&)&H4E%NS>DblERmN?wQup{1wOAeDdn6^=A-js2p_Se%1u;EAbWh$rFCB$h5$?0O=LCsNk@p0 za9z?JaKCOeH-sHb=rFw=$wb3pe!dmqQ&lOeV=>NB_-4%)JQ8Zq7s8v%I^v#Vsoy|S zeJq;L4rb8-P-kv6WZ{#3Z%Eg1l>DOk9gFq0j7~BSoWsbOWa;t(>80u}|sWEZWu2cXM7x_QVw z4CbPU7Z+u4XfI>NBXH$2U1gRT``03sGTT(eWND)z`Aey{R&sm>TU*=l`<3~ypCh^m zp1hz7N)d}o+K-|UfdzJ`G;xlP8BpdRo<2N%wsPJgpw}=M&JsjYV84#0N>;{3sToVEQ1p92+nt^^;R`A$+%qh;`g4y>Hk7bsjw<2NJc zHLc(h@MeN~hLRS=WxAz7NxtVa#?FkLiC3U@XB^3j93z>UNQo@NCObbZTT70K$*kQa zyJ1;VkGjWk7JGfA1KAvfu|fz}2CuQoNQK`Z;3I8VOgdAr3}C@in6H>;hC^{hB4A2A zGc)m)Y5aiCX4sWHm?iTx{$kQeF!NmG8Frj}p+4t4rzYk12j#32M#fq%KUrrI&Y1*x zWHOxO{Gw_Acmg-aZ^0yk83n&_wL?yFqj=w|;2Ed;b5ej5^|R}i9DW1ISitkgJ4RNv zfvHPlIxUNVEt;79BetYDHV>u8B;UZZ+~wMdiAWn{XW@4?!;xVFvGqYBm&gNBj>6fK z7SV~5gy~ZwM%CDP6smq$zQgF*pg9FRKA$0lPy3cz`1ypX!&oA7Ys3E}fYFqFZTl@$mZI?F@7)F8mZu!MOC0YFI$qN z)wgybcU)Anjk!ia@1u~ik;=@WnM{F^o;PNNn}o_5(&KfcUOOb8Lf+ZVh7)l}oZ@7o zLZqCV78b;0T(f4yR0k8Pd^_+OU$B7ecvXV`91nHE- zjQ&V^kSXJn#1dp>3GD@#v{hq4_`MA~aFi1eE3}$&sw|VmE8_F%T!m`@r1cN;s!ST} zasE+-6!8XeC_Dx+39ZvYs{a__N2u45-pQQAnP$%I=z>m*{+3uQ$;qh5tkLVh9ilCVg;bN6|~tYCuf^{b1G)A+y%hnUts6cnzDS$#4zH$ zB+VCq#X#3Yyn|V;ukU~QMoc|=Hj7B+u#%VK3g^Pi=UfedX6M#8m5Ep;FDi!I6nYAM8HOi%52>hpA)vv|Jl zU)s9RW&=z)@WG74bBUNJ7)pMXBfXZiJTS}pkq*WjtePALD-IFQx-1WgF<}$$8fUb%hwFqQEVh9~gfB|R!mOS|^W4z^jOnVy(uc^9%2?8-B6!>} z0_J5h!mI;K+Wr~ai+~%!nM}!DDj-_P+7U!XKa}4i3PyFY#EW^1mF!E)dfZGLBi-d0 zKAYpZ*83J+*K_@X@GN_W8fyk@ioVWeMUrr~pjWI?89MS@K4q?G{GHZ5H|2XZ zYm}~4mPP`{XJf9eXTP_td$KcB?|jmSz*VwbxtSn!B9jlM6IXJ>magxSU#BJRlTiq9 ztzz(_ZI268mG8XswmjBxlLet|OOns<*)ZVv`pN6bkgK%4%9SxeZey%8@6nu-=F%C- zmY}&WXVZd$<|kYOQIytG7LDh7D#3u1KOE@wd*rk_Qq@OLAIdpKX4zjx0G0aqYR3!r zXsQsw(!5|H`<6{+VhZccVKdCS=a{xGjeTfrMBgKBH&1gMrf-5hk z0gs|Y28?kaSQssO#7pe53%pZ8G1uo(A7P8GpqenYbSqfqulmI@ScoxAj93iG=OdUc z$?{T&#lMIgme0E47{}n(4ofG?^kTa`xB639Z>!|rY?XN3sB{Ikf$Bu4Oevp`cw91T z&iI5C=s~5K6s!EjQYq#4rEr_lEh!KtvR%RA`!Hkf==qX3<=bS6d3q%ynkDTcc~{{k zQTiCqPvn6(K~b4Tuw;M0L|x`7&V=?c)a{}u6>KG$$13N8p7`nhr=+oA7=Nu3amnBs z9-o<9M($V4mQZ^MWD9U6xgUM$nDWKdd#j$SEZMWC$$oN7qSSjEX+LVD!C;s)#Jm>p zSO%E3Uzgf5c`{n&GbVf&QvTXJ5nO;zxq8|Ae<^8svFj<)GH6*ni^spfqF1LboW2i} zeuX5XD8Kbt#r}+_khu?>T}s(A3J2?wsl+{SUW@$}<@reo z;SCUb;w?B&@`5g?fcR8Kl`PbL7c*Go zj}0w8#<;+*U)zSazWO3FEKmXq(IO8+?hySC0 zAKL9!VVm&Y^+pr^(y#so^`k44|6pp_`_&Ou*APa7&mVp!jdy6bsE{!k0h4=Az91(r zR5ELRFfou1!R)WT@hbR~dEJ3aTbD?%z$zfIQ4HtC^VbD1<5K%R`Q#C0ML@;;;lrm? z@ev)rb}nr~d#zbnK*MWxx_x-}?)`M|B*-~r3TZe`@bc~%l)N!R>{YRDbcH^*pyP4Q zxzjTGFMyT>%DuitL0iS_h1=sjj9{a1hdJCtSK7Y4Ck`Sbq*mSRZ|FuoIjP?Q0W7D))gw}W-bpTrGM`o}PeBv3vQ{B^AP ztLv)gX2fR$%pL~I31~rGX)qecyIo*$zQj3kEZR!*PyBEBYv4ydOwW2P+Anyp9Lqep zhOshbkfRT{;?HI0A{PeKJ~)A2DH%5bkyC~ndC3=_KZ4!e16qd%M<&#b7u5(xo;TpyYb2h?mIXdn^w<9Z!_eQhxIh_9869q<;I-ZMtq!(M0 z%xubd9W6qQ7mzTlR`X(BW+wQUNQ+Y!CK4J#e)$*w3T5l>bdTV@AH54lgCn@0352@F zQ7HCHZR zFcnPZ)1GCgG0icogm-c@AV)XM&RVO>3UD?eIU38j7#j@gSt#dYdqQKe^p4T6#z|N6 z#rK%q5${oJ3;Ay>^+G?e-(!8P4Ldt)^#1s`15bC4s9#P_`tX_9ixG6JHEVF~%JxhF zlqln@VfNA((O;2;Xa+*L$XCY76|jR8p{}p{*L5&!@@)Kh7SnhTI5GG?8b!HGg-AFz zdYwL9d}Ff>S1xU*0w{5gwVE!Cq_TIS)BWLI2=$;r=eO2nqA7He{p!mv({*qy|Jg?$(D|NMUQX9k zZwNlHA?1F=iRuAjFb&cH!-jNh?)G}HwI(ZlbUIylw6{ms@Vy#b-n^R17k zrV1ePLp4@Zcah|A2<)le-_mAN=9(6Hjb36TN+VXB+9{AV(^5253jh&@oI5poZ6iX3{iK4XJgReI?HfWo@cI_H8 zn{|?nhAS=?YT^i0@O-3t-GS#{yd-!|Kvp#wWF}=ioDUQng8W7Bz(B0&!Ds{z9v(s^ zTJ^?mA;cmPYtl1yXvlJi=lc;WG{~dl7G|5)H0nms-y4ya>E6>5c)WKa_d_8+AQpf< zSTi7Ztn|@ZW90PP2+Yn%UL$_?+~w=a_{`z%;|CJ26Fl~3KY6H}VF14R+6|I7L&4A6 z+d;0q7&v+Kv`+ZcTR!{z zsn|!POt80i2uF@gcy~p}110 z+KxuC>@}HCZWs;o!SLA5THU37x_osjX7>#-*0pdwZXZ@4PA6jk0INJ$vI{v@_!-h% z$E*1c?oSQ){N5uWa~{%qx^i^~E?-LPNyxi4*4N>cmtItkzR4v~7X0k)J$hFBoNz6r zCIx}2ekop`^kfxSyzUFnKc_HjAelzlT-eONSMC8xu% z18MGq+m+B8#BPfpV&&2nZ@?^0z8I+VOTYN*LY8f&K9?1PyKw*EN3u#QPn_UzK3u-^ zJXI!KYi|g?S1-Ii_T%B<6ZrX0eT*y}vKk(h%-`@xc07Gx-EFrFiCo3klgndr#BPE z!Uf(Q9fL}V17_8pUP*am5>WuQ6XYBLac_>$+!DIfRk#OhoWnsM4mw%%|B%7B<4Dek zI5c9(sOt#6v00OTAjs>FM@O;j*l40%Ny-PeZf+|vNIZ{_?J$7^vWTt5RxB&Xq~BvY zuIANqLJ#c=y%RX>bZA`rBUN=WLx=+fHJvmK_Jf7AwJec*o^P<3P8#{LVgc|c)h zt0nB`OP6cVY{|X8j#W}^3zo^scbbBE%W+y_^%F*!M?rUZL;CrAx{m%~1(u zgx(|O%=33{)49kKA3S_uO)Sx9Dtiyw8GB>vbD-?y1+Lj-;y)-q5*Dr+Pj)k5WB<_) z@6udEU9r&;_%mmO=YQ?Zmu1B%aokUS`aa?M7*JVK{fwz0@O-VCw*{t>b&_<>upH=U;p{^&D-7sEX%rZZ_cd zoh`D5qOaUkA45J%7p#`26%jrg`2!j>c0+-+i@jpZC@`_n404z>`GT1HoY+(9wSd;k z!w1Lk`DeQ%&)~X8+W@Y^njsFM&j;FeaSWOT>M!!D7jE7VI)_X9>c6+N@Z@zrH6gDvsGE-d5cFB8+^vOu<1DcBNO4zAkTM299_|!$S9&Fp4+t=c2I~Ln~ z3eOk+J{NfYXuLrGeDSYyGK7yldLqX}McB&ZVmwu(Ajb1ooM5sh=CdbkdZY26@R+*T zKY#f<-=;mtA#BdRzmG~_mD*M%-$0Ua6BPCbV8sPBICgVW3GaB%@!|Q~ug34sTI4<&E{{4V^lZ5KHtMy~TQF`=$0tW5 z0N^=eVdR`7Ea9_XyL?#yLF1V)@YpMQbDlXC82&?9C}BalS^ z6m6J+#K}Ve^zR*YAdGC!q>n?V28i2q)(F>7D`*<;3yuRe!3qBS5gOz5dg}L2;1B-< zjSeGHsIKhX5}>Bt(2hK*+dG8)qeoIfauBGKPWCwDx&p(jG^XGkN)--^CJGkdQc0EB zKa;8>rc($yv1v@2GQW^;94<{CkAW#-+==19q+v9a)i%YUb+F0cvk=Jx zieE^OHu=sO3z=aoozhanqdZ<(0;$#jAIeg7zoGWG{C%PjGx|BS2X)DDTNs8>Px3T) zm1!5KEUS<<*t$X%psExehaNh@C=dEw#+RzIIQ`?1ebZsqwt(^v~r`xx$ z#(}KnQw?eUFbZsrcv2k^ofFWgdvel|`bt6PkrNpje{$lt&Vp)%s^`Ao`%sP1^kReU*K zUM-dt0wIL0H#ex^PrZG3yuTkOu&VpbbTSW=e|#@?%rnU)rvh2u0LNj37I@WO95bq@ z6UroA+iP3oCLoBI(+@Duacva??>?cAN>J2@Vj0z<_%$C zeCw;<03BVi3LJ?rLiIXaQevPl1u^M>o;9GMYGo(st*vds_%DZ0HZ>bMwtV#QyTlt1|NPZo`ZWrkTn;hP*|j0mByt|p#zA94 zrlfabvqxTjY3CBHD`(X}Tm}-TisvJ5+S;lMLuy?HA4jsvEa5p`vM>9NPda;&{r&vO z&t`zRCUVNFOYDcBD9iA<3{pnlNbuBAKO~v)xH}MdU61C6#`EzyBoETjoUVzs0^HC2 zf_(&Kkw#D_K2Fn&NnVcU>^?n_$B656k4J#9O6W-1+LDO?v$FD_GbU$vly%*@+^qRn ztk>hAoG-X1wd&+RfajuYp)b)G)?&U*m4np9vH0+Ckms+hwR&nJA?HS;J$h~qPDupC ze%xxWL((3N;hXCi174c6x1n>o<2^xBigNBm-F-;ozp)|s+!|CSy#8>E$&3V^Z}s_A z9~yW*Zs(|HRmH{iP*4Da(04I_QevRf*J~`NLB9RS3LF=M60_by4VcuHaLx)rRP{5G z0dm+Aw4VsM?c}6OJgV7l3f`MO2ge+pq3XeQu0a?O{P^Kx(zS3dv|7n-WP?``qu$!s zBw4peU_u?vS9%2LrD70K7D@#+E7=$K(6#oC*f&~&SC7fT1-O)hs{~Jy^Cm1;ZKBHe zN_Hm4PaFKqq+_klvcHU-0fX%NQC`LvqYkC2>v&>zFy4e&2-nziw_kxqGi|NIxz_C; z2_C;2SJ>8sPP{KZ_ZHb$9cOaYNf|KIgQvSsD40g#8)bSaIcBH=GA3jB>exXD9Togb z$Ofurta_zV?KFQN^pf$U3gb*-wAlnesJoiBR$LpnCazq%L{}e)Yj=h+IncawCaLzS zNd_<8yzv?Zq(R9liI}9a*{Bg8_Jt0&vAzvko7b)5i}Rx|=EtKapTp@eJ5IaBr@Aav$=TTOlcFHNq}GJUSNRy{p#R>=i_d z@O*6f*2Xnxwwg4?$Krmw`@3ZO-P_xb_fvEHr{Vb&2vJ`bvga|$e5oo^xc2DW#o2K1 zx+r6hKn6Rdc}5WyRPi2&o%)m?BuCMhfzDrpD&~>wK(Vs`NPoB0p!dQJi;j`@ThkZhpt)KD`Nn6 zK#0FFz8pH$gD1`EYgGuVxeW)2{oGlxk49p1#Dt4Vrp0i?NZQjVSs`0YKqC4WkGYh) z%`u2`DKfC~6_Sm`T-abO@*y}GyU-1X%4Uxh>t)~!VNyKsjV9LM(Dc zcIP5$Hc>|l;yG(=4b2TU6|15|eXcyAr<2=*v@Nw-Et07Q!!YKFZs5U&zbS+5{0=;N z%;JiWCiwi3H7%_!+q_A^=K-6U*71P>k@5Y~$oN`c=9xes<>*sn`smZWtT2IcqDBMbs^*4 zynb0?RR^N~p57<9z%ke z_K8+|3pU$VQbAEBkxy}iI{zcOD(dG)xW5<Dw~TxV;+2DJ%;y${7djrS!ozX~kL$Wx?ioh~c7AVscQ zgO^_Xy5P-Cc<}HO_~PD2CH4Pmcs>Qv);+j%xfS~!lv=arbe@pxrSN9`nAopDgHcih z+zW7@b6ra{TN9U1Nu7XfS_63Uq(cF4wI)ySd_OrJw@pl>;YGN|*xQChOV-358AO4Q zWui2mzk3oNgYqnt!2KwJ@vO>bMItX4R;@@yj8mh{&mS*sPC1mYG{Na?^V`JpQD1ib zComc>&_7@7IVdCV?RKm|%td&9E zxipx@pW`^F-MjLhKdcy2`Q`S!hDy;{4gdhbSK zX@CGh5aK3^6lIAPWy${7mS;Tknfc5Q^V9qR{&i-47|nPrk7SQ*eQeQ|M1iIjN~8&r z00@9UqX9H}t$nYzueoQ&^*!g@8*w8tA~SM(RSnkZuB!JkW4UqT-m`qqW?rn{j0^q9 zx#6(uVdz=%{h=vyejhxT|x2@mYaf5Y#^_^>9x5quD=L7$fSOcjp+2vJ;|9EJkppXvz$z~_7I)vvE zH?wwD2?!DfEuwBA7@Y*dui_T%++?q@;l|{^u)YuDv^PA%O#rBZXZE_mF8YO^-z1@@ zrGcJW8vmG?N2Ad90o^SN9Qh}LpNLfTQ`%#VHwfh9xX8Yy7;PNt60dFYY5^c&bUb4Us49+{u(oB|S;aY<>AV;66JYNMnK|hN%fOrdvb* z`4jpt+3y(eeMV1=SnrcsFL3->O^bWQ1@Og@zc(YGjMRH2CEJT!lm6!T@PYSOjE*n6 zJ3ae3HWS@6tUHrK6N4Tx5L`KMy$N?}_~{~pMu&eL>a`nIJ9+7V!G}dBFU>-VjoDO0=9w*F5 z85)oov!ko@y4vCF>!2byoSuEaU>bA2C#~^Wd!1}S$-XlYIoCeUe3*nGuuWxxTVzkY zU8HrWYLb>i#L+y`KU+pHhzVf`q4Ai%!fc%H4^JV5fHoLA(YhsFXY`9>C+BF8i=!)l z65eIWASz@g7`yP2l2)a*rL_#hpf!I>=|mm-T5%WfsKU1l?Wf7nAWEsF59s+hoiWCf zuOpG}E>jP~=vCl|cw0djo}up|MC>fZ1(Pw}1*bG8gW9mZl9l@Cfah5HqyE{^0@UwH z7o*Rzyp5NnKb#W}(yknXo0|7-Ixx{IFnGRoFNhhU zr<3H|H2S~5Bv&>5jsPz!{laO3aJA6o^d6SNj1z{YBs;B3FSd@SZ!M-|WPjjeapS=R zGpC~KR%ZEg5U!SKW`CJI6DP8Jtz{{#5%@YTg!YqgoZ!B|J|@$>-HbQxnV&R?gr9BQ zIQV=r&P656&v|8ZJ>68U9i;KK|GQG`d!I=Hv12aQAK#ahI{4$I)v$04k|~78W4D z&RkSrG2p4j4Pa?*WVQDBY5hLsC+<11R(hKA@`%fGy z2<15O0nFo&ihbi3?E9r++=Au{xsw-jcwEQir-^Kvdfdc;>O$lBCaxeIuS<*PGoGl{ zOva`A;o9NOrfuIJ8OH;X$S?e?*RKagW`>i%OiWL3&hQF5twD-C5n3k7?qsJ37Bnac zt;n)U5h}WXHEiBI0VP0!v$NkoJ$V3}}V$3c7 z&oGqkykULqqRXb}I)Yzdl6f>@=BlFX-}p2@#wSYe$bjCMhutHt^2#W0WAk z^GW{cLK36gUPOP8LffDoWSl_2o7kM*af+uzB9Ko3C}h0{&wh8-zKxpFVlofXbzMDo zj!2(nV(e*CyawYjll-LAN!E_Z5+)AU4P6ftG087O_IViBHr!l9c%!hHMvSf@qCdwR z(>-ARWBhTR#Rp@iu4~SuNY9V@Fob6`3JI2GxXxVHG~wYdVtJx(_cQNuoKU^Sw6~1x zuLNMf$JbqUyko_!KQ)U*__$q&B4BiM{=A?M4hT!$8C~A!fq@Mbqbty4^q0qIG1{f; zY&;+N2@-!799j9-QIUtK}mZc{@vkc9qZiFd(LOclh5cG4ME5#Uwh#NsMhMl__2za*N)nwK~*AzGgwqN|hE0EJ5OQ8@rJBT5rMWD%P(pJyJ!Y!ZA z#~y}()Sr6oEvVEgWFWow;Sb>8aF5Q%3YrLBXFTawcTGbmnrEiw;PapPd8!gvt9=V9 z)$24b*dE#uEVO4Air{8Bz&=;V!q0r}%cR^L*S2&=7Xd5FtMFHU^{+#t*@VN&L#jYS zRfr=(&IXujCsN&4hQ7e0$$$3;{}S?rJk9IT$v$jt?$R^Q&Mu^Wwx@ymzkLt(k9XLa zC_GqRSW?e9zDjwH2$XDo*Yi-!7f8o=tP0zZE5CMitydebl7kk4dbW1Y{%k2Upt0slS_Y1<;zgW=3yL!73I}0$fSWLC(c{w-g`h=>4hWsh3SZuec|04Vrys z)*@CMzxw_JI5;@aAcYxWI>N>;jhgJT#O*DFg&j7|P3gdN87kaxq;w9c!NGw# zF$t{Jm4T`09IesmncT>Z6E4`%J%({6F~;pD>=N;*H@-|kQ&a)BG&43`;x7^fj;Lh$ zg$@C7G^w9kUbv!gRq3#%TP#-d@AmKjcS$1>)b%c_^wg!|lG33!i60<8US3?FN^;qJ z&X?I7445pK@tZn!T~R+_cMa$Lb5UJ;7P~+yO?_%=Dp?;vn^cqnXJ==kuE z)_<&ihkARHWwQM}@`^=e2UA5}bqy!e|L*l>)0cntbGOo{3sc2q zc<^8!3T_)Jl_O}QU8N3fH4x9@v0?Z4moHx;J6#G9>aJHkLHUi&1&{Ed<@uF#NemXD z9=m(6r{eLoG z4+gl0^>a(@zi)l}--2v2?`>i0l&4%pBkaxT&_4FY6116~+MW1rBlunx7G`wuEr8i6 zN!_dCifJ)ma!cL4B=8ae{oLf z-31CTm@4O~`u{`-V-L{QK}RII3Dk?h4(7cGpUHGs7AZSYW%FvTW;k>{m&c+R-0^m1 zx=4Bi^3{Tpx%oU_7v(M4r?j6uSW?)H!C2~zCcTe#CrRHBgy*+AVLTsY>h{4d=>dpY z99%m99V!D$^K*m~({Te}1T;Ks3`;TZil66#s?oA3`>t`Us$D&7^B|=^e4@fk*6-e7 z<|T=6&9z$Nudbb}7suZRgBlhW=hS}U!e4v)C(vqg=lZ>aV}5t)x4g_l-buER@iA&j zhu>D`q30g%t}6&g+;Zd&>z<744(*#&ow!kq@5$yNDBOWv!HRHp?JW69u~X>d-OZ;DuR#1f*EF%p&^cyIoqjLF z6Cz7jK^ahJ`MEXSSFMbTnk$S?BBkFl|SwL6$l1bXD4lvkMN#S0f{Euh}B z`RI|K)G#%*sBp<9G`*(6Ml;+!0h6jCatg7vo44;P-%*1CZ*UJ`Cve0}YE2H;bI6yx z1nVoSBzLCDW&M1Sr;+R*aAfb~4xFF5+K*hI&ELGl6XOW|j?Z0uPVMI$;XvpwMcH)i z=52Vi^@#lBv-8u6*Vg>!$LDHkUB|ce1k0w5vcodEs~f(XtPTT;ju`jQ4}bIlz3Mx+ zcHr0k@?ZCH=1CKF!&zT@o}PVs_f8jYL&`*ofDKA%;ulEYbG_6Be{fl3MHXgDbN=tb z3KHC_?hll>XYA-n1>f65okJXRKNu_F8ho^)aJU@fL?@N{Kz3FdJRds)KL7kOEH80~ z(+@xX9(?YzU#6}z-~QgWVRLhjFrh)ZIOBEReB(7(ST0iV_Uf6E+E;ZdtPl+@MjWPq z$-e5(bC+I*VqtKGj?Z(bbkpyC_gmC84rOPp6W20lc)5n_akel+Iw#>~Vl+Qs(nw7F zLI=a1>%qM{wIH#S5~Ov3^s>UN5$7~oM9b^Oy#^)p@lZERfS@o>bo_|1)jMW@g!zqs zyD<--ZuPo5&yyl#nOT{Eh3ph3%czIVIT?SR2kqV+To_<(Dg!xXuh2cRf;v$m)oMyF zt}|b8-5#@^@$v=Vvo zTc7?*#6PxnZV}#MLh7>GhZ@3@`@CbE`x&LDP)BFI=A(K8LJ7HiF(d~NtNQGxe<5^z zj!WB7{?dEu-waHb&xEei?6myDV@HKC8yIgD^A+AZlR^&Jew9HJ8}pg0*&?ZA9r~H2 zs|#Z0agS$HfoNzOqR+RVOLulo`ET>-*G8C>9L0C$WWz~x>cC7LeO=Yy5;A%Vg;%t= z06Y?6O=r)n({b2ccWZNNBz}mi?C`J#cW-TTJdelahzPz=ent})f$>2vUcI1;Nrmxz z#8eQo&SGJqAzeM>r>i#LhVt=a<rm=_uo-G%lWzpJX*Vy9gI9T%``980)#cdoOgHms5OxeHp4X z#u=MSYG1Zxs$^K?>E)>$fMr`^j6z)O2Km7-4&BpyvE2*LS9bjKi{vZ7b(YIdKDGe; z@@|T5wLVsjF%!)WVaWE*%jHUHyqc*APG-b8DV8%(nh}Km7ZuZ^;#rC(tgKG^$(B@i z-QjsbIc*w$6!SUi+KbZcp*TM0boZv0vjpk{*tdz*NFtNuYACO;GsMqO)^BXAK)u$Y`P|w$ghr!5>t*lY zNMZC18tyE1p`0!y$LCAzO4@`6_Ydf`)Ybkp;vlbd@e7w1Liab~ZD)VSkN>SP$R25?-*l`4FA z_hZguP?+GE<+CJTY-%O>8?7YMUaxr+89vO~MQjk|nQ#R-Pe?4qLwb(l`D;+jP0@Sz z%l%=##{QjtC~AOzJD?-u z#s^1G5NjQsrI0+PjDS~Px}-qcJQ*FvF=MKZBSkBpcil%FS8G(^!M*ob!OIk2?cCMa z1WGihNr9EDT;9EZgPjkcJ92ppE+qkReicsZYfkJa!%J7*RL|Ok4?g$^?y2jdvW9`b z&1O|QwR7qZ8)xW5{oH512#ACI7A6vQ4|dcX{E7P6 z1Oo&_a~#2{v1;M>-u^CiM=^wRiZZ*=XpIF375-mOmPi@W?~oFWW>;XGww;KyTQ23M z$?1)2a`w4-4g^;q(ca#n0#|CBoVb6eKtT>LU6`AP`RRq^%1HQrw`*|k(XQ_#G3yMI zZP%7&*;tkA#3sWR9i}%9shcPsdw_}-@LpM8Sn;pTdna7!miDDWg(;*{umN7kjN)Jn z76Em&)t^uThu2Ac72G39fnviF0vh)p-GsVw(yp&vdZNjbU4)8wqXyf1_k4ag?!XCL ze@hEz5V?hW?sXU}&4_tMy;ax7f#P$S-p(~jijvHCMM?Oelsu83%db1uk$vcGk%$MKgoYBMeFo zfr>m*zU?THt^7|>$+Vm@;xUk*-m1nP>bj0!=>$2A89DBOTet7R;mJwYSU8aqNG>cd zEWqUp7p$sFA~paZi9F(a`|$YjR^arAdGxLzZU=!MPF^`aIs)^mNUkeGwb5*AXOGK{ zqcIYWuTnJ$%R)JD3NR^L5XV2bU8yViN;&@INkyGpu)aCy=yU|SUD4Zg$R31D04z>U zb3m?U2iSHBKbbd=>chaq$!2r>2}w4^?Wb%m53j%SS;!a4 ze&U*`4*e9Us-FnL=_=&4K8Oy(dOh|yl(*7hXL*-ytNCftq)SWJ6FPYkixtckXVg2} zQR|20@WT88EG*21!F0)I^&+%?u$T^l(;3p=!%jYwHM7%Gu(G`32QZs%Slxp~n>g>E z|J?IuDJTi|UcFw?2Pt5_DL|=ne()K}DwK&BOe_4O^uMTg=d-YwpQWkF9J{c$f2;$^ z+pw*GUZi{>151l@JwZY0HM3<3ON=%HCL?#G^Y%AG;elbFh+D9+Ecs|%6qWgNyMn?hqj|KyqC3o7uy@`M5 zqnHPjx)?(A8=UiV>*thS+J>#|o&NU&*8k%ifLLUw*=~m&9(w=M9#Y%kqmORWo<<$k z9;R|@YJ9rqyzO&!;cVR2@u3)t_s1o1Y@b`jOQ%Xh* zAB@+JxP$F@`J+@D>-`VjQTic+mfi&Hnn5U)d_orOaN>Zps)nA%hE2kvaopun2~4zG zdrEOIQKLYLaQvI2^qhsR2PLtCegMMt9bfN9RiaUEQjn-KcXk zAPDFvwmDEo0;H*ii$VSMqi)+9^<4$S`DFC0UWCDycv!SXQ~AB7SxujoYd5~ zIDofWsi{AVgDxr`O+K4T78?Qxv)bM}@rxiDogO2=V@_aj)MITu?Xal8yLr4 zDB3j;pKyDBd+a`tQHgBzj4o7y zd9QWz`BOreT$gP#@3WF8$zLIjZiF~tBmE_jUnrm0;`~PJ_s%dn5%OyFzR#RFOFR(^ zWo~b7lKw-oyr}lv@g8&(FU%>u(Q|CyT|l^BA3xlJO0Dj{1Zn>*8K+!bT88H?UZiKi zy;Gwim@&2#*`1mUj(5O2Jzgx4y}5FU5G4UgL-QquS>A5BZ~-5WRWC?3;>+jkzrul(X)J+?ogJobQB!Fh{UAa6R;kUqIe7XpuTh@-FAP3!~z@-LD=%+QK__^5o=6P{H6~gGKvE z58OvPySwmkcZ+_vV^Y#kDm)((`p?X$HOkoit=k{Mr(XYA!Yw}d-~*`n7f63!+-p}~ zxD46+p;`|LKaq#D<}fiPN-e>Gw^-=s{KgfSnO+0UyzL9n&)U#fc=8_IR;H;YnU$;G3l1Pq1ip2WaeNIeejVicQe|M?bit2jP0YsxTs4E0VB* zph%4=isB6rcS1USVOp)va-VU6P6lAgDtqb0E1wQ++fJvc_{Mh>-*~L{o1=7vmC*MX z#NBUPN#D9Q)|aI31MZu=ud5GAnT$J-EXTMlPy5?ZN8m)1Ue6a?`|R01IHGa4iC))| z*3Xe|NjJs9(b-T@DV!SCpOT-G;%nMe#sffOBnyj6^c^NE>}+rMEV$K|)OacwN~b<^X2r)FY&q7@aj3mmSQ?pycK!XwTeJ@`Zf<2B@qC?BAaqja1o5sx zs3Se_J3=Qs8x?q{Gv?Q74XQKp9$@M}ci7nxiyE84n)Dfep{|tyaY_@1c=pob`B=Lk zY}WW#e5KKUe;EBI*s!@tjzIxH)zNAxIkMbY+x4PZjToLAG3;s20^%lz;YhJOF_R`XDduOn4W_{3pwC^MBQ>?@fJyhkYIMQcqPT$_46TE z0XCUzuzuE77NDYVd-PQt9iNa6Krx>R&#!1aAN{CPQ^g(=C!ktw!GrsUKK|wF961Np z*JpJR&0q`|C$V?9OM8%-8|@zX&vIsE5rdFp?_}2X@lh49tqI3s<<*+in0RPZ0$#ZK zCR{jo72f&L_u#$vKc>$!N{>s@Xwg?z(=kgpuGK}9`RRDM(7xb)%ZuWEjK2#8Bcn$R zLgbfqq+i71v?(bZ4cElX^s@37&W88|>Jrsj6%G&6#K4S~o+VE{qh~ZEnbzBAPsOoJ zQ%wem9FCblSlABrv|vjjxZ#@0YEICp%L`Y*@)H$PFjJ|lz(%b??I zAB(?MAPC$J9RPjFbg4sy$8kL0!5tlnaCnWlRssk*{>mxAy0+yRwr^lKkDH=<$uT?0svMj)0eqPPVcl^*agn!PApO zDJ_6&QpDA;g&6*Yq=V}9-EfUL;5*f6jXA+s*nvF$-UJCDZ=pazj(Utek_XTKV6q)Md>K47Ys}I7#16Qi_aSuU z^brgYv(HQwx#X(#BJ>j{n8eMYSwj<$E1;)QLI65U<~EjNWAGdBc~6v?CeYwxN&~JMX8gP1$Tw)p?}6`C&3pM#p+U8k3@D8_W4=7w%3gl$Y2&mM-81e z;5?nmO7+Ltk1ioP<{01=+F2V}j-N9*TS(j4Y64Vcp%f z5zLVRk$!>p1Wb;`D*Al8SO2b`arAo_TVvdUI*>qv%b4yHQnMNn`8R~ypZJ1Rqt$|(t^gE&atB~#x^ zLo!`5z|s3(YD_HtE+Y2**hNN?ULfOUT=kUhj{&Zd1Bu!0*LpHv5I~GNC&QDcgKvF1 zQAn^WyoPAp+iyT(7CD|lBn2}hztxl^!uJqqN(c`?5=>#0uzZ>X@j8}%m%~(Bx5qJN zZ>G98Ooj|bmp14!QEz{eBmzBxaBB+ib#%uPgUm^?SsXV=;NKbcU7C(i(x5#Zv3}`iPE|K#jVg=?Ws-dOq}1^pr2c@O1%pf@kbIjUzPK;6l$Lc?tm{0B07$4izRhA(%oLGI+}1j-d1PaH_dZalx=8t%gLMWQ_G{@g|Y zA&~WY(X!rTC;me6K$5;0RGBs###*~ZSM(DuY0!d#L))z&fgpriCQMsDY*Tup1p+a@ zbbZ{@(G1Ms5rhrl9}LRUfR^zYnYHyalHC;}_z)&eX{RGBHR5RS!Hz2tOhnk6UpUU% z8+Zs|R1hrx@a_zXu^BwW1ajGX%w`wHw!wR~+x?$EZsu%Wo;0(L<8+_`JG#n(^CMlXz-micr81yfO_@pmaj~LSUy3uBi&qgI5a?xevd|G-Uih6Qjtb zC8Q5KHA};=3(6@Ke*G4Vb)OYFxoz(NeB6TP=N zoppQAN&oIpF&sj8S|@@rU^+eSqyHK=_LmsH5IxR{!7!My&EL{A2Q{60B{RX~1I#Bf6UqA&+akB2KvD^vvYu^F&AlApCYsFSf9etT- z%!W+8)eP6L`HBgK@3L!qkeM65SOJ^bK|GH3f%|Mq1_NNsDrPQIymo_K^$OtU;YeS< zrT60*SztJ@*_!|p!}Dzx9T)ot;M<$hKE9V~IMPs!JV{A!c})qgAcIcVI7&C$|nl_NxBJU?)aD z#{zYZ>-c;f8#QsE?tW4}nb`5KnWrzssYKWAOZhO~)gNdA~Tk z9)J?YyJ3?syAVJ(8V8nti;D;{Oe6=E`C-k_{2*hF8*=Rpp$8xy#(6{z>DNhOj6V0Q zcR1qq5V~MNFTB9;PP;(MWMln%)3fBsXY`B`NgJ0`U75kMNdlVvD2}n9A@G?uUtosk zip0*9gHlp3NE$-Md-42LSX$stB&*A3yNvK`HUnS%@-ITYQK#cgRSWz6D1hzY4t&Pd zl@%Y5z`wCO&f?q#RmPHDa@QnV@b)q;izQYJ@p@nV$}ef7P(raNv@@UsfBLPjL#}mh;@#|T2oSV>r*04)D+&`!piM!3H?oN8#9g_L;P$=u=sAn|5}ZBr z+|$*Ca>B%GWALOnsx+7_v685raI#l2LM{LfO*?ozya|)7TG>RWk6>QfmJEQ!5%B@6 z&Z`wzTmw!FAE;yXFsDORwlNSrgU%^GAi!1f;ez6`S$|&k4mTAbQUMbTZ741oDUMvX z*D;b4@vYzc5mqn%;Q9^XW%xYRMpKW+f#)uqhf=9Tm7gCz+Jxids`czJ5ZPdi>o_5B zVR~u`3dJH+P98wCufSBX6f&@;3fN7rMb+*Rz@$#2YJN+ltY3u{g zrctsHJ}hfwzS?{L65nr~Ue$W+P~bZJq;2i&=g$KffDSPeB;D4P_mFTM4$6O9oj_O0 zWwJ0brF<9EO*hNB60X6^mtRu%&(UVVq^}z{AH%_c2Y>iSe?oG<-xk8hXf?Z!vSZ0J zS*3%nl_QmuB=HFfbWrGb-gMMiw(qXmhlv0@Jp^d-|2KuDnmYw2c#th-pj3AJ zN_np05ss80nTq=v<(cga!!c%R@w^?ov}|qf(LTsP7S_tkkhU^B0)>s^mhV-_Pcy&8 zYsGhPR%5LT3T`1>bxar^C8$V~bTitdds$Cc^+r3|9ay2vRSA|BXJZohN9#!+45{xMMIqb7oIyq9ompe#oqb|7DqZbI)FR+-4~V2 zT9}?CIaVqZ;oRCf*$zeJ2yurFs2ZM7ce`=(8r;8k59;_#j;C~Yb~@(A*|v#!{+X7m@d!2{M?y|;u$PQ z@4>CR*GS%NZa<1me#Cig`t#cBiv1=QyKm^Oe#)M5$BZdS8fOC@J$_7`a4Xe{A6Ob5 zh5D1>KPK1)I|xjgWDn+)%Q>O(@xKDrR##Y#DMmL{m?oZuYwo0e0&B}FIzWa%9QvGW zm6(^**1_WVO%S~2_*hBwt>dfNI5!XH&s|h{9LmFF{G}hYTAq)02k`_Bym<9B#fS1# zz5Roaen82$=#;$r{OjubECr|Byz!pWGum|S;@k@CE4@kf*lSc(dv4K}n^`x$XrieO zO^#56N_COqetNO_nHCRlht)KDzfcxrQ{h~nSy=YRL}re|y2a+f9tYQ}|BmYwsJjho z#+6>uQ0JGW(npJ_Ss1S!KDt>5z$>lA~z4f!Gx2yr3L z8-wy-G8-dg>%~|!bYXD@%2O=gkB=(Kf5L4#PZWl3I$+pWVY{9`tJj+e&lBM6wqA^# zJC>&x{ByALWG{aJuJM)GW!ev_9t-x?Y%L^q6t&=g~i= zFhqRsSXI8+;+BWF{+rDT=_&^Y`_#>Qc5a&dAstU7=%+9?a;+qE&kF~$n_)1)QPs8>P>2Tv6;fkAvl=E1lo3cAxOuGtziVUkqqG~uMf@49aJ zN6D_vnWDQ%SZesgPQC?C8Z@TF1uZwRn`OpDg}SS?Fzg>~l2fp**SSr&cW>W)Kphov zoz%3Bg>$mJyg=A_Q(^oyW#6>hfq!olbDR7igvYlN7bouX%NH)w_WjfCf)h7L9~$)Ud-nkXJ2Uxu8^b6!xGMAqfbSnU)Amy!st zuuz_(>;(^G$j98TBeCak0i)RQhO!7@EQI=yH((4%y;ak?htgZ!0tLU{xsSfQ4*ALV zk59&i=dYicr8RFKiE$ftb6J#a_a1&s@-<0!?T6=cjK@9YKgg4;O2SJScV&K>$v7h< za#V>Hx9O0@#bvm#@qDO*6fUXjAO8e)c6t3bYAwR^QSHM(^k}#A(DkVsay8a& ztsZx%`yz(pZ?!6rRs0{Pc&=1Xcvp6yK^wWJ@jQ)-s+aysCUfiP|TI7yXvmOIJUQUXs-A6s{VQ9 z=>k0W+$z1dYNY|!uRmg3Km<)GY(gFudQ+Kh9)+0uOV4j8yS+izohs#fzFi#4o*LhE zJ?6Qo8CY3ZqA_4>3wDY^pQCH}eNvHRyoFtM!jGYfl7CH<12rAvi@tJYYf_;`>U?#e z{5D5Qw0Ur(Z0`C9_e8)9-#oXKk7fHrRzh8+5D4VQYnkHRW zW;`&7y{153;-WykrE&;cN~bi5-|pyQ_otsQ?oqAxZ~W2kldLb6rr---{;JxC1+@p2 zA9v}T;(IkXI@u>*J9cNDnVD1A*1g!vkxek-awM#p@PRgWqmH>Au7!)27X2hY9DB1l z{`gI_IpTOs?^sACN6D(i#dVrv^h@V+RpRp(&MTg)HWKQpd5vTCypFQJ@`VzBl}Lw# zMT#?-j_+q51$)N${C0;6(XB5m`Jdx$+uDHJQNCg1kEoyE&qtLb_S1m&r>R>Pvjt_> z=ljYN^f4G*(H=9!fxBGD!EwU{4ln^t0`#@%$4yCVz@}0C;TXS*^RT=!2U9a;dj9=` zBdAu{4m&)q`o)Y5(GEeozQJQN?0A}(;mKSoyzOHnDDT1Q(6 z6mf(K$!jlPBu6TaH>(}AKIh@^*m3^pG4*0sdYQ^%>vahV*@dX7gT)p&ZI=|H%E_lo*!AclnXvJa%e)U(rN`s7KqX0Ba-mxLd#lQV1QIgxUV z&Pu!%0tl`*%r(R7$M3!g;Ey>wrPkR8s|bhpTUeOpBuuq05B87!cTN?Qbn+xsW_P#}{nC_j-iWYs zfE6;4oI7b9>nm`Ps=4iUCp4}!#?K@O1MuUgPyw^*y<=@_UiKM?OPk*UV!EKML4J(P-2mtJUI}_@Xy>m(j*-?lsq{%HxIXOJpwye1m~n&u#!>ncO|px z^*SYQA@8EVEww*O#k_T+ao3!k07-{{e=+8YgIpCjmO+Ez;;m-qRFfyOmJFo81$}E< zK4O@a36zsoU^VjILHTc!0`|(mB1o@rfl23NNTN zW_-Cyb{ASXF!czkYQ1;B1k`5(uuAd0T160mEmI`hplx@5bKiHmipY2RqHwFSLvj)2 zK~Xt0=jY3P!DG}})>hg6McKT+f9MCSf`8?hJt|{=>_KQZxo~5fP3o|y+ojj>*glxuCZH?M29RgmFu;9ybX;JO{^iH$JvEI*^1T_@|E9Nrs z$&;Om6=*yr5r$!R#vU1oP}j-^G60iPhqX1j5?b|qAZMMKnPpHP`99kC>ig-LMYwwL zbADpBO^y=|P{W^VwK{xo?eCG(6#sX#VrVA-+IL4MEHFAs#xE_+1?xu#uj4u&EqPMC zBN2T^9Ee`6R^Z@ZFI=@RLXykCmDk+U<6q@c|qhpD0Jo30-q-aft#ha7}RXBo_c6 zUh)KzC#B-s*Kd9VckbOKTLDKvxRPQuxkAkGG8#sfo_yYe0X*#y@vk9ClFb%>?<^I{ zfw2@A1|xsLjkPTWfiucm@{%y9;ms;7|Q7v~j!uJ9owLfniokUMI1l zu009M4{_1^kMEJw8uxG980j;d){NjJFmz}S5M(wi^}@b0aRFKC_w}_kxNvTR^$9Pl zF+H`%+_sh%CZPxUm(nY?9;-djeIE)olmRYj&T+F@i0?EAaQX5X_^sdk4@n>V`k(%` z+SkJ+*tAiODV>lywNWQrE{JmO+)FT{_+_nDgLi-OHt`L_<1bx$Rq@X$<=j3|yz4_M z2!&46#nmM^+C88|&?G{+e`bC~!&;IspC}RBrC+yM3z+nW_E#Fc*!Cl|6h@UMd9qmK z0`?iiYBrWAP{a_~F-msr93JS-L;%P2Zu~}2v5Xv)%4s8e1qI@o`0G}_?LV{}@Ks`f zRqe1tI(Ej%a8bKxfig7@rK0QO&e>f5J;j|AMz`VYWcesyZ0p5K3v;@Nh@>Ft8YV=d z&99V;y2jOPLOj2EDE)@W{qX#dUaZbpnO&eCk=O1X?e__`a9~C8eXV{#BVSX#rxV3{ z8|HFd{EU((8*Q5Nb|{w3KL)8^(t5g@jTXxaV^cv%)rLkvvkf!*RLsk@HjEK z1Mizdeib=DaLnQY%+GFw^hJ}ZfjZ~T_5)6ultE(p z(@0cQyJ%#Epa3M3&|VYGiR$u*Db={iG07pB-3Xhm(P>0 zAWHjtk16Pn_0sSJqfEvEI;|!%<3KKBq2DF7uPa<64DGlv>C_l^*J!qS+BPU_FPu3~ z>*9kCZjdg8_VW2N=eiR?90{vy%TTHA!$C&cut*{$6}gd4nguxMB7MROWhm0|3+g>! z0m@RQNP&CA!}Uf)QzVc%|_xy4wXw^`-6N(3S?|n@AbCP`MkLP;| zGkgH^iyKgI3O)IypFHViMhl#spgb5WnSEhB>S@I)}3p?}NAD@MxFx*$W$&;ftU91*Lznjm>`SHdK_}c~Vih zypq9Hqo#GFPV7rg&cuNH&CRNxxF3CPLp2ImZqWS@^DgGPZG&Fa()1ht(Qg0Amk|iZ7T` zagK9?_>PI+IpJbon$RAtDSQKM+-;>-l*>!-v=J6_nkk=w>+k&wKMt-l0!BtSzMczv z&7n-NvA%Mt%Q z;NczmY)1JNUVP#6YONK+V^HJ2b>}1a;Qb#_p_`y9FbqtHRje$nhx|rV$mQe+8p>uQ zJ5zU_>+XCMe?zu|9Dl5BFjq7w3mds?r#l}2G24PJ4 zz2G@lFP-)Ad`>1yo@}WLD;#J%|J>>t#nj*$EGYnIO5rZmdWW885V=Z?EH&Ojp-EY% zr&>zI;H$x&Dc~}4Sa;vu--o-HtO~4a7s}k}Hd{=(Snwkb8P}Vc51Rt^XW@y;)?Z$@ zOr7-%;d`q$PT=OFgY>D~fLtJU{t7 z$Cr|v$;B)=nVdZ73MaM6f_nU!^$Re&undC|Ckj7O^8Fqcw#QhtG1M;qi$M5}w;tZ7 zpHatt^Q|xW$&;Uc?H6EY_aXe?-ERPaKz_fX2N9;Gl#luHTd=e9PJp&n9(AwdZWWtKPBP|8cID8?lb9rlcs{_TjYT!Txvy6vl^o$aSI)xRn{&_XeBihtRJqLU8Z5)9c&r6*%$j+LwBDXf>6dfGSGa$rP?T z`CzzS#Onu$?+vTWC6OaW-+{rH%$f&?jn0X=kqE88(Wv)x$gZDxDMa>u!kKZSr0OII z-8x-L{$j=0^P0YqfzA<=tSoyCoC3JQ!9t1S(;}E1!@Xyd1D^%2DG0g|(K>Jfo@`|8 zSoyQ;{xvq(QgrhQ>ek>!z`&^9p}(`MjgBP%Nd!S;X~?b?ZzmH6K~(l{@i%0BV?>@Q zy|4rJNs8JbC`pG&B$4)<0k7QeaG?_w(eXf?OsbFNtKu|aSXdKX8YgH+>?{5 z?P3H{8}?i@!gmf^Rkdw0_yxxp#WCfckEQ?Byy{7yXGvtqEdw6;UlD(GNY{-^7&3Cc z(P&ceHNBfBubg}`DS*JKkPdc;=s_Y5uoFBIN6Sd* z-(TzRG5aIjWjfH|kzcszd~CEKI)PnXGn{TIY+pB8P2bZt2USrvL6rR*1tA`n!0_Z? z{NqWHk(+5*RorprGZ}FhG7SxfBeqbzTknrW9m6r+y}k`Um9~=Cr1Rf6z^t7 z@6W;KEoo~RTUz#ccAId|I$g)~f1lA?aPk`4EuIPX7?q^wUl+;Ia#jjkR{-sFFojY+ zVM?c=Pw231V(iJ&yl^l)BRE(3=S0__)HbTu@pPq8b|UuU7{7 z4XX%R$Dod>#BkZZ0mB#AZ$OpE9pTGL8oQ(MeQTnm?vluN6j~qShqn1Ab;ooy&P;NH zd7CM=W4d3G$%OWp#=Gfrhk3PeS)?K3-;h2pi}*<-qsa8LnOA^RdU1l5)t~e*%=r!k z4}@dr(kQJPg=LWp~MXu80F?$Rf$+tOL~RP=QD&iI4&0!k zo{#?$qIB8pC+%NHx}6-70Z)>ozlNe+vxqNCFDyemjr&W`{#h+UeVdB;S8^xL z$r9UC4(EniqS1+Tyz@DO000Q{#dsfq2z;)Po{TgzI!NE+CF{4Q6HNG8j3pZV@aZeI z8pJOcJ}O}RK15UWNrDr?#JmZzpd^w#e(Ob?_7&#~^ulsXUzgVf{@Z^pyYPHB+~Ldb z(wV})ONm^{zUm|tbLmAv9F2Jf@QXh{f?P4jc%J7M#Tg1)GXBI#F(Ka`8uX+zpD|5R zwAnXd_-gQ*u`bOW5ZfgGgJQvKzvDXgV)+zdHW}@gcDSgvUAP{Je8+~`X9B3`FLO}Z+v2WJt$DE7 zW4(Z71;t%BZ0{Md`HXsy-h=$F^|6}ILa_k(LXOr%$6?&ae8>L=#|JSG;onE6ZhfEL zttF!-MM=xBD=eeyI9==}o8tyd*(|L?j74WTVha4&MNtG5V`GtT_#NxBcnyl%R`y<7 zaO@Bk#0kY5!RW*qp81d9cP&e7-On7W{|zk~?T3kqdA-I6|4g&DqcX*?tjWIaSn7V) z-CU*LxQtZuWt>d9m!Kr|PDgg_t)9iyWpI9QPX7&P_D@Hqd@Uh-Kz8|Z;wUsk8H_FP zwefn#c%)Q#P2{--6ER}Q6XOr|F$wK|Ot`6z#qN*I`EpDIeyLtMPA_sa|FH9T=rURt zj^jc0ILz4fS#VnPEP3)7J)<5JI2(tr7SV+z_2K?;kOx*Xc;&@QfpKn)FRGYz-7n3U zdL1h{fRVDzv+>dFs4!i+a1~}}7b!qtR#*NVg^(Gqomu9jQ1y(NX^mbA8t#YthvcxSH(Ri| zd+5(y$59HstAhjv_9okaV$hWd2ifjZS&1u(aphhwh354nloe z_0`MWRdP>*Q1Md+VCAGm?*jS2#q*b_^Tl|G4P)%k(`k=UL8Iy--5;B7lanAEeaotV zZ1?~f&A5)8C;*_0;#^*X&j3}d_9(kuuh{n9=`lA52Iu=E=%M3kdU{bkdyau%9GZoZ zMXpG^xY?*erMBOfKcXUzRdEgvj-k`2!PL}rqOOe{8}2`ROzUbVcjO1~BVW3B?wpzr z?i^7r6$21vjEXx}ZIUU9EGUyjffIe!iDW*A6|YRd2qu$Zhk~_L-7P}>cd&mjl8nLJ zv~np&*Aq@MuaTZvm-~lRJwGt;KA4@! zDgc)O#hK|mN<0x=53rj?n#hc(8Wy=5H=E_!xEP>zKR$hr0rfrov>wc#6mKXc_9VzV} zJMbN^FV9;Yk&Rv|;o;69$$C6~b!i5QN?zg5SDt$jHa1pijoy3kaXOt8ZLq~fwZ5mw zHVW1^b_pql*1J&S-Pl<31BlFAOWJ=G&0{>MTUCtx>i!s@5HlW3!m|Tu(RRodru-mf zzP^M^uIW!Mg855}^Ym*=?SZZBT_2R&KH8@-bCvxdjDE2^+uPZpj&Gjyw|yM>WDAM( zB*~b9&;WUwpnD-5kbdY~=u!q*rpDu*)@QM^BnA}WIxQ8aU}a^497&~o8TwVSL|O1B z-~QK>(28pzhgEiT(8RQ|n^D)tMRuMVF9FKwZPK!Q+UN ztGWq6`<0aycDy>eh?He zYPAOI;*-&xx=f(Ku!J~IJJY5SA`j~oc!YZK{^3Ky4;{rH7iQK7r|LzBiCw$#6R1^A zNH9Nl=_Qz%neTECK7M=;9&g^K8{NNui#m4pBQvjgrK7+3+FNwZT)r?=r+KLjvq5w? z+&5?wQ1Fi1?;Uh+8VoEww{cDf1i4C=9IPu#F6&aqwoIQweE$8^81tDdJJEHA$m#M7 zcLPw5eS#h38k%oVheR(XHb=n2$J=D%69&-=dn1$KKquturBd0CUp?46_6reF z3K9koD7|faXP;y)2-fv4TwJDZ+xc99urrip*d^e_7hmT9UUhBk5^3v$WHTRZs%tUM zoKv{Wx%I2mQ62*x_V*w2y|Fraaf#+1JLqBOg<)wJl+<1;J~pbpC>IOdZ9@HDD&@Ov z${u>L>xhu{oqJt6Vd>o+-BL$Czl3?|#q@p?=|2(DknM-R$K&4e7oe?j3a$HyI zmT}}pE$DFA*r|ck(YdlIp_nOzx*g+BS)Fi87+JnUiL+gEhB`;VL{Uk)Z#aZdo$ItA z<8|)?T(2!G_KbT>?UyNqg@ya>!hWU~N@2mG_s#BMbz-^)247!R{2P5a$SaIJ&WTqx)+3-$$dN77 zsC!VWZPS>Fr4pPwe*sp{oTsi!$m;UBDOz7GwUC>wD)EZBxij=&=QcX(XT%p34%Tky zWJn1|N5{%eVg(HE>)VDD{Hl|zn@ab?prI@WXRRzR!q$#t`>GcuOdZ*mof_;P?JEA4 zh4UL5W9w?h`waPc4rZs$@cmr=%*UIQeo!plhn&J@I7qtxHDf;)jDIZa&Jacp`-#sG z1i~WDySKNiaPKj67{vD-(}{$-Tp7P9vI;TTKzj_HZ)p#>ocuh{Ws75Otw^!bFwQ zXK^igP_0+gTK&GxBp2kz=m>`cZnQ7=xYmHX_Z~4OW(px9rm?(4dIl19FX^-zF*gIw zCB{D)V8PyHPYutLkdK~SJV)&D$Rmf5Q&S7tdW$*L!-xkL>sbOt!1-?ZYR9kiVENUP33+^h#6|8t12Y4#%aS zH8)ypGwEJxzZ7)`Zq%`Bm0D_hVh}tZ$GCRp47~p8OKh{KXF53AhDVzZ)E;#>j-p2@ zFzSulyL-x~QxAe+Qxfi@#l<3&@i|dvohm4sp~cf9xTChKZBs+I^_xmJX(?SB=kwvC z+sYRN2`k(grg_6?qUw!3sWM@^XC-D6r{5cnjluh`-kN?aM=={v5 zzL*&E)Qj-FU%GTvt)VjP>>k05Yu_Td%qDnF@zpoF`03u>wpuqgY3^3nrn=>c+S6N` z6?zYN{SD>oYMoR`M=j<|H^;##%~`0kWICq!Xu7j-T=kyW6}D*H)LHUax8VQ}HbPIZ{Yi3f?;+ z(is|UwUgS3es2!kxcL!vir+oBOMHM2lCZ4&=$L?TnwTgOuGycw^EN*Z=?8(`*wXPv z%sAr5#fjzoU6OB%1F!i#b#&0Qp;)g0HkPVe2UwI1VVpy(*T@YW!Et2d&**Wv*||k{ z; zyGO@w?i>IuV|7fqT!M?|xqIsTe3`mLJ5=x|YrWevHj2;~Eeu8ZLI&36mx;F=9Um(^ z|0MRfEMkD|j31ys5E;D| zU0+xB^9x)Q-s#`f*QTs`4{`n{l+h>3@8Rhrdt(dW{pV*Ez~s7!0pl9gnxK&uI#7VTvS&J>q*uZgh0EHfy+0j**kTp3 zN4Lpgu?+)Z^$Si)ppx=gpIyHK9G`(PZdJJV-T_RKY`m1ZsXd8mEvHNc<@=wVLkx)h z{n&w?h+bQZKmm*a0>qECf2rLbt~fZ(@A}4qFK3xeqYp_^9Ge}ZFbPVtlrzdNQkvpe zh#-j#{i<`iGcLwb)|9@w*>et%N1z`XdD`mQvhSx`Sy_hFUKImD94<(!4!^+`cLr|^W|wUB zp2+JmEiQgqQ2Jcf$-&b=*=+wg2|@mp+?a)+TeHSMLH4lMs8xup zQt41#m(m3$qJ+4|{{AM#h9(g{$Ir+Vm`W@)6}5Q5;`~ABCSEe^NM4+aDD@R^;dp_0P}`&Vr_42(mVLzqn{|?;)7UW zXN4bFkF+>W(^+iJ|e{?r``t!*`}$!i0|Qy0!Tmq z>DTDzrUI63e|$#?R0V<^RbhMY$lqgLMmadLqdR^nh|P4$!YWJsoDT?iwK!p=(|Pia z=W!7_tv~o!Ijz+LmWm}bdk|(K)DdgaT4?k80ag7YcH(vQ7%+AcgI0@IQ*Fop{ zn7{}0S;nBgj$nrpQTpcQ|k}|+xjOk9~|t%`?YuJc`uy5NRHq*F@-$x+I7W4 z+AL2^cP`{FufBK{rb=uGVuGF58UH)#G`zlvRHR1`(At|vdNfA}wzvJDib7G18?wq# zJI_4H!{o_B03nAmfRHGVZl>r5B?_nixE?>OsWrzS;`AIQ#PD}GuW1s{vg(9Szxfp< z>+>)Op@Zb(5C5E#g%!;fXJGeeiyW!AP7qA)7c7i?|D@A_q{QB*nHp9gyX}w4n`Cn| zvYU+n%%+Omy|3wDWyH3gv%FesuBkGP{3Aobuj^+v;LSIF-tW$X!H^G>!?@Nsp#X(O zvkqoL8^~rG=@+BxwA6i$;mXzLpin5$XI_T`^^Eg^1CERId<{&V)aOz%)i#3*1XK*b zcQK%3ZG9RRmkRW|sboJ0nM#u5NS?&|<9y>7iun?pS$__G@WXfMyHmaeN0G{(SN5V)wn#p?h4V)?(%5Q<#NXM6tHpT3jFL_ ze>q&CRXy{EAO8g2fA1!=WDC~THsC+}n}3(|!M*)0_y_;!zf|{cP@#wWJCC~VfzL3f zY|S_@&!+lOzhGPJuqehBd^~O)R9RTnpM>3?9L+D|9PG#gZ`{2@7z75Do>^WQ&4v~JUz|LluKCIG)m=O`hH~%bosZz{AAA#{ohthhIk;!x z=fCuqA*;Lf4wgKrbX_&~+}+SgbQ;DH;wp%9p%XkeM7JQ^N6$b193}Umt%f$$AUpu= zkwPKQ1@8JJ(6T-35>`%nzQbK8X4Kr3r>1m8e=M3)r{_Ua7!#l3=J+A>DUH=Z*v_dJI&tLjHUF+!RaHQnPVJNGE zs!BW%E_&x>vH>ZDYhmzW4qUntRwH$CRv~ABf@jF+j z>&=y>)tbxkUODc-QJWL>j*csEd|WYi@JSr|mw}?PD+^PFuG<@&nB;2F3la#e1JU*1 zP~sJLifBQ*`!R4$d$}&W3dh|#p$J*X7BVn%ZZ2H-Nuq7;_C+M{zK3uG+X@Gf1IX2d z@~l56&7%$#N$Yiwe%HovPN{XfG&2j)t|zrdhcNvKKyF0HuU>ok3(6*X40j*g@q--j zpLW|0icn)LmtbvWS@Bj0j~?&hQ3|`9hKuLV`<-JkxbVtzpHfSg6HX{VUvO6noQLK4 z%OpPzkM6_X;eAT-KrHUg{rga@Fg`&Yiak?(+2f>4Prz}zqI_Ob;ogq#D{CstMJ_2w2&c9gJw$idlfz9n;**!pU+$Sa>31cQ{ElzmzDLEN zFj#tSwnTV)s~uj)xQ7-N7vO~}S4a+Vr)dFT<%pn8YzT|X8pYUum#%!F zuRk5-^w+-juP6{6sWjd3@qE<%uU-Fue8w4t;jEvz_*5lN+VKmBJ-q#Ae@KZXp9Dgz zEuYmvp6JUVJtvuWB0nOXM6D<8n#X@c3Vw_0bSgVd@(<-yy;jr7IgtZpM8Sc<@O)gO zmoJ`&-~1bYjmB0}KF9BV?_YzP=fWhY^W`9$$WswNeE4un2Z5$5SRCBjf%UUEf#cC*I+`7w1=CUGcSAm5X~e zTTQ+9)z8X~HA$0k&yL5rP4#|duIq>l6|v0fFimwmJ+xHu3&8uEaAGA>kT>Aqvbbi( zPzj`-j``;YUAGIsh)v7X0DYe~*?k`Uzft<#R(NPZB@5@`lp= zURAc_efYQk_B-f&(Zw;;bzl8CD3yXr3si7jtr<+7L>X}5Vx+LI;G~Cxqb9VD8^nwM z+OPjrc>9n4NbRc{Bcl^kFfgY++Yb0cntP$DRo!hc?w|FjOD8@P79PYkhu3Jioq+@< z@~&C8M9;50j8MVkNnpHkd;0)(_p}dBPag8CmtTBE$r@c~hy3~#-wMUT`HS5Fab0Rcu<%gJ=hf7!xPRD2&-{;EeJS=Z4XkGGiP%aNwJc013 z7|gk?{9XG82VK5e9A68QfgJ9f?p07*7|v<>#lO{ym0Fm|G+My9^m~6J*XYgmYXj&neyZ zHUG1AYY*OrAHyUmgqOBEe<6}5v5?u%eD>D>7YKJ~j_!W}-~9IPQT(8ZPr!KhLHr|z zFh1kT^Gm*{M~n`OsWTgOCaRmIC2UIZnNR&P7jV=>$-B5Vlpc)5-5SlR!X1x$`lj%! zS>=nJQdsx-bL((!17obPNaZ}NE?pwue5+H3gM%&gucW#4oE*%kdr$%4c8la5UZ>G$ z2eFk(zZ5OShngw*w8zPl^c?EHLM~5GCg_|sBsV%P*1;z^0^X}bMy3m3ptL#Al%5~=Z})>aOY{XJ>GofXJLAFg?PMF z%=3@G_0M|yD*NI2Y7Dc}ML4^$)FqP+4{HjquEfUsj6~{kpZoMLD_`s^6%+jJ-}$dX zO<3%LAl>Bo$?<4gmCBY3qI?~%rw_xkt?5Tq5gQgG+cGnb4TV#kh|i z3i$=xSWz^6pQO!p5Ttgzb(R1}rNdlc8LkBHtCmewzYVP-T9#T>e zeK&%^!{>)Ph779D`%Y-DJvbgHP5Wy$@Ue@Gn{h+R6bAix9bHw);{fVtJfWSKU;|P3 z5m%<-Do-vc><)DKgQWeV^lfL3HAp`r{=Fp!OvRFj{-DWo)$zJ@NRG_G~(DzMVV0(MF=2t*zLyNw{B&(?>!Q}mX=Hk?$;+! z68E`qw2aUdRi%-4PH5hu9YBz;Itj)KtzFOJL2*2nI=ea6wI{!$$)Jx}3XTO9^dd*c z3i>321V_{r$Z3Q;PzPNJ6A=i5$(_Ly$8;B9nnLTHIlACOpKA%t^P@V6(IcX3lALz< z{wNSr_}!&(JqRrUOt+i9BX^uwr=`^6_xb%N1gH#LH4xrEgD!9VF8x4Pt-JEPI##72 z>Fa@>)orf#dhP-0=|xQe4$?SJ!vVUiV+tQ3^WVAVk;5i0Ql+_p*M8^<>5dX2v^V3f zW4e;Db4%}Mv;Pw+lE?CHYeCo!>8FK)9X7~0@p56JBqRU&_wRi;AC&O9^%?8F-4`QS zW^Z00!BnC%i8{?@P(&fbe-i?Z94Gy(NA*8@i4kv(`CRDV*&(U-r(j?gZ6j9%KqOWS z#-st8_v4sN@IB}tc{~P#SL;nv#aAC2v*umBzoZOt!@)^DU3(>t@HufEAV?Wt1wD>O zTNl{Y^}P6GTXe)y3232{?C?0jKsDNTCV{QpCoqvZI_oM7<~Ev@(R(9bfb{f&iJUAW zKa1q&VVopM*W?RHDdX>xNJ)Dn{hEm7O@c8N+p&&^<#Hx?M0Dvbr9DY`o8$gbneBgW~_LU3?5&JPAJVj_tBj^hgza-b7l4|zW7 zL6l4@IvP_&Jue6ha!hAL2>c7ZoySo!x6|5Z#NF`EacP2LV~$;p+d+%gAVgH-{RzK z;_=>ucAUq)NK<%XP{L<*Bo|#4Pth9hN8L6}3i}_rmqD5*W;;aqc2X*`^n91(BT8vdh==d>I-D?6~*^ zM<4Gq(R&NNCumfE+?Bu3mutmImVXiNRCx< zI!@P(&ASY7LI?aVYPKJnY*XNONd+<>?El1WboTFpe3t3rxW+-l>Snf?ZBs83yWcoS zr}m=P!w#2WT$!*3>|B@SPOR-V>z`fk3c~h>v5_c*%km@pHnTALD(D2Vus&|aNxO0Y zpGg|B{ghM$iV_3#nl<%nZp45_k;)juOZ(9x%%V!b>4LREH zOa&yUII^H*a@!VR{lwt3$r!VL4;>>y>&3HU8Tygbu_#i{v9UH!JR1YF9@N$` zjeH`W1Dr@LfRiL~zoH$D*jk`dOD;Zzvcoe8*VcLxfekALd8ibDX-4znOFI5-lXM&7 zb2D;I0>G%Tvwg=Hf!n&`2_-;^S_bwN!4&ADf_1q-4moXZSP&($v(Xk(?-DyJ&(6(~ z4pgZe`1kdTJ_ff*couD+M(}*c3d`;1OB#gY<^{*sw`1L)(>TaJw*-^R`hvSUM2tra=>y=v355=ZI_OrSX_ejwX@0gk~sb9{c#BzC`8V#pM^848(Il72Lo(vKZd*a zZ__z@hkHu6x1mK9`LT*)lay2ppz*ZR&-3DwKt?5;!?x*~C7`S2d0N8L(O@>CbDea_ zJW;~uefVe(_V=0`6r`Nm&B}dJv=8=Ad}Vi0DRuL6b2R9^!vomc=Sob6C&zH>-d(y@ zAy)`=o`h+mIc=iy&mftHfk!DFgmk~^3DmI?r8>8iD|Q`&>I_yepUIa=$?CQ0&xJDn<)!N(5RvQMW6l$M9+T0#oe;BM=E|#IA)_Dgy#B1e<{2TXo zp;!dj38aR05va9Lr%Hx{5Q2gSM_Y;y<{&1vhm#pZ_ZQd+vyh+S=gj6|dTQC<^No5_ zjgtX!TnEe4nWv+{>K1fb9e><5ArHEF_W^ZcI;KvR$#W&4Ptc9f0ILr69+ZEZ#1TUX zaw88J1{lRI5G%_oaCmSGbu~99wF+>tMnT;-GCII(dTN>hV|9zEsX3UPS|GgP#`X8C zfQa!BcXu*X3uWXxN6GmMu(Gt&vwNi}LJ(K+6W`_C``4jXt!R*!*IK=HqIlN|OqFJ+ zTBLogT($u7vx~qbC`9c2f?rrR7xOKu`r{Y_T>qUd=XB7Tgx$@(kij`o66_S#15Q;@ z7pyXE?`;=T_)<>^PInF>tlAbdJV#aJWUmG#tds6^(JPpTDpIbMx5M zwL4T5E5hyX?)U&mK>SOooS}EJxwTD|)R5-q7ZjfecT2;yhcawtW}ePPRjXF3g^p>| zAr>f-iTXsh^K=lR#H18KKUgKTG&KWrGpmraHC%Ftwc+98yUm9|{~DneqgEnKG`{`ei*7YK$eEuQ71MDxD&F^{(I`ki^lMcj$V^Mi7`p9^hl zsleN5aI?H0*4NJ|`L#{~CU;BQV3LR9whG#nC(3S=>;-^ky8)Z(IVgFu*62SzbD`dhIT~ z28%Da($zuPN+)b!#cK6${eiOOkJ33FsR)V(U;*roo1rm~t?HQ0i-IcP2VK6}z=B>q z8?gve%mreT;xldzmetxXmcWXzzqa)V2&aJ`P!g)FlJ1^b3bvtxk_x(^0 z=WgMJgodQl#bIqhJ2OTD*r`a0>(~V(>EBAd2HX3)G@zmy&`fEnZ`X61P+qPneFZOu zMV+E+6o2d2^^UrBohZyo=@B@_qng5V>b#%0n0v$tgBZfWK3uzTjric~%p6>K?&?o> z_sM~2c%`G=XemC#dV;6;nv<2B*quPGlYxb~RdRqI9`A6lijpPARV8m~f_TsD%u4M0 z!Oxz1?qyh1m@ZjHgc@9V z{>72`00vZEzy3pPD@FJ+@*pgHfIM`2_ny+h7DzUy!Gp3&KCYj?47J7~oSZ1!^QhV# zM5y-5UiHYga~G72f{A z!d%XUY3vM!3#N?~`n62SIRQ@+(#PYI^kNFw%>;!Dh0H@Vlpoj4{Oqc4{~8h<6F8#$ z4ttL$ZZk0^U*m3#b{9l7+&UUWdfWxIFtJiO9#d~CowCi(*KDh~Y*caN)D5MK0Y4J) zwDETX^9avBrmEbTdWO0#UR3KHb%>**9d_QU1$um3Q|q5QZI!1Bu(5tY;Yb;UtDb-c zm{?{U9qA-y=Jy|7dq)>2^OSxv&33+Ze++hQHjbg8J4_*u%H{IP&oK|(#f}sPa=6d> zsQM3mAsMx1g&XyK3DQ|GXdFA8bC(QE7C_zDg>1*wI-T$t8QKG$u1by7sUJON+<^R9 zXU^z?a}c@*R-Y~vry#B|u_b8W_)O^jIiVl5RgtD*WYB}q2XC5NOdzv-9 zpHcraF?=Wr5nB?_om|}aUX0HPUAV84P(*i75+cC;sEcV!7dc40^iu=|^&phH+dKQp zkKE9OFuDof8~O{2>W>f{Y#s+J2yMF%Pfww}3#EK<{J;-`oBB4|VYxq4d}_n4O&` z3;^Q>f>A2HdLOaS8vWd?*L%+_+U?{wHU9nR0SX5yFH#Z}cWEibJ1mAE^u^!&@Ix8| zt|hw|7bQ`Kg3h|hZq^X!kKwV|O%_t&P>6GA7iv@wF}zt=f2SdQXBVEo0{LQrelAZ> zr9K^>3%k&4Z9VYkf_-L9!t{kRx_*H3a_`|oW&gF6 tp*8Yi;t{Ws@xo&(%GC{?l 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

?W!s*rHV@y1gz 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 D4P+qYF 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 z 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%0AX{o3z7gFoEn4GTf4JoIMuiPj_A1G~?t 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%0DaU<3Q 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 z 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�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

3PhLL3&!d{u39X;P)`A})*->0TY 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

>&sg3*2}* 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 dm2j-QLXE6}XD%Y?G`+p902iX7s literal 0 HcmV?d00001 diff --git a/websites/front-page/src/index.css b/websites/front-page/src/index.css new file mode 100644 index 00000000..9a719cc8 --- /dev/null +++ b/websites/front-page/src/index.css @@ -0,0 +1,30 @@ +body { + cursor: auto !important; +} + +label, input, textarea, select { + cursor: auto !important; +} + +a, button { + cursor: pointer !important; +} + +@media (-webkit-min-device-pixel-ratio: 0) and (min-resolution: 0.001dpcm) { + .nes-btn, .nes-input, .nes-container { + border-image-repeat: stretch; + } +} + +.nes-icon.discord::before { + width: 1px; + height: 1px; + color: #7298da; + box-shadow: 2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px,4px 2px,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px,12px 2px,13px 2px,14px 2px,15px 2px,16px 2px,1px 3px,2px 3px,3px 3px,4px 3px,5px 3px #fff,6px 3px #fff,7px 3px #fff,8px 3px,9px 3px,10px 3px #fff,11px 3px #fff,12px 3px #fff,13px 3px,14px 3px,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px,4px 4px #fff,5px 4px #fff,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px #fff,13px 4px #fff,14px 4px,15px 4px,16px 4px,1px 5px,2px 5px,3px 5px #fff,4px 5px #fff,5px 5px,6px 5px #fff,7px 5px #fff,8px 5px #fff,9px 5px #fff,10px 5px #fff,11px 5px #fff,12px 5px,13px 5px #fff,14px 5px #fff,15px 5px,16px 5px,1px 6px,2px 6px,3px 6px #fff,4px 6px #fff,5px 6px #fff,6px 6px #fff,7px 6px #fff,8px 6px #fff,9px 6px #fff,10px 6px #fff,11px 6px #fff,12px 6px #fff,13px 6px #fff,14px 6px #fff,15px 6px,16px 6px,1px 7px,2px 7px #fff,3px 7px #fff,4px 7px #fff,5px 7px #fff,6px 7px #fff,7px 7px #fff,8px 7px #fff,9px 7px #fff,10px 7px #fff,11px 7px #fff,12px 7px #fff,13px 7px #fff,14px 7px #fff,15px 7px #fff,16px 7px,1px 8px,2px 8px #fff,3px 8px #fff,4px 8px #fff,5px 8px,6px 8px,7px 8px #fff,8px 8px #fff,9px 8px #fff,10px 8px #fff,11px 8px,12px 8px,13px 8px #fff,14px 8px #fff,15px 8px #fff,16px 8px,1px 9px,2px 9px #fff,3px 9px #fff,4px 9px #fff,5px 9px,6px 9px,7px 9px #fff,8px 9px #fff,9px 9px #fff,10px 9px #fff,11px 9px,12px 9px,13px 9px #fff,14px 9px #fff,15px 9px #fff,16px 9px,1px 10px,2px 10px #fff,3px 10px #fff,4px 10px #fff,5px 10px #ffff,6px 10px #fff,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px #fff,11px 10px #fff,12px 10px #fff,13px 10px #fff,14px 10px #fff,15px 10px #fff,16px 10px,1px 11px,2px 11px #fff,3px 11px #fff,4px 11px #fff,5px 11px #fff,6px 11px #fff,7px 11px #fff,8px 11px #fff,9px 11px #fff,10px 11px #fff,11px 11px #fff,12px 11px #fff,13px 11px #fff,14px 11px #fff,15px 11px #fff,16px 11px,1px 12px,2px 12px #fff,3px 12px #fff,4px 12px #fff,5px 12px #fff,6px 12px,7px 12px #fff,8px 12px #fff,9px 12px #fff,10px 12px #fff,11px 12px,12px 12px #fff,13px 12px #fff,14px 12px #fff,15px 12px #fff,16px 12px,1px 13px,2px 13px,3px 13px #fff,4px 13px #fff,5px 13px #fff,6px 13px #fff,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px #fff,12px 13px #fff,13px 13px #fff,14px 13px #fff,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px #fff,5px 14px #fff,6px 14px,7px 14px,8px 14px,9px 14px,10px 14px,11px 14px,12px 14px #fff,13px 14px #fff,14px 14px,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px,12px 15px,13px 15px,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px,15px 16px +} + +@supports (-moz-appearance: meterbar) { + .nes-icon.discord::before { + box-shadow: 2px 1px 0 0.020em,3px 1px 0 0.020em,4px 1px 0 0.020em,5px 1px 0 0.020em,6px 1px 0 0.020em,7px 1px 0 0.020em,8px 1px 0 0.020em,9px 1px 0 0.020em,10px 1px 0 0.020em,11px 1px 0 0.020em,12px 1px 0 0.020em,13px 1px 0 0.020em,14px 1px 0 0.020em,15px 1px 0 0.020em,1px 2px 0 0.020em,2px 2px 0 0.020em,3px 2px 0 0.020em,4px 2px 0 0.020em,5px 2px 0 0.020em,6px 2px 0 0.020em,7px 2px 0 0.020em,8px 2px 0 0.020em,9px 2px 0 0.020em,10px 2px 0 0.020em,11px 2px 0 0.020em,12px 2px 0 0.020em,13px 2px 0 0.020em,14px 2px 0 0.020em,15px 2px 0 0.020em,16px 2px 0 0.020em,1px 3px 0 0.020em,2px 3px 0 0.020em,3px 3px 0 0.020em,4px 3px 0 0.020em,5px 3px 0 0.020em #fff,6px 3px 0 0.020em #fff,7px 3px 0 0.020em #fff,8px 3px 0 0.020em,9px 3px 0 0.020em,10px 3px 0 0.020em #fff,11px 3px 0 0.020em #fff,12px 3px 0 0.020em #fff,13px 3px 0 0.020em,14px 3px 0 0.020em,15px 3px 0 0.020em,16px 3px 0 0.020em,1px 4px 0 0.020em,2px 4px 0 0.020em,3px 4px 0 0.020em,4px 4px 0 0.020em #fff,5px 4px 0 0.020em #fff,6px 4px 0 0.020em,7px 4px 0 0.020em,8px 4px 0 0.020em,9px 4px 0 0.020em,10px 4px 0 0.020em,11px 4px 0 0.020em,12px 4px 0 0.020em #fff,13px 4px 0 0.020em #fff,14px 4px 0 0.020em,15px 4px 0 0.020em,16px 4px 0 0.020em,1px 5px 0 0.020em,2px 5px 0 0.020em,3px 5px 0 0.020em #fff,4px 5px 0 0.020em #fff,5px 5px 0 0.020em,6px 5px 0 0.020em #fff,7px 5px 0 0.020em #fff,8px 5px 0 0.020em #fff,9px 5px 0 0.020em #fff,10px 5px 0 0.020em #fff,11px 5px 0 0.020em #fff,12px 5px 0 0.020em,13px 5px 0 0.020em #fff,14px 5px 0 0.020em #fff,15px 5px 0 0.020em,16px 5px 0 0.020em,1px 6px 0 0.020em,2px 6px 0 0.020em,3px 6px 0 0.020em #fff,4px 6px 0 0.020em #fff,5px 6px 0 0.020em #fff,6px 6px 0 0.020em #fff,7px 6px 0 0.020em #fff,8px 6px 0 0.020em #fff,9px 6px 0 0.020em #fff,10px 6px 0 0.020em #fff,11px 6px 0 0.020em #fff,12px 6px 0 0.020em #fff,13px 6px 0 0.020em #fff,14px 6px 0 0.020em #fff,15px 6px 0 0.020em,16px 6px 0 0.020em,1px 7px 0 0.020em,2px 7px 0 0.020em #fff,3px 7px 0 0.020em #fff,4px 7px 0 0.020em #fff,5px 7px 0 0.020em,6px 7px 0 0.020em,7px 7px 0 0.020em #fff,8px 7px 0 0.020em #fff,9px 7px 0 0.020em #fff,10px 7px 0 0.020em #fff,11px 7px 0 0.020em,12px 7px 0 0.020em,13px 7px 0 0.020em #fff,14px 7px 0 0.020em #fff,15px 7px 0 0.020em #fff,16px 7px 0 0.020em,1px 8px 0 0.020em,2px 8px 0 0.020em #fff,3px 8px 0 0.020em #fff,4px 8px 0 0.020em,5px 8px 0 0.020em,6px 8px 0 0.020em,7px 8px 0 0.020em,8px 8px 0 0.020em #fff,9px 8px 0 0.020em #fff,10px 8px 0 0.020em,11px 8px 0 0.020em,12px 8px 0 0.020em,13px 8px 0 0.020em,14px 8px 0 0.020em #fff,15px 8px 0 0.020em #fff,16px 8px 0 0.020em,1px 9px 0 0.020em,2px 9px 0 0.020em #fff,3px 9px 0 0.020em #fff,4px 9px 0 0.020em,5px 9px 0 0.020em,6px 9px 0 0.020em,7px 9px 0 0.020em,8px 9px 0 0.020em #fff,9px 9px 0 0.020em #fff,10px 9px 0 0.020em,11px 9px 0 0.020em,12px 9px 0 0.020em,13px 9px 0 0.020em,14px 9px 0 0.020em #fff,15px 9px 0 0.020em #fff,16px 9px 0 0.020em,1px 10px 0 0.020em,2px 10px 0 0.020em #fff,3px 10px 0 0.020em #fff,4px 10px 0 0.020em #fff,5px 10px 0 0.020em,6px 10px 0 0.020em,7px 10px 0 0.020em #fff,8px 10px 0 0.020em #fff,9px 10px 0 0.020em #fff,10px 10px 0 0.020em #fff,11px 10px 0 0.020em,12px 10px 0 0.020em,13px 10px 0 0.020em #fff,14px 10px 0 0.020em #fff,15px 10px 0 0.020em #fff,16px 10px 0 0.020em,1px 11px 0 0.020em,2px 11px 0 0.020em #fff,3px 11px 0 0.020em #fff,4px 11px 0 0.020em #fff,5px 11px 0 0.020em #fff,6px 11px 0 0.020em #fff,7px 11px 0 0.020em #fff,8px 11px 0 0.020em #fff,9px 11px 0 0.020em #fff,10px 11px 0 0.020em #fff,11px 11px 0 0.020em #fff,12px 11px 0 0.020em #fff,13px 11px 0 0.020em #fff,14px 11px 0 0.020em #fff,15px 11px 0 0.020em #fff,16px 11px 0 0.020em,1px 12px 0 0.020em,2px 12px 0 0.020em #fff,3px 12px 0 0.020em #fff,4px 12px 0 0.020em #fff,5px 12px 0 0.020em #fff,6px 12px 0 0.020em,7px 12px 0 0.020em #fff,8px 12px 0 0.020em #fff,9px 12px 0 0.020em #fff,10px 12px 0 0.020em #fff,11px 12px 0 0.020em,12px 12px 0 0.020em #fff,13px 12px 0 0.020em #fff,14px 12px 0 0.020em #fff,15px 12px 0 0.020em #fff,16px 12px 0 0.020em,1px 13px 0 0.020em,2px 13px 0 0.020em,3px 13px 0 0.020em #fff,4px 13px 0 0.020em #fff,5px 13px 0 0.020em #fff,6px 13px 0 0.020em #fff,7px 13px 0 0.020em,8px 13px 0 0.020em,9px 13px 0 0.020em,10px 13px 0 0.020em,11px 13px 0 0.020em #fff,12px 13px 0 0.020em #fff,13px 13px 0 0.020em #fff,14px 13px 0 0.020em #fff,15px 13px 0 0.020em,16px 13px 0 0.020em,1px 14px 0 0.020em,2px 14px 0 0.020em,3px 14px 0 0.020em,4px 14px 0 0.020em #fff,5px 14px 0 0.020em #fff,6px 14px 0 0.020em,7px 14px 0 0.020em,8px 14px 0 0.020em,9px 14px 0 0.020em,10px 14px 0 0.020em,11px 14px 0 0.020em,12px 14px 0 0.020em #fff,13px 14px 0 0.020em #fff,14px 14px 0 0.020em,15px 14px 0 0.020em,16px 14px 0 0.020em,1px 15px 0 0.020em,2px 15px 0 0.020em,3px 15px 0 0.020em,4px 15px 0 0.020em,5px 15px 0 0.020em,6px 15px 0 0.020em,7px 15px 0 0.020em,8px 15px 0 0.020em,9px 15px 0 0.020em,10px 15px 0 0.020em,11px 15px 0 0.020em,12px 15px 0 0.020em,13px 15px 0 0.020em,14px 15px 0 0.020em,15px 15px 0 0.020em,16px 15px 0 0.020em,2px 16px 0 0.020em,3px 16px 0 0.020em,4px 16px 0 0.020em,5px 16px 0 0.020em,6px 16px 0 0.020em,7px 16px 0 0.020em,8px 16px 0 0.020em,9px 16px 0 0.020em,10px 16px 0 0.020em,11px 16px 0 0.020em,12px 16px 0 0.020em,13px 16px 0 0.020em,14px 16px 0 0.020em,15px 16px 0 0.020em; + } +} \ No newline at end of file diff --git a/websites/front-page/src/main.tsx b/websites/front-page/src/main.tsx new file mode 100644 index 00000000..5ca9df86 --- /dev/null +++ b/websites/front-page/src/main.tsx @@ -0,0 +1,11 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import "./nes.min.css"; +import "./index.css"; +import App from "./App.tsx"; + +createRoot(document.getElementById("root")!).render( + + + , +); diff --git a/websites/front-page/src/nes.min.css b/websites/front-page/src/nes.min.css new file mode 100644 index 00000000..24ac8fd1 --- /dev/null +++ b/websites/front-page/src/nes.min.css @@ -0,0 +1,15 @@ +/*!***************************************************************************\ + NES.css Framework + Version: development + + Build Date: 2026-05-25T20:47:27.701Z + Node Version: v14.14.0 + Branch: develop + Commit: b1cc9944aae3274461c747d7ad1cab31df45e78c +\*****************************************************************************//*! + * Bootstrap Reboot v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}body,code,html,kbd,pre,samp{font-family:"Press Start 2P"}html{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABFklEQVRYR9WXURLDIAhE6/0PbSdOtUpcd1Gnpv1KGpTHBpCE1/cXq+vrMph7dGvXZTtpfW10DCA5jrH1H0Jhs5E0hnZdCR+vb5S8Nn8mQCeS9BdSalYJqMBjAGzq59xAESN7VFVUgV8AZB/dZBR7QTFDCqGquvUBVVoEtgIwpQRzmANSFHgWQKExHdIrPeuMvQNDarXe6nC/AutgV3JW+6bgqQLeV8FekRtgV+ToDKEKnACYKsfZjjkam7a0ZpYTytwmgainpC3HvwBocgKOxqRjehoR9DFKNFYtOwCGYCszobeCbl26N6yyQ6g8X/Wex/rBPsNEV6qAMaJPMynIHQCoSqS9JSMmwef51LflTgCRszU7DvAGiV6mHWfsaVUAAAAASUVORK5CYII=),auto}body{font-size:16px;color:#212529;background-color:#fff;-webkit-font-smoothing:antialiased}label{cursor:inherit}a,button{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0,pointer}[type=button],[type=reset],[type=submit],button{-webkit-appearance:none}input[type=checkbox],input[type=radio]{outline:0}@keyframes blink{0%{opacity:1}50%{opacity:0}}.nes-balloon,.nes-balloon.is-dark,.nes-btn,.nes-container.is-rounded,.nes-container.is-rounded.is-dark,.nes-dialog.is-rounded,.nes-dialog.is-rounded.is-dark,.nes-input,.nes-progress,.nes-progress.is-rounded,.nes-select select,.nes-table.is-bordered,.nes-table.is-dark.is-bordered,.nes-textarea{border-style:solid;border-width:4px}.nes-pointer{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0,pointer}.nes-avatar{width:32px;height:32px}.nes-avatar.is-rounded{border-radius:50px}.nes-avatar.is-pixelated{image-rendering:pixelated}.nes-avatar.is-small{width:16px;height:16px}.nes-avatar.is-small.is-rounded{border-radius:50px}.nes-avatar.is-small.is-pixelated{image-rendering:pixelated}.nes-avatar.is-medium{width:48px;height:48px}.nes-avatar.is-medium.is-rounded{border-radius:50px}.nes-avatar.is-medium.is-pixelated{image-rendering:pixelated}.nes-avatar.is-large{width:64px;height:64px}.nes-avatar.is-large.is-rounded{border-radius:50px}.nes-avatar.is-large.is-pixelated{image-rendering:pixelated}.nes-badge{position:relative;display:inline-block;width:10.5em;height:1.875em;margin:.5em;font-size:.9em;white-space:nowrap;vertical-align:top;-webkit-user-select:none;user-select:none}.nes-badge.is-split span.is-dark:first-child,.nes-badge.is-splited span.is-dark:first-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#212529;left:0;box-shadow:0 .5em #212529,0 -.5em #212529,0 0 #212529,-.5em 0 #212529}.nes-badge.is-split span.is-dark:last-child,.nes-badge.is-splited span.is-dark:last-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#212529;right:0;box-shadow:0 .5em #212529,0 -.5em #212529,.5em 0 #212529,0 0 #212529}.nes-badge.is-icon{width:5.25em}.nes-badge.is-icon span.is-dark:first-child{display:flex;align-items:center;justify-content:center;width:2.7em;font-size:.5em;color:#fff;text-align:center;background-color:#212529;position:absolute;top:-2.8em;left:-2.7em;height:2.7em}.nes-badge.is-icon span.is-dark:last-child{display:inline-block;align-items:center;justify-content:center;width:6em;font-size:.88em;color:#fff;text-align:center;background-color:#212529;box-shadow:0 .5em #212529,0 -.5em #212529,.5em 0 #212529,-.5em 0 #212529}.nes-badge span.is-dark:first-child{position:absolute;top:0;width:100%;color:#fff;text-align:center;background-color:#212529;box-shadow:0 .5em #212529,0 -.5em #212529,.5em 0 #212529,-.5em 0 #212529}.nes-badge.is-split span.is-primary:first-child,.nes-badge.is-splited span.is-primary:first-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#975b40;left:0;box-shadow:0 .5em #975b40,0 -.5em #975b40,0 0 #975b40,-.5em 0 #975b40}.nes-badge.is-split span.is-primary:last-child,.nes-badge.is-splited span.is-primary:last-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#975b40;right:0;box-shadow:0 .5em #975b40,0 -.5em #975b40,.5em 0 #975b40,0 0 #975b40}.nes-badge.is-icon{width:5.25em}.nes-badge.is-icon span.is-primary:first-child{display:flex;align-items:center;justify-content:center;width:2.7em;font-size:.5em;color:#fff;text-align:center;background-color:#975b40;position:absolute;top:-2.8em;left:-2.7em;height:2.7em}.nes-badge.is-icon span.is-primary:last-child{display:inline-block;align-items:center;justify-content:center;width:6em;font-size:.88em;color:#fff;text-align:center;background-color:#975b40;box-shadow:0 .5em #975b40,0 -.5em #975b40,.5em 0 #975b40,-.5em 0 #975b40}.nes-badge span.is-primary:first-child{position:absolute;top:0;width:100%;color:#fff;text-align:center;background-color:#975b40;box-shadow:0 .5em #975b40,0 -.5em #975b40,.5em 0 #975b40,-.5em 0 #975b40}.nes-badge.is-split span.is-success:first-child,.nes-badge.is-splited span.is-success:first-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#92cc41;left:0;box-shadow:0 .5em #92cc41,0 -.5em #92cc41,0 0 #92cc41,-.5em 0 #92cc41}.nes-badge.is-split span.is-success:last-child,.nes-badge.is-splited span.is-success:last-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#92cc41;right:0;box-shadow:0 .5em #92cc41,0 -.5em #92cc41,.5em 0 #92cc41,0 0 #92cc41}.nes-badge.is-icon{width:5.25em}.nes-badge.is-icon span.is-success:first-child{display:flex;align-items:center;justify-content:center;width:2.7em;font-size:.5em;color:#fff;text-align:center;background-color:#92cc41;position:absolute;top:-2.8em;left:-2.7em;height:2.7em}.nes-badge.is-icon span.is-success:last-child{display:inline-block;align-items:center;justify-content:center;width:6em;font-size:.88em;color:#fff;text-align:center;background-color:#92cc41;box-shadow:0 .5em #92cc41,0 -.5em #92cc41,.5em 0 #92cc41,-.5em 0 #92cc41}.nes-badge span.is-success:first-child{position:absolute;top:0;width:100%;color:#fff;text-align:center;background-color:#92cc41;box-shadow:0 .5em #92cc41,0 -.5em #92cc41,.5em 0 #92cc41,-.5em 0 #92cc41}.nes-badge.is-split span.is-warning:first-child,.nes-badge.is-splited span.is-warning:first-child{position:absolute;top:0;width:50%;color:#212529;text-align:center;background-color:#f7d51d;left:0;box-shadow:0 .5em #f7d51d,0 -.5em #f7d51d,0 0 #f7d51d,-.5em 0 #f7d51d}.nes-badge.is-split span.is-warning:last-child,.nes-badge.is-splited span.is-warning:last-child{position:absolute;top:0;width:50%;color:#212529;text-align:center;background-color:#f7d51d;right:0;box-shadow:0 .5em #f7d51d,0 -.5em #f7d51d,.5em 0 #f7d51d,0 0 #f7d51d}.nes-badge.is-icon{width:5.25em}.nes-badge.is-icon span.is-warning:first-child{display:flex;align-items:center;justify-content:center;width:2.7em;font-size:.5em;color:#212529;text-align:center;background-color:#f7d51d;position:absolute;top:-2.8em;left:-2.7em;height:2.7em}.nes-badge.is-icon span.is-warning:last-child{display:inline-block;align-items:center;justify-content:center;width:6em;font-size:.88em;color:#212529;text-align:center;background-color:#f7d51d;box-shadow:0 .5em #f7d51d,0 -.5em #f7d51d,.5em 0 #f7d51d,-.5em 0 #f7d51d}.nes-badge span.is-warning:first-child{position:absolute;top:0;width:100%;color:#212529;text-align:center;background-color:#f7d51d;box-shadow:0 .5em #f7d51d,0 -.5em #f7d51d,.5em 0 #f7d51d,-.5em 0 #f7d51d}.nes-badge.is-split span.is-error:first-child,.nes-badge.is-splited span.is-error:first-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#e76e55;left:0;box-shadow:0 .5em #e76e55,0 -.5em #e76e55,0 0 #e76e55,-.5em 0 #e76e55}.nes-badge.is-split span.is-error:last-child,.nes-badge.is-splited span.is-error:last-child{position:absolute;top:0;width:50%;color:#fff;text-align:center;background-color:#e76e55;right:0;box-shadow:0 .5em #e76e55,0 -.5em #e76e55,.5em 0 #e76e55,0 0 #e76e55}.nes-badge.is-icon{width:5.25em}.nes-badge.is-icon span.is-error:first-child{display:flex;align-items:center;justify-content:center;width:2.7em;font-size:.5em;color:#fff;text-align:center;background-color:#e76e55;position:absolute;top:-2.8em;left:-2.7em;height:2.7em}.nes-badge.is-icon span.is-error:last-child{display:inline-block;align-items:center;justify-content:center;width:6em;font-size:.88em;color:#fff;text-align:center;background-color:#e76e55;box-shadow:0 .5em #e76e55,0 -.5em #e76e55,.5em 0 #e76e55,-.5em 0 #e76e55}.nes-badge span.is-error:first-child{position:absolute;top:0;width:100%;color:#fff;text-align:center;background-color:#e76e55;box-shadow:0 .5em #e76e55,0 -.5em #e76e55,.5em 0 #e76e55,-.5em 0 #e76e55}.nes-balloon{border-image-slice:3;border-image-width:3;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2;position:relative;display:inline-block;padding:1rem 1.5rem;margin:8px;margin-bottom:30px;background-color:#fff}@media{.nes-balloon{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-balloon{border-image-repeat:stretch}}.nes-balloon>:last-child{margin-bottom:0}.nes-balloon::after,.nes-balloon::before{position:absolute;content:""}.nes-balloon.is-dark{border-image-slice:3;border-image-width:3;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:0;color:#fff;background:#212529;border-image-outset:2;box-shadow:0 0 0 8px #212529}@media{.nes-balloon.is-dark{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-balloon.is-dark{border-image-repeat:stretch}}.nes-balloon.is-dark.from-left::before,.nes-balloon.is-dark.from-right::before{background-color:#212529;border-color:#fff}.nes-balloon.is-dark.from-left::after,.nes-balloon.is-dark.from-right::after{color:#fff;background-color:#212529}.nes-balloon.is-dark.from-left::before{box-shadow:-5px 10px 0 6px #212529}.nes-balloon.is-dark.from-left::after{box-shadow:-4px 0,4px 0,-4px 4px #212529,0 4px,-8px 4px,-4px 8px,-8px 8px}.nes-balloon.is-dark.from-right::before{box-shadow:5px 10px 0 6px #212529}.nes-balloon.is-dark.from-right::after{box-shadow:-4px 0,4px 0,4px 4px #212529,0 4px,8px 4px,4px 8px,8px 8px}.nes-balloon.from-left::after,.nes-balloon.from-left::before{left:2rem}.nes-balloon.from-left::before{bottom:-14px;width:26px;height:10px;background-color:#fff;border-right:4px solid #212529;border-left:4px solid #212529}.nes-balloon.from-left::after{bottom:-18px;width:18px;height:4px;margin-right:8px;color:#212529;background-color:#fff;box-shadow:-4px 0,4px 0,-4px 4px #fff,0 4px,-8px 4px,-4px 8px,-8px 8px}.nes-balloon.from-right::after,.nes-balloon.from-right::before{right:2rem}.nes-balloon.from-right::before{bottom:-14px;width:26px;height:10px;background-color:#fff;border-right:4px solid #212529;border-left:4px solid #212529}.nes-balloon.from-right::after{bottom:-18px;width:18px;height:4px;margin-left:8px;background-color:#fff;box-shadow:-4px 0,4px 0,4px 4px #fff,0 4px,8px 4px,4px 8px,8px 8px}.nes-btn{border-image-slice:2;border-image-width:2;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2;position:relative;display:inline-block;padding:6px 8px;margin:4px;text-align:center;vertical-align:middle;cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0,pointer;-webkit-user-select:none;user-select:none;color:#212529;background-color:#fff}@media{.nes-btn{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-btn{border-image-repeat:stretch}}.nes-btn::after{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;content:"";box-shadow:inset -4px -4px #adafbc}.nes-btn:hover{color:#212529;text-decoration:none;background-color:#e7e7e7}.nes-btn:hover::after{box-shadow:inset -6px -6px #adafbc}.nes-btn:focus{box-shadow:0 0 0 6px rgba(173,175,188,.3)}.nes-btn:active:not(.is-disabled)::after{box-shadow:inset 4px 4px #adafbc}.nes-btn:focus{outline:0}.nes-btn.is-disabled,.nes-btn.is-disabled:focus,.nes-btn.is-disabled:hover{color:#212529;cursor:not-allowed;background-color:#d3d3d3;box-shadow:inset -4px -4px #adafbc;opacity:.6}.nes-btn.is-disabled:hover::after{box-shadow:inset -4px -4px #adafbc}.nes-btn.is-primary{color:#fff;background-color:#975b40}.nes-btn.is-primary::after{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;content:"";box-shadow:inset -4px -4px #6a3c33}.nes-btn.is-primary:hover{color:#fff;text-decoration:none;background-color:#8d553c}.nes-btn.is-primary:hover::after{box-shadow:inset -6px -6px #6a3c33}.nes-btn.is-primary:focus{box-shadow:0 0 0 6px rgba(106,60,51,.3)}.nes-btn.is-primary:active:not(.is-disabled)::after{box-shadow:inset 4px 4px #6a3c33}.nes-btn.is-success{color:#fff;background-color:#92cc41}.nes-btn.is-success::after{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;content:"";box-shadow:inset -4px -4px #4aa52e}.nes-btn.is-success:hover{color:#fff;text-decoration:none;background-color:#76c442}.nes-btn.is-success:hover::after{box-shadow:inset -6px -6px #4aa52e}.nes-btn.is-success:focus{box-shadow:0 0 0 6px rgba(74,165,46,.3)}.nes-btn.is-success:active:not(.is-disabled)::after{box-shadow:inset 4px 4px #4aa52e}.nes-btn.is-warning{color:#212529;background-color:#f7d51d}.nes-btn.is-warning::after{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;content:"";box-shadow:inset -4px -4px #e59400}.nes-btn.is-warning:hover{color:#212529;text-decoration:none;background-color:#f2c409}.nes-btn.is-warning:hover::after{box-shadow:inset -6px -6px #e59400}.nes-btn.is-warning:focus{box-shadow:0 0 0 6px rgba(229,148,0,.3)}.nes-btn.is-warning:active:not(.is-disabled)::after{box-shadow:inset 4px 4px #e59400}.nes-btn.is-error{color:#fff;background-color:#e76e55}.nes-btn.is-error::after{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;content:"";box-shadow:inset -4px -4px #8c2022}.nes-btn.is-error:hover{color:#fff;text-decoration:none;background-color:#ce372b}.nes-btn.is-error:hover::after{box-shadow:inset -6px -6px #8c2022}.nes-btn.is-error:focus{box-shadow:0 0 0 6px rgba(140,32,34,.3)}.nes-btn.is-error:active:not(.is-disabled)::after{box-shadow:inset 4px 4px #8c2022}.nes-btn input[type=file]{position:absolute;pointer-events:none;opacity:0}.nes-container{position:relative;padding:1.5rem 2rem;border-color:#000;border-style:solid;border-width:4px}.nes-container>:last-child{margin-bottom:0}.nes-container.is-centered{text-align:center}.nes-container.is-right{text-align:right}.nes-container.with-title>.title{display:table;padding:0 .5rem;margin:-1.8rem 0 1rem;font-size:1rem;background-color:#fff}.nes-container.with-title.is-centered>.title{margin:-2rem auto 1rem}.nes-container.with-title.is-right>.title{margin:-2rem 0 1rem auto}.nes-container.is-dark{position:relative;margin:4px;color:#fff;background-color:#212529;border-color:#fff}.nes-container.is-dark::after{position:absolute;top:-7.2px;right:-7.2px;bottom:-7.2px;left:-7.2px;z-index:-1;content:"";background-color:#212529}.nes-container.is-dark.with-title>.title{color:#fff;background-color:#212529}.nes-container.is-rounded{border-image-slice:3;border-image-width:3;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2;padding:1rem 1.5rem;margin:4px}@media{.nes-container.is-rounded{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-container.is-rounded{border-image-repeat:stretch}}.nes-container.is-rounded.with-title>.title{margin-top:-1.5rem}.nes-container.is-rounded.with-title.is-centered>.title{margin:-1.5rem auto 1rem}.nes-container.is-rounded.with-title.is-right>.title{margin:-1.5rem 0 1rem auto}.nes-container.is-rounded.is-dark{border-image-slice:3;border-image-width:3;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:0}@media{.nes-container.is-rounded.is-dark{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-container.is-rounded.is-dark{border-image-repeat:stretch}}.nes-container.is-rounded.is-dark::after{content:none}.nes-container.is-rounded.is-dark.with-title>.title{margin-top:-1.3rem}.nes-container.is-rounded.is-dark.with-title.is-centered>.title{margin:-1.3rem auto 1rem}.nes-container.is-rounded.is-dark.with-title.is-right>.title{margin:-1.3rem 0 1rem auto}.nes-dialog{padding:1.5rem 2rem;border-width:4px}.nes-dialog::backdrop,.nes-dialog>.backdrop{background-color:rgba(0,0,0,.3)}.nes-dialog>:last-child{margin-bottom:0}.nes-dialog.is-rounded{border-image-slice:3;border-image-width:3;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2}@media{.nes-dialog.is-rounded{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-dialog.is-rounded{border-image-repeat:stretch}}.nes-dialog.is-rounded.is-dark{border-image-slice:3;border-image-width:3;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:0}@media{.nes-dialog.is-rounded.is-dark{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-dialog.is-rounded.is-dark{border-image-repeat:stretch}}.nes-dialog.is-dark{color:#fff;background-color:#212529;border-color:#fff}.nes-dialog.is-dark:not(.is-rounded)::before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:-1;content:"";border:4px solid #212529}.nes-list{list-style-type:none}.nes-list li{position:relative}.nes-list.is-disc li::before{position:absolute;top:calc(50% - 8px);left:-22px;content:"";width:2px;height:2px;color:#212529;box-shadow:8px 2px,10px 2px,6px 4px,8px 4px,10px 4px,12px 4px,4px 6px,6px 6px,8px 6px,10px 6px,12px 6px,14px 6px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,14px 8px,6px 10px,8px 10px,10px 10px,12px 10px,8px 12px,10px 12px}@supports (-moz-appearance:meterbar){.nes-list.is-disc li::before{box-shadow:8px 2px 0 .020em,10px 2px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,10px 4px 0 .020em,12px 4px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,12px 6px 0 .020em,14px 6px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,14px 8px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,12px 10px 0 .020em,8px 12px 0 .020em,10px 12px 0 .020em}}.nes-list.is-circle li::before{position:absolute;top:calc(50% - 8px);left:-22px;content:"";width:2px;height:2px;color:#212529;box-shadow:8px 2px,10px 2px,6px 4px,8px 4px,10px 4px,12px 4px,4px 6px,6px 6px,12px 6px,14px 6px,4px 8px,6px 8px,12px 8px,14px 8px,6px 10px,8px 10px,10px 10px,12px 10px,8px 12px,10px 12px}@supports (-moz-appearance:meterbar){.nes-list.is-circle li::before{box-shadow:8px 2px 0 .020em,10px 2px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,10px 4px 0 .020em,12px 4px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,12px 6px 0 .020em,14px 6px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,12px 8px 0 .020em,14px 8px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,12px 10px 0 .020em,8px 12px 0 .020em,10px 12px 0 .020em}}.nes-list.is-dark.is-disc li::before{position:absolute;top:calc(50% - 8px);left:-22px;content:"";width:2px;height:2px;color:#fff;box-shadow:8px 2px,10px 2px,6px 4px,8px 4px,10px 4px,12px 4px,4px 6px,6px 6px,8px 6px,10px 6px,12px 6px,14px 6px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,14px 8px,6px 10px,8px 10px,10px 10px,12px 10px,8px 12px,10px 12px}@supports (-moz-appearance:meterbar){.nes-list.is-dark.is-disc li::before{box-shadow:8px 2px 0 .020em,10px 2px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,10px 4px 0 .020em,12px 4px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,12px 6px 0 .020em,14px 6px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,14px 8px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,12px 10px 0 .020em,8px 12px 0 .020em,10px 12px 0 .020em}}.nes-list.is-dark.is-circle li::before{position:absolute;top:calc(50% - 8px);left:-22px;content:"";width:2px;height:2px;color:#fff;box-shadow:8px 2px,10px 2px,6px 4px,8px 4px,10px 4px,12px 4px,4px 6px,6px 6px,12px 6px,14px 6px,4px 8px,6px 8px,12px 8px,14px 8px,6px 10px,8px 10px,10px 10px,12px 10px,8px 12px,10px 12px}@supports (-moz-appearance:meterbar){.nes-list.is-dark.is-circle li::before{box-shadow:8px 2px 0 .020em,10px 2px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,10px 4px 0 .020em,12px 4px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,12px 6px 0 .020em,14px 6px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,12px 8px 0 .020em,14px 8px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,12px 10px 0 .020em,8px 12px 0 .020em,10px 12px 0 .020em}}.nes-list.is-dark li{color:#fff}.nes-progress{border-image-slice:2;border-image-width:2;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2;width:100%;height:48px;margin:4px;color:#212529;background-color:#fff;appearance:none}@media{.nes-progress{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-progress{border-image-repeat:stretch}}.nes-progress::-webkit-progress-bar{background-color:#fff}.nes-progress::-webkit-progress-value{background-color:#212529}.nes-progress::-moz-progress-bar{background-color:#212529}.nes-progress::-ms-fill{background-color:#212529;border:none}.nes-progress.is-rounded{border-image-slice:3;border-image-width:3;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2}@media{.nes-progress.is-rounded{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-progress.is-rounded{border-image-repeat:stretch}}.nes-progress.is-primary::-webkit-progress-bar{background-color:#fff}.nes-progress.is-primary::-webkit-progress-value{background-color:#975b40}.nes-progress.is-primary::-moz-progress-bar{background-color:#975b40}.nes-progress.is-primary::-ms-fill{background-color:#975b40;border:none}.nes-progress.is-success::-webkit-progress-bar{background-color:#fff}.nes-progress.is-success::-webkit-progress-value{background-color:#92cc41}.nes-progress.is-success::-moz-progress-bar{background-color:#92cc41}.nes-progress.is-success::-ms-fill{background-color:#92cc41;border:none}.nes-progress.is-warning::-webkit-progress-bar{background-color:#fff}.nes-progress.is-warning::-webkit-progress-value{background-color:#f7d51d}.nes-progress.is-warning::-moz-progress-bar{background-color:#f7d51d}.nes-progress.is-warning::-ms-fill{background-color:#f7d51d;border:none}.nes-progress.is-error::-webkit-progress-bar{background-color:#fff}.nes-progress.is-error::-webkit-progress-value{background-color:#e76e55}.nes-progress.is-error::-moz-progress-bar{background-color:#e76e55}.nes-progress.is-error::-ms-fill{background-color:#e76e55;border:none}.nes-progress.is-pattern::-webkit-progress-value{background-color:#212529;background-image:linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff),linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff);background-position:0 0,10px 10px;background-size:20px 20px}.nes-progress.is-pattern::-moz-progress-bar{background-color:#212529;background-image:-moz-linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff),-moz-linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff);background-position:0 0,10px 10px;background-size:20px 20px}.nes-progress.is-pattern::-ms-fill{background-color:#212529;background-image:linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff),linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff);background-position:0 0,10px 10px;background-size:20px 20px;border:none}.nes-table-responsive{max-width:100%;overflow-x:auto;overflow-y:hidden}.nes-table{table-layout:fixed;background-color:#fff}.nes-table tr{margin-left:-.25em}.nes-table td,.nes-table th{position:relative;padding:.5rem;word-wrap:break-word;border-color:#212529;border-style:solid;border-width:0 .25em .25em 0}.nes-table td:last-child,.nes-table th:last-child{border-right-width:0}.nes-table td::after,.nes-table td::before,.nes-table th::after,.nes-table th::before{position:absolute;display:block;width:.25em;height:.25em;content:"";background-color:#212529}.nes-table td::after,.nes-table th::after{bottom:-.25em;left:-.25em}.nes-table td::before,.nes-table th::before{top:-.25em;right:-.25em}.nes-table td:last-child::before,.nes-table th:last-child::before{top:initial;bottom:-.25em}.nes-table.is-centered th{text-align:center}.nes-table.is-bordered{margin:4px;border-spacing:0;border-collapse:separate;border-image-slice:2;border-image-width:2;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2}@media{.nes-table.is-bordered{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-table.is-bordered{border-image-repeat:stretch}}.nes-table.is-dark{color:#fff;background-color:#212529}.nes-table.is-dark.is-bordered{border-image-slice:2;border-image-width:2;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:0}@media{.nes-table.is-dark.is-bordered{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-table.is-dark.is-bordered{border-image-repeat:stretch}}.nes-table.is-dark td,.nes-table.is-dark th{border-color:#fff}.nes-table.is-dark td::after,.nes-table.is-dark td::before,.nes-table.is-dark th::after,.nes-table.is-dark th::before{display:none}.nes-table tbody tr:last-child td,.nes-table tbody tr:last-child th,.nes-table thead:last-child tr:last-child td,.nes-table thead:last-child tr:last-child th{border-bottom-width:0}.nes-table tbody tr:last-child td:first-child::after,.nes-table tbody tr:last-child td:last-child::before,.nes-table tbody tr:last-child th:first-child::after,.nes-table tbody tr:last-child th:last-child::before,.nes-table thead:last-child tr:last-child td:first-child::after,.nes-table thead:last-child tr:last-child td:last-child::before,.nes-table thead:last-child tr:last-child th:first-child::after,.nes-table thead:last-child tr:last-child th:last-child::before{display:none}.nes-text.is-primary{color:#975b40}.nes-text.is-success{color:#92cc41}.nes-text.is-warning{color:#f7d51d}.nes-text.is-error{color:#e76e55}.nes-text.is-disabled{color:#d3d3d3}.nes-input,.nes-textarea{border-image-slice:2;border-image-width:2;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2;width:calc(100% - 8px);padding:.5rem 1rem;margin:4px;background-clip:padding-box}@media{.nes-input,.nes-textarea{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-input,.nes-textarea{border-image-repeat:stretch}}.nes-input.is-dark,.nes-textarea.is-dark{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#e7e7e7;color:#fff;background-color:#212529}.nes-input.is-success,.nes-textarea.is-success{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#76c442}.nes-input.is-warning,.nes-textarea.is-warning{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#f2c409}.nes-input.is-error,.nes-textarea.is-error{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#ce372b}.nes-input.is-disabled,.nes-textarea.is-disabled{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#adafbc;color:#d3d3d3;cursor:not-allowed}.nes-field>label{display:block}.nes-field .nes-input,.nes-field .nes-textarea{display:block}.nes-field.is-inline{display:flex;align-items:center}.nes-field.is-inline>label{flex-basis:0;flex-grow:1;margin:0;margin-right:1.5rem;text-align:right}.nes-field.is-inline .nes-input,.nes-field.is-inline .nes-textarea{flex-basis:0;flex-grow:5}@media screen and (max-width:768px){.nes-field.is-inline{display:block}.nes-field.is-inline>label{margin-bottom:.5rem;text-align:left}.nes-field.is-inline .nes-input{max-width:100%}}.nes-radio{margin-right:20px;appearance:none;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.nes-radio+span{position:relative;display:inline-flex;align-items:center;cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0,pointer}.nes-radio:checked+span::before{position:absolute;left:-20px;margin-top:-15px;content:"";width:2px;height:2px;color:#212529;box-shadow:2px 2px,4px 2px,2px 4px,4px 4px,6px 4px,8px 4px,2px 6px,4px 6px,6px 6px,8px 6px,10px 6px,2px 8px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,2px 10px,4px 10px,6px 10px,8px 10px,10px 10px,2px 12px,4px 12px,6px 12px,8px 12px,2px 14px,4px 14px}@supports (-moz-appearance:meterbar){.nes-radio:checked+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,2px 4px 0 .020em,4px 4px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,2px 6px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,2px 8px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,2px 10px 0 .020em,4px 10px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,2px 12px 0 .020em,4px 12px 0 .020em,6px 12px 0 .020em,8px 12px 0 .020em,2px 14px 0 .020em,4px 14px 0 .020em}}.nes-radio:checked:focus+span::before,.nes-radio:checked:hover+span::before{animation:blink 1s infinite steps(1)}.nes-radio:checked:focus+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,2px 4px,4px 4px,6px 4px,8px 4px,2px 6px,4px 6px,6px 6px,8px 6px,10px 6px,2px 8px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,2px 10px,4px 10px,6px 10px,8px 10px,10px 10px,2px 12px,4px 12px,6px 12px,8px 12px,2px 14px,4px 14px}@supports (-moz-appearance:meterbar){.nes-radio:checked:focus+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,2px 4px 0 .020em,4px 4px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,2px 6px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,2px 8px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,2px 10px 0 .020em,4px 10px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,2px 12px 0 .020em,4px 12px 0 .020em,6px 12px 0 .020em,8px 12px 0 .020em,2px 14px 0 .020em,4px 14px 0 .020em}}.nes-radio.is-dark+span{color:#fff}.nes-radio.is-dark+span::before{color:#fff}.nes-radio.is-dark:checked+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,2px 4px,4px 4px,6px 4px,8px 4px,2px 6px,4px 6px,6px 6px,8px 6px,10px 6px,2px 8px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,2px 10px,4px 10px,6px 10px,8px 10px,10px 10px,2px 12px,4px 12px,6px 12px,8px 12px,2px 14px,4px 14px;color:#fff}@supports (-moz-appearance:meterbar){.nes-radio.is-dark:checked+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,2px 4px 0 .020em,4px 4px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,2px 6px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,2px 8px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,2px 10px 0 .020em,4px 10px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,2px 12px 0 .020em,4px 12px 0 .020em,6px 12px 0 .020em,8px 12px 0 .020em,2px 14px 0 .020em,4px 14px 0 .020em}}.nes-radio.is-dark:checked:focus+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,2px 4px,4px 4px,6px 4px,8px 4px,2px 6px,4px 6px,6px 6px,8px 6px,10px 6px,2px 8px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,2px 10px,4px 10px,6px 10px,8px 10px,10px 10px,2px 12px,4px 12px,6px 12px,8px 12px,2px 14px,4px 14px;color:#fff}@supports (-moz-appearance:meterbar){.nes-radio.is-dark:checked:focus+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,2px 4px 0 .020em,4px 4px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,2px 6px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,2px 8px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,2px 10px 0 .020em,4px 10px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,2px 12px 0 .020em,4px 12px 0 .020em,6px 12px 0 .020em,8px 12px 0 .020em,2px 14px 0 .020em,4px 14px 0 .020em}}.nes-radio.is-disabled+span{color:#d3d3d3;cursor:not-allowed}.nes-radio.is-disabled+span::before{color:#d3d3d3;cursor:not-allowed}.nes-radio.is-disabled:checked:focus+span::before,.nes-radio.is-disabled:checked:hover+span::before{animation:unset}.nes-radio.is-disabled:checked+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,2px 4px,4px 4px,6px 4px,8px 4px,2px 6px,4px 6px,6px 6px,8px 6px,10px 6px,2px 8px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,2px 10px,4px 10px,6px 10px,8px 10px,10px 10px,2px 12px,4px 12px,6px 12px,8px 12px,2px 14px,4px 14px;color:#d3d3d3}@supports (-moz-appearance:meterbar){.nes-radio.is-disabled:checked+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,2px 4px 0 .020em,4px 4px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,2px 6px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,2px 8px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,2px 10px 0 .020em,4px 10px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,2px 12px 0 .020em,4px 12px 0 .020em,6px 12px 0 .020em,8px 12px 0 .020em,2px 14px 0 .020em,4px 14px 0 .020em}}.nes-radio.is-disabled:checked:focus+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,2px 4px,4px 4px,6px 4px,8px 4px,2px 6px,4px 6px,6px 6px,8px 6px,10px 6px,2px 8px,4px 8px,6px 8px,8px 8px,10px 8px,12px 8px,2px 10px,4px 10px,6px 10px,8px 10px,10px 10px,2px 12px,4px 12px,6px 12px,8px 12px,2px 14px,4px 14px;color:#d3d3d3}@supports (-moz-appearance:meterbar){.nes-radio.is-disabled:checked:focus+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,2px 4px 0 .020em,4px 4px 0 .020em,6px 4px 0 .020em,8px 4px 0 .020em,2px 6px 0 .020em,4px 6px 0 .020em,6px 6px 0 .020em,8px 6px 0 .020em,10px 6px 0 .020em,2px 8px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,8px 8px 0 .020em,10px 8px 0 .020em,12px 8px 0 .020em,2px 10px 0 .020em,4px 10px 0 .020em,6px 10px 0 .020em,8px 10px 0 .020em,10px 10px 0 .020em,2px 12px 0 .020em,4px 12px 0 .020em,6px 12px 0 .020em,8px 12px 0 .020em,2px 14px 0 .020em,4px 14px 0 .020em}}.nes-checkbox{margin-left:28px;appearance:none;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.nes-checkbox+span{position:relative;cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0,pointer}.nes-checkbox+span::before,.nes-checkbox:checked+span::before{position:absolute;top:-3px;left:-28px;content:""}.nes-checkbox+span::before{width:2px;height:2px;color:#212529;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,16px 2px,2px 4px,16px 4px,2px 6px,16px 6px,2px 8px,16px 8px,2px 10px,16px 10px,2px 12px,16px 12px,2px 14px,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px}@supports (-moz-appearance:meterbar){.nes-checkbox+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,16px 2px 0 .020em,2px 4px 0 .020em,16px 4px 0 .020em,2px 6px 0 .020em,16px 6px 0 .020em,2px 8px 0 .020em,16px 8px 0 .020em,2px 10px 0 .020em,16px 10px 0 .020em,2px 12px 0 .020em,16px 12px 0 .020em,2px 14px 0 .020em,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-checkbox:focus+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,16px 2px,2px 4px,16px 4px,2px 6px,16px 6px,2px 8px,16px 8px,2px 10px,16px 10px,2px 12px,16px 12px,2px 14px,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px}@supports (-moz-appearance:meterbar){.nes-checkbox:focus+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,16px 2px 0 .020em,2px 4px 0 .020em,16px 4px 0 .020em,2px 6px 0 .020em,16px 6px 0 .020em,2px 8px 0 .020em,16px 8px 0 .020em,2px 10px 0 .020em,16px 10px 0 .020em,2px 12px 0 .020em,16px 12px 0 .020em,2px 14px 0 .020em,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-checkbox:checked+span::before{width:2px;height:2px;color:#212529;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,18px 2px,20px 2px,2px 4px,16px 4px,18px 4px,20px 4px,2px 6px,14px 6px,16px 6px,2px 8px,4px 8px,12px 8px,14px 8px,2px 10px,4px 10px,6px 10px,10px 10px,12px 10px,16px 10px,2px 12px,6px 12px,8px 12px,10px 12px,16px 12px,2px 14px,8px 14px,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px}@supports (-moz-appearance:meterbar){.nes-checkbox:checked+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,18px 2px 0 .020em,20px 2px 0 .020em,2px 4px 0 .020em,16px 4px 0 .020em,18px 4px 0 .020em,20px 4px 0 .020em,2px 6px 0 .020em,14px 6px 0 .020em,16px 6px 0 .020em,2px 8px 0 .020em,4px 8px 0 .020em,12px 8px 0 .020em,14px 8px 0 .020em,2px 10px 0 .020em,4px 10px 0 .020em,6px 10px 0 .020em,10px 10px 0 .020em,12px 10px 0 .020em,16px 10px 0 .020em,2px 12px 0 .020em,6px 12px 0 .020em,8px 12px 0 .020em,10px 12px 0 .020em,16px 12px 0 .020em,2px 14px 0 .020em,8px 14px 0 .020em,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-checkbox:checked:focus+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,18px 2px #212529,20px 2px #212529,2px 4px,16px 4px #212529,18px 4px #212529,20px 4px #212529,2px 6px #212529,14px 6px #212529,16px 6px #212529,2px 8px #212529,4px 8px #212529,12px 8px #212529,14px 8px #212529,2px 10px,4px 10px #212529,6px 10px #212529,10px 10px #212529,12px 10px #212529,16px 10px,2px 12px,6px 12px #212529,8px 12px #212529,10px 12px #212529,16px 12px,2px 14px,8px 14px #212529,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px}@supports (-moz-appearance:meterbar){.nes-checkbox:checked:focus+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,18px 2px 0 .020em #212529,20px 2px 0 .020em #212529,2px 4px 0 .020em,16px 4px 0 .020em #212529,18px 4px 0 .020em #212529,20px 4px 0 .020em #212529,2px 6px 0 .020em #212529,14px 6px 0 .020em #212529,16px 6px 0 .020em #212529,2px 8px 0 .020em #212529,4px 8px 0 .020em #212529,12px 8px 0 .020em #212529,14px 8px 0 .020em #212529,2px 10px 0 .020em,4px 10px 0 .020em #212529,6px 10px 0 .020em #212529,10px 10px 0 .020em #212529,12px 10px 0 .020em #212529,16px 10px 0 .020em,2px 12px 0 .020em,6px 12px 0 .020em #212529,8px 12px 0 .020em #212529,10px 12px 0 .020em #212529,16px 12px 0 .020em,2px 14px 0 .020em,8px 14px 0 .020em #212529,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-checkbox.is-dark+span{color:#fff}.nes-checkbox.is-dark+span::before{color:#fff}.nes-checkbox.is-dark:checked+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,18px 2px #fff,20px 2px #fff,2px 4px,16px 4px #fff,18px 4px #fff,20px 4px #fff,2px 6px #fff,14px 6px #fff,16px 6px #fff,2px 8px #fff,4px 8px #fff,12px 8px #fff,14px 8px #fff,2px 10px,4px 10px #fff,6px 10px #fff,10px 10px #fff,12px 10px #fff,16px 10px,2px 12px,6px 12px #fff,8px 12px #fff,10px 12px #fff,16px 12px,2px 14px,8px 14px #fff,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px;color:#fff}@supports (-moz-appearance:meterbar){.nes-checkbox.is-dark:checked+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,18px 2px 0 .020em #fff,20px 2px 0 .020em #fff,2px 4px 0 .020em,16px 4px 0 .020em #fff,18px 4px 0 .020em #fff,20px 4px 0 .020em #fff,2px 6px 0 .020em #fff,14px 6px 0 .020em #fff,16px 6px 0 .020em #fff,2px 8px 0 .020em #fff,4px 8px 0 .020em #fff,12px 8px 0 .020em #fff,14px 8px 0 .020em #fff,2px 10px 0 .020em,4px 10px 0 .020em #fff,6px 10px 0 .020em #fff,10px 10px 0 .020em #fff,12px 10px 0 .020em #fff,16px 10px 0 .020em,2px 12px 0 .020em,6px 12px 0 .020em #fff,8px 12px 0 .020em #fff,10px 12px 0 .020em #fff,16px 12px 0 .020em,2px 14px 0 .020em,8px 14px 0 .020em #fff,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-checkbox.is-dark:checked:focus+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,18px 2px #fff,20px 2px #fff,2px 4px,16px 4px #fff,18px 4px #fff,20px 4px #fff,2px 6px #fff,14px 6px #fff,16px 6px #fff,2px 8px #fff,4px 8px #fff,12px 8px #fff,14px 8px #fff,2px 10px,4px 10px #fff,6px 10px #fff,10px 10px #fff,12px 10px #fff,16px 10px,2px 12px,6px 12px #fff,8px 12px #fff,10px 12px #fff,16px 12px,2px 14px,8px 14px #fff,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px;color:#fff}@supports (-moz-appearance:meterbar){.nes-checkbox.is-dark:checked:focus+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,18px 2px 0 .020em #fff,20px 2px 0 .020em #fff,2px 4px 0 .020em,16px 4px 0 .020em #fff,18px 4px 0 .020em #fff,20px 4px 0 .020em #fff,2px 6px 0 .020em #fff,14px 6px 0 .020em #fff,16px 6px 0 .020em #fff,2px 8px 0 .020em #fff,4px 8px 0 .020em #fff,12px 8px 0 .020em #fff,14px 8px 0 .020em #fff,2px 10px 0 .020em,4px 10px 0 .020em #fff,6px 10px 0 .020em #fff,10px 10px 0 .020em #fff,12px 10px 0 .020em #fff,16px 10px 0 .020em,2px 12px 0 .020em,6px 12px 0 .020em #fff,8px 12px 0 .020em #fff,10px 12px 0 .020em #fff,16px 12px 0 .020em,2px 14px 0 .020em,8px 14px 0 .020em #fff,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-checkbox.is-disabled+span{color:#d3d3d3;cursor:not-allowed}.nes-checkbox.is-disabled+span::before{color:#d3d3d3;cursor:not-allowed}.nes-checkbox.is-disabled:checked+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,18px 2px #d3d3d3,20px 2px #d3d3d3,2px 4px,16px 4px #d3d3d3,18px 4px #d3d3d3,20px 4px #d3d3d3,2px 6px #d3d3d3,14px 6px #d3d3d3,16px 6px #d3d3d3,2px 8px #d3d3d3,4px 8px #d3d3d3,12px 8px #d3d3d3,14px 8px #d3d3d3,2px 10px,4px 10px #d3d3d3,6px 10px #d3d3d3,10px 10px #d3d3d3,12px 10px #d3d3d3,16px 10px,2px 12px,6px 12px #d3d3d3,8px 12px #d3d3d3,10px 12px #d3d3d3,16px 12px,2px 14px,8px 14px #d3d3d3,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px;color:#d3d3d3}@supports (-moz-appearance:meterbar){.nes-checkbox.is-disabled:checked+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,18px 2px 0 .020em #d3d3d3,20px 2px 0 .020em #d3d3d3,2px 4px 0 .020em,16px 4px 0 .020em #d3d3d3,18px 4px 0 .020em #d3d3d3,20px 4px 0 .020em #d3d3d3,2px 6px 0 .020em #d3d3d3,14px 6px 0 .020em #d3d3d3,16px 6px 0 .020em #d3d3d3,2px 8px 0 .020em #d3d3d3,4px 8px 0 .020em #d3d3d3,12px 8px 0 .020em #d3d3d3,14px 8px 0 .020em #d3d3d3,2px 10px 0 .020em,4px 10px 0 .020em #d3d3d3,6px 10px 0 .020em #d3d3d3,10px 10px 0 .020em #d3d3d3,12px 10px 0 .020em #d3d3d3,16px 10px 0 .020em,2px 12px 0 .020em,6px 12px 0 .020em #d3d3d3,8px 12px 0 .020em #d3d3d3,10px 12px 0 .020em #d3d3d3,16px 12px 0 .020em,2px 14px 0 .020em,8px 14px 0 .020em #d3d3d3,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-checkbox.is-disabled:checked:focus+span::before{width:2px;height:2px;color:#adafbc;box-shadow:2px 2px,4px 2px,6px 2px,8px 2px,10px 2px,12px 2px,14px 2px,18px 2px #d3d3d3,20px 2px #d3d3d3,2px 4px,16px 4px #d3d3d3,18px 4px #d3d3d3,20px 4px #d3d3d3,2px 6px #d3d3d3,14px 6px #d3d3d3,16px 6px #d3d3d3,2px 8px #d3d3d3,4px 8px #d3d3d3,12px 8px #d3d3d3,14px 8px #d3d3d3,2px 10px,4px 10px #d3d3d3,6px 10px #d3d3d3,10px 10px #d3d3d3,12px 10px #d3d3d3,16px 10px,2px 12px,6px 12px #d3d3d3,8px 12px #d3d3d3,10px 12px #d3d3d3,16px 12px,2px 14px,8px 14px #d3d3d3,16px 14px,2px 16px,4px 16px,6px 16px,8px 16px,10px 16px,12px 16px,14px 16px,16px 16px;color:#d3d3d3}@supports (-moz-appearance:meterbar){.nes-checkbox.is-disabled:checked:focus+span::before{box-shadow:2px 2px 0 .020em,4px 2px 0 .020em,6px 2px 0 .020em,8px 2px 0 .020em,10px 2px 0 .020em,12px 2px 0 .020em,14px 2px 0 .020em,18px 2px 0 .020em #d3d3d3,20px 2px 0 .020em #d3d3d3,2px 4px 0 .020em,16px 4px 0 .020em #d3d3d3,18px 4px 0 .020em #d3d3d3,20px 4px 0 .020em #d3d3d3,2px 6px 0 .020em #d3d3d3,14px 6px 0 .020em #d3d3d3,16px 6px 0 .020em #d3d3d3,2px 8px 0 .020em #d3d3d3,4px 8px 0 .020em #d3d3d3,12px 8px 0 .020em #d3d3d3,14px 8px 0 .020em #d3d3d3,2px 10px 0 .020em,4px 10px 0 .020em #d3d3d3,6px 10px 0 .020em #d3d3d3,10px 10px 0 .020em #d3d3d3,12px 10px 0 .020em #d3d3d3,16px 10px 0 .020em,2px 12px 0 .020em,6px 12px 0 .020em #d3d3d3,8px 12px 0 .020em #d3d3d3,10px 12px 0 .020em #d3d3d3,16px 12px 0 .020em,2px 14px 0 .020em,8px 14px 0 .020em #d3d3d3,16px 14px 0 .020em,2px 16px 0 .020em,4px 16px 0 .020em,6px 16px 0 .020em,8px 16px 0 .020em,10px 16px 0 .020em,12px 16px 0 .020em,14px 16px 0 .020em,16px 16px 0 .020em}}.nes-select{position:relative;width:calc(100% - 8px);margin:4px}.nes-select select{border-image-slice:2;border-image-width:2;border-image-repeat:stretch;border-image-source:url('data:image/svg+xml;utf8,');border-image-outset:2;width:100%;padding:.5rem 2.5rem .5rem 1rem;cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzElEQVRYR+2X0Q6AIAhF5f8/2jYXZkwEjNSVvVUjDpcrGgT7FUkI2D9xRfQETwNIiWO85wfINfQUEyxBG2ArsLwC0jioGt5zFcwF4OYDPi/mBYKm4t0U8ATgRm3ThFoAqkhNgWkA0jJLvaOVSs7j3qMnSgXWBMiWPXe94QqMBMBc1VZIvaTu5u5pQewq0EqNZvIEMCmxAawK0DNkay9QmfFNAJUXfgGgUkLaE7j/h8fnASkxHTz0DGIBMCnBeeM7AArpUd3mz2x3C7wADglA8BcWMZhZAAAAAElFTkSuQmCC) 14 0,pointer;border-radius:0;outline-color:#e7e7e7;appearance:none}@media{.nes-select select{border-image-repeat:space}}@supports (-moz-appearance:meterbar){.nes-select select{border-image-repeat:stretch}}.nes-select select:invalid{color:#adafbc}.nes-select.is-dark select{color:#fff;background-color:#212529}.nes-select::after{width:3px;height:3px;color:#212529;box-shadow:3px 3px,6px 3px,9px 3px,12px 3px,15px 3px,18px 3px,21px 3px,3px 6px,6px 6px,9px 6px,12px 6px,15px 6px,18px 6px,21px 6px,6px 9px,9px 9px,12px 9px,15px 9px,18px 9px,6px 12px,9px 12px,12px 12px,15px 12px,18px 12px,9px 15px,12px 15px,15px 15px,12px 18px;position:absolute;top:calc(50% - 11px);right:36px;pointer-events:none;content:""}@supports (-moz-appearance:meterbar){.nes-select::after{box-shadow:3px 3px 0 .020em,6px 3px 0 .020em,9px 3px 0 .020em,12px 3px 0 .020em,15px 3px 0 .020em,18px 3px 0 .020em,21px 3px 0 .020em,3px 6px 0 .020em,6px 6px 0 .020em,9px 6px 0 .020em,12px 6px 0 .020em,15px 6px 0 .020em,18px 6px 0 .020em,21px 6px 0 .020em,6px 9px 0 .020em,9px 9px 0 .020em,12px 9px 0 .020em,15px 9px 0 .020em,18px 9px 0 .020em,6px 12px 0 .020em,9px 12px 0 .020em,12px 12px 0 .020em,15px 12px 0 .020em,18px 12px 0 .020em,9px 15px 0 .020em,12px 15px 0 .020em,15px 15px 0 .020em,12px 18px 0 .020em}}.nes-select.is-dark::after{color:#fff}.nes-select.is-dark select{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#e7e7e7}.nes-select.is-success::after{color:#92cc41}.nes-select.is-success select{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#76c442}.nes-select.is-warning::after{color:#f7d51d}.nes-select.is-warning select{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#f2c409}.nes-select.is-error::after{color:#e76e55}.nes-select.is-error select{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#ce372b}.nes-select.is-disable::after,.nes-select.is-disabled::after{color:#d3d3d3}.nes-select.is-disable select,.nes-select.is-disabled select{border-image-source:url('data:image/svg+xml;utf8,');outline-color:#adafbc}.nes-select.is-disabled select{color:#d3d3d3;cursor:not-allowed}.nes-icon{position:relative;display:inline-block;width:16px;height:16px;margin-right:16px;margin-bottom:16px;transform:scale(2);transform-origin:top left}.nes-icon.is-small{margin:0;transform:scale(1)}.nes-icon.is-medium{margin-right:32px;margin-bottom:32px;transform:scale(3)}.nes-icon.is-large{margin-right:48px;margin-bottom:48px;transform:scale(4)}.nes-icon::before{position:absolute;top:-1px;left:-1px;display:block;content:"";background:0 0}.nes-icon.heart::before{width:1px;height:1px;color:#f22426;box-shadow:3px 2px #444,4px 2px #444,5px 2px #444,11px 2px #444,12px 2px #444,13px 2px #444,2px 3px #444,3px 3px,4px 3px,5px 3px,6px 3px #444,10px 3px #444,11px 3px,12px 3px,13px 3px #842300,14px 3px #444,1px 4px #444,2px 4px,3px 4px #fff,4px 4px #fff,5px 4px,6px 4px,7px 4px #444,9px 4px #444,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px #842300,15px 4px #444,1px 5px #444,2px 5px,3px 5px #fff,4px 5px,5px 5px,6px 5px,7px 5px,8px 5px #444,9px 5px,10px 5px,11px 5px,12px 5px,13px 5px,14px 5px #842300,15px 5px #444,1px 6px #444,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,7px 6px,8px 6px,9px 6px,10px 6px,11px 6px,12px 6px,13px 6px,14px 6px #842300,15px 6px #444,1px 7px #444,2px 7px,3px 7px,4px 7px,5px 7px,6px 7px,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px,12px 7px,13px 7px,14px 7px #842300,15px 7px #444,1px 8px #444,2px 8px,3px 8px,4px 8px,5px 8px,6px 8px,7px 8px,8px 8px,9px 8px,10px 8px,11px 8px,12px 8px,13px 8px,14px 8px #842300,15px 8px #444,2px 9px #444,3px 9px,4px 9px,5px 9px,6px 9px,7px 9px,8px 9px,9px 9px,10px 9px,11px 9px,12px 9px,13px 9px #842300,14px 9px #444,3px 10px #444,4px 10px,5px 10px,6px 10px,7px 10px,8px 10px,9px 10px,10px 10px,11px 10px,12px 10px #842300,13px 10px #444,4px 11px #444,5px 11px,6px 11px,7px 11px,8px 11px,9px 11px,10px 11px,11px 11px #842300,12px 11px #444,5px 12px #444,6px 12px,7px 12px,8px 12px,9px 12px,10px 12px #842300,11px 12px #444,6px 13px #444,7px 13px,8px 13px,9px 13px #842300,10px 13px #444,7px 14px #444,8px 14px #842300,9px 14px #444,8px 15px #444}@supports (-moz-appearance:meterbar){.nes-icon.heart::before{box-shadow:3px 2px 0 .020em #444,4px 2px 0 .020em #444,5px 2px 0 .020em #444,11px 2px 0 .020em #444,12px 2px 0 .020em #444,13px 2px 0 .020em #444,2px 3px 0 .020em #444,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em #444,10px 3px 0 .020em #444,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em #842300,14px 3px 0 .020em #444,1px 4px 0 .020em #444,2px 4px 0 .020em,3px 4px 0 .020em #fff,4px 4px 0 .020em #fff,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em #444,9px 4px 0 .020em #444,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em,14px 4px 0 .020em #842300,15px 4px 0 .020em #444,1px 5px 0 .020em #444,2px 5px 0 .020em,3px 5px 0 .020em #fff,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em #444,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em #842300,15px 5px 0 .020em #444,1px 6px 0 .020em #444,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em #842300,15px 6px 0 .020em #444,1px 7px 0 .020em #444,2px 7px 0 .020em,3px 7px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em #842300,15px 7px 0 .020em #444,1px 8px 0 .020em #444,2px 8px 0 .020em,3px 8px 0 .020em,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em,11px 8px 0 .020em,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em #842300,15px 8px 0 .020em #444,2px 9px 0 .020em #444,3px 9px 0 .020em,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em,11px 9px 0 .020em,12px 9px 0 .020em,13px 9px 0 .020em #842300,14px 9px 0 .020em #444,3px 10px 0 .020em #444,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em,11px 10px 0 .020em,12px 10px 0 .020em #842300,13px 10px 0 .020em #444,4px 11px 0 .020em #444,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em #842300,12px 11px 0 .020em #444,5px 12px 0 .020em #444,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em #842300,11px 12px 0 .020em #444,6px 13px 0 .020em #444,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em #842300,10px 13px 0 .020em #444,7px 14px 0 .020em #444,8px 14px 0 .020em #842300,9px 14px 0 .020em #444,8px 15px 0 .020em #444}}.nes-icon.heart.is-half::before{width:1px;height:1px;color:#f22426;box-shadow:3px 2px #444,4px 2px #444,5px 2px #444,11px 2px #444,12px 2px #444,13px 2px #444,2px 3px #444,3px 3px,4px 3px,5px 3px,6px 3px #444,10px 3px #444,14px 3px #444,1px 4px #444,2px 4px,3px 4px #fff,4px 4px #fff,5px 4px,6px 4px,7px 4px #444,9px 4px #444,15px 4px #444,1px 5px #444,2px 5px,3px 5px #fff,4px 5px,5px 5px,6px 5px,7px 5px,8px 5px #444,15px 5px #444,1px 6px #444,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,7px 6px,8px 6px,15px 6px #444,1px 7px #444,2px 7px,3px 7px,4px 7px,5px 7px,6px 7px,7px 7px,8px 7px,15px 7px #444,1px 8px #444,2px 8px,3px 8px,4px 8px,5px 8px,6px 8px,7px 8px,8px 8px,15px 8px #444,2px 9px #444,3px 9px,4px 9px,5px 9px,6px 9px,7px 9px,8px 9px,14px 9px #444,3px 10px #444,4px 10px,5px 10px,6px 10px,7px 10px,8px 10px,13px 10px #444,4px 11px #444,5px 11px,6px 11px,7px 11px,8px 11px,12px 11px #444,5px 12px #444,6px 12px,7px 12px,8px 12px,11px 12px #444,6px 13px #444,7px 13px,8px 13px,10px 13px #444,7px 14px #444,8px 14px #842300,9px 14px #444,8px 15px #444}@supports (-moz-appearance:meterbar){.nes-icon.heart.is-half::before{box-shadow:3px 2px 0 .020em #444,4px 2px 0 .020em #444,5px 2px 0 .020em #444,11px 2px 0 .020em #444,12px 2px 0 .020em #444,13px 2px 0 .020em #444,2px 3px 0 .020em #444,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em #444,10px 3px 0 .020em #444,14px 3px 0 .020em #444,1px 4px 0 .020em #444,2px 4px 0 .020em,3px 4px 0 .020em #fff,4px 4px 0 .020em #fff,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em #444,9px 4px 0 .020em #444,15px 4px 0 .020em #444,1px 5px 0 .020em #444,2px 5px 0 .020em,3px 5px 0 .020em #fff,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em #444,15px 5px 0 .020em #444,1px 6px 0 .020em #444,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em,15px 6px 0 .020em #444,1px 7px 0 .020em #444,2px 7px 0 .020em,3px 7px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em,8px 7px 0 .020em,15px 7px 0 .020em #444,1px 8px 0 .020em #444,2px 8px 0 .020em,3px 8px 0 .020em,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em,15px 8px 0 .020em #444,2px 9px 0 .020em #444,3px 9px 0 .020em,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,14px 9px 0 .020em #444,3px 10px 0 .020em #444,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,13px 10px 0 .020em #444,4px 11px 0 .020em #444,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,12px 11px 0 .020em #444,5px 12px 0 .020em #444,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,11px 12px 0 .020em #444,6px 13px 0 .020em #444,7px 13px 0 .020em,8px 13px 0 .020em,10px 13px 0 .020em #444,7px 14px 0 .020em #444,8px 14px 0 .020em #842300,9px 14px 0 .020em #444,8px 15px 0 .020em #444}}.nes-icon.heart.is-transparent::before{width:1px;height:1px;color:#444;box-shadow:3px 2px,4px 2px,5px 2px,11px 2px,12px 2px,13px 2px,2px 3px,6px 3px,10px 3px,14px 3px,1px 4px,7px 4px,9px 4px,15px 4px,1px 5px,8px 5px,15px 5px,1px 6px,15px 6px,1px 7px,15px 7px,1px 8px,15px 8px,2px 9px,14px 9px,3px 10px,13px 10px,4px 11px,12px 11px,5px 12px,11px 12px,6px 13px,10px 13px,7px 14px,9px 14px,8px 15px}@supports (-moz-appearance:meterbar){.nes-icon.heart.is-transparent::before{box-shadow:3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em,13px 2px 0 .020em,2px 3px 0 .020em,6px 3px 0 .020em,10px 3px 0 .020em,14px 3px 0 .020em,1px 4px 0 .020em,7px 4px 0 .020em,9px 4px 0 .020em,15px 4px 0 .020em,1px 5px 0 .020em,8px 5px 0 .020em,15px 5px 0 .020em,1px 6px 0 .020em,15px 6px 0 .020em,1px 7px 0 .020em,15px 7px 0 .020em,1px 8px 0 .020em,15px 8px 0 .020em,2px 9px 0 .020em,14px 9px 0 .020em,3px 10px 0 .020em,13px 10px 0 .020em,4px 11px 0 .020em,12px 11px 0 .020em,5px 12px 0 .020em,11px 12px 0 .020em,6px 13px 0 .020em,10px 13px 0 .020em,7px 14px 0 .020em,9px 14px 0 .020em,8px 15px 0 .020em}}.nes-icon.heart.is-empty::before{width:1px;height:1px;color:#adafbb;box-shadow:3px 2px,4px 2px,5px 2px,11px 2px,12px 2px,13px 2px,2px 3px,6px 3px,10px 3px,14px 3px,1px 4px,7px 4px,9px 4px,15px 4px,1px 5px,8px 5px,15px 5px,1px 6px,15px 6px,1px 7px,15px 7px,1px 8px,15px 8px,2px 9px,14px 9px,3px 10px,13px 10px,4px 11px,12px 11px,5px 12px,11px 12px,6px 13px,10px 13px,7px 14px,9px 14px,8px 15px}@supports (-moz-appearance:meterbar){.nes-icon.heart.is-empty::before{box-shadow:3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em,13px 2px 0 .020em,2px 3px 0 .020em,6px 3px 0 .020em,10px 3px 0 .020em,14px 3px 0 .020em,1px 4px 0 .020em,7px 4px 0 .020em,9px 4px 0 .020em,15px 4px 0 .020em,1px 5px 0 .020em,8px 5px 0 .020em,15px 5px 0 .020em,1px 6px 0 .020em,15px 6px 0 .020em,1px 7px 0 .020em,15px 7px 0 .020em,1px 8px 0 .020em,15px 8px 0 .020em,2px 9px 0 .020em,14px 9px 0 .020em,3px 10px 0 .020em,13px 10px 0 .020em,4px 11px 0 .020em,12px 11px 0 .020em,5px 12px 0 .020em,11px 12px 0 .020em,6px 13px 0 .020em,10px 13px 0 .020em,7px 14px 0 .020em,9px 14px 0 .020em,8px 15px 0 .020em}}.nes-icon.star::before{width:1px;height:1px;color:#ebe527;box-shadow:8px 1px #444,7px 2px #444,8px 2px,9px 2px #444,7px 3px #444,8px 3px,9px 3px #444,6px 4px #444,7px 4px,8px 4px,9px 4px,10px 4px #444,6px 5px #444,7px 5px #fff,8px 5px #fff,9px 5px,10px 5px #444,1px 6px #444,2px 6px #444,3px 6px #444,4px 6px #444,5px 6px #444,6px 6px #444,7px 6px #fff,8px 6px,9px 6px,10px 6px,11px 6px #444,12px 6px #444,13px 6px #444,14px 6px #444,15px 6px #444,1px 7px #444,2px 7px,3px 7px,4px 7px,5px 7px #fff,6px 7px #fff,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px,12px 7px,13px 7px,14px 7px,15px 7px #444,2px 8px #444,3px 8px,4px 8px,5px 8px #fff,6px 8px,7px 8px,8px 8px,9px 8px,10px 8px,11px 8px,12px 8px,13px 8px #f59f54,14px 8px #444,3px 9px #444,4px 9px,5px 9px,6px 9px,7px 9px,8px 9px,9px 9px,10px 9px,11px 9px #f59f54,12px 9px #f59f54,13px 9px #444,4px 10px #444,5px 10px,6px 10px,7px 10px,8px 10px,9px 10px,10px 10px,11px 10px,12px 10px #444,3px 11px #444,4px 11px,5px 11px,6px 11px,7px 11px,8px 11px #f59f54,9px 11px,10px 11px,11px 11px,12px 11px,13px 11px #444,3px 12px #444,4px 12px,5px 12px,6px 12px,7px 12px #f59f54,8px 12px #f59f54,9px 12px #f59f54,10px 12px,11px 12px,12px 12px,13px 12px #444,2px 13px #444,3px 13px,4px 13px,5px 13px #f59f54,6px 13px #f59f54,7px 13px #f59f54,8px 13px #444,9px 13px #f59f54,10px 13px #f59f54,11px 13px #f59f54,12px 13px,13px 13px,14px 13px #444,2px 14px #444,3px 14px,4px 14px #f59f54,5px 14px #f59f54,6px 14px #444,7px 14px #444,9px 14px #444,10px 14px #444,11px 14px #f59f54,12px 14px #f59f54,13px 14px,14px 14px #444,1px 15px #444,2px 15px #f59f54,3px 15px #f59f54,4px 15px #444,5px 15px #444,11px 15px #444,12px 15px #444,13px 15px #f59f54,14px 15px #f59f54,15px 15px #444,1px 16px #444,2px 16px #444,3px 16px #444,13px 16px #444,14px 16px #444,15px 16px #444}@supports (-moz-appearance:meterbar){.nes-icon.star::before{box-shadow:8px 1px 0 .020em #444,7px 2px 0 .020em #444,8px 2px 0 .020em,9px 2px 0 .020em #444,7px 3px 0 .020em #444,8px 3px 0 .020em,9px 3px 0 .020em #444,6px 4px 0 .020em #444,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em #444,6px 5px 0 .020em #444,7px 5px 0 .020em #fff,8px 5px 0 .020em #fff,9px 5px 0 .020em,10px 5px 0 .020em #444,1px 6px 0 .020em #444,2px 6px 0 .020em #444,3px 6px 0 .020em #444,4px 6px 0 .020em #444,5px 6px 0 .020em #444,6px 6px 0 .020em #444,7px 6px 0 .020em #fff,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em #444,12px 6px 0 .020em #444,13px 6px 0 .020em #444,14px 6px 0 .020em #444,15px 6px 0 .020em #444,1px 7px 0 .020em #444,2px 7px 0 .020em,3px 7px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em #fff,6px 7px 0 .020em #fff,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em #444,2px 8px 0 .020em #444,3px 8px 0 .020em,4px 8px 0 .020em,5px 8px 0 .020em #fff,6px 8px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em,11px 8px 0 .020em,12px 8px 0 .020em,13px 8px 0 .020em #f59f54,14px 8px 0 .020em #444,3px 9px 0 .020em #444,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em,11px 9px 0 .020em #f59f54,12px 9px 0 .020em #f59f54,13px 9px 0 .020em #444,4px 10px 0 .020em #444,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em,11px 10px 0 .020em,12px 10px 0 .020em #444,3px 11px 0 .020em #444,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em #f59f54,9px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em #444,3px 12px 0 .020em #444,4px 12px 0 .020em,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em #f59f54,8px 12px 0 .020em #f59f54,9px 12px 0 .020em #f59f54,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em #444,2px 13px 0 .020em #444,3px 13px 0 .020em,4px 13px 0 .020em,5px 13px 0 .020em #f59f54,6px 13px 0 .020em #f59f54,7px 13px 0 .020em #f59f54,8px 13px 0 .020em #444,9px 13px 0 .020em #f59f54,10px 13px 0 .020em #f59f54,11px 13px 0 .020em #f59f54,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em #444,2px 14px 0 .020em #444,3px 14px 0 .020em,4px 14px 0 .020em #f59f54,5px 14px 0 .020em #f59f54,6px 14px 0 .020em #444,7px 14px 0 .020em #444,9px 14px 0 .020em #444,10px 14px 0 .020em #444,11px 14px 0 .020em #f59f54,12px 14px 0 .020em #f59f54,13px 14px 0 .020em,14px 14px 0 .020em #444,1px 15px 0 .020em #444,2px 15px 0 .020em #f59f54,3px 15px 0 .020em #f59f54,4px 15px 0 .020em #444,5px 15px 0 .020em #444,11px 15px 0 .020em #444,12px 15px 0 .020em #444,13px 15px 0 .020em #f59f54,14px 15px 0 .020em #f59f54,15px 15px 0 .020em #444,1px 16px 0 .020em #444,2px 16px 0 .020em #444,3px 16px 0 .020em #444,13px 16px 0 .020em #444,14px 16px 0 .020em #444,15px 16px 0 .020em #444}}.nes-icon.star.is-empty::before{width:1px;height:1px;color:#adafbb;box-shadow:8px 1px,7px 2px,9px 2px,7px 3px,9px 3px,6px 4px,10px 4px,6px 5px,10px 5px,1px 6px,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px,1px 7px,15px 7px,2px 8px,14px 8px,3px 9px,13px 9px,4px 10px,12px 10px,3px 11px,13px 11px,3px 12px,13px 12px,2px 13px,8px 13px,14px 13px,2px 14px,6px 14px,7px 14px,9px 14px,10px 14px,14px 14px,1px 15px,4px 15px,5px 15px,11px 15px,12px 15px,15px 15px,1px 16px,2px 16px,3px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.star.is-empty::before{box-shadow:8px 1px 0 .020em,7px 2px 0 .020em,9px 2px 0 .020em,7px 3px 0 .020em,9px 3px 0 .020em,6px 4px 0 .020em,10px 4px 0 .020em,6px 5px 0 .020em,10px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,1px 7px 0 .020em,15px 7px 0 .020em,2px 8px 0 .020em,14px 8px 0 .020em,3px 9px 0 .020em,13px 9px 0 .020em,4px 10px 0 .020em,12px 10px 0 .020em,3px 11px 0 .020em,13px 11px 0 .020em,3px 12px 0 .020em,13px 12px 0 .020em,2px 13px 0 .020em,8px 13px 0 .020em,14px 13px 0 .020em,2px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,14px 14px 0 .020em,1px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,15px 15px 0 .020em,1px 16px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.star.is-half::before{width:1px;height:1px;color:#444;box-shadow:8px 1px,7px 2px,8px 2px #ebe527,9px 2px,7px 3px,8px 3px #ebe527,9px 3px,6px 4px,7px 4px #ebe527,8px 4px #ebe527,10px 4px,6px 5px,7px 5px #ebe527,8px 5px #ebe527,10px 5px,1px 6px,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,7px 6px #ebe527,8px 6px #ebe527,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px,1px 7px,2px 7px #ebe527,3px 7px #ebe527,4px 7px #ebe527,5px 7px #ebe527,6px 7px #ebe527,7px 7px #ebe527,8px 7px #ebe527,15px 7px,2px 8px,3px 8px #ebe527,4px 8px #ebe527,5px 8px #ebe527,6px 8px #ebe527,7px 8px #ebe527,8px 8px #ebe527,14px 8px,3px 9px,4px 9px #ebe527,5px 9px #ebe527,6px 9px #ebe527,7px 9px #ebe527,8px 9px #ebe527,13px 9px,4px 10px,5px 10px #ebe527,6px 10px #ebe527,7px 10px #ebe527,8px 10px #ebe527,12px 10px,3px 11px,4px 11px #ebe527,5px 11px #ebe527,6px 11px #ebe527,7px 11px #ebe527,8px 11px #f59f54,13px 11px,3px 12px,4px 12px #ebe527,5px 12px #ebe527,6px 12px #ebe527,7px 12px #f59f54,8px 12px #f59f54,13px 12px,2px 13px,3px 13px #ebe527,4px 13px #ebe527,5px 13px #f59f54,6px 13px #f59f54,7px 13px #f59f54,8px 13px,14px 13px,2px 14px,3px 14px #ebe527,4px 14px #f59f54,5px 14px #f59f54,6px 14px,7px 14px,9px 14px,10px 14px,14px 14px,1px 15px,2px 15px #f59f54,3px 15px #f59f54,4px 15px,5px 15px,11px 15px,12px 15px,15px 15px,1px 16px,2px 16px,3px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.star.is-half::before{box-shadow:8px 1px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em #ebe527,9px 2px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em #ebe527,9px 3px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em #ebe527,8px 4px 0 .020em #ebe527,10px 4px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em #ebe527,8px 5px 0 .020em #ebe527,10px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em #ebe527,8px 6px 0 .020em #ebe527,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em #ebe527,3px 7px 0 .020em #ebe527,4px 7px 0 .020em #ebe527,5px 7px 0 .020em #ebe527,6px 7px 0 .020em #ebe527,7px 7px 0 .020em #ebe527,8px 7px 0 .020em #ebe527,15px 7px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em #ebe527,4px 8px 0 .020em #ebe527,5px 8px 0 .020em #ebe527,6px 8px 0 .020em #ebe527,7px 8px 0 .020em #ebe527,8px 8px 0 .020em #ebe527,14px 8px 0 .020em,3px 9px 0 .020em,4px 9px 0 .020em #ebe527,5px 9px 0 .020em #ebe527,6px 9px 0 .020em #ebe527,7px 9px 0 .020em #ebe527,8px 9px 0 .020em #ebe527,13px 9px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em #ebe527,6px 10px 0 .020em #ebe527,7px 10px 0 .020em #ebe527,8px 10px 0 .020em #ebe527,12px 10px 0 .020em,3px 11px 0 .020em,4px 11px 0 .020em #ebe527,5px 11px 0 .020em #ebe527,6px 11px 0 .020em #ebe527,7px 11px 0 .020em #ebe527,8px 11px 0 .020em #f59f54,13px 11px 0 .020em,3px 12px 0 .020em,4px 12px 0 .020em #ebe527,5px 12px 0 .020em #ebe527,6px 12px 0 .020em #ebe527,7px 12px 0 .020em #f59f54,8px 12px 0 .020em #f59f54,13px 12px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em #ebe527,4px 13px 0 .020em #ebe527,5px 13px 0 .020em #f59f54,6px 13px 0 .020em #f59f54,7px 13px 0 .020em #f59f54,8px 13px 0 .020em,14px 13px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em #ebe527,4px 14px 0 .020em #f59f54,5px 14px 0 .020em #f59f54,6px 14px 0 .020em,7px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,14px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em #f59f54,3px 15px 0 .020em #f59f54,4px 15px 0 .020em,5px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,15px 15px 0 .020em,1px 16px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.star.is-transparent::before{width:1px;height:1px;color:#444;box-shadow:8px 1px,7px 2px,9px 2px,7px 3px,9px 3px,6px 4px,10px 4px,6px 5px,10px 5px,1px 6px,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px,1px 7px,15px 7px,2px 8px,14px 8px,3px 9px,13px 9px,4px 10px,12px 10px,3px 11px,13px 11px,3px 12px,13px 12px,2px 13px,8px 13px,14px 13px,2px 14px,6px 14px,7px 14px,9px 14px,10px 14px,14px 14px,1px 15px,4px 15px,5px 15px,11px 15px,12px 15px,15px 15px,1px 16px,2px 16px,3px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.star.is-transparent::before{box-shadow:8px 1px 0 .020em,7px 2px 0 .020em,9px 2px 0 .020em,7px 3px 0 .020em,9px 3px 0 .020em,6px 4px 0 .020em,10px 4px 0 .020em,6px 5px 0 .020em,10px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,1px 7px 0 .020em,15px 7px 0 .020em,2px 8px 0 .020em,14px 8px 0 .020em,3px 9px 0 .020em,13px 9px 0 .020em,4px 10px 0 .020em,12px 10px 0 .020em,3px 11px 0 .020em,13px 11px 0 .020em,3px 12px 0 .020em,13px 12px 0 .020em,2px 13px 0 .020em,8px 13px 0 .020em,14px 13px 0 .020em,2px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,14px 14px 0 .020em,1px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,15px 15px 0 .020em,1px 16px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.trophy::before{width:1px;height:1px;color:#ebe527;box-shadow:3px 1px #444,4px 1px #444,5px 1px #444,6px 1px #444,7px 1px #444,8px 1px #444,9px 1px #444,10px 1px #444,11px 1px #444,12px 1px #444,13px 1px #444,3px 2px #444,4px 2px,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px,12px 2px #f59f54,13px 2px #444,1px 3px #444,2px 3px #444,3px 3px #444,4px 3px,5px 3px #fff,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px #f59f54,13px 3px #444,14px 3px #444,15px 3px #444,1px 4px #444,3px 4px #444,4px 4px,5px 4px #fff,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px #f59f54,13px 4px #444,15px 4px #444,1px 5px #444,3px 5px #444,4px 5px,5px 5px #fff,6px 5px,7px 5px,8px 5px,9px 5px,10px 5px,11px 5px,12px 5px #f59f54,13px 5px #444,15px 5px #444,2px 6px #444,3px 6px #444,4px 6px,5px 6px #fff,6px 6px,7px 6px,8px 6px,9px 6px,10px 6px,11px 6px,12px 6px #f59f54,13px 6px #444,14px 6px #444,3px 7px #444,4px 7px,5px 7px #fff,6px 7px,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px,12px 7px #f59f54,13px 7px #444,3px 8px #444,4px 8px,5px 8px,6px 8px,7px 8px,8px 8px,9px 8px,10px 8px,11px 8px,12px 8px #f59f54,13px 8px #444,4px 9px #444,5px 9px,6px 9px,7px 9px,8px 9px,9px 9px,10px 9px,11px 9px #f59f54,12px 9px #444,5px 10px #444,6px 10px,7px 10px,8px 10px,9px 10px,10px 10px #f59f54,11px 10px #444,6px 11px #444,7px 11px,8px 11px,9px 11px #f59f54,10px 11px #444,7px 12px #444,8px 12px,9px 12px #444,7px 13px #444,8px 13px,9px 13px #444,6px 14px #444,7px 14px #444,8px 14px,9px 14px #444,10px 14px #444,5px 15px #444,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px #f59f54,11px 15px #444,5px 16px #444,6px 16px #444,7px 16px #444,8px 16px #444,9px 16px #444,10px 16px #444,11px 16px #444}@supports (-moz-appearance:meterbar){.nes-icon.trophy::before{box-shadow:3px 1px 0 .020em #444,4px 1px 0 .020em #444,5px 1px 0 .020em #444,6px 1px 0 .020em #444,7px 1px 0 .020em #444,8px 1px 0 .020em #444,9px 1px 0 .020em #444,10px 1px 0 .020em #444,11px 1px 0 .020em #444,12px 1px 0 .020em #444,13px 1px 0 .020em #444,3px 2px 0 .020em #444,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em,10px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em #f59f54,13px 2px 0 .020em #444,1px 3px 0 .020em #444,2px 3px 0 .020em #444,3px 3px 0 .020em #444,4px 3px 0 .020em,5px 3px 0 .020em #fff,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em #f59f54,13px 3px 0 .020em #444,14px 3px 0 .020em #444,15px 3px 0 .020em #444,1px 4px 0 .020em #444,3px 4px 0 .020em #444,4px 4px 0 .020em,5px 4px 0 .020em #fff,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em #f59f54,13px 4px 0 .020em #444,15px 4px 0 .020em #444,1px 5px 0 .020em #444,3px 5px 0 .020em #444,4px 5px 0 .020em,5px 5px 0 .020em #fff,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em #f59f54,13px 5px 0 .020em #444,15px 5px 0 .020em #444,2px 6px 0 .020em #444,3px 6px 0 .020em #444,4px 6px 0 .020em,5px 6px 0 .020em #fff,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em #f59f54,13px 6px 0 .020em #444,14px 6px 0 .020em #444,3px 7px 0 .020em #444,4px 7px 0 .020em,5px 7px 0 .020em #fff,6px 7px 0 .020em,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em,12px 7px 0 .020em #f59f54,13px 7px 0 .020em #444,3px 8px 0 .020em #444,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em,11px 8px 0 .020em,12px 8px 0 .020em #f59f54,13px 8px 0 .020em #444,4px 9px 0 .020em #444,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em,11px 9px 0 .020em #f59f54,12px 9px 0 .020em #444,5px 10px 0 .020em #444,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em #f59f54,11px 10px 0 .020em #444,6px 11px 0 .020em #444,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em #f59f54,10px 11px 0 .020em #444,7px 12px 0 .020em #444,8px 12px 0 .020em,9px 12px 0 .020em #444,7px 13px 0 .020em #444,8px 13px 0 .020em,9px 13px 0 .020em #444,6px 14px 0 .020em #444,7px 14px 0 .020em #444,8px 14px 0 .020em,9px 14px 0 .020em #444,10px 14px 0 .020em #444,5px 15px 0 .020em #444,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em #f59f54,11px 15px 0 .020em #444,5px 16px 0 .020em #444,6px 16px 0 .020em #444,7px 16px 0 .020em #444,8px 16px 0 .020em #444,9px 16px 0 .020em #444,10px 16px 0 .020em #444,11px 16px 0 .020em #444}}.nes-icon.trophy.is-empty::before{width:1px;height:1px;color:#adafbb;box-shadow:3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,3px 2px,13px 2px,1px 3px,2px 3px,3px 3px,13px 3px,14px 3px,15px 3px,1px 4px,3px 4px,13px 4px,15px 4px,1px 5px,3px 5px,13px 5px,15px 5px,2px 6px,3px 6px,13px 6px,14px 6px,3px 7px,13px 7px,3px 8px,13px 8px,4px 9px,12px 9px,5px 10px,11px 10px,6px 11px,10px 11px,7px 12px,9px 12px,7px 13px,9px 13px,6px 14px,7px 14px,9px 14px,10px 14px,5px 15px,11px 15px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px}@supports (-moz-appearance:meterbar){.nes-icon.trophy.is-empty::before{box-shadow:3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,3px 2px 0 .020em,13px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,13px 3px 0 .020em,14px 3px 0 .020em,15px 3px 0 .020em,1px 4px 0 .020em,3px 4px 0 .020em,13px 4px 0 .020em,15px 4px 0 .020em,1px 5px 0 .020em,3px 5px 0 .020em,13px 5px 0 .020em,15px 5px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,3px 7px 0 .020em,13px 7px 0 .020em,3px 8px 0 .020em,13px 8px 0 .020em,4px 9px 0 .020em,12px 9px 0 .020em,5px 10px 0 .020em,11px 10px 0 .020em,6px 11px 0 .020em,10px 11px 0 .020em,7px 12px 0 .020em,9px 12px 0 .020em,7px 13px 0 .020em,9px 13px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,5px 15px 0 .020em,11px 15px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em}}.nes-icon.like::before{width:1px;height:1px;color:#fff;box-shadow:8px 2px #333,9px 2px #333,8px 3px #333,9px 3px,10px 3px #333,8px 4px #333,9px 4px,10px 4px #333,7px 5px #333,8px 5px,9px 5px,10px 5px #333,7px 6px #333,8px 6px,9px 6px,10px 6px #333,11px 6px #333,12px 6px #333,13px 6px #333,14px 6px #333,15px 6px #333,6px 7px #333,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px,12px 7px,13px 7px,14px 7px,15px 7px,16px 7px #333,2px 8px #333,3px 8px #333,4px 8px #333,6px 8px #333,7px 8px,8px 8px,9px 8px,10px 8px,11px 8px,12px 8px,13px 8px,14px 8px,15px 8px,16px 8px #333,1px 9px #333,2px 9px #2e77be,3px 9px #2e77be,4px 9px #2e77be,5px 9px #333,6px 9px,7px 9px,8px 9px,9px 9px,10px 9px,11px 9px,12px 9px,13px 9px,14px 9px,15px 9px,16px 9px #333,1px 10px #333,2px 10px #2e77be,3px 10px #2e77be,4px 10px #2e77be,5px 10px #333,6px 10px,7px 10px,8px 10px,9px 10px,10px 10px,11px 10px,12px 10px,13px 10px,14px 10px,15px 10px #333,1px 11px #333,2px 11px #2e77be,3px 11px #2e77be,4px 11px #2e77be,5px 11px #333,6px 11px,7px 11px,8px 11px,9px 11px,10px 11px,11px 11px,12px 11px,13px 11px,14px 11px,15px 11px #333,1px 12px #333,2px 12px #2e77be,3px 12px #2e77be,4px 12px #2e77be,5px 12px #333,6px 12px,7px 12px,8px 12px,9px 12px,10px 12px,11px 12px,12px 12px,13px 12px,14px 12px,15px 12px #333,1px 13px #333,2px 13px #2e77be,3px 13px #2e77be,4px 13px #2e77be,5px 13px #333,6px 13px,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px,12px 13px,13px 13px,14px 13px #333,1px 14px #333,2px 14px #2e77be,3px 14px #2e77be,4px 14px #2e77be,5px 14px #333,6px 14px,7px 14px,8px 14px,9px 14px,10px 14px,11px 14px,12px 14px,13px 14px,14px 14px #333,2px 15px #333,3px 15px #333,4px 15px #333,6px 15px #333,7px 15px #333,8px 15px #333,9px 15px #333,10px 15px #333,11px 15px #333,12px 15px #333,13px 15px #333}@supports (-moz-appearance:meterbar){.nes-icon.like::before{box-shadow:8px 2px 0 .020em #333,9px 2px 0 .020em #333,8px 3px 0 .020em #333,9px 3px 0 .020em,10px 3px 0 .020em #333,8px 4px 0 .020em #333,9px 4px 0 .020em,10px 4px 0 .020em #333,7px 5px 0 .020em #333,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em #333,7px 6px 0 .020em #333,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em #333,11px 6px 0 .020em #333,12px 6px 0 .020em #333,13px 6px 0 .020em #333,14px 6px 0 .020em #333,15px 6px 0 .020em #333,6px 7px 0 .020em #333,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em,16px 7px 0 .020em #333,2px 8px 0 .020em #333,3px 8px 0 .020em #333,4px 8px 0 .020em #333,6px 8px 0 .020em #333,7px 8px 0 .020em,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em,11px 8px 0 .020em,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em,15px 8px 0 .020em,16px 8px 0 .020em #333,1px 9px 0 .020em #333,2px 9px 0 .020em #2e77be,3px 9px 0 .020em #2e77be,4px 9px 0 .020em #2e77be,5px 9px 0 .020em #333,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em,11px 9px 0 .020em,12px 9px 0 .020em,13px 9px 0 .020em,14px 9px 0 .020em,15px 9px 0 .020em,16px 9px 0 .020em #333,1px 10px 0 .020em #333,2px 10px 0 .020em #2e77be,3px 10px 0 .020em #2e77be,4px 10px 0 .020em #2e77be,5px 10px 0 .020em #333,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em,11px 10px 0 .020em,12px 10px 0 .020em,13px 10px 0 .020em,14px 10px 0 .020em,15px 10px 0 .020em #333,1px 11px 0 .020em #333,2px 11px 0 .020em #2e77be,3px 11px 0 .020em #2e77be,4px 11px 0 .020em #2e77be,5px 11px 0 .020em #333,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em,14px 11px 0 .020em,15px 11px 0 .020em #333,1px 12px 0 .020em #333,2px 12px 0 .020em #2e77be,3px 12px 0 .020em #2e77be,4px 12px 0 .020em #2e77be,5px 12px 0 .020em #333,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em,14px 12px 0 .020em,15px 12px 0 .020em #333,1px 13px 0 .020em #333,2px 13px 0 .020em #2e77be,3px 13px 0 .020em #2e77be,4px 13px 0 .020em #2e77be,5px 13px 0 .020em #333,6px 13px 0 .020em,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em #333,1px 14px 0 .020em #333,2px 14px 0 .020em #2e77be,3px 14px 0 .020em #2e77be,4px 14px 0 .020em #2e77be,5px 14px 0 .020em #333,6px 14px 0 .020em,7px 14px 0 .020em,8px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em #333,2px 15px 0 .020em #333,3px 15px 0 .020em #333,4px 15px 0 .020em #333,6px 15px 0 .020em #333,7px 15px 0 .020em #333,8px 15px 0 .020em #333,9px 15px 0 .020em #333,10px 15px 0 .020em #333,11px 15px 0 .020em #333,12px 15px 0 .020em #333,13px 15px 0 .020em #333}}.nes-icon.like.is-empty::before{width:1px;height:1px;color:#adafbb;box-shadow:8px 2px,9px 2px,8px 3px,10px 3px,8px 4px,10px 4px,7px 5px,10px 5px,7px 6px,10px 6px,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px,6px 7px,16px 7px,2px 8px,3px 8px,4px 8px,6px 8px,16px 8px,1px 9px,5px 9px,16px 9px,1px 10px,5px 10px,15px 10px,1px 11px,5px 11px,15px 11px,1px 12px,5px 12px,15px 12px,1px 13px,5px 13px,14px 13px,1px 14px,5px 14px,14px 14px,2px 15px,3px 15px,4px 15px,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px,12px 15px,13px 15px}@supports (-moz-appearance:meterbar){.nes-icon.like.is-empty::before{box-shadow:8px 2px 0 .020em,9px 2px 0 .020em,8px 3px 0 .020em,10px 3px 0 .020em,8px 4px 0 .020em,10px 4px 0 .020em,7px 5px 0 .020em,10px 5px 0 .020em,7px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,6px 7px 0 .020em,16px 7px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em,4px 8px 0 .020em,6px 8px 0 .020em,16px 8px 0 .020em,1px 9px 0 .020em,5px 9px 0 .020em,16px 9px 0 .020em,1px 10px 0 .020em,5px 10px 0 .020em,15px 10px 0 .020em,1px 11px 0 .020em,5px 11px 0 .020em,15px 11px 0 .020em,1px 12px 0 .020em,5px 12px 0 .020em,15px 12px 0 .020em,1px 13px 0 .020em,5px 13px 0 .020em,14px 13px 0 .020em,1px 14px 0 .020em,5px 14px 0 .020em,14px 14px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,13px 15px 0 .020em}}.nes-icon.twitter::before{width:1px;height:1px;color:#2c9ceb;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px,4px 2px,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px,12px 2px,13px 2px,14px 2px,15px 2px,16px 2px,1px 3px,2px 3px #fff,3px 3px,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px #fff,11px 3px #fff,12px 3px #fff,13px 3px,14px 3px,15px 3px,16px 3px,1px 4px,2px 4px #fff,3px 4px #fff,4px 4px #fff,5px 4px,6px 4px,7px 4px,8px 4px,9px 4px #fff,10px 4px #fff,11px 4px #fff,12px 4px #fff,13px 4px #fff,14px 4px,15px 4px,16px 4px,1px 5px,2px 5px #fff,3px 5px #fff,4px 5px #fff,5px 5px #fff,6px 5px #fff,7px 5px,8px 5px #fff,9px 5px #fff,10px 5px #fff,11px 5px #fff,12px 5px #fff,13px 5px #fff,14px 5px #fff,15px 5px #fff,16px 5px,1px 6px,2px 6px,3px 6px #fff,4px 6px #fff,5px 6px #fff,6px 6px #fff,7px 6px #fff,8px 6px #fff,9px 6px #fff,10px 6px #fff,11px 6px #fff,12px 6px #fff,13px 6px #fff,14px 6px #fff,15px 6px,16px 6px,1px 7px,2px 7px,3px 7px #fff,4px 7px #fff,5px 7px #fff,6px 7px #fff,7px 7px #fff,8px 7px #fff,9px 7px #fff,10px 7px #fff,11px 7px #fff,12px 7px #fff,13px 7px #fff,14px 7px #fff,15px 7px,16px 7px,1px 8px,2px 8px,3px 8px,4px 8px #fff,5px 8px #fff,6px 8px #fff,7px 8px #fff,8px 8px #fff,9px 8px #fff,10px 8px #fff,11px 8px #fff,12px 8px #fff,13px 8px #fff,14px 8px,15px 8px,16px 8px,1px 9px,2px 9px,3px 9px,4px 9px #fff,5px 9px #fff,6px 9px #fff,7px 9px #fff,8px 9px #fff,9px 9px #fff,10px 9px #fff,11px 9px #fff,12px 9px #fff,13px 9px,14px 9px,15px 9px,16px 9px,1px 10px,2px 10px,3px 10px,4px 10px,5px 10px #fff,6px 10px #fff,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px #fff,11px 10px #fff,12px 10px #fff,13px 10px,14px 10px,15px 10px,16px 10px,1px 11px,2px 11px,3px 11px,4px 11px,5px 11px,6px 11px #fff,7px 11px #fff,8px 11px #fff,9px 11px #fff,10px 11px #fff,11px 11px #fff,12px 11px #fff,13px 11px,14px 11px,15px 11px,16px 11px,1px 12px,2px 12px,3px 12px,4px 12px,5px 12px #fff,6px 12px #fff,7px 12px #fff,8px 12px #fff,9px 12px #fff,10px 12px #fff,11px 12px #fff,12px 12px,13px 12px,14px 12px,15px 12px,16px 12px,1px 13px,2px 13px,3px 13px #fff,4px 13px #fff,5px 13px #fff,6px 13px #fff,7px 13px #fff,8px 13px #fff,9px 13px #fff,10px 13px,11px 13px,12px 13px,13px 13px,14px 13px,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px #fff,5px 14px #fff,6px 14px #fff,7px 14px,8px 14px,9px 14px,10px 14px,11px 14px,12px 14px,13px 14px,14px 14px,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px,12px 15px,13px 15px,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.twitter::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em,10px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em,13px 2px 0 .020em,14px 2px 0 .020em,15px 2px 0 .020em,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em #fff,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em #fff,11px 3px 0 .020em #fff,12px 3px 0 .020em #fff,13px 3px 0 .020em,14px 3px 0 .020em,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em #fff,3px 4px 0 .020em #fff,4px 4px 0 .020em #fff,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em #fff,10px 4px 0 .020em #fff,11px 4px 0 .020em #fff,12px 4px 0 .020em #fff,13px 4px 0 .020em #fff,14px 4px 0 .020em,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em #fff,3px 5px 0 .020em #fff,4px 5px 0 .020em #fff,5px 5px 0 .020em #fff,6px 5px 0 .020em #fff,7px 5px 0 .020em,8px 5px 0 .020em #fff,9px 5px 0 .020em #fff,10px 5px 0 .020em #fff,11px 5px 0 .020em #fff,12px 5px 0 .020em #fff,13px 5px 0 .020em #fff,14px 5px 0 .020em #fff,15px 5px 0 .020em #fff,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em #fff,4px 6px 0 .020em #fff,5px 6px 0 .020em #fff,6px 6px 0 .020em #fff,7px 6px 0 .020em #fff,8px 6px 0 .020em #fff,9px 6px 0 .020em #fff,10px 6px 0 .020em #fff,11px 6px 0 .020em #fff,12px 6px 0 .020em #fff,13px 6px 0 .020em #fff,14px 6px 0 .020em #fff,15px 6px 0 .020em,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em,3px 7px 0 .020em #fff,4px 7px 0 .020em #fff,5px 7px 0 .020em #fff,6px 7px 0 .020em #fff,7px 7px 0 .020em #fff,8px 7px 0 .020em #fff,9px 7px 0 .020em #fff,10px 7px 0 .020em #fff,11px 7px 0 .020em #fff,12px 7px 0 .020em #fff,13px 7px 0 .020em #fff,14px 7px 0 .020em #fff,15px 7px 0 .020em,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em,4px 8px 0 .020em #fff,5px 8px 0 .020em #fff,6px 8px 0 .020em #fff,7px 8px 0 .020em #fff,8px 8px 0 .020em #fff,9px 8px 0 .020em #fff,10px 8px 0 .020em #fff,11px 8px 0 .020em #fff,12px 8px 0 .020em #fff,13px 8px 0 .020em #fff,14px 8px 0 .020em,15px 8px 0 .020em,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em,3px 9px 0 .020em,4px 9px 0 .020em #fff,5px 9px 0 .020em #fff,6px 9px 0 .020em #fff,7px 9px 0 .020em #fff,8px 9px 0 .020em #fff,9px 9px 0 .020em #fff,10px 9px 0 .020em #fff,11px 9px 0 .020em #fff,12px 9px 0 .020em #fff,13px 9px 0 .020em,14px 9px 0 .020em,15px 9px 0 .020em,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em,3px 10px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em #fff,6px 10px 0 .020em #fff,7px 10px 0 .020em #fff,8px 10px 0 .020em #fff,9px 10px 0 .020em #fff,10px 10px 0 .020em #fff,11px 10px 0 .020em #fff,12px 10px 0 .020em #fff,13px 10px 0 .020em,14px 10px 0 .020em,15px 10px 0 .020em,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em,3px 11px 0 .020em,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em #fff,7px 11px 0 .020em #fff,8px 11px 0 .020em #fff,9px 11px 0 .020em #fff,10px 11px 0 .020em #fff,11px 11px 0 .020em #fff,12px 11px 0 .020em #fff,13px 11px 0 .020em,14px 11px 0 .020em,15px 11px 0 .020em,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em,4px 12px 0 .020em,5px 12px 0 .020em #fff,6px 12px 0 .020em #fff,7px 12px 0 .020em #fff,8px 12px 0 .020em #fff,9px 12px 0 .020em #fff,10px 12px 0 .020em #fff,11px 12px 0 .020em #fff,12px 12px 0 .020em,13px 12px 0 .020em,14px 12px 0 .020em,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em #fff,4px 13px 0 .020em #fff,5px 13px 0 .020em #fff,6px 13px 0 .020em #fff,7px 13px 0 .020em #fff,8px 13px 0 .020em #fff,9px 13px 0 .020em #fff,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em,4px 14px 0 .020em #fff,5px 14px 0 .020em #fff,6px 14px 0 .020em #fff,7px 14px 0 .020em,8px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.facebook::before{width:1px;height:1px;color:#4566ae;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px,4px 2px,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px #fff,12px 2px #fff,13px 2px #fff,14px 2px #fff,15px 2px,16px 2px,1px 3px,2px 3px,3px 3px,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px #fff,11px 3px #fff,12px 3px #fff,13px 3px #fff,14px 3px #fff,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px,4px 4px,5px 4px,6px 4px,7px 4px,8px 4px,9px 4px #fff,10px 4px #fff,11px 4px #fff,12px 4px #fff,13px 4px #fff,14px 4px #fff,15px 4px,16px 4px,1px 5px,2px 5px,3px 5px,4px 5px,5px 5px,6px 5px,7px 5px,8px 5px,9px 5px #fff,10px 5px #fff,11px 5px #fff,12px 5px,13px 5px,14px 5px,15px 5px,16px 5px,1px 6px,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,7px 6px,8px 6px,9px 6px #fff,10px 6px #fff,11px 6px #fff,12px 6px,13px 6px,14px 6px,15px 6px,16px 6px,1px 7px,2px 7px,3px 7px,4px 7px,5px 7px,6px 7px,7px 7px,8px 7px,9px 7px #fff,10px 7px #fff,11px 7px #fff,12px 7px,13px 7px,14px 7px,15px 7px,16px 7px,1px 8px,2px 8px,3px 8px,4px 8px,5px 8px,6px 8px #fff,7px 8px #fff,8px 8px #fff,9px 8px #fff,10px 8px #fff,11px 8px #fff,12px 8px #fff,13px 8px #fff,14px 8px #fff,15px 8px,16px 8px,1px 9px,2px 9px,3px 9px,4px 9px,5px 9px,6px 9px #fff,7px 9px #fff,8px 9px #fff,9px 9px #fff,10px 9px #fff,11px 9px #fff,12px 9px #fff,13px 9px #fff,14px 9px #fff,15px 9px,16px 9px,1px 10px,2px 10px,3px 10px,4px 10px,5px 10px,6px 10px #fff,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px #fff,11px 10px #fff,12px 10px #fff,13px 10px #fff,14px 10px #fff,15px 10px,16px 10px,1px 11px,2px 11px,3px 11px,4px 11px,5px 11px,6px 11px,7px 11px,8px 11px,9px 11px #fff,10px 11px #fff,11px 11px #fff,12px 11px,13px 11px,14px 11px,15px 11px,16px 11px,1px 12px,2px 12px,3px 12px,4px 12px,5px 12px,6px 12px,7px 12px,8px 12px,9px 12px #fff,10px 12px #fff,11px 12px #fff,12px 12px,13px 12px,14px 12px,15px 12px,16px 12px,1px 13px,2px 13px,3px 13px,4px 13px,5px 13px,6px 13px,7px 13px,8px 13px,9px 13px #fff,10px 13px #fff,11px 13px #fff,12px 13px,13px 13px,14px 13px,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px,5px 14px,6px 14px,7px 14px,8px 14px,9px 14px #fff,10px 14px #fff,11px 14px #fff,12px 14px,13px 14px,14px 14px,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px,8px 15px,9px 15px #fff,10px 15px #fff,11px 15px #fff,12px 15px,13px 15px,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px #fff,10px 16px #fff,11px 16px #fff,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.facebook::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em,10px 2px 0 .020em,11px 2px 0 .020em #fff,12px 2px 0 .020em #fff,13px 2px 0 .020em #fff,14px 2px 0 .020em #fff,15px 2px 0 .020em,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em #fff,11px 3px 0 .020em #fff,12px 3px 0 .020em #fff,13px 3px 0 .020em #fff,14px 3px 0 .020em #fff,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em,4px 4px 0 .020em,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em #fff,10px 4px 0 .020em #fff,11px 4px 0 .020em #fff,12px 4px 0 .020em #fff,13px 4px 0 .020em #fff,14px 4px 0 .020em #fff,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em,3px 5px 0 .020em,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em,9px 5px 0 .020em #fff,10px 5px 0 .020em #fff,11px 5px 0 .020em #fff,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em,15px 5px 0 .020em,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em,9px 6px 0 .020em #fff,10px 6px 0 .020em #fff,11px 6px 0 .020em #fff,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em,3px 7px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em #fff,10px 7px 0 .020em #fff,11px 7px 0 .020em #fff,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em #fff,7px 8px 0 .020em #fff,8px 8px 0 .020em #fff,9px 8px 0 .020em #fff,10px 8px 0 .020em #fff,11px 8px 0 .020em #fff,12px 8px 0 .020em #fff,13px 8px 0 .020em #fff,14px 8px 0 .020em #fff,15px 8px 0 .020em,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em,3px 9px 0 .020em,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em #fff,7px 9px 0 .020em #fff,8px 9px 0 .020em #fff,9px 9px 0 .020em #fff,10px 9px 0 .020em #fff,11px 9px 0 .020em #fff,12px 9px 0 .020em #fff,13px 9px 0 .020em #fff,14px 9px 0 .020em #fff,15px 9px 0 .020em,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em,3px 10px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em #fff,7px 10px 0 .020em #fff,8px 10px 0 .020em #fff,9px 10px 0 .020em #fff,10px 10px 0 .020em #fff,11px 10px 0 .020em #fff,12px 10px 0 .020em #fff,13px 10px 0 .020em #fff,14px 10px 0 .020em #fff,15px 10px 0 .020em,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em,3px 11px 0 .020em,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em #fff,10px 11px 0 .020em #fff,11px 11px 0 .020em #fff,12px 11px 0 .020em,13px 11px 0 .020em,14px 11px 0 .020em,15px 11px 0 .020em,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em,4px 12px 0 .020em,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,9px 12px 0 .020em #fff,10px 12px 0 .020em #fff,11px 12px 0 .020em #fff,12px 12px 0 .020em,13px 12px 0 .020em,14px 12px 0 .020em,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em,4px 13px 0 .020em,5px 13px 0 .020em,6px 13px 0 .020em,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em #fff,10px 13px 0 .020em #fff,11px 13px 0 .020em #fff,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em,4px 14px 0 .020em,5px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,8px 14px 0 .020em,9px 14px 0 .020em #fff,10px 14px 0 .020em #fff,11px 14px 0 .020em #fff,12px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em #fff,10px 15px 0 .020em #fff,11px 15px 0 .020em #fff,12px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em #fff,10px 16px 0 .020em #fff,11px 16px 0 .020em #fff,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.github::before{width:1px;height:1px;color:#333;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px,4px 2px,5px 2px #fff,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px,12px 2px,13px 2px,14px 2px #fff,15px 2px,16px 2px,1px 3px,2px 3px,3px 3px,4px 3px,5px 3px #fff,6px 3px #fff,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px #fff,14px 3px #fff,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px,4px 4px,5px 4px #fff,6px 4px #fff,7px 4px #fff,8px 4px #fff,9px 4px #fff,10px 4px #fff,11px 4px #fff,12px 4px #fff,13px 4px #fff,14px 4px #fff,15px 4px,16px 4px,1px 5px,2px 5px,3px 5px,4px 5px #fff,5px 5px #fff,6px 5px #fff,7px 5px #fff,8px 5px #fff,9px 5px #fff,10px 5px #fff,11px 5px #fff,12px 5px #fff,13px 5px #fff,14px 5px #fff,15px 5px #fff,16px 5px,1px 6px,2px 6px,3px 6px,4px 6px #fff,5px 6px #fff,6px 6px #fff,7px 6px #fff,8px 6px #fff,9px 6px #fff,10px 6px #fff,11px 6px #fff,12px 6px #fff,13px 6px #fff,14px 6px #fff,15px 6px #fff,16px 6px,1px 7px,2px 7px,3px 7px,4px 7px #fff,5px 7px #fff,6px 7px #fff,7px 7px #fff,8px 7px #fff,9px 7px #fff,10px 7px #fff,11px 7px #fff,12px 7px #fff,13px 7px #fff,14px 7px #fff,15px 7px #fff,16px 7px,1px 8px,2px 8px,3px 8px,4px 8px #fff,5px 8px #fff,6px 8px #fff,7px 8px #fff,8px 8px #fff,9px 8px #fff,10px 8px #fff,11px 8px #fff,12px 8px #fff,13px 8px #fff,14px 8px #fff,15px 8px #fff,16px 8px,1px 9px,2px 9px,3px 9px,4px 9px,5px 9px #fff,6px 9px #fff,7px 9px #fff,8px 9px #fff,9px 9px #fff,10px 9px #fff,11px 9px #fff,12px 9px #fff,13px 9px #fff,14px 9px #fff,15px 9px,16px 9px,1px 10px,2px 10px,3px 10px,4px 10px,5px 10px,6px 10px #fff,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px #fff,11px 10px #fff,12px 10px #fff,13px 10px #fff,14px 10px,15px 10px,16px 10px,1px 11px,2px 11px #fff,3px 11px #fff,4px 11px,5px 11px,6px 11px,7px 11px,8px 11px #fff,9px 11px #fff,10px 11px #fff,11px 11px #fff,12px 11px,13px 11px,14px 11px,15px 11px,16px 11px,1px 12px,2px 12px,3px 12px,4px 12px #fff,5px 12px,6px 12px,7px 12px #fff,8px 12px #fff,9px 12px #fff,10px 12px #fff,11px 12px #fff,12px 12px #fff,13px 12px,14px 12px,15px 12px,16px 12px,1px 13px,2px 13px,3px 13px,4px 13px,5px 13px #fff,6px 13px #fff,7px 13px #fff,8px 13px #fff,9px 13px #fff,10px 13px #fff,11px 13px #fff,12px 13px #fff,13px 13px,14px 13px,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px,5px 14px,6px 14px,7px 14px #fff,8px 14px #fff,9px 14px #fff,10px 14px #fff,11px 14px #fff,12px 14px #fff,13px 14px,14px 14px,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px #fff,8px 15px #fff,9px 15px #fff,10px 15px #fff,11px 15px #fff,12px 15px #fff,13px 15px,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.github::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em #fff,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em,10px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em,13px 2px 0 .020em,14px 2px 0 .020em #fff,15px 2px 0 .020em,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em #fff,6px 3px 0 .020em #fff,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em #fff,14px 3px 0 .020em #fff,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em,4px 4px 0 .020em,5px 4px 0 .020em #fff,6px 4px 0 .020em #fff,7px 4px 0 .020em #fff,8px 4px 0 .020em #fff,9px 4px 0 .020em #fff,10px 4px 0 .020em #fff,11px 4px 0 .020em #fff,12px 4px 0 .020em #fff,13px 4px 0 .020em #fff,14px 4px 0 .020em #fff,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em,3px 5px 0 .020em,4px 5px 0 .020em #fff,5px 5px 0 .020em #fff,6px 5px 0 .020em #fff,7px 5px 0 .020em #fff,8px 5px 0 .020em #fff,9px 5px 0 .020em #fff,10px 5px 0 .020em #fff,11px 5px 0 .020em #fff,12px 5px 0 .020em #fff,13px 5px 0 .020em #fff,14px 5px 0 .020em #fff,15px 5px 0 .020em #fff,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em #fff,5px 6px 0 .020em #fff,6px 6px 0 .020em #fff,7px 6px 0 .020em #fff,8px 6px 0 .020em #fff,9px 6px 0 .020em #fff,10px 6px 0 .020em #fff,11px 6px 0 .020em #fff,12px 6px 0 .020em #fff,13px 6px 0 .020em #fff,14px 6px 0 .020em #fff,15px 6px 0 .020em #fff,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em,3px 7px 0 .020em,4px 7px 0 .020em #fff,5px 7px 0 .020em #fff,6px 7px 0 .020em #fff,7px 7px 0 .020em #fff,8px 7px 0 .020em #fff,9px 7px 0 .020em #fff,10px 7px 0 .020em #fff,11px 7px 0 .020em #fff,12px 7px 0 .020em #fff,13px 7px 0 .020em #fff,14px 7px 0 .020em #fff,15px 7px 0 .020em #fff,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em,4px 8px 0 .020em #fff,5px 8px 0 .020em #fff,6px 8px 0 .020em #fff,7px 8px 0 .020em #fff,8px 8px 0 .020em #fff,9px 8px 0 .020em #fff,10px 8px 0 .020em #fff,11px 8px 0 .020em #fff,12px 8px 0 .020em #fff,13px 8px 0 .020em #fff,14px 8px 0 .020em #fff,15px 8px 0 .020em #fff,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em,3px 9px 0 .020em,4px 9px 0 .020em,5px 9px 0 .020em #fff,6px 9px 0 .020em #fff,7px 9px 0 .020em #fff,8px 9px 0 .020em #fff,9px 9px 0 .020em #fff,10px 9px 0 .020em #fff,11px 9px 0 .020em #fff,12px 9px 0 .020em #fff,13px 9px 0 .020em #fff,14px 9px 0 .020em #fff,15px 9px 0 .020em,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em,3px 10px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em #fff,7px 10px 0 .020em #fff,8px 10px 0 .020em #fff,9px 10px 0 .020em #fff,10px 10px 0 .020em #fff,11px 10px 0 .020em #fff,12px 10px 0 .020em #fff,13px 10px 0 .020em #fff,14px 10px 0 .020em,15px 10px 0 .020em,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em #fff,3px 11px 0 .020em #fff,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em #fff,9px 11px 0 .020em #fff,10px 11px 0 .020em #fff,11px 11px 0 .020em #fff,12px 11px 0 .020em,13px 11px 0 .020em,14px 11px 0 .020em,15px 11px 0 .020em,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em,4px 12px 0 .020em #fff,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em #fff,8px 12px 0 .020em #fff,9px 12px 0 .020em #fff,10px 12px 0 .020em #fff,11px 12px 0 .020em #fff,12px 12px 0 .020em #fff,13px 12px 0 .020em,14px 12px 0 .020em,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em,4px 13px 0 .020em,5px 13px 0 .020em #fff,6px 13px 0 .020em #fff,7px 13px 0 .020em #fff,8px 13px 0 .020em #fff,9px 13px 0 .020em #fff,10px 13px 0 .020em #fff,11px 13px 0 .020em #fff,12px 13px 0 .020em #fff,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em,4px 14px 0 .020em,5px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em #fff,8px 14px 0 .020em #fff,9px 14px 0 .020em #fff,10px 14px 0 .020em #fff,11px 14px 0 .020em #fff,12px 14px 0 .020em #fff,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em #fff,8px 15px 0 .020em #fff,9px 15px 0 .020em #fff,10px 15px 0 .020em #fff,11px 15px 0 .020em #fff,12px 15px 0 .020em #fff,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.youtube::before{width:1px;height:1px;color:red;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px,4px 2px,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px,12px 2px,13px 2px,14px 2px,15px 2px,16px 2px,1px 3px,2px 3px,3px 3px,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px,14px 3px,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px,4px 4px,5px 4px,6px 4px,7px 4px #fff,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px,15px 4px,16px 4px,1px 5px,2px 5px,3px 5px,4px 5px,5px 5px,6px 5px,7px 5px #fff,8px 5px #fff,9px 5px,10px 5px,11px 5px,12px 5px,13px 5px,14px 5px,15px 5px,16px 5px,1px 6px,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,7px 6px #fff,8px 6px #fff,9px 6px #fff,10px 6px,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px,16px 6px,1px 7px,2px 7px,3px 7px,4px 7px,5px 7px,6px 7px,7px 7px #fff,8px 7px #fff,9px 7px #fff,10px 7px #fff,11px 7px,12px 7px,13px 7px,14px 7px,15px 7px,16px 7px,1px 8px,2px 8px,3px 8px,4px 8px,5px 8px,6px 8px,7px 8px #fff,8px 8px #fff,9px 8px #fff,10px 8px #fff,11px 8px #fff,12px 8px,13px 8px,14px 8px,15px 8px,16px 8px,1px 9px,2px 9px,3px 9px,4px 9px,5px 9px,6px 9px,7px 9px #fff,8px 9px #fff,9px 9px #fff,10px 9px #fff,11px 9px,12px 9px,13px 9px,14px 9px,15px 9px,16px 9px,1px 10px,2px 10px,3px 10px,4px 10px,5px 10px,6px 10px,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px,11px 10px,12px 10px,13px 10px,14px 10px,15px 10px,16px 10px,1px 11px,2px 11px,3px 11px,4px 11px,5px 11px,6px 11px,7px 11px #fff,8px 11px #fff,9px 11px,10px 11px,11px 11px,12px 11px,13px 11px,14px 11px,15px 11px,16px 11px,1px 12px,2px 12px,3px 12px,4px 12px,5px 12px,6px 12px,7px 12px #fff,8px 12px,9px 12px,10px 12px,11px 12px,12px 12px,13px 12px,14px 12px,15px 12px,16px 12px,1px 13px,2px 13px,3px 13px,4px 13px,5px 13px,6px 13px,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px,12px 13px,13px 13px,14px 13px,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px,5px 14px,6px 14px,7px 14px,8px 14px,9px 14px,10px 14px,11px 14px,12px 14px,13px 14px,14px 14px,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px,12px 15px,13px 15px,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.youtube::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em,10px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em,13px 2px 0 .020em,14px 2px 0 .020em,15px 2px 0 .020em,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em,14px 3px 0 .020em,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em,4px 4px 0 .020em,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em #fff,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em,14px 4px 0 .020em,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em,3px 5px 0 .020em,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em #fff,8px 5px 0 .020em #fff,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em,15px 5px 0 .020em,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em #fff,8px 6px 0 .020em #fff,9px 6px 0 .020em #fff,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em,3px 7px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em #fff,8px 7px 0 .020em #fff,9px 7px 0 .020em #fff,10px 7px 0 .020em #fff,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em #fff,8px 8px 0 .020em #fff,9px 8px 0 .020em #fff,10px 8px 0 .020em #fff,11px 8px 0 .020em #fff,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em,15px 8px 0 .020em,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em,3px 9px 0 .020em,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em #fff,8px 9px 0 .020em #fff,9px 9px 0 .020em #fff,10px 9px 0 .020em #fff,11px 9px 0 .020em,12px 9px 0 .020em,13px 9px 0 .020em,14px 9px 0 .020em,15px 9px 0 .020em,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em,3px 10px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em #fff,8px 10px 0 .020em #fff,9px 10px 0 .020em #fff,10px 10px 0 .020em,11px 10px 0 .020em,12px 10px 0 .020em,13px 10px 0 .020em,14px 10px 0 .020em,15px 10px 0 .020em,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em,3px 11px 0 .020em,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em #fff,8px 11px 0 .020em #fff,9px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em,14px 11px 0 .020em,15px 11px 0 .020em,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em,4px 12px 0 .020em,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em #fff,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em,14px 12px 0 .020em,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em,4px 13px 0 .020em,5px 13px 0 .020em,6px 13px 0 .020em,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em,4px 14px 0 .020em,5px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,8px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.close::before{width:1px;height:1px;color:#212529;box-shadow:1px 1px,2px 1px,3px 1px,4px 1px,13px 1px,14px 1px,15px 1px,16px 1px,1px 2px,2px 2px,3px 2px,4px 2px,13px 2px,14px 2px,15px 2px,16px 2px,1px 3px,2px 3px,3px 3px,4px 3px,13px 3px,14px 3px,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px,4px 4px,5px 4px,6px 4px,7px 4px,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px,15px 4px,16px 4px,4px 5px,5px 5px,6px 5px,7px 5px,10px 5px,11px 5px,12px 5px,13px 5px,4px 6px,5px 6px,6px 6px,7px 6px,10px 6px,11px 6px,12px 6px,13px 6px,4px 7px,5px 7px,6px 7px,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px,12px 7px,13px 7px,7px 8px,8px 8px,9px 8px,10px 8px,7px 9px,8px 9px,9px 9px,10px 9px,4px 10px,5px 10px,6px 10px,7px 10px,8px 10px,9px 10px,10px 10px,11px 10px,12px 10px,13px 10px,4px 11px,5px 11px,6px 11px,7px 11px,10px 11px,11px 11px,12px 11px,13px 11px,4px 12px,5px 12px,6px 12px,7px 12px,10px 12px,11px 12px,12px 12px,13px 12px,1px 13px,2px 13px,3px 13px,4px 13px,5px 13px,6px 13px,7px 13px,10px 13px,11px 13px,12px 13px,13px 13px,14px 13px,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px,13px 14px,14px 14px,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,13px 15px,14px 15px,15px 15px,16px 15px,1px 16px,2px 16px,3px 16px,4px 16px,13px 16px,14px 16px,15px 16px,16px 16px}@supports (-moz-appearance:meterbar){.nes-icon.close::before{box-shadow:1px 1px 0 .020em,2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,16px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,13px 2px 0 .020em,14px 2px 0 .020em,15px 2px 0 .020em,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,4px 3px 0 .020em,13px 3px 0 .020em,14px 3px 0 .020em,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em,4px 4px 0 .020em,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em,14px 4px 0 .020em,15px 4px 0 .020em,16px 4px 0 .020em,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em,11px 10px 0 .020em,12px 10px 0 .020em,13px 10px 0 .020em,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em,4px 12px 0 .020em,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em,4px 13px 0 .020em,5px 13px 0 .020em,6px 13px 0 .020em,7px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em,4px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,1px 16px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em,16px 16px 0 .020em}}.nes-icon.google::before{width:1px;height:1px;color:#fff;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px,4px 2px,5px 2px,6px 2px #db4437,7px 2px #db4437,8px 2px #db4437,9px 2px #db4437,10px 2px #db4437,11px 2px #db4437,12px 2px,13px 2px,14px 2px,15px 2px,16px 2px,1px 3px,2px 3px,3px 3px,4px 3px #db4437,5px 3px #db4437,6px 3px #db4437,7px 3px #db4437,8px 3px #db4437,9px 3px #db4437,10px 3px #db4437,11px 3px #db4437,12px 3px #db4437,13px 3px #db4437,14px 3px,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px #db4437,4px 4px #db4437,5px 4px #db4437,6px 4px #db4437,7px 4px #db4437,8px 4px #db4437,9px 4px #db4437,10px 4px #db4437,11px 4px #db4437,12px 4px #db4437,13px 4px,14px 4px,15px 4px,16px 4px,1px 5px,2px 5px #db4437,3px 5px #db4437,4px 5px #db4437,5px 5px #db4437,6px 5px,7px 5px,8px 5px,9px 5px,10px 5px,11px 5px #db4437,12px 5px,13px 5px,14px 5px,15px 5px,16px 5px,1px 6px #f4b400,2px 6px #db4437,3px 6px #db4437,4px 6px #db4437,5px 6px,6px 6px,7px 6px,8px 6px,9px 6px,10px 6px,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px,16px 6px,1px 7px #f4b400,2px 7px #f4b400,3px 7px #db4437,4px 7px,5px 7px,6px 7px,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px,12px 7px,13px 7px,14px 7px,15px 7px,16px 7px,1px 8px #f4b400,2px 8px #f4b400,3px 8px #f4b400,4px 8px,5px 8px,6px 8px,7px 8px,8px 8px,9px 8px #4285f4,10px 8px #4285f4,11px 8px #4285f4,12px 8px #4285f4,13px 8px #4285f4,14px 8px #4285f4,15px 8px #4285f4,16px 8px,1px 9px #f4b400,2px 9px #f4b400,3px 9px #f4b400,4px 9px,5px 9px,6px 9px,7px 9px,8px 9px,9px 9px #4285f4,10px 9px #4285f4,11px 9px #4285f4,12px 9px #4285f4,13px 9px #4285f4,14px 9px #4285f4,15px 9px #4285f4,16px 9px,1px 10px #f4b400,2px 10px #f4b400,3px 10px #f4b400,4px 10px,5px 10px,6px 10px,7px 10px,8px 10px,9px 10px #4285f4,10px 10px #4285f4,11px 10px #4285f4,12px 10px #4285f4,13px 10px #4285f4,14px 10px #4285f4,15px 10px #4285f4,16px 10px,1px 11px #f4b400,2px 11px #f4b400,3px 11px #0f9d58,4px 11px,5px 11px,6px 11px,7px 11px,8px 11px,9px 11px,10px 11px,11px 11px,12px 11px,13px 11px #4285f4,14px 11px #4285f4,15px 11px #4285f4,16px 11px,1px 12px #f4b400,2px 12px #0f9d58,3px 12px #0f9d58,4px 12px #0f9d58,5px 12px,6px 12px,7px 12px,8px 12px,9px 12px,10px 12px,11px 12px,12px 12px #4285f4,13px 12px #4285f4,14px 12px #4285f4,15px 12px #4285f4,16px 12px,1px 13px,2px 13px #0f9d58,3px 13px #0f9d58,4px 13px #0f9d58,5px 13px #0f9d58,6px 13px,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px #0f9d58,12px 13px #4285f4,13px 13px #4285f4,14px 13px #4285f4,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px #0f9d58,4px 14px #0f9d58,5px 14px #0f9d58,6px 14px #0f9d58,7px 14px #0f9d58,8px 14px #0f9d58,9px 14px #0f9d58,10px 14px #0f9d58,11px 14px #0f9d58,12px 14px #0f9d58,13px 14px #4285f4,14px 14px #4285f4,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px #0f9d58,5px 15px #0f9d58,6px 15px #0f9d58,7px 15px #0f9d58,8px 15px #0f9d58,9px 15px #0f9d58,10px 15px #0f9d58,11px 15px #0f9d58,12px 15px #0f9d58,13px 15px #0f9d58,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px #0f9d58,7px 16px #0f9d58,8px 16px #0f9d58,9px 16px #0f9d58,10px 16px #0f9d58,11px 16px #0f9d58,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.google::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em #db4437,7px 2px 0 .020em #db4437,8px 2px 0 .020em #db4437,9px 2px 0 .020em #db4437,10px 2px 0 .020em #db4437,11px 2px 0 .020em #db4437,12px 2px 0 .020em,13px 2px 0 .020em,14px 2px 0 .020em,15px 2px 0 .020em,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,4px 3px 0 .020em #db4437,5px 3px 0 .020em #db4437,6px 3px 0 .020em #db4437,7px 3px 0 .020em #db4437,8px 3px 0 .020em #db4437,9px 3px 0 .020em #db4437,10px 3px 0 .020em #db4437,11px 3px 0 .020em #db4437,12px 3px 0 .020em #db4437,13px 3px 0 .020em #db4437,14px 3px 0 .020em,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em #db4437,4px 4px 0 .020em #db4437,5px 4px 0 .020em #db4437,6px 4px 0 .020em #db4437,7px 4px 0 .020em #db4437,8px 4px 0 .020em #db4437,9px 4px 0 .020em #db4437,10px 4px 0 .020em #db4437,11px 4px 0 .020em #db4437,12px 4px 0 .020em #db4437,13px 4px 0 .020em,14px 4px 0 .020em,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em #db4437,3px 5px 0 .020em #db4437,4px 5px 0 .020em #db4437,5px 5px 0 .020em #db4437,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em #db4437,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em,15px 5px 0 .020em,16px 5px 0 .020em,1px 6px 0 .020em #f4b400,2px 6px 0 .020em #db4437,3px 6px 0 .020em #db4437,4px 6px 0 .020em #db4437,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,16px 6px 0 .020em,1px 7px 0 .020em #f4b400,2px 7px 0 .020em #f4b400,3px 7px 0 .020em #db4437,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em,16px 7px 0 .020em,1px 8px 0 .020em #f4b400,2px 8px 0 .020em #f4b400,3px 8px 0 .020em #f4b400,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em,9px 8px 0 .020em #4285f4,10px 8px 0 .020em #4285f4,11px 8px 0 .020em #4285f4,12px 8px 0 .020em #4285f4,13px 8px 0 .020em #4285f4,14px 8px 0 .020em #4285f4,15px 8px 0 .020em #4285f4,16px 8px 0 .020em,1px 9px 0 .020em #f4b400,2px 9px 0 .020em #f4b400,3px 9px 0 .020em #f4b400,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em #4285f4,10px 9px 0 .020em #4285f4,11px 9px 0 .020em #4285f4,12px 9px 0 .020em #4285f4,13px 9px 0 .020em #4285f4,14px 9px 0 .020em #4285f4,15px 9px 0 .020em #4285f4,16px 9px 0 .020em,1px 10px 0 .020em #f4b400,2px 10px 0 .020em #f4b400,3px 10px 0 .020em #f4b400,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em #4285f4,10px 10px 0 .020em #4285f4,11px 10px 0 .020em #4285f4,12px 10px 0 .020em #4285f4,13px 10px 0 .020em #4285f4,14px 10px 0 .020em #4285f4,15px 10px 0 .020em #4285f4,16px 10px 0 .020em,1px 11px 0 .020em #f4b400,2px 11px 0 .020em #f4b400,3px 11px 0 .020em #0f9d58,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em #4285f4,14px 11px 0 .020em #4285f4,15px 11px 0 .020em #4285f4,16px 11px 0 .020em,1px 12px 0 .020em #f4b400,2px 12px 0 .020em #0f9d58,3px 12px 0 .020em #0f9d58,4px 12px 0 .020em #0f9d58,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em #4285f4,13px 12px 0 .020em #4285f4,14px 12px 0 .020em #4285f4,15px 12px 0 .020em #4285f4,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em #0f9d58,3px 13px 0 .020em #0f9d58,4px 13px 0 .020em #0f9d58,5px 13px 0 .020em #0f9d58,6px 13px 0 .020em,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em #0f9d58,12px 13px 0 .020em #4285f4,13px 13px 0 .020em #4285f4,14px 13px 0 .020em #4285f4,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em #0f9d58,4px 14px 0 .020em #0f9d58,5px 14px 0 .020em #0f9d58,6px 14px 0 .020em #0f9d58,7px 14px 0 .020em #0f9d58,8px 14px 0 .020em #0f9d58,9px 14px 0 .020em #0f9d58,10px 14px 0 .020em #0f9d58,11px 14px 0 .020em #0f9d58,12px 14px 0 .020em #0f9d58,13px 14px 0 .020em #4285f4,14px 14px 0 .020em #4285f4,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em #0f9d58,5px 15px 0 .020em #0f9d58,6px 15px 0 .020em #0f9d58,7px 15px 0 .020em #0f9d58,8px 15px 0 .020em #0f9d58,9px 15px 0 .020em #0f9d58,10px 15px 0 .020em #0f9d58,11px 15px 0 .020em #0f9d58,12px 15px 0 .020em #0f9d58,13px 15px 0 .020em #0f9d58,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em #0f9d58,7px 16px 0 .020em #0f9d58,8px 16px 0 .020em #0f9d58,9px 16px 0 .020em #0f9d58,10px 16px 0 .020em #0f9d58,11px 16px 0 .020em #0f9d58,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.medium::before{width:1px;height:1px;color:#12100e;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px #fff,3px 2px #fff,4px 2px #fff,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px,12px 2px #fff,13px 2px #fff,14px 2px #fff,15px 2px #fff,16px 2px,1px 3px,2px 3px,3px 3px #fff,4px 3px #fff,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px #fff,13px 3px #fff,14px 3px #fff,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px #fff,4px 4px #fff,5px 4px #fff,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px #fff,13px 4px #fff,14px 4px #fff,15px 4px,16px 4px,1px 5px,2px 5px,3px 5px #fff,4px 5px #fff,5px 5px #fff,6px 5px #fff,7px 5px,8px 5px,9px 5px,10px 5px,11px 5px #fff,12px 5px #fff,13px 5px #fff,14px 5px #fff,15px 5px,16px 5px,1px 6px,2px 6px,3px 6px #fff,4px 6px #fff,5px 6px #fff,6px 6px #fff,7px 6px,8px 6px,9px 6px,10px 6px,11px 6px #fff,12px 6px #fff,13px 6px #fff,14px 6px #fff,15px 6px,16px 6px,1px 7px,2px 7px,3px 7px #fff,4px 7px #fff,5px 7px #fff,6px 7px #fff,7px 7px,8px 7px,9px 7px,10px 7px #fff,11px 7px #fff,12px 7px #fff,13px 7px #fff,14px 7px #fff,15px 7px,16px 7px,1px 8px,2px 8px,3px 8px #fff,4px 8px,5px 8px #fff,6px 8px #fff,7px 8px #fff,8px 8px,9px 8px,10px 8px #fff,11px 8px #fff,12px 8px #fff,13px 8px #fff,14px 8px #fff,15px 8px,16px 8px,1px 9px,2px 9px,3px 9px #fff,4px 9px,5px 9px #fff,6px 9px #fff,7px 9px #fff,8px 9px,9px 9px #fff,10px 9px #fff,11px 9px,12px 9px #fff,13px 9px #fff,14px 9px #fff,15px 9px,16px 9px,1px 10px,2px 10px,3px 10px #fff,4px 10px,5px 10px,6px 10px #fff,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px #fff,11px 10px,12px 10px #fff,13px 10px #fff,14px 10px #fff,15px 10px,16px 10px,1px 11px,2px 11px,3px 11px #fff,4px 11px,5px 11px,6px 11px #fff,7px 11px #fff,8px 11px #fff,9px 11px #fff,10px 11px,11px 11px,12px 11px #fff,13px 11px #fff,14px 11px #fff,15px 11px,16px 11px,1px 12px,2px 12px,3px 12px #fff,4px 12px,5px 12px,6px 12px,7px 12px #fff,8px 12px #fff,9px 12px #fff,10px 12px,11px 12px,12px 12px #fff,13px 12px #fff,14px 12px #fff,15px 12px,16px 12px,1px 13px,2px 13px,3px 13px #fff,4px 13px,5px 13px,6px 13px,7px 13px #fff,8px 13px #fff,9px 13px,10px 13px,11px 13px,12px 13px #fff,13px 13px #fff,14px 13px #fff,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px #fff,4px 14px,5px 14px,6px 14px,7px 14px,8px 14px #fff,9px 14px,10px 14px,11px 14px,12px 14px #fff,13px 14px #fff,14px 14px #fff,15px 14px,16px 14px,1px 15px,2px 15px #fff,3px 15px #fff,4px 15px #fff,5px 15px,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px #fff,12px 15px #fff,13px 15px #fff,14px 15px #fff,15px 15px #fff,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.medium::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em #fff,3px 2px 0 .020em #fff,4px 2px 0 .020em #fff,5px 2px 0 .020em,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em,10px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em #fff,13px 2px 0 .020em #fff,14px 2px 0 .020em #fff,15px 2px 0 .020em #fff,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em #fff,4px 3px 0 .020em #fff,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em #fff,13px 3px 0 .020em #fff,14px 3px 0 .020em #fff,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em #fff,4px 4px 0 .020em #fff,5px 4px 0 .020em #fff,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em #fff,13px 4px 0 .020em #fff,14px 4px 0 .020em #fff,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em,3px 5px 0 .020em #fff,4px 5px 0 .020em #fff,5px 5px 0 .020em #fff,6px 5px 0 .020em #fff,7px 5px 0 .020em,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em #fff,12px 5px 0 .020em #fff,13px 5px 0 .020em #fff,14px 5px 0 .020em #fff,15px 5px 0 .020em,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em #fff,4px 6px 0 .020em #fff,5px 6px 0 .020em #fff,6px 6px 0 .020em #fff,7px 6px 0 .020em,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em #fff,12px 6px 0 .020em #fff,13px 6px 0 .020em #fff,14px 6px 0 .020em #fff,15px 6px 0 .020em,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em,3px 7px 0 .020em #fff,4px 7px 0 .020em #fff,5px 7px 0 .020em #fff,6px 7px 0 .020em #fff,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em #fff,11px 7px 0 .020em #fff,12px 7px 0 .020em #fff,13px 7px 0 .020em #fff,14px 7px 0 .020em #fff,15px 7px 0 .020em,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em #fff,4px 8px 0 .020em,5px 8px 0 .020em #fff,6px 8px 0 .020em #fff,7px 8px 0 .020em #fff,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em #fff,11px 8px 0 .020em #fff,12px 8px 0 .020em #fff,13px 8px 0 .020em #fff,14px 8px 0 .020em #fff,15px 8px 0 .020em,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em,3px 9px 0 .020em #fff,4px 9px 0 .020em,5px 9px 0 .020em #fff,6px 9px 0 .020em #fff,7px 9px 0 .020em #fff,8px 9px 0 .020em,9px 9px 0 .020em #fff,10px 9px 0 .020em #fff,11px 9px 0 .020em,12px 9px 0 .020em #fff,13px 9px 0 .020em #fff,14px 9px 0 .020em #fff,15px 9px 0 .020em,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em,3px 10px 0 .020em #fff,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em #fff,7px 10px 0 .020em #fff,8px 10px 0 .020em #fff,9px 10px 0 .020em #fff,10px 10px 0 .020em #fff,11px 10px 0 .020em,12px 10px 0 .020em #fff,13px 10px 0 .020em #fff,14px 10px 0 .020em #fff,15px 10px 0 .020em,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em,3px 11px 0 .020em #fff,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em #fff,7px 11px 0 .020em #fff,8px 11px 0 .020em #fff,9px 11px 0 .020em #fff,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em #fff,13px 11px 0 .020em #fff,14px 11px 0 .020em #fff,15px 11px 0 .020em,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em #fff,4px 12px 0 .020em,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em #fff,8px 12px 0 .020em #fff,9px 12px 0 .020em #fff,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em #fff,13px 12px 0 .020em #fff,14px 12px 0 .020em #fff,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em #fff,4px 13px 0 .020em,5px 13px 0 .020em,6px 13px 0 .020em,7px 13px 0 .020em #fff,8px 13px 0 .020em #fff,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em #fff,13px 13px 0 .020em #fff,14px 13px 0 .020em #fff,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em #fff,4px 14px 0 .020em,5px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,8px 14px 0 .020em #fff,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em #fff,13px 14px 0 .020em #fff,14px 14px 0 .020em #fff,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em #fff,3px 15px 0 .020em #fff,4px 15px 0 .020em #fff,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em,11px 15px 0 .020em #fff,12px 15px 0 .020em #fff,13px 15px 0 .020em #fff,14px 15px 0 .020em #fff,15px 15px 0 .020em #fff,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.twitch::before{width:1px;height:1px;color:#6441a4;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px #fff,4px 2px #fff,5px 2px #fff,6px 2px #fff,7px 2px #fff,8px 2px #fff,9px 2px #fff,10px 2px #fff,11px 2px #fff,12px 2px #fff,13px 2px #fff,14px 2px #fff,15px 2px #fff,16px 2px,1px 3px,2px 3px #fff,3px 3px #fff,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px,14px 3px,15px 3px #fff,16px 3px,1px 4px,2px 4px #fff,3px 4px #fff,4px 4px,5px 4px,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px,15px 4px #fff,16px 4px,1px 5px,2px 5px #fff,3px 5px #fff,4px 5px,5px 5px,6px 5px,7px 5px,8px 5px #fff,9px 5px,10px 5px,11px 5px #fff,12px 5px,13px 5px,14px 5px,15px 5px #fff,16px 5px,1px 6px,2px 6px #fff,3px 6px #fff,4px 6px,5px 6px,6px 6px,7px 6px,8px 6px #fff,9px 6px,10px 6px,11px 6px #fff,12px 6px,13px 6px,14px 6px,15px 6px #fff,16px 6px,1px 7px,2px 7px #fff,3px 7px #fff,4px 7px,5px 7px,6px 7px,7px 7px,8px 7px #fff,9px 7px,10px 7px,11px 7px #fff,12px 7px,13px 7px,14px 7px,15px 7px #fff,16px 7px,1px 8px,2px 8px #fff,3px 8px #fff,4px 8px,5px 8px,6px 8px,7px 8px,8px 8px #fff,9px 8px,10px 8px,11px 8px #fff,12px 8px,13px 8px,14px 8px,15px 8px #fff,16px 8px,1px 9px,2px 9px #fff,3px 9px #fff,4px 9px,5px 9px,6px 9px,7px 9px,8px 9px,9px 9px,10px 9px,11px 9px,12px 9px,13px 9px,14px 9px,15px 9px #fff,16px 9px,1px 10px,2px 10px #fff,3px 10px #fff,4px 10px,5px 10px,6px 10px,7px 10px,8px 10px,9px 10px,10px 10px,11px 10px,12px 10px,13px 10px,14px 10px #fff,15px 10px #fff,16px 10px,1px 11px,2px 11px #fff,3px 11px #fff,4px 11px,5px 11px,6px 11px,7px 11px,8px 11px,9px 11px,10px 11px,11px 11px,12px 11px,13px 11px #fff,14px 11px #fff,15px 11px,16px 11px,1px 12px,2px 12px #fff,3px 12px #fff,4px 12px #fff,5px 12px #fff,6px 12px,7px 12px,8px 12px #fff,9px 12px #fff,10px 12px #fff,11px 12px #fff,12px 12px #fff,13px 12px #fff,14px 12px,15px 12px,16px 12px,1px 13px,2px 13px #fff,3px 13px #fff,4px 13px #fff,5px 13px #fff,6px 13px,7px 13px #fff,8px 13px #fff,9px 13px #fff,10px 13px #fff,11px 13px #fff,12px 13px #fff,13px 13px,14px 13px,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px,5px 14px #fff,6px 14px #fff,7px 14px #fff,8px 14px #fff,9px 14px,10px 14px,11px 14px,12px 14px,13px 14px,14px 14px,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,5px 15px #fff,6px 15px #fff,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px,12px 15px,13px 15px,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.twitch::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em #fff,4px 2px 0 .020em #fff,5px 2px 0 .020em #fff,6px 2px 0 .020em #fff,7px 2px 0 .020em #fff,8px 2px 0 .020em #fff,9px 2px 0 .020em #fff,10px 2px 0 .020em #fff,11px 2px 0 .020em #fff,12px 2px 0 .020em #fff,13px 2px 0 .020em #fff,14px 2px 0 .020em #fff,15px 2px 0 .020em #fff,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em #fff,3px 3px 0 .020em #fff,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em,14px 3px 0 .020em,15px 3px 0 .020em #fff,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em #fff,3px 4px 0 .020em #fff,4px 4px 0 .020em,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em,14px 4px 0 .020em,15px 4px 0 .020em #fff,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em #fff,3px 5px 0 .020em #fff,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em #fff,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em #fff,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em,15px 5px 0 .020em #fff,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em #fff,3px 6px 0 .020em #fff,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em #fff,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em #fff,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em #fff,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em #fff,3px 7px 0 .020em #fff,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em,8px 7px 0 .020em #fff,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em #fff,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em #fff,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em #fff,3px 8px 0 .020em #fff,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em #fff,9px 8px 0 .020em,10px 8px 0 .020em,11px 8px 0 .020em #fff,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em,15px 8px 0 .020em #fff,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em #fff,3px 9px 0 .020em #fff,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em,11px 9px 0 .020em,12px 9px 0 .020em,13px 9px 0 .020em,14px 9px 0 .020em,15px 9px 0 .020em #fff,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em #fff,3px 10px 0 .020em #fff,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em,11px 10px 0 .020em,12px 10px 0 .020em,13px 10px 0 .020em,14px 10px 0 .020em #fff,15px 10px 0 .020em #fff,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em #fff,3px 11px 0 .020em #fff,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em #fff,14px 11px 0 .020em #fff,15px 11px 0 .020em,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em #fff,3px 12px 0 .020em #fff,4px 12px 0 .020em #fff,5px 12px 0 .020em #fff,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em #fff,9px 12px 0 .020em #fff,10px 12px 0 .020em #fff,11px 12px 0 .020em #fff,12px 12px 0 .020em #fff,13px 12px 0 .020em #fff,14px 12px 0 .020em,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em #fff,3px 13px 0 .020em #fff,4px 13px 0 .020em #fff,5px 13px 0 .020em #fff,6px 13px 0 .020em,7px 13px 0 .020em #fff,8px 13px 0 .020em #fff,9px 13px 0 .020em #fff,10px 13px 0 .020em #fff,11px 13px 0 .020em #fff,12px 13px 0 .020em #fff,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em,4px 14px 0 .020em,5px 14px 0 .020em #fff,6px 14px 0 .020em #fff,7px 14px 0 .020em #fff,8px 14px 0 .020em #fff,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em #fff,6px 15px 0 .020em #fff,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.reddit::before{width:1px;height:1px;color:#f40;box-shadow:3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,2px 2px,3px 2px,4px 2px,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px #fff,10px 2px #fff,11px 2px #fff,12px 2px,13px 2px #fff,14px 2px,15px 2px,1px 3px,2px 3px,3px 3px,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px #fff,9px 3px,10px 3px,11px 3px,12px 3px #fff,13px 3px #fff,14px 3px #fff,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px,4px 4px,5px 4px,6px 4px,7px 4px,8px 4px #fff,9px 4px,10px 4px,11px 4px,12px 4px,13px 4px #fff,14px 4px,15px 4px,16px 4px,1px 5px,2px 5px,3px 5px,4px 5px,5px 5px,6px 5px,7px 5px #fff,8px 5px #fff,9px 5px #fff,10px 5px #fff,11px 5px,12px 5px,13px 5px,14px 5px,15px 5px,16px 5px,1px 6px,2px 6px #fff,3px 6px #fff,4px 6px,5px 6px #fff,6px 6px #fff,7px 6px #fff,8px 6px #fff,9px 6px #fff,10px 6px #fff,11px 6px #fff,12px 6px #fff,13px 6px,14px 6px #fff,15px 6px #fff,16px 6px,1px 7px,2px 7px #fff,3px 7px,4px 7px #fff,5px 7px #fff,6px 7px #fff,7px 7px #fff,8px 7px #fff,9px 7px #fff,10px 7px #fff,11px 7px #fff,12px 7px #fff,13px 7px #fff,14px 7px,15px 7px #fff,16px 7px,1px 8px,2px 8px,3px 8px #fff,4px 8px #fff,5px 8px #fff,6px 8px,7px 8px,8px 8px #fff,9px 8px #fff,10px 8px,11px 8px,12px 8px #fff,13px 8px #fff,14px 8px #fff,15px 8px,16px 8px,1px 9px,2px 9px #fff,3px 9px #fff,4px 9px #fff,5px 9px #fff,6px 9px,7px 9px,8px 9px #fff,9px 9px #fff,10px 9px,11px 9px,12px 9px #fff,13px 9px #fff,14px 9px #fff,15px 9px #fff,16px 9px,1px 10px,2px 10px #fff,3px 10px #fff,4px 10px #fff,5px 10px #fff,6px 10px #fff,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px #fff,11px 10px #fff,12px 10px #fff,13px 10px #fff,14px 10px #fff,15px 10px #fff,16px 10px,1px 11px,2px 11px #fff,3px 11px #fff,4px 11px #fff,5px 11px #fff,6px 11px #fff,7px 11px #fff,8px 11px #fff,9px 11px #fff,10px 11px #fff,11px 11px #fff,12px 11px #fff,13px 11px #fff,14px 11px #fff,15px 11px #fff,16px 11px,1px 12px,2px 12px,3px 12px #fff,4px 12px #fff,5px 12px #fff,6px 12px,7px 12px #fff,8px 12px #fff,9px 12px #fff,10px 12px #fff,11px 12px,12px 12px #fff,13px 12px #fff,14px 12px #fff,15px 12px,16px 12px,1px 13px,2px 13px,3px 13px,4px 13px #fff,5px 13px #fff,6px 13px #fff,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px #fff,12px 13px #fff,13px 13px #fff,14px 13px,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px,4px 14px,5px 14px #fff,6px 14px #fff,7px 14px #fff,8px 14px #fff,9px 14px #fff,10px 14px #fff,11px 14px #fff,12px 14px #fff,13px 14px,14px 14px,15px 14px,16px 14px,2px 15px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px #fff,8px 15px #fff,9px 15px #fff,10px 15px #fff,11px 15px,12px 15px,13px 15px,14px 15px,15px 15px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px}@supports (-moz-appearance:meterbar){.nes-icon.reddit::before{box-shadow:3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em #fff,10px 2px 0 .020em #fff,11px 2px 0 .020em #fff,12px 2px 0 .020em,13px 2px 0 .020em #fff,14px 2px 0 .020em,15px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em #fff,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em #fff,13px 3px 0 .020em #fff,14px 3px 0 .020em #fff,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em,4px 4px 0 .020em,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em #fff,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em #fff,14px 4px 0 .020em,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em,3px 5px 0 .020em,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em #fff,8px 5px 0 .020em #fff,9px 5px 0 .020em #fff,10px 5px 0 .020em #fff,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em,15px 5px 0 .020em,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em #fff,3px 6px 0 .020em #fff,4px 6px 0 .020em,5px 6px 0 .020em #fff,6px 6px 0 .020em #fff,7px 6px 0 .020em #fff,8px 6px 0 .020em #fff,9px 6px 0 .020em #fff,10px 6px 0 .020em #fff,11px 6px 0 .020em #fff,12px 6px 0 .020em #fff,13px 6px 0 .020em,14px 6px 0 .020em #fff,15px 6px 0 .020em #fff,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em #fff,3px 7px 0 .020em,4px 7px 0 .020em #fff,5px 7px 0 .020em #fff,6px 7px 0 .020em #fff,7px 7px 0 .020em #fff,8px 7px 0 .020em #fff,9px 7px 0 .020em #fff,10px 7px 0 .020em #fff,11px 7px 0 .020em #fff,12px 7px 0 .020em #fff,13px 7px 0 .020em #fff,14px 7px 0 .020em,15px 7px 0 .020em #fff,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em #fff,4px 8px 0 .020em #fff,5px 8px 0 .020em #fff,6px 8px 0 .020em,7px 8px 0 .020em,8px 8px 0 .020em #fff,9px 8px 0 .020em #fff,10px 8px 0 .020em,11px 8px 0 .020em,12px 8px 0 .020em #fff,13px 8px 0 .020em #fff,14px 8px 0 .020em #fff,15px 8px 0 .020em,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em #fff,3px 9px 0 .020em #fff,4px 9px 0 .020em #fff,5px 9px 0 .020em #fff,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em #fff,9px 9px 0 .020em #fff,10px 9px 0 .020em,11px 9px 0 .020em,12px 9px 0 .020em #fff,13px 9px 0 .020em #fff,14px 9px 0 .020em #fff,15px 9px 0 .020em #fff,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em #fff,3px 10px 0 .020em #fff,4px 10px 0 .020em #fff,5px 10px 0 .020em #fff,6px 10px 0 .020em #fff,7px 10px 0 .020em #fff,8px 10px 0 .020em #fff,9px 10px 0 .020em #fff,10px 10px 0 .020em #fff,11px 10px 0 .020em #fff,12px 10px 0 .020em #fff,13px 10px 0 .020em #fff,14px 10px 0 .020em #fff,15px 10px 0 .020em #fff,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em #fff,3px 11px 0 .020em #fff,4px 11px 0 .020em #fff,5px 11px 0 .020em #fff,6px 11px 0 .020em #fff,7px 11px 0 .020em #fff,8px 11px 0 .020em #fff,9px 11px 0 .020em #fff,10px 11px 0 .020em #fff,11px 11px 0 .020em #fff,12px 11px 0 .020em #fff,13px 11px 0 .020em #fff,14px 11px 0 .020em #fff,15px 11px 0 .020em #fff,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em #fff,4px 12px 0 .020em #fff,5px 12px 0 .020em #fff,6px 12px 0 .020em,7px 12px 0 .020em #fff,8px 12px 0 .020em #fff,9px 12px 0 .020em #fff,10px 12px 0 .020em #fff,11px 12px 0 .020em,12px 12px 0 .020em #fff,13px 12px 0 .020em #fff,14px 12px 0 .020em #fff,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em,4px 13px 0 .020em #fff,5px 13px 0 .020em #fff,6px 13px 0 .020em #fff,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em #fff,12px 13px 0 .020em #fff,13px 13px 0 .020em #fff,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em,4px 14px 0 .020em,5px 14px 0 .020em #fff,6px 14px 0 .020em #fff,7px 14px 0 .020em #fff,8px 14px 0 .020em #fff,9px 14px 0 .020em #fff,10px 14px 0 .020em #fff,11px 14px 0 .020em #fff,12px 14px 0 .020em #fff,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,16px 14px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em #fff,8px 15px 0 .020em #fff,9px 15px 0 .020em #fff,10px 15px 0 .020em #fff,11px 15px 0 .020em,12px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em}}.nes-icon.whatsapp::before{width:1px;height:1px;color:#00ba37;box-shadow:4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,3px 2px,4px 2px,5px 2px,6px 2px #fff,7px 2px #fff,8px 2px #fff,9px 2px #fff,10px 2px #fff,11px 2px #fff,12px 2px #fff,13px 2px,14px 2px,15px 2px,2px 3px,3px 3px,4px 3px,5px 3px #fff,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px #fff,14px 3px,15px 3px,16px 3px,2px 4px,3px 4px,4px 4px #fff,5px 4px,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px #fff,15px 4px,16px 4px,2px 5px,3px 5px,4px 5px #fff,5px 5px,6px 5px #fff,7px 5px #fff,8px 5px,9px 5px,10px 5px,11px 5px,12px 5px,13px 5px,14px 5px #fff,15px 5px,16px 5px,2px 6px,3px 6px #fff,4px 6px,5px 6px,6px 6px #fff,7px 6px #fff,8px 6px,9px 6px,10px 6px,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px #fff,16px 6px,2px 7px,3px 7px #fff,4px 7px,5px 7px,6px 7px #fff,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px,12px 7px,13px 7px,14px 7px,15px 7px #fff,16px 7px,2px 8px,3px 8px #fff,4px 8px,5px 8px,6px 8px,7px 8px #fff,8px 8px #fff,9px 8px,10px 8px,11px 8px,12px 8px,13px 8px,14px 8px,15px 8px #fff,16px 8px,2px 9px,3px 9px #fff,4px 9px,5px 9px,6px 9px,7px 9px,8px 9px #fff,9px 9px #fff,10px 9px,11px 9px,12px 9px,13px 9px,14px 9px,15px 9px #fff,16px 9px,2px 10px,3px 10px #fff,4px 10px,5px 10px,6px 10px,7px 10px,8px 10px,9px 10px #fff,10px 10px,11px 10px #fff,12px 10px #fff,13px 10px,14px 10px,15px 10px #fff,16px 10px,2px 11px,3px 11px,4px 11px #fff,5px 11px,6px 11px,7px 11px,8px 11px,9px 11px,10px 11px #fff,11px 11px #fff,12px 11px #fff,13px 11px,14px 11px #fff,15px 11px,16px 11px,2px 12px,3px 12px,4px 12px #fff,5px 12px,6px 12px,7px 12px,8px 12px,9px 12px,10px 12px,11px 12px,12px 12px,13px 12px,14px 12px #fff,15px 12px,16px 12px,2px 13px,3px 13px #fff,4px 13px,5px 13px #fff,6px 13px,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px,12px 13px,13px 13px #fff,14px 13px,15px 13px,16px 13px,2px 14px,3px 14px #fff,4px 14px #fff,5px 14px,6px 14px #fff,7px 14px #fff,8px 14px #fff,9px 14px #fff,10px 14px #fff,11px 14px #fff,12px 14px #fff,13px 14px,14px 14px,15px 14px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px,12px 15px,13px 15px,14px 15px}@supports (-moz-appearance:meterbar){.nes-icon.whatsapp::before{box-shadow:4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em #fff,7px 2px 0 .020em #fff,8px 2px 0 .020em #fff,9px 2px 0 .020em #fff,10px 2px 0 .020em #fff,11px 2px 0 .020em #fff,12px 2px 0 .020em #fff,13px 2px 0 .020em,14px 2px 0 .020em,15px 2px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em #fff,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em #fff,14px 3px 0 .020em,15px 3px 0 .020em,16px 3px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em,4px 4px 0 .020em #fff,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em,14px 4px 0 .020em #fff,15px 4px 0 .020em,16px 4px 0 .020em,2px 5px 0 .020em,3px 5px 0 .020em,4px 5px 0 .020em #fff,5px 5px 0 .020em,6px 5px 0 .020em #fff,7px 5px 0 .020em #fff,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em #fff,15px 5px 0 .020em,16px 5px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em #fff,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em #fff,7px 6px 0 .020em #fff,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em #fff,16px 6px 0 .020em,2px 7px 0 .020em,3px 7px 0 .020em #fff,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em #fff,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em #fff,16px 7px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em #fff,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em #fff,8px 8px 0 .020em #fff,9px 8px 0 .020em,10px 8px 0 .020em,11px 8px 0 .020em,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em,15px 8px 0 .020em #fff,16px 8px 0 .020em,2px 9px 0 .020em,3px 9px 0 .020em #fff,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em,8px 9px 0 .020em #fff,9px 9px 0 .020em #fff,10px 9px 0 .020em,11px 9px 0 .020em,12px 9px 0 .020em,13px 9px 0 .020em,14px 9px 0 .020em,15px 9px 0 .020em #fff,16px 9px 0 .020em,2px 10px 0 .020em,3px 10px 0 .020em #fff,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em #fff,10px 10px 0 .020em,11px 10px 0 .020em #fff,12px 10px 0 .020em #fff,13px 10px 0 .020em,14px 10px 0 .020em,15px 10px 0 .020em #fff,16px 10px 0 .020em,2px 11px 0 .020em,3px 11px 0 .020em,4px 11px 0 .020em #fff,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em,10px 11px 0 .020em #fff,11px 11px 0 .020em #fff,12px 11px 0 .020em #fff,13px 11px 0 .020em,14px 11px 0 .020em #fff,15px 11px 0 .020em,16px 11px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em,4px 12px 0 .020em #fff,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em,14px 12px 0 .020em #fff,15px 12px 0 .020em,16px 12px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em #fff,4px 13px 0 .020em,5px 13px 0 .020em #fff,6px 13px 0 .020em,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em #fff,14px 13px 0 .020em,15px 13px 0 .020em,16px 13px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em #fff,4px 14px 0 .020em #fff,5px 14px 0 .020em,6px 14px 0 .020em #fff,7px 14px 0 .020em #fff,8px 14px 0 .020em #fff,9px 14px 0 .020em #fff,10px 14px 0 .020em #fff,11px 14px 0 .020em #fff,12px 14px 0 .020em #fff,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em}}.nes-icon.gmail::before{width:1px;height:1px;color:#eeecec;box-shadow:2px 3px #fd2b2b,3px 3px,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px,14px 3px,15px 3px #fd2b2b,1px 4px #fd2b2b,2px 4px #fd2b2b,3px 4px #fd2b2b,4px 4px,5px 4px,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px #fd2b2b,15px 4px #fd2b2b,16px 4px #fd2b2b,1px 5px #fd2b2b,2px 5px #fd2b2b,3px 5px #fd2b2b,4px 5px #fd2b2b,5px 5px,6px 5px,7px 5px,8px 5px,9px 5px,10px 5px,11px 5px,12px 5px,13px 5px #fd2b2b,14px 5px #fd2b2b,15px 5px #fd2b2b,16px 5px #fd2b2b,1px 6px #fd2b2b,2px 6px #fd2b2b,3px 6px,4px 6px #fd2b2b,5px 6px #fd2b2b,6px 6px,7px 6px,8px 6px,9px 6px,10px 6px,11px 6px,12px 6px #fd2b2b,13px 6px #fd2b2b,14px 6px,15px 6px #fd2b2b,16px 6px #fd2b2b,1px 7px #fd2b2b,2px 7px #fd2b2b,3px 7px,4px 7px,5px 7px #fd2b2b,6px 7px #fd2b2b,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px #fd2b2b,12px 7px #fd2b2b,13px 7px,14px 7px,15px 7px #fd2b2b,16px 7px #fd2b2b,1px 8px #fd2b2b,2px 8px #fd2b2b,3px 8px,4px 8px,5px 8px,6px 8px #fd2b2b,7px 8px #fd2b2b,8px 8px,9px 8px,10px 8px #fd2b2b,11px 8px #fd2b2b,12px 8px,13px 8px,14px 8px,15px 8px #fd2b2b,16px 8px #fd2b2b,1px 9px #fd2b2b,2px 9px #fd2b2b,3px 9px,4px 9px,5px 9px,6px 9px,7px 9px #fd2b2b,8px 9px #fd2b2b,9px 9px #fd2b2b,10px 9px #fd2b2b,11px 9px,12px 9px,13px 9px,14px 9px,15px 9px #fd2b2b,16px 9px #fd2b2b,1px 10px #fd2b2b,2px 10px #fd2b2b,3px 10px,4px 10px,5px 10px,6px 10px,7px 10px,8px 10px #fd2b2b,9px 10px #fd2b2b,10px 10px,11px 10px,12px 10px,13px 10px,14px 10px,15px 10px #fd2b2b,16px 10px #fd2b2b,1px 11px #fd2b2b,2px 11px #fd2b2b,3px 11px,4px 11px,5px 11px,6px 11px,7px 11px,8px 11px,9px 11px,10px 11px,11px 11px,12px 11px,13px 11px,14px 11px,15px 11px #fd2b2b,16px 11px #fd2b2b,1px 12px #fd2b2b,2px 12px #fd2b2b,3px 12px,4px 12px,5px 12px,6px 12px,7px 12px,8px 12px,9px 12px,10px 12px,11px 12px,12px 12px,13px 12px,14px 12px,15px 12px #fd2b2b,16px 12px #fd2b2b,1px 13px #fd2b2b,2px 13px #fd2b2b,3px 13px,4px 13px,5px 13px,6px 13px,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px,12px 13px,13px 13px,14px 13px,15px 13px #fd2b2b,16px 13px #fd2b2b,2px 14px #fd2b2b,3px 14px,4px 14px,5px 14px,6px 14px,7px 14px,8px 14px,9px 14px,10px 14px,11px 14px,12px 14px,13px 14px,14px 14px,15px 14px #fd2b2b}@supports (-moz-appearance:meterbar){.nes-icon.gmail::before{box-shadow:2px 3px 0 .020em #fd2b2b,3px 3px 0 .020em,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em,14px 3px 0 .020em,15px 3px 0 .020em #fd2b2b,1px 4px 0 .020em #fd2b2b,2px 4px 0 .020em #fd2b2b,3px 4px 0 .020em #fd2b2b,4px 4px 0 .020em,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em,14px 4px 0 .020em #fd2b2b,15px 4px 0 .020em #fd2b2b,16px 4px 0 .020em #fd2b2b,1px 5px 0 .020em #fd2b2b,2px 5px 0 .020em #fd2b2b,3px 5px 0 .020em #fd2b2b,4px 5px 0 .020em #fd2b2b,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em #fd2b2b,14px 5px 0 .020em #fd2b2b,15px 5px 0 .020em #fd2b2b,16px 5px 0 .020em #fd2b2b,1px 6px 0 .020em #fd2b2b,2px 6px 0 .020em #fd2b2b,3px 6px 0 .020em,4px 6px 0 .020em #fd2b2b,5px 6px 0 .020em #fd2b2b,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em #fd2b2b,13px 6px 0 .020em #fd2b2b,14px 6px 0 .020em,15px 6px 0 .020em #fd2b2b,16px 6px 0 .020em #fd2b2b,1px 7px 0 .020em #fd2b2b,2px 7px 0 .020em #fd2b2b,3px 7px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em #fd2b2b,6px 7px 0 .020em #fd2b2b,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em #fd2b2b,12px 7px 0 .020em #fd2b2b,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em #fd2b2b,16px 7px 0 .020em #fd2b2b,1px 8px 0 .020em #fd2b2b,2px 8px 0 .020em #fd2b2b,3px 8px 0 .020em,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em #fd2b2b,7px 8px 0 .020em #fd2b2b,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em #fd2b2b,11px 8px 0 .020em #fd2b2b,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em,15px 8px 0 .020em #fd2b2b,16px 8px 0 .020em #fd2b2b,1px 9px 0 .020em #fd2b2b,2px 9px 0 .020em #fd2b2b,3px 9px 0 .020em,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em #fd2b2b,8px 9px 0 .020em #fd2b2b,9px 9px 0 .020em #fd2b2b,10px 9px 0 .020em #fd2b2b,11px 9px 0 .020em,12px 9px 0 .020em,13px 9px 0 .020em,14px 9px 0 .020em,15px 9px 0 .020em #fd2b2b,16px 9px 0 .020em #fd2b2b,1px 10px 0 .020em #fd2b2b,2px 10px 0 .020em #fd2b2b,3px 10px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em,8px 10px 0 .020em #fd2b2b,9px 10px 0 .020em #fd2b2b,10px 10px 0 .020em,11px 10px 0 .020em,12px 10px 0 .020em,13px 10px 0 .020em,14px 10px 0 .020em,15px 10px 0 .020em #fd2b2b,16px 10px 0 .020em #fd2b2b,1px 11px 0 .020em #fd2b2b,2px 11px 0 .020em #fd2b2b,3px 11px 0 .020em,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em,8px 11px 0 .020em,9px 11px 0 .020em,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em,14px 11px 0 .020em,15px 11px 0 .020em #fd2b2b,16px 11px 0 .020em #fd2b2b,1px 12px 0 .020em #fd2b2b,2px 12px 0 .020em #fd2b2b,3px 12px 0 .020em,4px 12px 0 .020em,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em,14px 12px 0 .020em,15px 12px 0 .020em #fd2b2b,16px 12px 0 .020em #fd2b2b,1px 13px 0 .020em #fd2b2b,2px 13px 0 .020em #fd2b2b,3px 13px 0 .020em,4px 13px 0 .020em,5px 13px 0 .020em,6px 13px 0 .020em,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em #fd2b2b,16px 13px 0 .020em #fd2b2b,2px 14px 0 .020em #fd2b2b,3px 14px 0 .020em,4px 14px 0 .020em,5px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,8px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em,15px 14px 0 .020em #fd2b2b}}.nes-icon.linkedin::before{width:1px;height:1px;color:#2577b9;box-shadow:2px 1px,3px 1px,4px 1px,5px 1px,6px 1px,7px 1px,8px 1px,9px 1px,10px 1px,11px 1px,12px 1px,13px 1px,14px 1px,15px 1px,1px 2px,2px 2px,3px 2px,4px 2px,5px 2px,6px 2px,7px 2px,8px 2px,9px 2px,10px 2px,11px 2px,12px 2px,13px 2px,14px 2px,15px 2px,16px 2px,1px 3px,2px 3px,3px 3px #fff,4px 3px #fff,5px 3px #fff,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px,14px 3px,15px 3px,16px 3px,1px 4px,2px 4px,3px 4px #fff,4px 4px #fff,5px 4px #fff,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px,13px 4px,14px 4px,15px 4px,16px 4px,1px 5px,2px 5px,3px 5px #fff,4px 5px #fff,5px 5px #fff,6px 5px,7px 5px,8px 5px,9px 5px,10px 5px,11px 5px,12px 5px,13px 5px,14px 5px,15px 5px,16px 5px,1px 6px,2px 6px,3px 6px,4px 6px,5px 6px,6px 6px,7px 6px,8px 6px,9px 6px,10px 6px,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px,16px 6px,1px 7px,2px 7px,3px 7px #fff,4px 7px #fff,5px 7px #fff,6px 7px,7px 7px #fff,8px 7px #fff,9px 7px #fff,10px 7px,11px 7px #fff,12px 7px #fff,13px 7px #fff,14px 7px,15px 7px,16px 7px,1px 8px,2px 8px,3px 8px #fff,4px 8px #fff,5px 8px #fff,6px 8px,7px 8px #fff,8px 8px #fff,9px 8px #fff,10px 8px #fff,11px 8px #fff,12px 8px #fff,13px 8px #fff,14px 8px #fff,15px 8px,16px 8px,1px 9px,2px 9px,3px 9px #fff,4px 9px #fff,5px 9px #fff,6px 9px,7px 9px #fff,8px 9px #fff,9px 9px #fff,10px 9px #fff,11px 9px #fff,12px 9px #fff,13px 9px #fff,14px 9px #fff,15px 9px,16px 9px,1px 10px,2px 10px,3px 10px #fff,4px 10px #fff,5px 10px #fff,6px 10px,7px 10px #fff,8px 10px #fff,9px 10px #fff,10px 10px #fff,11px 10px,12px 10px #fff,13px 10px #fff,14px 10px #fff,15px 10px,16px 10px,1px 11px,2px 11px,3px 11px #fff,4px 11px #fff,5px 11px #fff,6px 11px,7px 11px #fff,8px 11px #fff,9px 11px #fff,10px 11px,11px 11px,12px 11px #fff,13px 11px #fff,14px 11px #fff,15px 11px,16px 11px,1px 12px,2px 12px,3px 12px #fff,4px 12px #fff,5px 12px #fff,6px 12px,7px 12px #fff,8px 12px #fff,9px 12px #fff,10px 12px,11px 12px,12px 12px #fff,13px 12px #fff,14px 12px #fff,15px 12px,16px 12px,1px 13px,2px 13px,3px 13px #fff,4px 13px #fff,5px 13px #fff,6px 13px,7px 13px #fff,8px 13px #fff,9px 13px #fff,10px 13px,11px 13px,12px 13px #fff,13px 13px #fff,14px 13px #fff,15px 13px,16px 13px,1px 14px,2px 14px,3px 14px #fff,4px 14px #fff,5px 14px #fff,6px 14px,7px 14px #fff,8px 14px #fff,9px 14px #fff,10px 14px,11px 14px,12px 14px #fff,13px 14px #fff,14px 14px #fff,15px 14px,16px 14px,1px 15px,2px 15px,3px 15px,4px 15px,5px 15px,6px 15px,7px 15px,8px 15px,9px 15px,10px 15px,11px 15px,12px 15px,13px 15px,14px 15px,15px 15px,16px 15px,2px 16px,3px 16px,4px 16px,5px 16px,6px 16px,7px 16px,8px 16px,9px 16px,10px 16px,11px 16px,12px 16px,13px 16px,14px 16px,15px 16px}@supports (-moz-appearance:meterbar){.nes-icon.linkedin::before{box-shadow:2px 1px 0 .020em,3px 1px 0 .020em,4px 1px 0 .020em,5px 1px 0 .020em,6px 1px 0 .020em,7px 1px 0 .020em,8px 1px 0 .020em,9px 1px 0 .020em,10px 1px 0 .020em,11px 1px 0 .020em,12px 1px 0 .020em,13px 1px 0 .020em,14px 1px 0 .020em,15px 1px 0 .020em,1px 2px 0 .020em,2px 2px 0 .020em,3px 2px 0 .020em,4px 2px 0 .020em,5px 2px 0 .020em,6px 2px 0 .020em,7px 2px 0 .020em,8px 2px 0 .020em,9px 2px 0 .020em,10px 2px 0 .020em,11px 2px 0 .020em,12px 2px 0 .020em,13px 2px 0 .020em,14px 2px 0 .020em,15px 2px 0 .020em,16px 2px 0 .020em,1px 3px 0 .020em,2px 3px 0 .020em,3px 3px 0 .020em #fff,4px 3px 0 .020em #fff,5px 3px 0 .020em #fff,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em,14px 3px 0 .020em,15px 3px 0 .020em,16px 3px 0 .020em,1px 4px 0 .020em,2px 4px 0 .020em,3px 4px 0 .020em #fff,4px 4px 0 .020em #fff,5px 4px 0 .020em #fff,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em,14px 4px 0 .020em,15px 4px 0 .020em,16px 4px 0 .020em,1px 5px 0 .020em,2px 5px 0 .020em,3px 5px 0 .020em #fff,4px 5px 0 .020em #fff,5px 5px 0 .020em #fff,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em,14px 5px 0 .020em,15px 5px 0 .020em,16px 5px 0 .020em,1px 6px 0 .020em,2px 6px 0 .020em,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em,16px 6px 0 .020em,1px 7px 0 .020em,2px 7px 0 .020em,3px 7px 0 .020em #fff,4px 7px 0 .020em #fff,5px 7px 0 .020em #fff,6px 7px 0 .020em,7px 7px 0 .020em #fff,8px 7px 0 .020em #fff,9px 7px 0 .020em #fff,10px 7px 0 .020em,11px 7px 0 .020em #fff,12px 7px 0 .020em #fff,13px 7px 0 .020em #fff,14px 7px 0 .020em,15px 7px 0 .020em,16px 7px 0 .020em,1px 8px 0 .020em,2px 8px 0 .020em,3px 8px 0 .020em #fff,4px 8px 0 .020em #fff,5px 8px 0 .020em #fff,6px 8px 0 .020em,7px 8px 0 .020em #fff,8px 8px 0 .020em #fff,9px 8px 0 .020em #fff,10px 8px 0 .020em #fff,11px 8px 0 .020em #fff,12px 8px 0 .020em #fff,13px 8px 0 .020em #fff,14px 8px 0 .020em #fff,15px 8px 0 .020em,16px 8px 0 .020em,1px 9px 0 .020em,2px 9px 0 .020em,3px 9px 0 .020em #fff,4px 9px 0 .020em #fff,5px 9px 0 .020em #fff,6px 9px 0 .020em,7px 9px 0 .020em #fff,8px 9px 0 .020em #fff,9px 9px 0 .020em #fff,10px 9px 0 .020em #fff,11px 9px 0 .020em #fff,12px 9px 0 .020em #fff,13px 9px 0 .020em #fff,14px 9px 0 .020em #fff,15px 9px 0 .020em,16px 9px 0 .020em,1px 10px 0 .020em,2px 10px 0 .020em,3px 10px 0 .020em #fff,4px 10px 0 .020em #fff,5px 10px 0 .020em #fff,6px 10px 0 .020em,7px 10px 0 .020em #fff,8px 10px 0 .020em #fff,9px 10px 0 .020em #fff,10px 10px 0 .020em #fff,11px 10px 0 .020em,12px 10px 0 .020em #fff,13px 10px 0 .020em #fff,14px 10px 0 .020em #fff,15px 10px 0 .020em,16px 10px 0 .020em,1px 11px 0 .020em,2px 11px 0 .020em,3px 11px 0 .020em #fff,4px 11px 0 .020em #fff,5px 11px 0 .020em #fff,6px 11px 0 .020em,7px 11px 0 .020em #fff,8px 11px 0 .020em #fff,9px 11px 0 .020em #fff,10px 11px 0 .020em,11px 11px 0 .020em,12px 11px 0 .020em #fff,13px 11px 0 .020em #fff,14px 11px 0 .020em #fff,15px 11px 0 .020em,16px 11px 0 .020em,1px 12px 0 .020em,2px 12px 0 .020em,3px 12px 0 .020em #fff,4px 12px 0 .020em #fff,5px 12px 0 .020em #fff,6px 12px 0 .020em,7px 12px 0 .020em #fff,8px 12px 0 .020em #fff,9px 12px 0 .020em #fff,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em #fff,13px 12px 0 .020em #fff,14px 12px 0 .020em #fff,15px 12px 0 .020em,16px 12px 0 .020em,1px 13px 0 .020em,2px 13px 0 .020em,3px 13px 0 .020em #fff,4px 13px 0 .020em #fff,5px 13px 0 .020em #fff,6px 13px 0 .020em,7px 13px 0 .020em #fff,8px 13px 0 .020em #fff,9px 13px 0 .020em #fff,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em #fff,13px 13px 0 .020em #fff,14px 13px 0 .020em #fff,15px 13px 0 .020em,16px 13px 0 .020em,1px 14px 0 .020em,2px 14px 0 .020em,3px 14px 0 .020em #fff,4px 14px 0 .020em #fff,5px 14px 0 .020em #fff,6px 14px 0 .020em,7px 14px 0 .020em #fff,8px 14px 0 .020em #fff,9px 14px 0 .020em #fff,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em #fff,13px 14px 0 .020em #fff,14px 14px 0 .020em #fff,15px 14px 0 .020em,16px 14px 0 .020em,1px 15px 0 .020em,2px 15px 0 .020em,3px 15px 0 .020em,4px 15px 0 .020em,5px 15px 0 .020em,6px 15px 0 .020em,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em,11px 15px 0 .020em,12px 15px 0 .020em,13px 15px 0 .020em,14px 15px 0 .020em,15px 15px 0 .020em,16px 15px 0 .020em,2px 16px 0 .020em,3px 16px 0 .020em,4px 16px 0 .020em,5px 16px 0 .020em,6px 16px 0 .020em,7px 16px 0 .020em,8px 16px 0 .020em,9px 16px 0 .020em,10px 16px 0 .020em,11px 16px 0 .020em,12px 16px 0 .020em,13px 16px 0 .020em,14px 16px 0 .020em,15px 16px 0 .020em}}.nes-icon.instagram::before{width:1px;height:1px;color:#fff;box-shadow:3px 1px #8005c8,4px 1px #8005c8,5px 1px #8005c8,6px 1px #8005c8,7px 1px #8005c8,8px 1px #8005c8,9px 1px #8005c8,10px 1px #8005c8,11px 1px #8005c8,12px 1px #8005c8,13px 1px #8005c8,14px 1px #8005c8,2px 2px #8005c8,3px 2px #8005c8,4px 2px #8005c8,5px 2px #8005c8,6px 2px #8005c8,7px 2px #8005c8,8px 2px #8005c8,9px 2px #8005c8,10px 2px #8005c8,11px 2px #8005c8,12px 2px #8005c8,13px 2px #8005c8,14px 2px #8005c8,15px 2px #8005c8,1px 3px #8005c8,2px 3px #8005c8,3px 3px #8005c8,4px 3px,5px 3px,6px 3px,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px,13px 3px,14px 3px #8005c8,15px 3px #8005c8,16px 3px #8005c8,1px 4px #8005c8,2px 4px #8005c8,3px 4px,4px 4px,5px 4px,6px 4px,7px 4px,8px 4px,9px 4px,10px 4px,11px 4px,12px 4px #8005c8,13px 4px #8005c8,14px 4px,15px 4px #8005c8,16px 4px #8005c8,1px 5px #8005c8,2px 5px #8005c8,3px 5px,4px 5px,5px 5px,6px 5px,7px 5px,8px 5px,9px 5px,10px 5px,11px 5px,12px 5px #8005c8,13px 5px #8005c8,14px 5px,15px 5px #8005c8,16px 5px #8005c8,1px 6px #8005c8,2px 6px #8005c8,3px 6px,4px 6px,5px 6px,6px 6px,7px 6px #8005c8,8px 6px #8005c8,9px 6px #8005c8,10px 6px #8005c8,11px 6px,12px 6px,13px 6px,14px 6px,15px 6px #8005c8,16px 6px #8005c8,1px 7px #d40075,2px 7px #8005c8,3px 7px,4px 7px,5px 7px,6px 7px #8005c8,7px 7px,8px 7px,9px 7px,10px 7px,11px 7px #8005c8,12px 7px,13px 7px,14px 7px,15px 7px #8005c8,16px 7px #d40075,1px 8px #d40075,2px 8px #d40075,3px 8px,4px 8px,5px 8px,6px 8px #8005c8,7px 8px,8px 8px,9px 8px,10px 8px,11px 8px #8005c8,12px 8px,13px 8px,14px 8px,15px 8px #d40075,16px 8px #d40075,1px 9px #d40075,2px 9px #d40075,3px 9px,4px 9px,5px 9px,6px 9px #d40075,7px 9px,8px 9px,9px 9px,10px 9px,11px 9px #d40075,12px 9px,13px 9px,14px 9px,15px 9px #d40075,16px 9px #d40075,1px 10px #d40075,2px 10px #d40075,3px 10px,4px 10px,5px 10px,6px 10px #d40075,7px 10px,8px 10px,9px 10px,10px 10px,11px 10px #d40075,12px 10px,13px 10px,14px 10px,15px 10px #d40075,16px 10px #d40075,1px 11px #e98c25,2px 11px #e98c25,3px 11px,4px 11px,5px 11px,6px 11px,7px 11px #d40075,8px 11px #d40075,9px 11px #d40075,10px 11px #d40075,11px 11px,12px 11px,13px 11px,14px 11px,15px 11px #d40075,16px 11px #d40075,1px 12px #e98c25,2px 12px #e98c25,3px 12px,4px 12px,5px 12px,6px 12px,7px 12px,8px 12px,9px 12px,10px 12px,11px 12px,12px 12px,13px 12px,14px 12px,15px 12px #d40075,16px 12px #d40075,1px 13px #e98c25,2px 13px #e98c25,3px 13px,4px 13px,5px 13px,6px 13px,7px 13px,8px 13px,9px 13px,10px 13px,11px 13px,12px 13px,13px 13px,14px 13px,15px 13px #d84646,16px 13px #d84646,1px 14px #e98c25,2px 14px #e98c25,3px 14px #e98c25,4px 14px,5px 14px,6px 14px,7px 14px,8px 14px,9px 14px,10px 14px,11px 14px,12px 14px,13px 14px,14px 14px #d84646,15px 14px #d84646,16px 14px #d84646,2px 15px #e98c25,3px 15px #e98c25,4px 15px #e98c25,5px 15px #e98c25,6px 15px #e98c25,7px 15px #e98c25,8px 15px #e98c25,9px 15px #e98c25,10px 15px #d84646,11px 15px #d84646,12px 15px #d84646,13px 15px #d84646,14px 15px #d84646,15px 15px #d84646,3px 16px #e98c25,4px 16px #e98c25,5px 16px #e98c25,6px 16px #e98c25,7px 16px #e98c25,8px 16px #e98c25,9px 16px #d84646,10px 16px #d84646,11px 16px #d84646,12px 16px #d84646,13px 16px #d84646,14px 16px #d84646}@supports (-moz-appearance:meterbar){.nes-icon.instagram::before{box-shadow:3px 1px 0 .020em #8005c8,4px 1px 0 .020em #8005c8,5px 1px 0 .020em #8005c8,6px 1px 0 .020em #8005c8,7px 1px 0 .020em #8005c8,8px 1px 0 .020em #8005c8,9px 1px 0 .020em #8005c8,10px 1px 0 .020em #8005c8,11px 1px 0 .020em #8005c8,12px 1px 0 .020em #8005c8,13px 1px 0 .020em #8005c8,14px 1px 0 .020em #8005c8,2px 2px 0 .020em #8005c8,3px 2px 0 .020em #8005c8,4px 2px 0 .020em #8005c8,5px 2px 0 .020em #8005c8,6px 2px 0 .020em #8005c8,7px 2px 0 .020em #8005c8,8px 2px 0 .020em #8005c8,9px 2px 0 .020em #8005c8,10px 2px 0 .020em #8005c8,11px 2px 0 .020em #8005c8,12px 2px 0 .020em #8005c8,13px 2px 0 .020em #8005c8,14px 2px 0 .020em #8005c8,15px 2px 0 .020em #8005c8,1px 3px 0 .020em #8005c8,2px 3px 0 .020em #8005c8,3px 3px 0 .020em #8005c8,4px 3px 0 .020em,5px 3px 0 .020em,6px 3px 0 .020em,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em,13px 3px 0 .020em,14px 3px 0 .020em #8005c8,15px 3px 0 .020em #8005c8,16px 3px 0 .020em #8005c8,1px 4px 0 .020em #8005c8,2px 4px 0 .020em #8005c8,3px 4px 0 .020em,4px 4px 0 .020em,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em,8px 4px 0 .020em,9px 4px 0 .020em,10px 4px 0 .020em,11px 4px 0 .020em,12px 4px 0 .020em #8005c8,13px 4px 0 .020em #8005c8,14px 4px 0 .020em,15px 4px 0 .020em #8005c8,16px 4px 0 .020em #8005c8,1px 5px 0 .020em #8005c8,2px 5px 0 .020em #8005c8,3px 5px 0 .020em,4px 5px 0 .020em,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em,11px 5px 0 .020em,12px 5px 0 .020em #8005c8,13px 5px 0 .020em #8005c8,14px 5px 0 .020em,15px 5px 0 .020em #8005c8,16px 5px 0 .020em #8005c8,1px 6px 0 .020em #8005c8,2px 6px 0 .020em #8005c8,3px 6px 0 .020em,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em #8005c8,8px 6px 0 .020em #8005c8,9px 6px 0 .020em #8005c8,10px 6px 0 .020em #8005c8,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em,15px 6px 0 .020em #8005c8,16px 6px 0 .020em #8005c8,1px 7px 0 .020em #d40075,2px 7px 0 .020em #8005c8,3px 7px 0 .020em,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em #8005c8,7px 7px 0 .020em,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em,11px 7px 0 .020em #8005c8,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em,15px 7px 0 .020em #8005c8,16px 7px 0 .020em #d40075,1px 8px 0 .020em #d40075,2px 8px 0 .020em #d40075,3px 8px 0 .020em,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em #8005c8,7px 8px 0 .020em,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em,11px 8px 0 .020em #8005c8,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em,15px 8px 0 .020em #d40075,16px 8px 0 .020em #d40075,1px 9px 0 .020em #d40075,2px 9px 0 .020em #d40075,3px 9px 0 .020em,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em #d40075,7px 9px 0 .020em,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em,11px 9px 0 .020em #d40075,12px 9px 0 .020em,13px 9px 0 .020em,14px 9px 0 .020em,15px 9px 0 .020em #d40075,16px 9px 0 .020em #d40075,1px 10px 0 .020em #d40075,2px 10px 0 .020em #d40075,3px 10px 0 .020em,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em #d40075,7px 10px 0 .020em,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em,11px 10px 0 .020em #d40075,12px 10px 0 .020em,13px 10px 0 .020em,14px 10px 0 .020em,15px 10px 0 .020em #d40075,16px 10px 0 .020em #d40075,1px 11px 0 .020em #e98c25,2px 11px 0 .020em #e98c25,3px 11px 0 .020em,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em #d40075,8px 11px 0 .020em #d40075,9px 11px 0 .020em #d40075,10px 11px 0 .020em #d40075,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em,14px 11px 0 .020em,15px 11px 0 .020em #d40075,16px 11px 0 .020em #d40075,1px 12px 0 .020em #e98c25,2px 12px 0 .020em #e98c25,3px 12px 0 .020em,4px 12px 0 .020em,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em,14px 12px 0 .020em,15px 12px 0 .020em #d40075,16px 12px 0 .020em #d40075,1px 13px 0 .020em #e98c25,2px 13px 0 .020em #e98c25,3px 13px 0 .020em,4px 13px 0 .020em,5px 13px 0 .020em,6px 13px 0 .020em,7px 13px 0 .020em,8px 13px 0 .020em,9px 13px 0 .020em,10px 13px 0 .020em,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em,14px 13px 0 .020em,15px 13px 0 .020em #d84646,16px 13px 0 .020em #d84646,1px 14px 0 .020em #e98c25,2px 14px 0 .020em #e98c25,3px 14px 0 .020em #e98c25,4px 14px 0 .020em,5px 14px 0 .020em,6px 14px 0 .020em,7px 14px 0 .020em,8px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em,13px 14px 0 .020em,14px 14px 0 .020em #d84646,15px 14px 0 .020em #d84646,16px 14px 0 .020em #d84646,2px 15px 0 .020em #e98c25,3px 15px 0 .020em #e98c25,4px 15px 0 .020em #e98c25,5px 15px 0 .020em #e98c25,6px 15px 0 .020em #e98c25,7px 15px 0 .020em #e98c25,8px 15px 0 .020em #e98c25,9px 15px 0 .020em #e98c25,10px 15px 0 .020em #d84646,11px 15px 0 .020em #d84646,12px 15px 0 .020em #d84646,13px 15px 0 .020em #d84646,14px 15px 0 .020em #d84646,15px 15px 0 .020em #d84646,3px 16px 0 .020em #e98c25,4px 16px 0 .020em #e98c25,5px 16px 0 .020em #e98c25,6px 16px 0 .020em #e98c25,7px 16px 0 .020em #e98c25,8px 16px 0 .020em #e98c25,9px 16px 0 .020em #d84646,10px 16px 0 .020em #d84646,11px 16px 0 .020em #d84646,12px 16px 0 .020em #d84646,13px 16px 0 .020em #d84646,14px 16px 0 .020em #d84646}}.nes-icon.coin::before{width:1px;height:1px;color:#ffc107;box-shadow:6px 1px #060606,7px 1px #060606,8px 1px #060606,9px 1px #060606,10px 1px #060606,11px 1px #060606,4px 2px #060606,5px 2px #060606,6px 2px #060606,7px 2px #fff,8px 2px #fff,9px 2px #fff,10px 2px #060606,11px 2px #060606,12px 2px #060606,13px 2px #060606,3px 3px #060606,4px 3px #060606,5px 3px #fff,6px 3px #fff,7px 3px,8px 3px,9px 3px,10px 3px,11px 3px,12px 3px #060606,13px 3px #060606,3px 4px #060606,4px 4px #fff,5px 4px,6px 4px,7px 4px #fff,8px 4px #fff,9px 4px #fff,10px 4px #060606,11px 4px,12px 4px,13px 4px #060606,14px 4px #060606,2px 5px #060606,3px 5px #060606,4px 5px #fff,5px 5px,6px 5px,7px 5px #fff,8px 5px,9px 5px,10px 5px #060606,11px 5px,12px 5px,13px 5px #060606,14px 5px #060606,2px 6px #060606,3px 6px #fff,4px 6px,5px 6px,6px 6px,7px 6px #fff,8px 6px,9px 6px,10px 6px #060606,11px 6px,12px 6px,13px 6px,14px 6px #060606,15px 6px #060606,2px 7px #060606,3px 7px #fff,4px 7px,5px 7px,6px 7px,7px 7px #fff,8px 7px,9px 7px,10px 7px #060606,11px 7px,12px 7px,13px 7px,14px 7px #060606,15px 7px #060606,2px 8px #060606,3px 8px #fff,4px 8px,5px 8px,6px 8px,7px 8px #fff,8px 8px,9px 8px,10px 8px #060606,11px 8px,12px 8px,13px 8px,14px 8px #060606,15px 8px #060606,2px 9px #060606,3px 9px #fff,4px 9px,5px 9px,6px 9px,7px 9px #fff,8px 9px,9px 9px,10px 9px #060606,11px 9px,12px 9px,13px 9px,14px 9px #060606,15px 9px #060606,2px 10px #060606,3px 10px #fff,4px 10px,5px 10px,6px 10px,7px 10px #fff,8px 10px,9px 10px,10px 10px #060606,11px 10px,12px 10px,13px 10px,14px 10px #060606,15px 10px #060606,2px 11px #060606,3px 11px #fff,4px 11px,5px 11px,6px 11px,7px 11px #fff,8px 11px,9px 11px,10px 11px #060606,11px 11px,12px 11px,13px 11px,14px 11px #060606,15px 11px #060606,2px 12px #060606,3px 12px #060606,4px 12px #fff,5px 12px,6px 12px,7px 12px #fff,8px 12px,9px 12px,10px 12px #060606,11px 12px,12px 12px,13px 12px #060606,14px 12px #060606,3px 13px #060606,4px 13px #fff,5px 13px,6px 13px,7px 13px #fff,8px 13px #060606,9px 13px #060606,10px 13px #060606,11px 13px,12px 13px,13px 13px #060606,14px 13px #060606,3px 14px #060606,4px 14px #060606,5px 14px #fff,6px 14px,7px 14px,8px 14px,9px 14px,10px 14px,11px 14px,12px 14px #060606,13px 14px #060606,4px 15px #060606,5px 15px #060606,6px 15px #060606,7px 15px,8px 15px,9px 15px,10px 15px #060606,11px 15px #060606,12px 15px #060606,13px 15px #060606,6px 16px #060606,7px 16px #060606,8px 16px #060606,9px 16px #060606,10px 16px #060606,11px 16px #060606}@supports (-moz-appearance:meterbar){.nes-icon.coin::before{box-shadow:6px 1px 0 .020em #060606,7px 1px 0 .020em #060606,8px 1px 0 .020em #060606,9px 1px 0 .020em #060606,10px 1px 0 .020em #060606,11px 1px 0 .020em #060606,4px 2px 0 .020em #060606,5px 2px 0 .020em #060606,6px 2px 0 .020em #060606,7px 2px 0 .020em #fff,8px 2px 0 .020em #fff,9px 2px 0 .020em #fff,10px 2px 0 .020em #060606,11px 2px 0 .020em #060606,12px 2px 0 .020em #060606,13px 2px 0 .020em #060606,3px 3px 0 .020em #060606,4px 3px 0 .020em #060606,5px 3px 0 .020em #fff,6px 3px 0 .020em #fff,7px 3px 0 .020em,8px 3px 0 .020em,9px 3px 0 .020em,10px 3px 0 .020em,11px 3px 0 .020em,12px 3px 0 .020em #060606,13px 3px 0 .020em #060606,3px 4px 0 .020em #060606,4px 4px 0 .020em #fff,5px 4px 0 .020em,6px 4px 0 .020em,7px 4px 0 .020em #fff,8px 4px 0 .020em #fff,9px 4px 0 .020em #fff,10px 4px 0 .020em #060606,11px 4px 0 .020em,12px 4px 0 .020em,13px 4px 0 .020em #060606,14px 4px 0 .020em #060606,2px 5px 0 .020em #060606,3px 5px 0 .020em #060606,4px 5px 0 .020em #fff,5px 5px 0 .020em,6px 5px 0 .020em,7px 5px 0 .020em #fff,8px 5px 0 .020em,9px 5px 0 .020em,10px 5px 0 .020em #060606,11px 5px 0 .020em,12px 5px 0 .020em,13px 5px 0 .020em #060606,14px 5px 0 .020em #060606,2px 6px 0 .020em #060606,3px 6px 0 .020em #fff,4px 6px 0 .020em,5px 6px 0 .020em,6px 6px 0 .020em,7px 6px 0 .020em #fff,8px 6px 0 .020em,9px 6px 0 .020em,10px 6px 0 .020em #060606,11px 6px 0 .020em,12px 6px 0 .020em,13px 6px 0 .020em,14px 6px 0 .020em #060606,15px 6px 0 .020em #060606,2px 7px 0 .020em #060606,3px 7px 0 .020em #fff,4px 7px 0 .020em,5px 7px 0 .020em,6px 7px 0 .020em,7px 7px 0 .020em #fff,8px 7px 0 .020em,9px 7px 0 .020em,10px 7px 0 .020em #060606,11px 7px 0 .020em,12px 7px 0 .020em,13px 7px 0 .020em,14px 7px 0 .020em #060606,15px 7px 0 .020em #060606,2px 8px 0 .020em #060606,3px 8px 0 .020em #fff,4px 8px 0 .020em,5px 8px 0 .020em,6px 8px 0 .020em,7px 8px 0 .020em #fff,8px 8px 0 .020em,9px 8px 0 .020em,10px 8px 0 .020em #060606,11px 8px 0 .020em,12px 8px 0 .020em,13px 8px 0 .020em,14px 8px 0 .020em #060606,15px 8px 0 .020em #060606,2px 9px 0 .020em #060606,3px 9px 0 .020em #fff,4px 9px 0 .020em,5px 9px 0 .020em,6px 9px 0 .020em,7px 9px 0 .020em #fff,8px 9px 0 .020em,9px 9px 0 .020em,10px 9px 0 .020em #060606,11px 9px 0 .020em,12px 9px 0 .020em,13px 9px 0 .020em,14px 9px 0 .020em #060606,15px 9px 0 .020em #060606,2px 10px 0 .020em #060606,3px 10px 0 .020em #fff,4px 10px 0 .020em,5px 10px 0 .020em,6px 10px 0 .020em,7px 10px 0 .020em #fff,8px 10px 0 .020em,9px 10px 0 .020em,10px 10px 0 .020em #060606,11px 10px 0 .020em,12px 10px 0 .020em,13px 10px 0 .020em,14px 10px 0 .020em #060606,15px 10px 0 .020em #060606,2px 11px 0 .020em #060606,3px 11px 0 .020em #fff,4px 11px 0 .020em,5px 11px 0 .020em,6px 11px 0 .020em,7px 11px 0 .020em #fff,8px 11px 0 .020em,9px 11px 0 .020em,10px 11px 0 .020em #060606,11px 11px 0 .020em,12px 11px 0 .020em,13px 11px 0 .020em,14px 11px 0 .020em #060606,15px 11px 0 .020em #060606,2px 12px 0 .020em #060606,3px 12px 0 .020em #060606,4px 12px 0 .020em #fff,5px 12px 0 .020em,6px 12px 0 .020em,7px 12px 0 .020em #fff,8px 12px 0 .020em,9px 12px 0 .020em,10px 12px 0 .020em #060606,11px 12px 0 .020em,12px 12px 0 .020em,13px 12px 0 .020em #060606,14px 12px 0 .020em #060606,3px 13px 0 .020em #060606,4px 13px 0 .020em #fff,5px 13px 0 .020em,6px 13px 0 .020em,7px 13px 0 .020em #fff,8px 13px 0 .020em #060606,9px 13px 0 .020em #060606,10px 13px 0 .020em #060606,11px 13px 0 .020em,12px 13px 0 .020em,13px 13px 0 .020em #060606,14px 13px 0 .020em #060606,3px 14px 0 .020em #060606,4px 14px 0 .020em #060606,5px 14px 0 .020em #fff,6px 14px 0 .020em,7px 14px 0 .020em,8px 14px 0 .020em,9px 14px 0 .020em,10px 14px 0 .020em,11px 14px 0 .020em,12px 14px 0 .020em #060606,13px 14px 0 .020em #060606,4px 15px 0 .020em #060606,5px 15px 0 .020em #060606,6px 15px 0 .020em #060606,7px 15px 0 .020em,8px 15px 0 .020em,9px 15px 0 .020em,10px 15px 0 .020em #060606,11px 15px 0 .020em #060606,12px 15px 0 .020em #060606,13px 15px 0 .020em #060606,6px 16px 0 .020em #060606,7px 16px 0 .020em #060606,8px 16px 0 .020em #060606,9px 16px 0 .020em #060606,10px 16px 0 .020em #060606,11px 16px 0 .020em #060606}}.nes-logo{position:relative;display:inline-block;width:60px;height:40px}.nes-logo::before{position:absolute;top:-4px;left:-4px;content:"";background:0 0;width:4px;height:4px;color:#3e3634;box-shadow:28px 4px,28px 8px,32px 12px,4px 16px #c3c3c3,8px 16px #c3c3c3,12px 16px #c3c3c3,16px 16px #c3c3c3,20px 16px #c3c3c3,24px 16px #c3c3c3,28px 16px #c3c3c3,32px 16px #c3c3c3,36px 16px #c3c3c3,40px 16px #c3c3c3,44px 16px #c3c3c3,48px 16px #c3c3c3,52px 16px #c3c3c3,56px 16px #c3c3c3,60px 16px #c3c3c3,4px 20px #c3c3c3,8px 20px,12px 20px,16px 20px,20px 20px,24px 20px,28px 20px,32px 20px,36px 20px,40px 20px,44px 20px,48px 20px,52px 20px,56px 20px,60px 20px #c3c3c3,4px 24px #c3c3c3,8px 24px,12px 24px,16px 24px #c3c3c3,20px 24px,24px 24px,28px 24px #787973,32px 24px #787973,36px 24px #787973,40px 24px,44px 24px,48px 24px,52px 24px,56px 24px,60px 24px #c3c3c3,4px 28px #c3c3c3,8px 28px,12px 28px #c3c3c3,16px 28px #c3c3c3,20px 28px #c3c3c3,24px 28px,28px 28px,32px 28px,36px 28px,40px 28px,44px 28px,48px 28px,52px 28px,56px 28px,60px 28px #c3c3c3,4px 32px #c3c3c3,8px 32px,12px 32px,16px 32px #c3c3c3,20px 32px,24px 32px,28px 32px #787973,32px 32px #787973,36px 32px #787973,40px 32px,44px 32px #bf1710,48px 32px,52px 32px #bf1710,56px 32px,60px 32px #c3c3c3,4px 36px #c3c3c3,8px 36px,12px 36px,16px 36px,20px 36px,24px 36px,28px 36px,32px 36px,36px 36px,40px 36px,44px 36px,48px 36px,52px 36px,56px 36px,60px 36px #c3c3c3,4px 40px #c3c3c3,8px 40px #c3c3c3,12px 40px #c3c3c3,16px 40px #c3c3c3,20px 40px #c3c3c3,24px 40px #c3c3c3,28px 40px #c3c3c3,32px 40px #c3c3c3,36px 40px #c3c3c3,40px 40px #c3c3c3,44px 40px #c3c3c3,48px 40px #c3c3c3,52px 40px #c3c3c3,56px 40px #c3c3c3,60px 40px #c3c3c3;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-logo::before{box-shadow:28px 4px 0 .020em,28px 8px 0 .020em,32px 12px 0 .020em,4px 16px 0 .020em #c3c3c3,8px 16px 0 .020em #c3c3c3,12px 16px 0 .020em #c3c3c3,16px 16px 0 .020em #c3c3c3,20px 16px 0 .020em #c3c3c3,24px 16px 0 .020em #c3c3c3,28px 16px 0 .020em #c3c3c3,32px 16px 0 .020em #c3c3c3,36px 16px 0 .020em #c3c3c3,40px 16px 0 .020em #c3c3c3,44px 16px 0 .020em #c3c3c3,48px 16px 0 .020em #c3c3c3,52px 16px 0 .020em #c3c3c3,56px 16px 0 .020em #c3c3c3,60px 16px 0 .020em #c3c3c3,4px 20px 0 .020em #c3c3c3,8px 20px 0 .020em,12px 20px 0 .020em,16px 20px 0 .020em,20px 20px 0 .020em,24px 20px 0 .020em,28px 20px 0 .020em,32px 20px 0 .020em,36px 20px 0 .020em,40px 20px 0 .020em,44px 20px 0 .020em,48px 20px 0 .020em,52px 20px 0 .020em,56px 20px 0 .020em,60px 20px 0 .020em #c3c3c3,4px 24px 0 .020em #c3c3c3,8px 24px 0 .020em,12px 24px 0 .020em,16px 24px 0 .020em #c3c3c3,20px 24px 0 .020em,24px 24px 0 .020em,28px 24px 0 .020em #787973,32px 24px 0 .020em #787973,36px 24px 0 .020em #787973,40px 24px 0 .020em,44px 24px 0 .020em,48px 24px 0 .020em,52px 24px 0 .020em,56px 24px 0 .020em,60px 24px 0 .020em #c3c3c3,4px 28px 0 .020em #c3c3c3,8px 28px 0 .020em,12px 28px 0 .020em #c3c3c3,16px 28px 0 .020em #c3c3c3,20px 28px 0 .020em #c3c3c3,24px 28px 0 .020em,28px 28px 0 .020em,32px 28px 0 .020em,36px 28px 0 .020em,40px 28px 0 .020em,44px 28px 0 .020em,48px 28px 0 .020em,52px 28px 0 .020em,56px 28px 0 .020em,60px 28px 0 .020em #c3c3c3,4px 32px 0 .020em #c3c3c3,8px 32px 0 .020em,12px 32px 0 .020em,16px 32px 0 .020em #c3c3c3,20px 32px 0 .020em,24px 32px 0 .020em,28px 32px 0 .020em #787973,32px 32px 0 .020em #787973,36px 32px 0 .020em #787973,40px 32px 0 .020em,44px 32px 0 .020em #bf1710,48px 32px 0 .020em,52px 32px 0 .020em #bf1710,56px 32px 0 .020em,60px 32px 0 .020em #c3c3c3,4px 36px 0 .020em #c3c3c3,8px 36px 0 .020em,12px 36px 0 .020em,16px 36px 0 .020em,20px 36px 0 .020em,24px 36px 0 .020em,28px 36px 0 .020em,32px 36px 0 .020em,36px 36px 0 .020em,40px 36px 0 .020em,44px 36px 0 .020em,48px 36px 0 .020em,52px 36px 0 .020em,56px 36px 0 .020em,60px 36px 0 .020em #c3c3c3,4px 40px 0 .020em #c3c3c3,8px 40px 0 .020em #c3c3c3,12px 40px 0 .020em #c3c3c3,16px 40px 0 .020em #c3c3c3,20px 40px 0 .020em #c3c3c3,24px 40px 0 .020em #c3c3c3,28px 40px 0 .020em #c3c3c3,32px 40px 0 .020em #c3c3c3,36px 40px 0 .020em #c3c3c3,40px 40px 0 .020em #c3c3c3,44px 40px 0 .020em #c3c3c3,48px 40px 0 .020em #c3c3c3,52px 40px 0 .020em #c3c3c3,56px 40px 0 .020em #c3c3c3,60px 40px 0 .020em #c3c3c3}}.nes-jp-logo{position:relative;display:inline-block;width:60px;height:40px}.nes-jp-logo::before{position:absolute;top:-4px;left:-4px;content:"";background:0 0;width:4px;height:4px;color:#871f37;box-shadow:28px 4px #333,28px 8px #333,32px 12px #333,4px 16px,8px 16px,12px 16px,16px 16px,20px 16px,24px 16px,28px 16px,32px 16px,36px 16px,40px 16px,44px 16px,48px 16px,52px 16px,56px 16px,60px 16px,4px 20px,8px 20px #dfd3b9,12px 20px #dfd3b9,16px 20px #dfd3b9,20px 20px #dfd3b9,24px 20px #dfd3b9,28px 20px,32px 20px,36px 20px,40px 20px,44px 20px,48px 20px,52px 20px,56px 20px,60px 20px,4px 24px,8px 24px #dfd3b9,12px 24px #dfd3b9,16px 24px #333,20px 24px #dfd3b9,24px 24px #dfd3b9,28px 24px,32px 24px,36px 24px,40px 24px,44px 24px,48px 24px,52px 24px,56px 24px,60px 24px,4px 28px,8px 28px #dfd3b9,12px 28px #333,16px 28px #333,20px 28px #333,24px 28px #dfd3b9,28px 28px #dfd3b9,32px 28px #dfd3b9,36px 28px #dfd3b9,40px 28px #dfd3b9,44px 28px #dfd3b9,48px 28px #dfd3b9,52px 28px #dfd3b9,56px 28px #dfd3b9,60px 28px,4px 32px,8px 32px #dfd3b9,12px 32px #dfd3b9,16px 32px #333,20px 32px #dfd3b9,24px 32px #dfd3b9,28px 32px #333,32px 32px,36px 32px #333,40px 32px #dfd3b9,44px 32px #333,48px 32px #dfd3b9,52px 32px #333,56px 32px #dfd3b9,60px 32px,4px 36px,8px 36px #dfd3b9,12px 36px #dfd3b9,16px 36px #dfd3b9,20px 36px #dfd3b9,24px 36px #dfd3b9,28px 36px #dfd3b9,32px 36px #dfd3b9,36px 36px #dfd3b9,40px 36px #dfd3b9,44px 36px #dfd3b9,48px 36px #dfd3b9,52px 36px #dfd3b9,56px 36px #dfd3b9,60px 36px,4px 40px,8px 40px,12px 40px,16px 40px,20px 40px,24px 40px,28px 40px,32px 40px,36px 40px,40px 40px,44px 40px,48px 40px,52px 40px,56px 40px,60px 40px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-jp-logo::before{box-shadow:28px 4px 0 .020em #333,28px 8px 0 .020em #333,32px 12px 0 .020em #333,4px 16px 0 .020em,8px 16px 0 .020em,12px 16px 0 .020em,16px 16px 0 .020em,20px 16px 0 .020em,24px 16px 0 .020em,28px 16px 0 .020em,32px 16px 0 .020em,36px 16px 0 .020em,40px 16px 0 .020em,44px 16px 0 .020em,48px 16px 0 .020em,52px 16px 0 .020em,56px 16px 0 .020em,60px 16px 0 .020em,4px 20px 0 .020em,8px 20px 0 .020em #dfd3b9,12px 20px 0 .020em #dfd3b9,16px 20px 0 .020em #dfd3b9,20px 20px 0 .020em #dfd3b9,24px 20px 0 .020em #dfd3b9,28px 20px 0 .020em,32px 20px 0 .020em,36px 20px 0 .020em,40px 20px 0 .020em,44px 20px 0 .020em,48px 20px 0 .020em,52px 20px 0 .020em,56px 20px 0 .020em,60px 20px 0 .020em,4px 24px 0 .020em,8px 24px 0 .020em #dfd3b9,12px 24px 0 .020em #dfd3b9,16px 24px 0 .020em #333,20px 24px 0 .020em #dfd3b9,24px 24px 0 .020em #dfd3b9,28px 24px 0 .020em,32px 24px 0 .020em,36px 24px 0 .020em,40px 24px 0 .020em,44px 24px 0 .020em,48px 24px 0 .020em,52px 24px 0 .020em,56px 24px 0 .020em,60px 24px 0 .020em,4px 28px 0 .020em,8px 28px 0 .020em #dfd3b9,12px 28px 0 .020em #333,16px 28px 0 .020em #333,20px 28px 0 .020em #333,24px 28px 0 .020em #dfd3b9,28px 28px 0 .020em #dfd3b9,32px 28px 0 .020em #dfd3b9,36px 28px 0 .020em #dfd3b9,40px 28px 0 .020em #dfd3b9,44px 28px 0 .020em #dfd3b9,48px 28px 0 .020em #dfd3b9,52px 28px 0 .020em #dfd3b9,56px 28px 0 .020em #dfd3b9,60px 28px 0 .020em,4px 32px 0 .020em,8px 32px 0 .020em #dfd3b9,12px 32px 0 .020em #dfd3b9,16px 32px 0 .020em #333,20px 32px 0 .020em #dfd3b9,24px 32px 0 .020em #dfd3b9,28px 32px 0 .020em #333,32px 32px 0 .020em,36px 32px 0 .020em #333,40px 32px 0 .020em #dfd3b9,44px 32px 0 .020em #333,48px 32px 0 .020em #dfd3b9,52px 32px 0 .020em #333,56px 32px 0 .020em #dfd3b9,60px 32px 0 .020em,4px 36px 0 .020em,8px 36px 0 .020em #dfd3b9,12px 36px 0 .020em #dfd3b9,16px 36px 0 .020em #dfd3b9,20px 36px 0 .020em #dfd3b9,24px 36px 0 .020em #dfd3b9,28px 36px 0 .020em #dfd3b9,32px 36px 0 .020em #dfd3b9,36px 36px 0 .020em #dfd3b9,40px 36px 0 .020em #dfd3b9,44px 36px 0 .020em #dfd3b9,48px 36px 0 .020em #dfd3b9,52px 36px 0 .020em #dfd3b9,56px 36px 0 .020em #dfd3b9,60px 36px 0 .020em,4px 40px 0 .020em,8px 40px 0 .020em,12px 40px 0 .020em,16px 40px 0 .020em,20px 40px 0 .020em,24px 40px 0 .020em,28px 40px 0 .020em,32px 40px 0 .020em,36px 40px 0 .020em,40px 40px 0 .020em,44px 40px 0 .020em,48px 40px 0 .020em,52px 40px 0 .020em,56px 40px 0 .020em,60px 40px 0 .020em}}.snes-logo{position:relative;display:inline-block;width:60px;height:40px}.snes-logo::before{position:absolute;top:-4px;left:-4px;content:"";background:0 0;width:4px;height:4px;color:#d7d7d7;box-shadow:28px 4px #333,28px 8px #333,32px 12px #333,12px 16px #333,16px 16px #333,20px 16px #333,24px 16px #333,28px 16px #333,32px 16px #333,36px 16px #333,40px 16px #333,44px 16px #333,48px 16px #333,52px 16px #333,8px 20px #333,12px 20px,16px 20px,20px 20px,24px 20px,28px 20px,32px 20px,36px 20px,40px 20px,44px 20px,48px 20px,52px 20px,56px 20px #333,4px 24px #333,8px 24px,12px 24px,16px 24px #333,20px 24px,24px 24px,28px 24px,32px 24px,36px 24px,40px 24px,44px 24px,48px 24px #ad6df0,52px 24px,56px 24px,60px 24px #333,4px 28px #333,8px 28px,12px 28px #333,16px 28px #333,20px 28px #333,24px 28px,28px 28px,32px 28px,36px 28px,40px 28px,44px 28px #ad6df0,48px 28px,52px 28px #8932e5,56px 28px,60px 28px #333,4px 32px #333,8px 32px,12px 32px,16px 32px #333,20px 32px,24px 32px,28px 32px #333,32px 32px,36px 32px #333,40px 32px,44px 32px,48px 32px #8932e5,52px 32px,56px 32px,60px 32px #333,8px 36px #333,12px 36px,16px 36px,20px 36px,24px 36px,28px 36px,32px 36px,36px 36px,40px 36px,44px 36px,48px 36px,52px 36px,56px 36px #333,12px 40px #333,16px 40px #333,20px 40px #333,24px 40px #333,28px 40px #333,32px 40px #333,36px 40px #333,40px 40px #333,44px 40px #333,48px 40px #333,52px 40px #333;transform:rotate(0)}@supports (-moz-appearance:meterbar){.snes-logo::before{box-shadow:28px 4px 0 .020em #333,28px 8px 0 .020em #333,32px 12px 0 .020em #333,12px 16px 0 .020em #333,16px 16px 0 .020em #333,20px 16px 0 .020em #333,24px 16px 0 .020em #333,28px 16px 0 .020em #333,32px 16px 0 .020em #333,36px 16px 0 .020em #333,40px 16px 0 .020em #333,44px 16px 0 .020em #333,48px 16px 0 .020em #333,52px 16px 0 .020em #333,8px 20px 0 .020em #333,12px 20px 0 .020em,16px 20px 0 .020em,20px 20px 0 .020em,24px 20px 0 .020em,28px 20px 0 .020em,32px 20px 0 .020em,36px 20px 0 .020em,40px 20px 0 .020em,44px 20px 0 .020em,48px 20px 0 .020em,52px 20px 0 .020em,56px 20px 0 .020em #333,4px 24px 0 .020em #333,8px 24px 0 .020em,12px 24px 0 .020em,16px 24px 0 .020em #333,20px 24px 0 .020em,24px 24px 0 .020em,28px 24px 0 .020em,32px 24px 0 .020em,36px 24px 0 .020em,40px 24px 0 .020em,44px 24px 0 .020em,48px 24px 0 .020em #ad6df0,52px 24px 0 .020em,56px 24px 0 .020em,60px 24px 0 .020em #333,4px 28px 0 .020em #333,8px 28px 0 .020em,12px 28px 0 .020em #333,16px 28px 0 .020em #333,20px 28px 0 .020em #333,24px 28px 0 .020em,28px 28px 0 .020em,32px 28px 0 .020em,36px 28px 0 .020em,40px 28px 0 .020em,44px 28px 0 .020em #ad6df0,48px 28px 0 .020em,52px 28px 0 .020em #8932e5,56px 28px 0 .020em,60px 28px 0 .020em #333,4px 32px 0 .020em #333,8px 32px 0 .020em,12px 32px 0 .020em,16px 32px 0 .020em #333,20px 32px 0 .020em,24px 32px 0 .020em,28px 32px 0 .020em #333,32px 32px 0 .020em,36px 32px 0 .020em #333,40px 32px 0 .020em,44px 32px 0 .020em,48px 32px 0 .020em #8932e5,52px 32px 0 .020em,56px 32px 0 .020em,60px 32px 0 .020em #333,8px 36px 0 .020em #333,12px 36px 0 .020em,16px 36px 0 .020em,20px 36px 0 .020em,24px 36px 0 .020em,28px 36px 0 .020em,32px 36px 0 .020em,36px 36px 0 .020em,40px 36px 0 .020em,44px 36px 0 .020em,48px 36px 0 .020em,52px 36px 0 .020em,56px 36px 0 .020em #333,12px 40px 0 .020em #333,16px 40px 0 .020em #333,20px 40px 0 .020em #333,24px 40px 0 .020em #333,28px 40px 0 .020em #333,32px 40px 0 .020em #333,36px 40px 0 .020em #333,40px 40px 0 .020em #333,44px 40px 0 .020em #333,48px 40px 0 .020em #333,52px 40px 0 .020em #333}}.snes-jp-logo{position:relative;display:inline-block;width:60px;height:40px}.snes-jp-logo::before{position:absolute;top:-4px;left:-4px;content:"";background:0 0;width:4px;height:4px;color:#d7d7d7;box-shadow:28px 4px #333,28px 8px #333,32px 12px #333,12px 16px #333,16px 16px #333,20px 16px #333,24px 16px #333,28px 16px #333,32px 16px #333,36px 16px #333,40px 16px #333,44px 16px #333,48px 16px #333,52px 16px #333,8px 20px #333,12px 20px,16px 20px,20px 20px,24px 20px,28px 20px,32px 20px,36px 20px,40px 20px,44px 20px,48px 20px,52px 20px,56px 20px #333,4px 24px #333,8px 24px,12px 24px,16px 24px #333,20px 24px,24px 24px,28px 24px,32px 24px,36px 24px,40px 24px,44px 24px,48px 24px #999cf7,52px 24px,56px 24px,60px 24px #333,4px 28px #333,8px 28px,12px 28px #333,16px 28px #333,20px 28px #333,24px 28px,28px 28px,32px 28px,36px 28px,40px 28px,44px 28px #7dbb78,48px 28px,52px 28px #f40500,56px 28px,60px 28px #333,4px 32px #333,8px 32px,12px 32px,16px 32px #333,20px 32px,24px 32px,28px 32px #333,32px 32px,36px 32px #333,40px 32px,44px 32px,48px 32px #f6f504,52px 32px,56px 32px,60px 32px #333,8px 36px #333,12px 36px,16px 36px,20px 36px,24px 36px,28px 36px,32px 36px,36px 36px,40px 36px,44px 36px,48px 36px,52px 36px,56px 36px #333,12px 40px #333,16px 40px #333,20px 40px #333,24px 40px #333,28px 40px #333,32px 40px #333,36px 40px #333,40px 40px #333,44px 40px #333,48px 40px #333,52px 40px #333;transform:rotate(0)}@supports (-moz-appearance:meterbar){.snes-jp-logo::before{box-shadow:28px 4px 0 .020em #333,28px 8px 0 .020em #333,32px 12px 0 .020em #333,12px 16px 0 .020em #333,16px 16px 0 .020em #333,20px 16px 0 .020em #333,24px 16px 0 .020em #333,28px 16px 0 .020em #333,32px 16px 0 .020em #333,36px 16px 0 .020em #333,40px 16px 0 .020em #333,44px 16px 0 .020em #333,48px 16px 0 .020em #333,52px 16px 0 .020em #333,8px 20px 0 .020em #333,12px 20px 0 .020em,16px 20px 0 .020em,20px 20px 0 .020em,24px 20px 0 .020em,28px 20px 0 .020em,32px 20px 0 .020em,36px 20px 0 .020em,40px 20px 0 .020em,44px 20px 0 .020em,48px 20px 0 .020em,52px 20px 0 .020em,56px 20px 0 .020em #333,4px 24px 0 .020em #333,8px 24px 0 .020em,12px 24px 0 .020em,16px 24px 0 .020em #333,20px 24px 0 .020em,24px 24px 0 .020em,28px 24px 0 .020em,32px 24px 0 .020em,36px 24px 0 .020em,40px 24px 0 .020em,44px 24px 0 .020em,48px 24px 0 .020em #999cf7,52px 24px 0 .020em,56px 24px 0 .020em,60px 24px 0 .020em #333,4px 28px 0 .020em #333,8px 28px 0 .020em,12px 28px 0 .020em #333,16px 28px 0 .020em #333,20px 28px 0 .020em #333,24px 28px 0 .020em,28px 28px 0 .020em,32px 28px 0 .020em,36px 28px 0 .020em,40px 28px 0 .020em,44px 28px 0 .020em #7dbb78,48px 28px 0 .020em,52px 28px 0 .020em #f40500,56px 28px 0 .020em,60px 28px 0 .020em #333,4px 32px 0 .020em #333,8px 32px 0 .020em,12px 32px 0 .020em,16px 32px 0 .020em #333,20px 32px 0 .020em,24px 32px 0 .020em,28px 32px 0 .020em #333,32px 32px 0 .020em,36px 32px 0 .020em #333,40px 32px 0 .020em,44px 32px 0 .020em,48px 32px 0 .020em #f6f504,52px 32px 0 .020em,56px 32px 0 .020em,60px 32px 0 .020em #333,8px 36px 0 .020em #333,12px 36px 0 .020em,16px 36px 0 .020em,20px 36px 0 .020em,24px 36px 0 .020em,28px 36px 0 .020em,32px 36px 0 .020em,36px 36px 0 .020em,40px 36px 0 .020em,44px 36px 0 .020em,48px 36px 0 .020em,52px 36px 0 .020em,56px 36px 0 .020em #333,12px 40px 0 .020em #333,16px 40px 0 .020em #333,20px 40px 0 .020em #333,24px 40px 0 .020em #333,28px 40px 0 .020em #333,32px 40px 0 .020em #333,36px 40px 0 .020em #333,40px 40px 0 .020em #333,44px 40px 0 .020em #333,48px 40px 0 .020em #333,52px 40px 0 .020em #333}}.nes-bcrikko{position:relative;display:inline-block;width:96px;height:96px}.nes-bcrikko::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#f9f2d7;box-shadow:12px 6px,18px 6px,24px 6px,30px 6px,36px 6px,42px 6px,48px 6px,54px 6px,60px 6px,66px 6px,72px 6px,78px 6px,84px 6px,90px 6px,6px 12px,12px 12px,18px 12px,24px 12px,30px 12px,36px 12px,42px 12px,48px 12px,54px 12px,60px 12px,66px 12px,72px 12px,78px 12px,84px 12px,90px 12px,96px 12px,6px 18px,12px 18px,18px 18px,24px 18px,30px 18px,36px 18px,42px 18px,48px 18px,54px 18px,60px 18px,66px 18px,72px 18px,78px 18px,84px 18px,90px 18px,96px 18px,6px 24px,12px 24px,18px 24px,24px 24px,30px 24px #333,36px 24px #333,42px 24px,48px 24px,54px 24px,60px 24px,66px 24px #333,72px 24px #333,78px 24px,84px 24px,90px 24px,96px 24px,6px 30px,12px 30px,18px 30px,24px 30px #333,30px 30px #333,36px 30px #fff,42px 30px #333,48px 30px,54px 30px,60px 30px #333,66px 30px #333,72px 30px #fff,78px 30px #333,84px 30px,90px 30px,96px 30px,6px 36px,12px 36px,18px 36px,24px 36px #333,30px 36px #333,36px 36px #333,42px 36px #333,48px 36px,54px 36px,60px 36px #333,66px 36px #333,72px 36px #333,78px 36px #333,84px 36px,90px 36px,96px 36px,6px 42px,12px 42px,18px 42px,24px 42px #333,30px 42px #333,36px 42px #333,42px 42px #333,48px 42px,54px 42px,60px 42px #333,66px 42px #333,72px 42px #333,78px 42px #333,84px 42px,90px 42px,96px 42px,6px 48px,12px 48px,18px 48px,24px 48px #333,30px 48px #333,36px 48px #333,42px 48px #333,48px 48px,54px 48px,60px 48px #333,66px 48px #333,72px 48px #333,78px 48px #333,84px 48px,90px 48px,96px 48px,6px 54px,12px 54px,18px 54px,24px 54px,30px 54px #333,36px 54px #333,42px 54px,48px 54px,54px 54px,60px 54px,66px 54px #333,72px 54px #333,78px 54px,84px 54px,90px 54px,96px 54px,6px 60px,12px 60px,18px 60px,24px 60px,30px 60px,36px 60px,42px 60px,48px 60px,54px 60px,60px 60px,66px 60px,72px 60px,78px 60px,84px 60px,90px 60px,96px 60px,6px 66px,12px 66px,18px 66px,24px 66px,30px 66px,36px 66px,42px 66px,48px 66px,54px 66px,60px 66px,66px 66px,72px 66px,78px 66px,84px 66px,90px 66px,96px 66px,6px 72px,12px 72px,18px 72px,24px 72px #c5090c,30px 72px,36px 72px,42px 72px,48px 72px,54px 72px,60px 72px,66px 72px,72px 72px,78px 72px #c5090c,84px 72px,90px 72px,96px 72px,6px 78px,12px 78px,18px 78px,24px 78px #c5090c,30px 78px,36px 78px,42px 78px,48px 78px,54px 78px,60px 78px,66px 78px,72px 78px,78px 78px #c5090c,84px 78px,90px 78px,96px 78px,6px 84px,12px 84px,18px 84px,24px 84px,30px 84px #c5090c,36px 84px #c5090c,42px 84px #c5090c,48px 84px #c5090c,54px 84px #c5090c,60px 84px #c5090c,66px 84px #c5090c,72px 84px #c5090c,78px 84px,84px 84px,90px 84px,96px 84px,6px 90px,12px 90px,18px 90px,24px 90px,30px 90px,36px 90px,42px 90px,48px 90px,54px 90px,60px 90px,66px 90px,72px 90px,78px 90px,84px 90px,90px 90px,96px 90px,12px 96px,18px 96px,24px 96px,30px 96px,36px 96px,42px 96px,48px 96px,54px 96px,60px 96px,66px 96px,72px 96px,78px 96px,84px 96px,90px 96px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-bcrikko::before{box-shadow:12px 6px 0 .020em,18px 6px 0 .020em,24px 6px 0 .020em,30px 6px 0 .020em,36px 6px 0 .020em,42px 6px 0 .020em,48px 6px 0 .020em,54px 6px 0 .020em,60px 6px 0 .020em,66px 6px 0 .020em,72px 6px 0 .020em,78px 6px 0 .020em,84px 6px 0 .020em,90px 6px 0 .020em,6px 12px 0 .020em,12px 12px 0 .020em,18px 12px 0 .020em,24px 12px 0 .020em,30px 12px 0 .020em,36px 12px 0 .020em,42px 12px 0 .020em,48px 12px 0 .020em,54px 12px 0 .020em,60px 12px 0 .020em,66px 12px 0 .020em,72px 12px 0 .020em,78px 12px 0 .020em,84px 12px 0 .020em,90px 12px 0 .020em,96px 12px 0 .020em,6px 18px 0 .020em,12px 18px 0 .020em,18px 18px 0 .020em,24px 18px 0 .020em,30px 18px 0 .020em,36px 18px 0 .020em,42px 18px 0 .020em,48px 18px 0 .020em,54px 18px 0 .020em,60px 18px 0 .020em,66px 18px 0 .020em,72px 18px 0 .020em,78px 18px 0 .020em,84px 18px 0 .020em,90px 18px 0 .020em,96px 18px 0 .020em,6px 24px 0 .020em,12px 24px 0 .020em,18px 24px 0 .020em,24px 24px 0 .020em,30px 24px 0 .020em #333,36px 24px 0 .020em #333,42px 24px 0 .020em,48px 24px 0 .020em,54px 24px 0 .020em,60px 24px 0 .020em,66px 24px 0 .020em #333,72px 24px 0 .020em #333,78px 24px 0 .020em,84px 24px 0 .020em,90px 24px 0 .020em,96px 24px 0 .020em,6px 30px 0 .020em,12px 30px 0 .020em,18px 30px 0 .020em,24px 30px 0 .020em #333,30px 30px 0 .020em #333,36px 30px 0 .020em #fff,42px 30px 0 .020em #333,48px 30px 0 .020em,54px 30px 0 .020em,60px 30px 0 .020em #333,66px 30px 0 .020em #333,72px 30px 0 .020em #fff,78px 30px 0 .020em #333,84px 30px 0 .020em,90px 30px 0 .020em,96px 30px 0 .020em,6px 36px 0 .020em,12px 36px 0 .020em,18px 36px 0 .020em,24px 36px 0 .020em #333,30px 36px 0 .020em #333,36px 36px 0 .020em #333,42px 36px 0 .020em #333,48px 36px 0 .020em,54px 36px 0 .020em,60px 36px 0 .020em #333,66px 36px 0 .020em #333,72px 36px 0 .020em #333,78px 36px 0 .020em #333,84px 36px 0 .020em,90px 36px 0 .020em,96px 36px 0 .020em,6px 42px 0 .020em,12px 42px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em #333,30px 42px 0 .020em #333,36px 42px 0 .020em #333,42px 42px 0 .020em #333,48px 42px 0 .020em,54px 42px 0 .020em,60px 42px 0 .020em #333,66px 42px 0 .020em #333,72px 42px 0 .020em #333,78px 42px 0 .020em #333,84px 42px 0 .020em,90px 42px 0 .020em,96px 42px 0 .020em,6px 48px 0 .020em,12px 48px 0 .020em,18px 48px 0 .020em,24px 48px 0 .020em #333,30px 48px 0 .020em #333,36px 48px 0 .020em #333,42px 48px 0 .020em #333,48px 48px 0 .020em,54px 48px 0 .020em,60px 48px 0 .020em #333,66px 48px 0 .020em #333,72px 48px 0 .020em #333,78px 48px 0 .020em #333,84px 48px 0 .020em,90px 48px 0 .020em,96px 48px 0 .020em,6px 54px 0 .020em,12px 54px 0 .020em,18px 54px 0 .020em,24px 54px 0 .020em,30px 54px 0 .020em #333,36px 54px 0 .020em #333,42px 54px 0 .020em,48px 54px 0 .020em,54px 54px 0 .020em,60px 54px 0 .020em,66px 54px 0 .020em #333,72px 54px 0 .020em #333,78px 54px 0 .020em,84px 54px 0 .020em,90px 54px 0 .020em,96px 54px 0 .020em,6px 60px 0 .020em,12px 60px 0 .020em,18px 60px 0 .020em,24px 60px 0 .020em,30px 60px 0 .020em,36px 60px 0 .020em,42px 60px 0 .020em,48px 60px 0 .020em,54px 60px 0 .020em,60px 60px 0 .020em,66px 60px 0 .020em,72px 60px 0 .020em,78px 60px 0 .020em,84px 60px 0 .020em,90px 60px 0 .020em,96px 60px 0 .020em,6px 66px 0 .020em,12px 66px 0 .020em,18px 66px 0 .020em,24px 66px 0 .020em,30px 66px 0 .020em,36px 66px 0 .020em,42px 66px 0 .020em,48px 66px 0 .020em,54px 66px 0 .020em,60px 66px 0 .020em,66px 66px 0 .020em,72px 66px 0 .020em,78px 66px 0 .020em,84px 66px 0 .020em,90px 66px 0 .020em,96px 66px 0 .020em,6px 72px 0 .020em,12px 72px 0 .020em,18px 72px 0 .020em,24px 72px 0 .020em #c5090c,30px 72px 0 .020em,36px 72px 0 .020em,42px 72px 0 .020em,48px 72px 0 .020em,54px 72px 0 .020em,60px 72px 0 .020em,66px 72px 0 .020em,72px 72px 0 .020em,78px 72px 0 .020em #c5090c,84px 72px 0 .020em,90px 72px 0 .020em,96px 72px 0 .020em,6px 78px 0 .020em,12px 78px 0 .020em,18px 78px 0 .020em,24px 78px 0 .020em #c5090c,30px 78px 0 .020em,36px 78px 0 .020em,42px 78px 0 .020em,48px 78px 0 .020em,54px 78px 0 .020em,60px 78px 0 .020em,66px 78px 0 .020em,72px 78px 0 .020em,78px 78px 0 .020em #c5090c,84px 78px 0 .020em,90px 78px 0 .020em,96px 78px 0 .020em,6px 84px 0 .020em,12px 84px 0 .020em,18px 84px 0 .020em,24px 84px 0 .020em,30px 84px 0 .020em #c5090c,36px 84px 0 .020em #c5090c,42px 84px 0 .020em #c5090c,48px 84px 0 .020em #c5090c,54px 84px 0 .020em #c5090c,60px 84px 0 .020em #c5090c,66px 84px 0 .020em #c5090c,72px 84px 0 .020em #c5090c,78px 84px 0 .020em,84px 84px 0 .020em,90px 84px 0 .020em,96px 84px 0 .020em,6px 90px 0 .020em,12px 90px 0 .020em,18px 90px 0 .020em,24px 90px 0 .020em,30px 90px 0 .020em,36px 90px 0 .020em,42px 90px 0 .020em,48px 90px 0 .020em,54px 90px 0 .020em,60px 90px 0 .020em,66px 90px 0 .020em,72px 90px 0 .020em,78px 90px 0 .020em,84px 90px 0 .020em,90px 90px 0 .020em,96px 90px 0 .020em,12px 96px 0 .020em,18px 96px 0 .020em,24px 96px 0 .020em,30px 96px 0 .020em,36px 96px 0 .020em,42px 96px 0 .020em,48px 96px 0 .020em,54px 96px 0 .020em,60px 96px 0 .020em,66px 96px 0 .020em,72px 96px 0 .020em,78px 96px 0 .020em,84px 96px 0 .020em,90px 96px 0 .020em}}.nes-ash{position:relative;display:inline-block;width:84px;height:90px}.nes-ash::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#181818;box-shadow:30px 6px,36px 6px,42px 6px,48px 6px,54px 6px,60px 6px,24px 12px,30px 12px #ff614e,36px 12px #ff614e,42px 12px #ff614e,48px 12px #f8f8ff,54px 12px #f8f8ff,60px 12px #007f7f,66px 12px,18px 18px,24px 18px #ff614e,30px 18px #ff614e,36px 18px #ff614e,42px 18px #ff614e,48px 18px #f8f8ff,54px 18px #f8f8ff,60px 18px #f8f8ff,66px 18px #f8f8ff,72px 18px,18px 24px,24px 24px #ff614e,30px 24px #ff614e,36px 24px #ff614e,42px 24px #ff614e,48px 24px #f8f8ff,54px 24px #f8f8ff,60px 24px #007f7f,66px 24px #007f7f,72px 24px,78px 24px,12px 30px,18px 30px,24px 30px,30px 30px #ff614e,36px 30px #ff614e,42px 30px #ff614e,48px 30px #ff614e,54px 30px #ff614e,60px 30px #ff614e,66px 30px #ff614e,72px 30px #ff614e,78px 30px #ff614e,84px 30px,12px 36px,18px 36px,24px 36px,30px 36px,36px 36px,42px 36px,48px 36px,54px 36px #ff614e,60px 36px #ff614e,66px 36px #ff614e,72px 36px,78px 36px,6px 42px,12px 42px,18px 42px,24px 42px,30px 42px,36px 42px,42px 42px,48px 42px #ffe3c5,54px 42px #ffe3c5,60px 42px,66px 42px #ffe3c5,72px 42px,12px 48px,18px 48px,24px 48px #ffe3c5,30px 48px #ffe3c5,36px 48px #ffe3c5,42px 48px,48px 48px #ffe3c5,54px 48px #ffe3c5,60px 48px,66px 48px #ffe3c5,72px 48px,18px 54px,24px 54px #ffe3c5,30px 54px #ffe3c5,36px 54px #ffe3c5,42px 54px #ffe3c5,48px 54px #ffe3c5,54px 54px #ffe3c5,60px 54px #ffe3c5,66px 54px #ffe3c5,72px 54px,12px 60px,18px 60px #4169e1,24px 60px,30px 60px,36px 60px #ffe3c5,42px 60px #ffe3c5,48px 60px #ffe3c5,54px 60px #ffe3c5,60px 60px #ffe3c5,66px 60px,12px 66px,18px 66px #4169e1,24px 66px,30px 66px,36px 66px,42px 66px,48px 66px,54px 66px,60px 66px,12px 72px,18px 72px,24px 72px #ffe3c5,30px 72px #ffe3c5,36px 72px,42px 72px #4169e1,48px 72px #4169e1,54px 72px,60px 72px,66px 72px,6px 78px,12px 78px #007f7f,18px 78px,24px 78px #ffe3c5,30px 78px #ffe3c5,36px 78px,42px 78px #4169e1,48px 78px,54px 78px,60px 78px #007f7f,66px 78px #007f7f,72px 78px,6px 84px,12px 84px #007f7f,18px 84px #007f7f,24px 84px,30px 84px,36px 84px,42px 84px,48px 84px,54px 84px #007f7f,60px 84px #007f7f,66px 84px,12px 90px,18px 90px,54px 90px,60px 90px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-ash::before{box-shadow:30px 6px 0 .020em,36px 6px 0 .020em,42px 6px 0 .020em,48px 6px 0 .020em,54px 6px 0 .020em,60px 6px 0 .020em,24px 12px 0 .020em,30px 12px 0 .020em #ff614e,36px 12px 0 .020em #ff614e,42px 12px 0 .020em #ff614e,48px 12px 0 .020em #f8f8ff,54px 12px 0 .020em #f8f8ff,60px 12px 0 .020em #007f7f,66px 12px 0 .020em,18px 18px 0 .020em,24px 18px 0 .020em #ff614e,30px 18px 0 .020em #ff614e,36px 18px 0 .020em #ff614e,42px 18px 0 .020em #ff614e,48px 18px 0 .020em #f8f8ff,54px 18px 0 .020em #f8f8ff,60px 18px 0 .020em #f8f8ff,66px 18px 0 .020em #f8f8ff,72px 18px 0 .020em,18px 24px 0 .020em,24px 24px 0 .020em #ff614e,30px 24px 0 .020em #ff614e,36px 24px 0 .020em #ff614e,42px 24px 0 .020em #ff614e,48px 24px 0 .020em #f8f8ff,54px 24px 0 .020em #f8f8ff,60px 24px 0 .020em #007f7f,66px 24px 0 .020em #007f7f,72px 24px 0 .020em,78px 24px 0 .020em,12px 30px 0 .020em,18px 30px 0 .020em,24px 30px 0 .020em,30px 30px 0 .020em #ff614e,36px 30px 0 .020em #ff614e,42px 30px 0 .020em #ff614e,48px 30px 0 .020em #ff614e,54px 30px 0 .020em #ff614e,60px 30px 0 .020em #ff614e,66px 30px 0 .020em #ff614e,72px 30px 0 .020em #ff614e,78px 30px 0 .020em #ff614e,84px 30px 0 .020em,12px 36px 0 .020em,18px 36px 0 .020em,24px 36px 0 .020em,30px 36px 0 .020em,36px 36px 0 .020em,42px 36px 0 .020em,48px 36px 0 .020em,54px 36px 0 .020em #ff614e,60px 36px 0 .020em #ff614e,66px 36px 0 .020em #ff614e,72px 36px 0 .020em,78px 36px 0 .020em,6px 42px 0 .020em,12px 42px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em,30px 42px 0 .020em,36px 42px 0 .020em,42px 42px 0 .020em,48px 42px 0 .020em #ffe3c5,54px 42px 0 .020em #ffe3c5,60px 42px 0 .020em,66px 42px 0 .020em #ffe3c5,72px 42px 0 .020em,12px 48px 0 .020em,18px 48px 0 .020em,24px 48px 0 .020em #ffe3c5,30px 48px 0 .020em #ffe3c5,36px 48px 0 .020em #ffe3c5,42px 48px 0 .020em,48px 48px 0 .020em #ffe3c5,54px 48px 0 .020em #ffe3c5,60px 48px 0 .020em,66px 48px 0 .020em #ffe3c5,72px 48px 0 .020em,18px 54px 0 .020em,24px 54px 0 .020em #ffe3c5,30px 54px 0 .020em #ffe3c5,36px 54px 0 .020em #ffe3c5,42px 54px 0 .020em #ffe3c5,48px 54px 0 .020em #ffe3c5,54px 54px 0 .020em #ffe3c5,60px 54px 0 .020em #ffe3c5,66px 54px 0 .020em #ffe3c5,72px 54px 0 .020em,12px 60px 0 .020em,18px 60px 0 .020em #4169e1,24px 60px 0 .020em,30px 60px 0 .020em,36px 60px 0 .020em #ffe3c5,42px 60px 0 .020em #ffe3c5,48px 60px 0 .020em #ffe3c5,54px 60px 0 .020em #ffe3c5,60px 60px 0 .020em #ffe3c5,66px 60px 0 .020em,12px 66px 0 .020em,18px 66px 0 .020em #4169e1,24px 66px 0 .020em,30px 66px 0 .020em,36px 66px 0 .020em,42px 66px 0 .020em,48px 66px 0 .020em,54px 66px 0 .020em,60px 66px 0 .020em,12px 72px 0 .020em,18px 72px 0 .020em,24px 72px 0 .020em #ffe3c5,30px 72px 0 .020em #ffe3c5,36px 72px 0 .020em,42px 72px 0 .020em #4169e1,48px 72px 0 .020em #4169e1,54px 72px 0 .020em,60px 72px 0 .020em,66px 72px 0 .020em,6px 78px 0 .020em,12px 78px 0 .020em #007f7f,18px 78px 0 .020em,24px 78px 0 .020em #ffe3c5,30px 78px 0 .020em #ffe3c5,36px 78px 0 .020em,42px 78px 0 .020em #4169e1,48px 78px 0 .020em,54px 78px 0 .020em,60px 78px 0 .020em #007f7f,66px 78px 0 .020em #007f7f,72px 78px 0 .020em,6px 84px 0 .020em,12px 84px 0 .020em #007f7f,18px 84px 0 .020em #007f7f,24px 84px 0 .020em,30px 84px 0 .020em,36px 84px 0 .020em,42px 84px 0 .020em,48px 84px 0 .020em,54px 84px 0 .020em #007f7f,60px 84px 0 .020em #007f7f,66px 84px 0 .020em,12px 90px 0 .020em,18px 90px 0 .020em,54px 90px 0 .020em,60px 90px 0 .020em}}.nes-pokeball{position:relative;display:inline-block;width:84px;height:84px}.nes-pokeball::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#060606;box-shadow:36px 6px,42px 6px,48px 6px,54px 6px,24px 12px,30px 12px,36px 12px #ff001d,42px 12px #ff001d,48px 12px #ff001d,54px 12px #ff001d,60px 12px,66px 12px,18px 18px,24px 18px #fff,30px 18px #fff,36px 18px #ff001d,42px 18px #ff001d,48px 18px #ff001d,54px 18px #ff001d,60px 18px #ff001d,66px 18px #ff001d,72px 18px,12px 24px,18px 24px #fff,24px 24px #fff,30px 24px #ff001d,36px 24px #ff001d,42px 24px #ff001d,48px 24px #ff001d,54px 24px #ff001d,60px 24px #ff001d,66px 24px #ff001d,72px 24px,78px 24px,12px 30px,18px 30px #fff,24px 30px #ff001d,30px 30px #ff001d,36px 30px #ff001d,42px 30px #ff001d,48px 30px #ff001d,54px 30px #ff001d,60px 30px #ff001d,66px 30px #ff001d,72px 30px #ff001d,78px 30px,6px 36px,12px 36px #fff,18px 36px #ff001d,24px 36px #ff001d,30px 36px #ff001d,36px 36px #ff001d,42px 36px #ff001d,48px 36px #ff001d,54px 36px #ff001d,60px 36px #ff001d,66px 36px #ff001d,72px 36px #ff001d,78px 36px #ff001d,84px 36px,6px 42px,12px 42px,18px 42px,24px 42px #ff001d,30px 42px #ff001d,36px 42px #ff001d,42px 42px #ff001d,48px 42px,54px 42px,60px 42px,66px 42px #ff001d,72px 42px #ff001d,78px 42px #ff001d,84px 42px,6px 48px,12px 48px,18px 48px,24px 48px,30px 48px #ff001d,36px 48px #ff001d,42px 48px,48px 48px #fff,54px 48px #fff,60px 48px #fff,66px 48px,72px 48px #ff001d,78px 48px #ff001d,84px 48px,6px 54px,12px 54px #9fa1a1,18px 54px #fff,24px 54px,30px 54px,36px 54px,42px 54px,48px 54px #fff,54px 54px #fff,60px 54px #fff,66px 54px,72px 54px,78px 54px,84px 54px,12px 60px,18px 60px #fff,24px 60px #fff,30px 60px #fff,36px 60px,42px 60px,48px 60px #fff,54px 60px #fff,60px 60px #fff,66px 60px,72px 60px #fff,78px 60px,12px 66px,18px 66px #fff,24px 66px #fff,30px 66px #fff,36px 66px #fff,42px 66px #fff,48px 66px,54px 66px,60px 66px,66px 66px #fff,72px 66px #fff,78px 66px,18px 72px,24px 72px #9fa1a1,30px 72px #9fa1a1,36px 72px #fff,42px 72px #fff,48px 72px #fff,54px 72px #fff,60px 72px #fff,66px 72px #fff,72px 72px,24px 78px,30px 78px,36px 78px #9fa1a1,42px 78px #9fa1a1,48px 78px #9fa1a1,54px 78px #9fa1a1,60px 78px,66px 78px,36px 84px,42px 84px,48px 84px,54px 84px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-pokeball::before{box-shadow:36px 6px 0 .020em,42px 6px 0 .020em,48px 6px 0 .020em,54px 6px 0 .020em,24px 12px 0 .020em,30px 12px 0 .020em,36px 12px 0 .020em #ff001d,42px 12px 0 .020em #ff001d,48px 12px 0 .020em #ff001d,54px 12px 0 .020em #ff001d,60px 12px 0 .020em,66px 12px 0 .020em,18px 18px 0 .020em,24px 18px 0 .020em #fff,30px 18px 0 .020em #fff,36px 18px 0 .020em #ff001d,42px 18px 0 .020em #ff001d,48px 18px 0 .020em #ff001d,54px 18px 0 .020em #ff001d,60px 18px 0 .020em #ff001d,66px 18px 0 .020em #ff001d,72px 18px 0 .020em,12px 24px 0 .020em,18px 24px 0 .020em #fff,24px 24px 0 .020em #fff,30px 24px 0 .020em #ff001d,36px 24px 0 .020em #ff001d,42px 24px 0 .020em #ff001d,48px 24px 0 .020em #ff001d,54px 24px 0 .020em #ff001d,60px 24px 0 .020em #ff001d,66px 24px 0 .020em #ff001d,72px 24px 0 .020em,78px 24px 0 .020em,12px 30px 0 .020em,18px 30px 0 .020em #fff,24px 30px 0 .020em #ff001d,30px 30px 0 .020em #ff001d,36px 30px 0 .020em #ff001d,42px 30px 0 .020em #ff001d,48px 30px 0 .020em #ff001d,54px 30px 0 .020em #ff001d,60px 30px 0 .020em #ff001d,66px 30px 0 .020em #ff001d,72px 30px 0 .020em #ff001d,78px 30px 0 .020em,6px 36px 0 .020em,12px 36px 0 .020em #fff,18px 36px 0 .020em #ff001d,24px 36px 0 .020em #ff001d,30px 36px 0 .020em #ff001d,36px 36px 0 .020em #ff001d,42px 36px 0 .020em #ff001d,48px 36px 0 .020em #ff001d,54px 36px 0 .020em #ff001d,60px 36px 0 .020em #ff001d,66px 36px 0 .020em #ff001d,72px 36px 0 .020em #ff001d,78px 36px 0 .020em #ff001d,84px 36px 0 .020em,6px 42px 0 .020em,12px 42px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em #ff001d,30px 42px 0 .020em #ff001d,36px 42px 0 .020em #ff001d,42px 42px 0 .020em #ff001d,48px 42px 0 .020em,54px 42px 0 .020em,60px 42px 0 .020em,66px 42px 0 .020em #ff001d,72px 42px 0 .020em #ff001d,78px 42px 0 .020em #ff001d,84px 42px 0 .020em,6px 48px 0 .020em,12px 48px 0 .020em,18px 48px 0 .020em,24px 48px 0 .020em,30px 48px 0 .020em #ff001d,36px 48px 0 .020em #ff001d,42px 48px 0 .020em,48px 48px 0 .020em #fff,54px 48px 0 .020em #fff,60px 48px 0 .020em #fff,66px 48px 0 .020em,72px 48px 0 .020em #ff001d,78px 48px 0 .020em #ff001d,84px 48px 0 .020em,6px 54px 0 .020em,12px 54px 0 .020em #9fa1a1,18px 54px 0 .020em #fff,24px 54px 0 .020em,30px 54px 0 .020em,36px 54px 0 .020em,42px 54px 0 .020em,48px 54px 0 .020em #fff,54px 54px 0 .020em #fff,60px 54px 0 .020em #fff,66px 54px 0 .020em,72px 54px 0 .020em,78px 54px 0 .020em,84px 54px 0 .020em,12px 60px 0 .020em,18px 60px 0 .020em #fff,24px 60px 0 .020em #fff,30px 60px 0 .020em #fff,36px 60px 0 .020em,42px 60px 0 .020em,48px 60px 0 .020em #fff,54px 60px 0 .020em #fff,60px 60px 0 .020em #fff,66px 60px 0 .020em,72px 60px 0 .020em #fff,78px 60px 0 .020em,12px 66px 0 .020em,18px 66px 0 .020em #fff,24px 66px 0 .020em #fff,30px 66px 0 .020em #fff,36px 66px 0 .020em #fff,42px 66px 0 .020em #fff,48px 66px 0 .020em,54px 66px 0 .020em,60px 66px 0 .020em,66px 66px 0 .020em #fff,72px 66px 0 .020em #fff,78px 66px 0 .020em,18px 72px 0 .020em,24px 72px 0 .020em #9fa1a1,30px 72px 0 .020em #9fa1a1,36px 72px 0 .020em #fff,42px 72px 0 .020em #fff,48px 72px 0 .020em #fff,54px 72px 0 .020em #fff,60px 72px 0 .020em #fff,66px 72px 0 .020em #fff,72px 72px 0 .020em,24px 78px 0 .020em,30px 78px 0 .020em,36px 78px 0 .020em #9fa1a1,42px 78px 0 .020em #9fa1a1,48px 78px 0 .020em #9fa1a1,54px 78px 0 .020em #9fa1a1,60px 78px 0 .020em,66px 78px 0 .020em,36px 84px 0 .020em,42px 84px 0 .020em,48px 84px 0 .020em,54px 84px 0 .020em}}.nes-bulbasaur{position:relative;display:inline-block;width:120px;height:102px}.nes-bulbasaur::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#000;box-shadow:78px 6px,84px 6px,90px 6px,72px 12px,78px 12px #8beb46,84px 12px #8beb46,90px 12px #8beb46,96px 12px,60px 18px,66px 18px,72px 18px,78px 18px #8beb46,84px 18px #8beb46,90px 18px #8beb46,96px 18px,48px 24px,54px 24px,60px 24px #8beb46,66px 24px #8beb46,72px 24px #2d8d22,78px 24px #8beb46,84px 24px #8beb46,90px 24px #2d8d22,96px 24px #8beb46,102px 24px,108px 24px,24px 30px,30px 30px,42px 30px,48px 30px #8beb46,54px 30px #8beb46,60px 30px #8beb46,66px 30px #2d8d22,72px 30px #2d8d22,78px 30px #8beb46,84px 30px #8beb46,90px 30px #2d8d22,96px 30px #8beb46,102px 30px #8beb46,108px 30px #8beb46,114px 30px,18px 36px,24px 36px #5ceee1,30px 36px #5ceee1,36px 36px,42px 36px,48px 36px #8beb46,54px 36px #8beb46,60px 36px #2d8d22,66px 36px #8beb46,72px 36px #2d8d22,78px 36px #8beb46,84px 36px #8beb46,90px 36px #8beb46,96px 36px #2d8d22,102px 36px #8beb46,108px 36px #8beb46,114px 36px #8beb46,120px 36px,18px 42px,24px 42px #5ceee1,30px 42px #5ceee1,36px 42px #5ceee1,42px 42px,48px 42px,54px 42px #2d8d22,60px 42px #8beb46,66px 42px #2d8d22,72px 42px #8beb46,78px 42px #8beb46,84px 42px #8beb46,90px 42px #8beb46,96px 42px #8beb46,102px 42px #2d8d22,108px 42px #8beb46,114px 42px #8beb46,120px 42px,18px 48px,24px 48px #5ceee1,30px 48px #5ceee1,36px 48px #5ceee1,42px 48px #5ceee1,48px 48px #3fc3b5,54px 48px,60px 48px #8beb46,66px 48px #2d8d22,72px 48px #8beb46,78px 48px #8beb46,84px 48px #8beb46,90px 48px #8beb46,96px 48px #8beb46,102px 48px #2d8d22,108px 48px #8beb46,114px 48px #8beb46,120px 48px,12px 54px,18px 54px #5ceee1,24px 54px #5ceee1,30px 54px #3fc3b5,36px 54px #5ceee1,42px 54px #3fc3b5,48px 54px #3fc3b5,54px 54px #5ceee1,60px 54px,66px 54px,72px 54px,78px 54px #8beb46,84px 54px #8beb46,90px 54px #8beb46,96px 54px #8beb46,102px 54px #2d8d22,108px 54px #8beb46,114px 54px,6px 60px,12px 60px,18px 60px #3fc3b5,24px 60px #5ceee1,30px 60px #5ceee1,36px 60px #5ceee1,42px 60px #5ceee1,48px 60px #5ceee1,54px 60px #5ceee1,60px 60px #5ceee1,66px 60px #5ceee1,72px 60px,78px 60px #8beb46,84px 60px #8beb46,90px 60px #8beb46,96px 60px,102px 60px,108px 60px,114px 60px,6px 66px,12px 66px,18px 66px #3fc3b5,24px 66px #5ceee1,30px 66px #5ceee1,36px 66px #5ceee1,42px 66px #3fc3b5,48px 66px #5ceee1,54px 66px #5ceee1,60px 66px #5ceee1,66px 66px,72px 66px #3fc3b5,78px 66px,84px 66px,90px 66px,96px 66px #3fc3b5,102px 66px #3fc3b5,108px 66px #3fc3b5,114px 66px,6px 72px,12px 72px #5ceee1,18px 72px #5ceee1,24px 72px #5ceee1,30px 72px #5ceee1,36px 72px #3fc3b5,42px 72px #5ceee1,48px 72px,54px 72px,60px 72px #5ceee1,66px 72px #3fc3b5,72px 72px #3fc3b5,78px 72px #3fc3b5,84px 72px #3fc3b5,90px 72px #3fc3b5,96px 72px,102px 72px #3fc3b5,108px 72px #fdfdf5,114px 72px,6px 78px,12px 78px #3fc3b5,18px 78px #5ceee1,24px 78px #5ceee1,30px 78px #5ceee1,36px 78px #5ceee1,42px 78px,48px 78px #ca242a,54px 78px #fdfdf5,60px 78px #fdfdf5,66px 78px #3fc3b5,72px 78px #3fc3b5,78px 78px,84px 78px #3fc3b5,90px 78px #3fc3b5,96px 78px,102px 78px,108px 78px,12px 84px,18px 84px #3fc3b5,24px 84px #5ceee1,30px 84px #5ceee1,36px 84px #5ceee1,42px 84px,48px 84px #ca242a,54px 84px #fdfdf5,60px 84px #5ceee1,66px 84px #3fc3b5,72px 84px,78px 84px #3fc3b5,84px 84px #3fc3b5,90px 84px,18px 90px,24px 90px,30px 90px #3fc3b5,36px 90px #3fc3b5,42px 90px #3fc3b5,48px 90px #3fc3b5,54px 90px #3fc3b5,60px 90px #3fc3b5,66px 90px,72px 90px #3fc3b5,78px 90px #3fc3b5,84px 90px #3fc3b5,90px 90px,30px 96px,36px 96px,42px 96px,48px 96px,54px 96px,60px 96px,66px 96px,72px 96px #fdfdf5,78px 96px #3fc3b5,84px 96px #fdfdf5,90px 96px,72px 102px,78px 102px,84px 102px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-bulbasaur::before{box-shadow:78px 6px 0 .020em,84px 6px 0 .020em,90px 6px 0 .020em,72px 12px 0 .020em,78px 12px 0 .020em #8beb46,84px 12px 0 .020em #8beb46,90px 12px 0 .020em #8beb46,96px 12px 0 .020em,60px 18px 0 .020em,66px 18px 0 .020em,72px 18px 0 .020em,78px 18px 0 .020em #8beb46,84px 18px 0 .020em #8beb46,90px 18px 0 .020em #8beb46,96px 18px 0 .020em,48px 24px 0 .020em,54px 24px 0 .020em,60px 24px 0 .020em #8beb46,66px 24px 0 .020em #8beb46,72px 24px 0 .020em #2d8d22,78px 24px 0 .020em #8beb46,84px 24px 0 .020em #8beb46,90px 24px 0 .020em #2d8d22,96px 24px 0 .020em #8beb46,102px 24px 0 .020em,108px 24px 0 .020em,24px 30px 0 .020em,30px 30px 0 .020em,42px 30px 0 .020em,48px 30px 0 .020em #8beb46,54px 30px 0 .020em #8beb46,60px 30px 0 .020em #8beb46,66px 30px 0 .020em #2d8d22,72px 30px 0 .020em #2d8d22,78px 30px 0 .020em #8beb46,84px 30px 0 .020em #8beb46,90px 30px 0 .020em #2d8d22,96px 30px 0 .020em #8beb46,102px 30px 0 .020em #8beb46,108px 30px 0 .020em #8beb46,114px 30px 0 .020em,18px 36px 0 .020em,24px 36px 0 .020em #5ceee1,30px 36px 0 .020em #5ceee1,36px 36px 0 .020em,42px 36px 0 .020em,48px 36px 0 .020em #8beb46,54px 36px 0 .020em #8beb46,60px 36px 0 .020em #2d8d22,66px 36px 0 .020em #8beb46,72px 36px 0 .020em #2d8d22,78px 36px 0 .020em #8beb46,84px 36px 0 .020em #8beb46,90px 36px 0 .020em #8beb46,96px 36px 0 .020em #2d8d22,102px 36px 0 .020em #8beb46,108px 36px 0 .020em #8beb46,114px 36px 0 .020em #8beb46,120px 36px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em #5ceee1,30px 42px 0 .020em #5ceee1,36px 42px 0 .020em #5ceee1,42px 42px 0 .020em,48px 42px 0 .020em,54px 42px 0 .020em #2d8d22,60px 42px 0 .020em #8beb46,66px 42px 0 .020em #2d8d22,72px 42px 0 .020em #8beb46,78px 42px 0 .020em #8beb46,84px 42px 0 .020em #8beb46,90px 42px 0 .020em #8beb46,96px 42px 0 .020em #8beb46,102px 42px 0 .020em #2d8d22,108px 42px 0 .020em #8beb46,114px 42px 0 .020em #8beb46,120px 42px 0 .020em,18px 48px 0 .020em,24px 48px 0 .020em #5ceee1,30px 48px 0 .020em #5ceee1,36px 48px 0 .020em #5ceee1,42px 48px 0 .020em #5ceee1,48px 48px 0 .020em #3fc3b5,54px 48px 0 .020em,60px 48px 0 .020em #8beb46,66px 48px 0 .020em #2d8d22,72px 48px 0 .020em #8beb46,78px 48px 0 .020em #8beb46,84px 48px 0 .020em #8beb46,90px 48px 0 .020em #8beb46,96px 48px 0 .020em #8beb46,102px 48px 0 .020em #2d8d22,108px 48px 0 .020em #8beb46,114px 48px 0 .020em #8beb46,120px 48px 0 .020em,12px 54px 0 .020em,18px 54px 0 .020em #5ceee1,24px 54px 0 .020em #5ceee1,30px 54px 0 .020em #3fc3b5,36px 54px 0 .020em #5ceee1,42px 54px 0 .020em #3fc3b5,48px 54px 0 .020em #3fc3b5,54px 54px 0 .020em #5ceee1,60px 54px 0 .020em,66px 54px 0 .020em,72px 54px 0 .020em,78px 54px 0 .020em #8beb46,84px 54px 0 .020em #8beb46,90px 54px 0 .020em #8beb46,96px 54px 0 .020em #8beb46,102px 54px 0 .020em #2d8d22,108px 54px 0 .020em #8beb46,114px 54px 0 .020em,6px 60px 0 .020em,12px 60px 0 .020em,18px 60px 0 .020em #3fc3b5,24px 60px 0 .020em #5ceee1,30px 60px 0 .020em #5ceee1,36px 60px 0 .020em #5ceee1,42px 60px 0 .020em #5ceee1,48px 60px 0 .020em #5ceee1,54px 60px 0 .020em #5ceee1,60px 60px 0 .020em #5ceee1,66px 60px 0 .020em #5ceee1,72px 60px 0 .020em,78px 60px 0 .020em #8beb46,84px 60px 0 .020em #8beb46,90px 60px 0 .020em #8beb46,96px 60px 0 .020em,102px 60px 0 .020em,108px 60px 0 .020em,114px 60px 0 .020em,6px 66px 0 .020em,12px 66px 0 .020em,18px 66px 0 .020em #3fc3b5,24px 66px 0 .020em #5ceee1,30px 66px 0 .020em #5ceee1,36px 66px 0 .020em #5ceee1,42px 66px 0 .020em #3fc3b5,48px 66px 0 .020em #5ceee1,54px 66px 0 .020em #5ceee1,60px 66px 0 .020em #5ceee1,66px 66px 0 .020em,72px 66px 0 .020em #3fc3b5,78px 66px 0 .020em,84px 66px 0 .020em,90px 66px 0 .020em,96px 66px 0 .020em #3fc3b5,102px 66px 0 .020em #3fc3b5,108px 66px 0 .020em #3fc3b5,114px 66px 0 .020em,6px 72px 0 .020em,12px 72px 0 .020em #5ceee1,18px 72px 0 .020em #5ceee1,24px 72px 0 .020em #5ceee1,30px 72px 0 .020em #5ceee1,36px 72px 0 .020em #3fc3b5,42px 72px 0 .020em #5ceee1,48px 72px 0 .020em,54px 72px 0 .020em,60px 72px 0 .020em #5ceee1,66px 72px 0 .020em #3fc3b5,72px 72px 0 .020em #3fc3b5,78px 72px 0 .020em #3fc3b5,84px 72px 0 .020em #3fc3b5,90px 72px 0 .020em #3fc3b5,96px 72px 0 .020em,102px 72px 0 .020em #3fc3b5,108px 72px 0 .020em #fdfdf5,114px 72px 0 .020em,6px 78px 0 .020em,12px 78px 0 .020em #3fc3b5,18px 78px 0 .020em #5ceee1,24px 78px 0 .020em #5ceee1,30px 78px 0 .020em #5ceee1,36px 78px 0 .020em #5ceee1,42px 78px 0 .020em,48px 78px 0 .020em #ca242a,54px 78px 0 .020em #fdfdf5,60px 78px 0 .020em #fdfdf5,66px 78px 0 .020em #3fc3b5,72px 78px 0 .020em #3fc3b5,78px 78px 0 .020em,84px 78px 0 .020em #3fc3b5,90px 78px 0 .020em #3fc3b5,96px 78px 0 .020em,102px 78px 0 .020em,108px 78px 0 .020em,12px 84px 0 .020em,18px 84px 0 .020em #3fc3b5,24px 84px 0 .020em #5ceee1,30px 84px 0 .020em #5ceee1,36px 84px 0 .020em #5ceee1,42px 84px 0 .020em,48px 84px 0 .020em #ca242a,54px 84px 0 .020em #fdfdf5,60px 84px 0 .020em #5ceee1,66px 84px 0 .020em #3fc3b5,72px 84px 0 .020em,78px 84px 0 .020em #3fc3b5,84px 84px 0 .020em #3fc3b5,90px 84px 0 .020em,18px 90px 0 .020em,24px 90px 0 .020em,30px 90px 0 .020em #3fc3b5,36px 90px 0 .020em #3fc3b5,42px 90px 0 .020em #3fc3b5,48px 90px 0 .020em #3fc3b5,54px 90px 0 .020em #3fc3b5,60px 90px 0 .020em #3fc3b5,66px 90px 0 .020em,72px 90px 0 .020em #3fc3b5,78px 90px 0 .020em #3fc3b5,84px 90px 0 .020em #3fc3b5,90px 90px 0 .020em,30px 96px 0 .020em,36px 96px 0 .020em,42px 96px 0 .020em,48px 96px 0 .020em,54px 96px 0 .020em,60px 96px 0 .020em,66px 96px 0 .020em,72px 96px 0 .020em #fdfdf5,78px 96px 0 .020em #3fc3b5,84px 96px 0 .020em #fdfdf5,90px 96px 0 .020em,72px 102px 0 .020em,78px 102px 0 .020em,84px 102px 0 .020em}}.nes-charmander{position:relative;display:inline-block;width:126px;height:108px}.nes-charmander::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#f77702;box-shadow:30px 6px #000202,36px 6px #000202,42px 6px #000202,48px 6px #000202,108px 6px #000202,24px 12px #000202,30px 12px,36px 12px,42px 12px,48px 12px,54px 12px #000202,102px 12px #000202,108px 12px #eb2010,114px 12px #000202,18px 18px #000202,24px 18px,30px 18px,36px 18px,42px 18px,48px 18px,54px 18px,60px 18px #000202,102px 18px #000202,108px 18px #eb2010,114px 18px #eb2010,120px 18px #000202,18px 24px #000202,24px 24px,30px 24px,36px 24px,42px 24px,48px 24px,54px 24px,60px 24px #000202,102px 24px #000202,108px 24px #eb2010,114px 24px #eb2010,120px 24px #000202,12px 30px #000202,18px 30px,24px 30px,30px 30px,36px 30px,42px 30px,48px 30px,54px 30px,60px 30px,66px 30px #000202,96px 30px #000202,102px 30px #eb2010,108px 30px #eb2010,114px 30px,120px 30px #eb2010,126px 30px #000202,6px 36px #000202,12px 36px,18px 36px,24px 36px,30px 36px,36px 36px #fdfcff,42px 36px #000202,48px 36px,54px 36px,60px 36px,66px 36px #000202,96px 36px #000202,102px 36px #eb2010,108px 36px,114px 36px #e7d70e,120px 36px #eb2010,126px 36px #000202,6px 42px #000202,12px 42px,18px 42px,24px 42px,30px 42px,36px 42px #000202,42px 42px #000202,48px 42px,54px 42px,60px 42px,66px 42px,72px 42px #000202,96px 42px #000202,102px 42px #eb2010,108px 42px #e5d70a,114px 42px #e5d70a,120px 42px #eb2010,126px 42px #000202,6px 48px #000202,12px 48px,18px 48px,24px 48px,30px 48px,36px 48px #000202,42px 48px #000202,48px 48px,54px 48px,60px 48px,66px 48px,72px 48px #000202,102px 48px #000202,108px 48px #e5d70a,114px 48px #000202,120px 48px #000202,12px 54px #000202,18px 54px,24px 54px,30px 54px,36px 54px,42px 54px,48px 54px,54px 54px,60px 54px,66px 54px,72px 54px,78px 54px #000202,102px 54px #000202,108px 54px,114px 54px #000202,18px 60px #000202,24px 60px #000202,30px 60px,36px 60px,42px 60px,48px 60px,54px 60px,60px 60px,66px 60px,72px 60px,78px 60px,84px 60px #000202,96px 60px #000202,102px 60px,108px 60px,114px 60px #000202,30px 66px #000202,36px 66px #000202,42px 66px #000202,48px 66px,54px 66px,60px 66px #000202,66px 66px,72px 66px,78px 66px,84px 66px #000202,90px 66px #000202,96px 66px,102px 66px,108px 66px #000202,36px 72px #000202,42px 72px #e7d70e,48px 72px #e5d70a,54px 72px #000202,60px 72px,66px 72px,72px 72px,78px 72px,84px 72px,90px 72px #000202,96px 72px,102px 72px,108px 72px #000202,36px 78px #000202,42px 78px #e5d70a,48px 78px #e5d70a,54px 78px #e5d70a,60px 78px #000202,66px 78px #000202,72px 78px,78px 78px,84px 78px,90px 78px #000202,96px 78px,102px 78px #000202,30px 84px #000202,36px 84px #fdfcff,42px 84px #000202,48px 84px #e7d70e,54px 84px #e5d70a,60px 84px #e5d70a,66px 84px,72px 84px,78px 84px,84px 84px,90px 84px #000202,96px 84px #000202,36px 90px #000202,42px 90px #000202,48px 90px #000202,54px 90px #e5d70a,60px 90px #e5d70a,66px 90px,72px 90px,78px 90px,84px 90px #000202,90px 90px #000202,54px 96px #000202,60px 96px #000202,66px 96px #000202,78px 96px #000202,84px 96px #000202,60px 102px #000202,66px 102px #fdfcff,78px 102px #fdfcff,84px 102px #000202,66px 108px #000202,72px 108px #000202,78px 108px #000202;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-charmander::before{box-shadow:30px 6px 0 .020em #000202,36px 6px 0 .020em #000202,42px 6px 0 .020em #000202,48px 6px 0 .020em #000202,108px 6px 0 .020em #000202,24px 12px 0 .020em #000202,30px 12px 0 .020em,36px 12px 0 .020em,42px 12px 0 .020em,48px 12px 0 .020em,54px 12px 0 .020em #000202,102px 12px 0 .020em #000202,108px 12px 0 .020em #eb2010,114px 12px 0 .020em #000202,18px 18px 0 .020em #000202,24px 18px 0 .020em,30px 18px 0 .020em,36px 18px 0 .020em,42px 18px 0 .020em,48px 18px 0 .020em,54px 18px 0 .020em,60px 18px 0 .020em #000202,102px 18px 0 .020em #000202,108px 18px 0 .020em #eb2010,114px 18px 0 .020em #eb2010,120px 18px 0 .020em #000202,18px 24px 0 .020em #000202,24px 24px 0 .020em,30px 24px 0 .020em,36px 24px 0 .020em,42px 24px 0 .020em,48px 24px 0 .020em,54px 24px 0 .020em,60px 24px 0 .020em #000202,102px 24px 0 .020em #000202,108px 24px 0 .020em #eb2010,114px 24px 0 .020em #eb2010,120px 24px 0 .020em #000202,12px 30px 0 .020em #000202,18px 30px 0 .020em,24px 30px 0 .020em,30px 30px 0 .020em,36px 30px 0 .020em,42px 30px 0 .020em,48px 30px 0 .020em,54px 30px 0 .020em,60px 30px 0 .020em,66px 30px 0 .020em #000202,96px 30px 0 .020em #000202,102px 30px 0 .020em #eb2010,108px 30px 0 .020em #eb2010,114px 30px 0 .020em,120px 30px 0 .020em #eb2010,126px 30px 0 .020em #000202,6px 36px 0 .020em #000202,12px 36px 0 .020em,18px 36px 0 .020em,24px 36px 0 .020em,30px 36px 0 .020em,36px 36px 0 .020em #fdfcff,42px 36px 0 .020em #000202,48px 36px 0 .020em,54px 36px 0 .020em,60px 36px 0 .020em,66px 36px 0 .020em #000202,96px 36px 0 .020em #000202,102px 36px 0 .020em #eb2010,108px 36px 0 .020em,114px 36px 0 .020em #e7d70e,120px 36px 0 .020em #eb2010,126px 36px 0 .020em #000202,6px 42px 0 .020em #000202,12px 42px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em,30px 42px 0 .020em,36px 42px 0 .020em #000202,42px 42px 0 .020em #000202,48px 42px 0 .020em,54px 42px 0 .020em,60px 42px 0 .020em,66px 42px 0 .020em,72px 42px 0 .020em #000202,96px 42px 0 .020em #000202,102px 42px 0 .020em #eb2010,108px 42px 0 .020em #e5d70a,114px 42px 0 .020em #e5d70a,120px 42px 0 .020em #eb2010,126px 42px 0 .020em #000202,6px 48px 0 .020em #000202,12px 48px 0 .020em,18px 48px 0 .020em,24px 48px 0 .020em,30px 48px 0 .020em,36px 48px 0 .020em #000202,42px 48px 0 .020em #000202,48px 48px 0 .020em,54px 48px 0 .020em,60px 48px 0 .020em,66px 48px 0 .020em,72px 48px 0 .020em #000202,102px 48px 0 .020em #000202,108px 48px 0 .020em #e5d70a,114px 48px 0 .020em #000202,120px 48px 0 .020em #000202,12px 54px 0 .020em #000202,18px 54px 0 .020em,24px 54px 0 .020em,30px 54px 0 .020em,36px 54px 0 .020em,42px 54px 0 .020em,48px 54px 0 .020em,54px 54px 0 .020em,60px 54px 0 .020em,66px 54px 0 .020em,72px 54px 0 .020em,78px 54px 0 .020em #000202,102px 54px 0 .020em #000202,108px 54px 0 .020em,114px 54px 0 .020em #000202,18px 60px 0 .020em #000202,24px 60px 0 .020em #000202,30px 60px 0 .020em,36px 60px 0 .020em,42px 60px 0 .020em,48px 60px 0 .020em,54px 60px 0 .020em,60px 60px 0 .020em,66px 60px 0 .020em,72px 60px 0 .020em,78px 60px 0 .020em,84px 60px 0 .020em #000202,96px 60px 0 .020em #000202,102px 60px 0 .020em,108px 60px 0 .020em,114px 60px 0 .020em #000202,30px 66px 0 .020em #000202,36px 66px 0 .020em #000202,42px 66px 0 .020em #000202,48px 66px 0 .020em,54px 66px 0 .020em,60px 66px 0 .020em #000202,66px 66px 0 .020em,72px 66px 0 .020em,78px 66px 0 .020em,84px 66px 0 .020em #000202,90px 66px 0 .020em #000202,96px 66px 0 .020em,102px 66px 0 .020em,108px 66px 0 .020em #000202,36px 72px 0 .020em #000202,42px 72px 0 .020em #e7d70e,48px 72px 0 .020em #e5d70a,54px 72px 0 .020em #000202,60px 72px 0 .020em,66px 72px 0 .020em,72px 72px 0 .020em,78px 72px 0 .020em,84px 72px 0 .020em,90px 72px 0 .020em #000202,96px 72px 0 .020em,102px 72px 0 .020em,108px 72px 0 .020em #000202,36px 78px 0 .020em #000202,42px 78px 0 .020em #e5d70a,48px 78px 0 .020em #e5d70a,54px 78px 0 .020em #e5d70a,60px 78px 0 .020em #000202,66px 78px 0 .020em #000202,72px 78px 0 .020em,78px 78px 0 .020em,84px 78px 0 .020em,90px 78px 0 .020em #000202,96px 78px 0 .020em,102px 78px 0 .020em #000202,30px 84px 0 .020em #000202,36px 84px 0 .020em #fdfcff,42px 84px 0 .020em #000202,48px 84px 0 .020em #e7d70e,54px 84px 0 .020em #e5d70a,60px 84px 0 .020em #e5d70a,66px 84px 0 .020em,72px 84px 0 .020em,78px 84px 0 .020em,84px 84px 0 .020em,90px 84px 0 .020em #000202,96px 84px 0 .020em #000202,36px 90px 0 .020em #000202,42px 90px 0 .020em #000202,48px 90px 0 .020em #000202,54px 90px 0 .020em #e5d70a,60px 90px 0 .020em #e5d70a,66px 90px 0 .020em,72px 90px 0 .020em,78px 90px 0 .020em,84px 90px 0 .020em #000202,90px 90px 0 .020em #000202,54px 96px 0 .020em #000202,60px 96px 0 .020em #000202,66px 96px 0 .020em #000202,78px 96px 0 .020em #000202,84px 96px 0 .020em #000202,60px 102px 0 .020em #000202,66px 102px 0 .020em #fdfcff,78px 102px 0 .020em #fdfcff,84px 102px 0 .020em #000202,66px 108px 0 .020em #000202,72px 108px 0 .020em #000202,78px 108px 0 .020em #000202}}.nes-squirtle{position:relative;display:inline-block;width:126px;height:102px}.nes-squirtle::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#9cf;box-shadow:24px 6px #000,30px 6px #000,36px 6px #000,42px 6px #000,102px 6px #000,108px 6px #000,114px 6px #000,18px 12px #000,24px 12px,30px 12px,36px 12px,42px 12px,48px 12px #000,54px 12px #000,96px 12px #000,102px 12px,108px 12px,114px 12px,120px 12px #000,12px 18px #000,18px 18px,24px 18px,30px 18px,36px 18px,42px 18px,48px 18px,54px 18px,60px 18px #000,66px 18px #000,90px 18px #000,96px 18px,102px 18px,108px 18px,114px 18px,120px 18px,126px 18px #000,12px 24px #000,18px 24px,24px 24px,30px 24px,36px 24px,42px 24px,48px 24px,54px 24px,60px 24px #000,66px 24px #f89934,72px 24px #000,78px 24px #000,90px 24px #000,96px 24px,102px 24px,108px 24px,114px 24px #000,120px 24px,126px 24px #000,6px 30px #000,12px 30px #cb6633,18px 30px,24px 30px,30px 30px,36px 30px,42px 30px,48px 30px,54px 30px,60px 30px,66px 30px #f89934,72px 30px #f89934,78px 30px #f89934,84px 30px #000,90px 30px,96px 30px,102px 30px,108px 30px #000,114px 30px,120px 30px,126px 30px #000,6px 36px #000,12px 36px,18px 36px,24px 36px,30px 36px,36px 36px #fff,42px 36px #000,48px 36px,54px 36px,60px 36px,66px 36px #fff,72px 36px #f89934,78px 36px #f89934,84px 36px #f89934,90px 36px #000,96px 36px,102px 36px,108px 36px #000,114px 36px,120px 36px #000,6px 42px #000,12px 42px,18px 42px,24px 42px,30px 42px,36px 42px #000,42px 42px #cb6633,48px 42px,54px 42px,60px 42px,66px 42px #fff,72px 42px #f89934,78px 42px #f89934,84px 42px #f89934,90px 42px #000,96px 42px,102px 42px #000,108px 42px #000,114px 42px #000,12px 48px #000,18px 48px,24px 48px,30px 48px,36px 48px #000,42px 48px #cb6633,48px 48px,54px 48px,60px 48px,66px 48px #000,72px 48px #fff,78px 48px #f89934,84px 48px #f89934,90px 48px #f89934,96px 48px #000,102px 48px #000,18px 54px #000,24px 54px #000,30px 54px,36px 54px,42px 54px,48px 54px,54px 54px #000,60px 54px #000,66px 54px,72px 54px,78px 54px #fff,84px 54px #f89934,90px 54px #f89934,96px 54px #000,18px 60px #000,24px 60px,30px 60px #000,36px 60px #000,42px 60px #000,48px 60px #000,54px 60px,60px 60px,66px 60px,72px 60px,78px 60px #fff,84px 60px #f89934,90px 60px #f89934,96px 60px #000,24px 66px #000,30px 66px #000,36px 66px #ff3,42px 66px #ff3,48px 66px #000,54px 66px,60px 66px,66px 66px,72px 66px #000,78px 66px #fff,84px 66px #f89934,90px 66px #f89934,96px 66px #000,36px 72px #000,42px 72px #ff3,48px 72px #ff3,54px 72px #000,60px 72px #000,66px 72px #000,72px 72px #000,78px 72px #fff,84px 72px #f89934,90px 72px #f89934,96px 72px #000,30px 78px #000,36px 78px,42px 78px #000,48px 78px #ff3,54px 78px #ff3,60px 78px #ff3,66px 78px #ff3,72px 78px #ff3,78px 78px #000,84px 78px #fff,90px 78px #000,36px 84px #000,42px 84px #000,48px 84px #000,54px 84px #000,60px 84px #ff3,66px 84px #ff3,72px 84px,78px 84px #000,84px 84px #fff,90px 84px #000,54px 90px #000,60px 90px #000,66px 90px #000,72px 90px,78px 90px #000,84px 90px #000,60px 96px #000,66px 96px,72px 96px,78px 96px,84px 96px #000,66px 102px #000,72px 102px #000,78px 102px #000;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-squirtle::before{box-shadow:24px 6px 0 .020em #000,30px 6px 0 .020em #000,36px 6px 0 .020em #000,42px 6px 0 .020em #000,102px 6px 0 .020em #000,108px 6px 0 .020em #000,114px 6px 0 .020em #000,18px 12px 0 .020em #000,24px 12px 0 .020em,30px 12px 0 .020em,36px 12px 0 .020em,42px 12px 0 .020em,48px 12px 0 .020em #000,54px 12px 0 .020em #000,96px 12px 0 .020em #000,102px 12px 0 .020em,108px 12px 0 .020em,114px 12px 0 .020em,120px 12px 0 .020em #000,12px 18px 0 .020em #000,18px 18px 0 .020em,24px 18px 0 .020em,30px 18px 0 .020em,36px 18px 0 .020em,42px 18px 0 .020em,48px 18px 0 .020em,54px 18px 0 .020em,60px 18px 0 .020em #000,66px 18px 0 .020em #000,90px 18px 0 .020em #000,96px 18px 0 .020em,102px 18px 0 .020em,108px 18px 0 .020em,114px 18px 0 .020em,120px 18px 0 .020em,126px 18px 0 .020em #000,12px 24px 0 .020em #000,18px 24px 0 .020em,24px 24px 0 .020em,30px 24px 0 .020em,36px 24px 0 .020em,42px 24px 0 .020em,48px 24px 0 .020em,54px 24px 0 .020em,60px 24px 0 .020em #000,66px 24px 0 .020em #f89934,72px 24px 0 .020em #000,78px 24px 0 .020em #000,90px 24px 0 .020em #000,96px 24px 0 .020em,102px 24px 0 .020em,108px 24px 0 .020em,114px 24px 0 .020em #000,120px 24px 0 .020em,126px 24px 0 .020em #000,6px 30px 0 .020em #000,12px 30px 0 .020em #cb6633,18px 30px 0 .020em,24px 30px 0 .020em,30px 30px 0 .020em,36px 30px 0 .020em,42px 30px 0 .020em,48px 30px 0 .020em,54px 30px 0 .020em,60px 30px 0 .020em,66px 30px 0 .020em #f89934,72px 30px 0 .020em #f89934,78px 30px 0 .020em #f89934,84px 30px 0 .020em #000,90px 30px 0 .020em,96px 30px 0 .020em,102px 30px 0 .020em,108px 30px 0 .020em #000,114px 30px 0 .020em,120px 30px 0 .020em,126px 30px 0 .020em #000,6px 36px 0 .020em #000,12px 36px 0 .020em,18px 36px 0 .020em,24px 36px 0 .020em,30px 36px 0 .020em,36px 36px 0 .020em #fff,42px 36px 0 .020em #000,48px 36px 0 .020em,54px 36px 0 .020em,60px 36px 0 .020em,66px 36px 0 .020em #fff,72px 36px 0 .020em #f89934,78px 36px 0 .020em #f89934,84px 36px 0 .020em #f89934,90px 36px 0 .020em #000,96px 36px 0 .020em,102px 36px 0 .020em,108px 36px 0 .020em #000,114px 36px 0 .020em,120px 36px 0 .020em #000,6px 42px 0 .020em #000,12px 42px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em,30px 42px 0 .020em,36px 42px 0 .020em #000,42px 42px 0 .020em #cb6633,48px 42px 0 .020em,54px 42px 0 .020em,60px 42px 0 .020em,66px 42px 0 .020em #fff,72px 42px 0 .020em #f89934,78px 42px 0 .020em #f89934,84px 42px 0 .020em #f89934,90px 42px 0 .020em #000,96px 42px 0 .020em,102px 42px 0 .020em #000,108px 42px 0 .020em #000,114px 42px 0 .020em #000,12px 48px 0 .020em #000,18px 48px 0 .020em,24px 48px 0 .020em,30px 48px 0 .020em,36px 48px 0 .020em #000,42px 48px 0 .020em #cb6633,48px 48px 0 .020em,54px 48px 0 .020em,60px 48px 0 .020em,66px 48px 0 .020em #000,72px 48px 0 .020em #fff,78px 48px 0 .020em #f89934,84px 48px 0 .020em #f89934,90px 48px 0 .020em #f89934,96px 48px 0 .020em #000,102px 48px 0 .020em #000,18px 54px 0 .020em #000,24px 54px 0 .020em #000,30px 54px 0 .020em,36px 54px 0 .020em,42px 54px 0 .020em,48px 54px 0 .020em,54px 54px 0 .020em #000,60px 54px 0 .020em #000,66px 54px 0 .020em,72px 54px 0 .020em,78px 54px 0 .020em #fff,84px 54px 0 .020em #f89934,90px 54px 0 .020em #f89934,96px 54px 0 .020em #000,18px 60px 0 .020em #000,24px 60px 0 .020em,30px 60px 0 .020em #000,36px 60px 0 .020em #000,42px 60px 0 .020em #000,48px 60px 0 .020em #000,54px 60px 0 .020em,60px 60px 0 .020em,66px 60px 0 .020em,72px 60px 0 .020em,78px 60px 0 .020em #fff,84px 60px 0 .020em #f89934,90px 60px 0 .020em #f89934,96px 60px 0 .020em #000,24px 66px 0 .020em #000,30px 66px 0 .020em #000,36px 66px 0 .020em #ff3,42px 66px 0 .020em #ff3,48px 66px 0 .020em #000,54px 66px 0 .020em,60px 66px 0 .020em,66px 66px 0 .020em,72px 66px 0 .020em #000,78px 66px 0 .020em #fff,84px 66px 0 .020em #f89934,90px 66px 0 .020em #f89934,96px 66px 0 .020em #000,36px 72px 0 .020em #000,42px 72px 0 .020em #ff3,48px 72px 0 .020em #ff3,54px 72px 0 .020em #000,60px 72px 0 .020em #000,66px 72px 0 .020em #000,72px 72px 0 .020em #000,78px 72px 0 .020em #fff,84px 72px 0 .020em #f89934,90px 72px 0 .020em #f89934,96px 72px 0 .020em #000,30px 78px 0 .020em #000,36px 78px 0 .020em,42px 78px 0 .020em #000,48px 78px 0 .020em #ff3,54px 78px 0 .020em #ff3,60px 78px 0 .020em #ff3,66px 78px 0 .020em #ff3,72px 78px 0 .020em #ff3,78px 78px 0 .020em #000,84px 78px 0 .020em #fff,90px 78px 0 .020em #000,36px 84px 0 .020em #000,42px 84px 0 .020em #000,48px 84px 0 .020em #000,54px 84px 0 .020em #000,60px 84px 0 .020em #ff3,66px 84px 0 .020em #ff3,72px 84px 0 .020em,78px 84px 0 .020em #000,84px 84px 0 .020em #fff,90px 84px 0 .020em #000,54px 90px 0 .020em #000,60px 90px 0 .020em #000,66px 90px 0 .020em #000,72px 90px 0 .020em,78px 90px 0 .020em #000,84px 90px 0 .020em #000,60px 96px 0 .020em #000,66px 96px 0 .020em,72px 96px 0 .020em,78px 96px 0 .020em,84px 96px 0 .020em #000,66px 102px 0 .020em #000,72px 102px 0 .020em #000,78px 102px 0 .020em #000}}.nes-phone{position:relative;display:inline-block;width:48px;height:126px}.nes-phone::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#000;box-shadow:18px 6px,24px 6px,30px 6px,36px 6px,42px 6px,48px 6px,12px 12px,18px 12px,24px 12px #3c4665,30px 12px #3c4665,36px 12px #3c4665,42px 12px #596985,48px 12px,6px 18px,12px 18px,18px 18px #3c4665,24px 18px #3c4665,30px 18px #3c4665,36px 18px #3c4665,42px 18px #596985,48px 18px,6px 24px,12px 24px #3c4665,18px 24px #3c4665,24px 24px #3c4665,30px 24px #3c4665,36px 24px #3c4665,42px 24px #596985,48px 24px,6px 30px,12px 30px #3c4665,18px 30px #3c4665,24px 30px #3c4665,30px 30px #3c4665,36px 30px #3c4665,42px 30px #596985,48px 30px,6px 36px,12px 36px #3c4665,18px 36px #3c4665,24px 36px #3c4665,30px 36px #3c4665,36px 36px #3c4665,42px 36px #596985,48px 36px,6px 42px,12px 42px #3c4665,18px 42px #3c4665,24px 42px,30px 42px,36px 42px,42px 42px,48px 42px,6px 48px,12px 48px #3c4665,18px 48px #3c4665,24px 48px,6px 54px,12px 54px #3c4665,18px 54px #3c4665,24px 54px,6px 60px,12px 60px #3c4665,18px 60px #3c4665,24px 60px,6px 66px,12px 66px #3c4665,18px 66px #3c4665,24px 66px,6px 72px,12px 72px #3c4665,18px 72px #3c4665,24px 72px,6px 78px,12px 78px #3c4665,18px 78px #3c4665,24px 78px,6px 84px,12px 84px #3c4665,18px 84px #3c4665,24px 84px,6px 90px,12px 90px #3c4665,18px 90px #3c4665,24px 90px,30px 90px,36px 90px,42px 90px,48px 90px,6px 96px,12px 96px #3c4665,18px 96px #3c4665,24px 96px #3c4665,30px 96px #3c4665,36px 96px #3c4665,42px 96px #596985,48px 96px,6px 102px,12px 102px #3c4665,18px 102px #3c4665,24px 102px #3c4665,30px 102px #3c4665,36px 102px #3c4665,42px 102px #596985,48px 102px,6px 108px,12px 108px #3c4665,18px 108px #3c4665,24px 108px #3c4665,30px 108px #3c4665,36px 108px #3c4665,42px 108px #596985,48px 108px,6px 114px,12px 114px,18px 114px #3c4665,24px 114px #3c4665,30px 114px #3c4665,36px 114px #3c4665,42px 114px #596985,48px 114px,12px 120px,18px 120px,24px 120px #3c4665,30px 120px #3c4665,36px 120px #3c4665,42px 120px #596985,48px 120px,18px 126px,24px 126px,30px 126px,36px 126px,42px 126px,48px 126px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-phone::before{box-shadow:18px 6px 0 .020em,24px 6px 0 .020em,30px 6px 0 .020em,36px 6px 0 .020em,42px 6px 0 .020em,48px 6px 0 .020em,12px 12px 0 .020em,18px 12px 0 .020em,24px 12px 0 .020em #3c4665,30px 12px 0 .020em #3c4665,36px 12px 0 .020em #3c4665,42px 12px 0 .020em #596985,48px 12px 0 .020em,6px 18px 0 .020em,12px 18px 0 .020em,18px 18px 0 .020em #3c4665,24px 18px 0 .020em #3c4665,30px 18px 0 .020em #3c4665,36px 18px 0 .020em #3c4665,42px 18px 0 .020em #596985,48px 18px 0 .020em,6px 24px 0 .020em,12px 24px 0 .020em #3c4665,18px 24px 0 .020em #3c4665,24px 24px 0 .020em #3c4665,30px 24px 0 .020em #3c4665,36px 24px 0 .020em #3c4665,42px 24px 0 .020em #596985,48px 24px 0 .020em,6px 30px 0 .020em,12px 30px 0 .020em #3c4665,18px 30px 0 .020em #3c4665,24px 30px 0 .020em #3c4665,30px 30px 0 .020em #3c4665,36px 30px 0 .020em #3c4665,42px 30px 0 .020em #596985,48px 30px 0 .020em,6px 36px 0 .020em,12px 36px 0 .020em #3c4665,18px 36px 0 .020em #3c4665,24px 36px 0 .020em #3c4665,30px 36px 0 .020em #3c4665,36px 36px 0 .020em #3c4665,42px 36px 0 .020em #596985,48px 36px 0 .020em,6px 42px 0 .020em,12px 42px 0 .020em #3c4665,18px 42px 0 .020em #3c4665,24px 42px 0 .020em,30px 42px 0 .020em,36px 42px 0 .020em,42px 42px 0 .020em,48px 42px 0 .020em,6px 48px 0 .020em,12px 48px 0 .020em #3c4665,18px 48px 0 .020em #3c4665,24px 48px 0 .020em,6px 54px 0 .020em,12px 54px 0 .020em #3c4665,18px 54px 0 .020em #3c4665,24px 54px 0 .020em,6px 60px 0 .020em,12px 60px 0 .020em #3c4665,18px 60px 0 .020em #3c4665,24px 60px 0 .020em,6px 66px 0 .020em,12px 66px 0 .020em #3c4665,18px 66px 0 .020em #3c4665,24px 66px 0 .020em,6px 72px 0 .020em,12px 72px 0 .020em #3c4665,18px 72px 0 .020em #3c4665,24px 72px 0 .020em,6px 78px 0 .020em,12px 78px 0 .020em #3c4665,18px 78px 0 .020em #3c4665,24px 78px 0 .020em,6px 84px 0 .020em,12px 84px 0 .020em #3c4665,18px 84px 0 .020em #3c4665,24px 84px 0 .020em,6px 90px 0 .020em,12px 90px 0 .020em #3c4665,18px 90px 0 .020em #3c4665,24px 90px 0 .020em,30px 90px 0 .020em,36px 90px 0 .020em,42px 90px 0 .020em,48px 90px 0 .020em,6px 96px 0 .020em,12px 96px 0 .020em #3c4665,18px 96px 0 .020em #3c4665,24px 96px 0 .020em #3c4665,30px 96px 0 .020em #3c4665,36px 96px 0 .020em #3c4665,42px 96px 0 .020em #596985,48px 96px 0 .020em,6px 102px 0 .020em,12px 102px 0 .020em #3c4665,18px 102px 0 .020em #3c4665,24px 102px 0 .020em #3c4665,30px 102px 0 .020em #3c4665,36px 102px 0 .020em #3c4665,42px 102px 0 .020em #596985,48px 102px 0 .020em,6px 108px 0 .020em,12px 108px 0 .020em #3c4665,18px 108px 0 .020em #3c4665,24px 108px 0 .020em #3c4665,30px 108px 0 .020em #3c4665,36px 108px 0 .020em #3c4665,42px 108px 0 .020em #596985,48px 108px 0 .020em,6px 114px 0 .020em,12px 114px 0 .020em,18px 114px 0 .020em #3c4665,24px 114px 0 .020em #3c4665,30px 114px 0 .020em #3c4665,36px 114px 0 .020em #3c4665,42px 114px 0 .020em #596985,48px 114px 0 .020em,12px 120px 0 .020em,18px 120px 0 .020em,24px 120px 0 .020em #3c4665,30px 120px 0 .020em #3c4665,36px 120px 0 .020em #3c4665,42px 120px 0 .020em #596985,48px 120px 0 .020em,18px 126px 0 .020em,24px 126px 0 .020em,30px 126px 0 .020em,36px 126px 0 .020em,42px 126px 0 .020em,48px 126px 0 .020em}}.nes-smartphone{position:relative;display:inline-block;width:90px;height:162px}.nes-smartphone::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#060606;box-shadow:12px 6px,18px 6px,24px 6px,30px 6px,36px 6px,42px 6px,48px 6px,54px 6px,60px 6px,66px 6px,72px 6px,78px 6px,84px 6px,6px 12px,12px 12px,18px 12px #fff,24px 12px #fff,30px 12px #fff,36px 12px #fff,42px 12px #fff,48px 12px #fff,54px 12px #fff,60px 12px #fff,66px 12px #fff,72px 12px #fff,78px 12px #fff,84px 12px,90px 12px,6px 18px,12px 18px #fff,18px 18px #fff,24px 18px #fff,30px 18px,36px 18px,42px 18px,48px 18px,54px 18px,60px 18px,66px 18px,72px 18px #fff,78px 18px #fff,84px 18px #fff,90px 18px,6px 24px,12px 24px #fff,18px 24px #fff,24px 24px #fff,30px 24px #fff,36px 24px #fff,42px 24px #fff,48px 24px #fff,54px 24px #fff,60px 24px #fff,66px 24px #fff,72px 24px #fff,78px 24px #fff,84px 24px #fff,90px 24px,6px 30px,12px 30px #fff,18px 30px,24px 30px,30px 30px,36px 30px,42px 30px,48px 30px,54px 30px,60px 30px,66px 30px,72px 30px,78px 30px,84px 30px #fff,90px 30px,6px 36px,12px 36px #fff,18px 36px,24px 36px,30px 36px,36px 36px,42px 36px,48px 36px,54px 36px,60px 36px,66px 36px,72px 36px,78px 36px,84px 36px #fff,90px 36px,6px 42px,12px 42px #fff,18px 42px,24px 42px,30px 42px,36px 42px,42px 42px,48px 42px,54px 42px,60px 42px,66px 42px,72px 42px,78px 42px,84px 42px #fff,90px 42px,6px 48px,12px 48px #fff,18px 48px,24px 48px,30px 48px,36px 48px,42px 48px,48px 48px,54px 48px,60px 48px,66px 48px,72px 48px,78px 48px,84px 48px #fff,90px 48px,6px 54px,12px 54px #fff,18px 54px,24px 54px,30px 54px,36px 54px,42px 54px,48px 54px,54px 54px,60px 54px,66px 54px,72px 54px,78px 54px,84px 54px #fff,90px 54px,6px 60px,12px 60px #fff,18px 60px,24px 60px,30px 60px,36px 60px,42px 60px,48px 60px,54px 60px,60px 60px,66px 60px,72px 60px,78px 60px,84px 60px #fff,90px 60px,6px 66px,12px 66px #fff,18px 66px,24px 66px,30px 66px,36px 66px,42px 66px,48px 66px,54px 66px,60px 66px,66px 66px,72px 66px,78px 66px,84px 66px #fff,90px 66px,6px 72px,12px 72px #fff,18px 72px,24px 72px,30px 72px,36px 72px,42px 72px,48px 72px,54px 72px,60px 72px,66px 72px,72px 72px,78px 72px,84px 72px #fff,90px 72px,6px 78px,12px 78px #fff,18px 78px,24px 78px,30px 78px,36px 78px,42px 78px,48px 78px,54px 78px,60px 78px,66px 78px,72px 78px,78px 78px,84px 78px #fff,90px 78px,6px 84px,12px 84px #fff,18px 84px,24px 84px,30px 84px,36px 84px,42px 84px,48px 84px,54px 84px,60px 84px,66px 84px,72px 84px,78px 84px,84px 84px #fff,90px 84px,6px 90px,12px 90px #fff,18px 90px,24px 90px,30px 90px,36px 90px,42px 90px,48px 90px,54px 90px,60px 90px,66px 90px,72px 90px,78px 90px,84px 90px #fff,90px 90px,6px 96px,12px 96px #fff,18px 96px,24px 96px,30px 96px,36px 96px,42px 96px,48px 96px,54px 96px,60px 96px,66px 96px,72px 96px,78px 96px,84px 96px #fff,90px 96px,6px 102px,12px 102px #fff,18px 102px,24px 102px,30px 102px,36px 102px,42px 102px,48px 102px,54px 102px,60px 102px,66px 102px,72px 102px,78px 102px,84px 102px #fff,90px 102px,6px 108px,12px 108px #fff,18px 108px,24px 108px,30px 108px,36px 108px,42px 108px,48px 108px,54px 108px,60px 108px,66px 108px,72px 108px,78px 108px,84px 108px #fff,90px 108px,6px 114px,12px 114px #fff,18px 114px,24px 114px,30px 114px,36px 114px,42px 114px,48px 114px,54px 114px,60px 114px,66px 114px,72px 114px,78px 114px,84px 114px #fff,90px 114px,6px 120px,12px 120px #fff,18px 120px,24px 120px,30px 120px,36px 120px,42px 120px,48px 120px,54px 120px,60px 120px,66px 120px,72px 120px,78px 120px,84px 120px #fff,90px 120px,6px 126px,12px 126px #fff,18px 126px,24px 126px,30px 126px,36px 126px,42px 126px,48px 126px,54px 126px,60px 126px,66px 126px,72px 126px,78px 126px,84px 126px #fff,90px 126px,6px 132px,12px 132px #fff,18px 132px,24px 132px,30px 132px,36px 132px,42px 132px,48px 132px,54px 132px,60px 132px,66px 132px,72px 132px,78px 132px,84px 132px #fff,90px 132px,6px 138px,12px 138px #fff,18px 138px #fff,24px 138px #fff,30px 138px #fff,36px 138px #fff,42px 138px #fff,48px 138px #fff,54px 138px #fff,60px 138px #fff,66px 138px #fff,72px 138px #fff,78px 138px #fff,84px 138px #fff,90px 138px,6px 144px,12px 144px #fff,18px 144px #fff,24px 144px #fff,30px 144px #fff,36px 144px #fff,42px 144px #fff,48px 144px,54px 144px,60px 144px #fff,66px 144px #fff,72px 144px #fff,78px 144px #fff,84px 144px #fff,90px 144px,6px 150px,12px 150px #fff,18px 150px #fff,24px 150px #fff,30px 150px #fff,36px 150px #fff,42px 150px #fff,48px 150px,54px 150px,60px 150px #fff,66px 150px #fff,72px 150px #fff,78px 150px #fff,84px 150px #fff,90px 150px,6px 156px,12px 156px,18px 156px #fff,24px 156px #fff,30px 156px #fff,36px 156px #fff,42px 156px #fff,48px 156px #fff,54px 156px #fff,60px 156px #fff,66px 156px #fff,72px 156px #fff,78px 156px #fff,84px 156px,90px 156px,12px 162px,18px 162px,24px 162px,30px 162px,36px 162px,42px 162px,48px 162px,54px 162px,60px 162px,66px 162px,72px 162px,78px 162px,84px 162px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-smartphone::before{box-shadow:12px 6px 0 .020em,18px 6px 0 .020em,24px 6px 0 .020em,30px 6px 0 .020em,36px 6px 0 .020em,42px 6px 0 .020em,48px 6px 0 .020em,54px 6px 0 .020em,60px 6px 0 .020em,66px 6px 0 .020em,72px 6px 0 .020em,78px 6px 0 .020em,84px 6px 0 .020em,6px 12px 0 .020em,12px 12px 0 .020em,18px 12px 0 .020em #fff,24px 12px 0 .020em #fff,30px 12px 0 .020em #fff,36px 12px 0 .020em #fff,42px 12px 0 .020em #fff,48px 12px 0 .020em #fff,54px 12px 0 .020em #fff,60px 12px 0 .020em #fff,66px 12px 0 .020em #fff,72px 12px 0 .020em #fff,78px 12px 0 .020em #fff,84px 12px 0 .020em,90px 12px 0 .020em,6px 18px 0 .020em,12px 18px 0 .020em #fff,18px 18px 0 .020em #fff,24px 18px 0 .020em #fff,30px 18px 0 .020em,36px 18px 0 .020em,42px 18px 0 .020em,48px 18px 0 .020em,54px 18px 0 .020em,60px 18px 0 .020em,66px 18px 0 .020em,72px 18px 0 .020em #fff,78px 18px 0 .020em #fff,84px 18px 0 .020em #fff,90px 18px 0 .020em,6px 24px 0 .020em,12px 24px 0 .020em #fff,18px 24px 0 .020em #fff,24px 24px 0 .020em #fff,30px 24px 0 .020em #fff,36px 24px 0 .020em #fff,42px 24px 0 .020em #fff,48px 24px 0 .020em #fff,54px 24px 0 .020em #fff,60px 24px 0 .020em #fff,66px 24px 0 .020em #fff,72px 24px 0 .020em #fff,78px 24px 0 .020em #fff,84px 24px 0 .020em #fff,90px 24px 0 .020em,6px 30px 0 .020em,12px 30px 0 .020em #fff,18px 30px 0 .020em,24px 30px 0 .020em,30px 30px 0 .020em,36px 30px 0 .020em,42px 30px 0 .020em,48px 30px 0 .020em,54px 30px 0 .020em,60px 30px 0 .020em,66px 30px 0 .020em,72px 30px 0 .020em,78px 30px 0 .020em,84px 30px 0 .020em #fff,90px 30px 0 .020em,6px 36px 0 .020em,12px 36px 0 .020em #fff,18px 36px 0 .020em,24px 36px 0 .020em,30px 36px 0 .020em,36px 36px 0 .020em,42px 36px 0 .020em,48px 36px 0 .020em,54px 36px 0 .020em,60px 36px 0 .020em,66px 36px 0 .020em,72px 36px 0 .020em,78px 36px 0 .020em,84px 36px 0 .020em #fff,90px 36px 0 .020em,6px 42px 0 .020em,12px 42px 0 .020em #fff,18px 42px 0 .020em,24px 42px 0 .020em,30px 42px 0 .020em,36px 42px 0 .020em,42px 42px 0 .020em,48px 42px 0 .020em,54px 42px 0 .020em,60px 42px 0 .020em,66px 42px 0 .020em,72px 42px 0 .020em,78px 42px 0 .020em,84px 42px 0 .020em #fff,90px 42px 0 .020em,6px 48px 0 .020em,12px 48px 0 .020em #fff,18px 48px 0 .020em,24px 48px 0 .020em,30px 48px 0 .020em,36px 48px 0 .020em,42px 48px 0 .020em,48px 48px 0 .020em,54px 48px 0 .020em,60px 48px 0 .020em,66px 48px 0 .020em,72px 48px 0 .020em,78px 48px 0 .020em,84px 48px 0 .020em #fff,90px 48px 0 .020em,6px 54px 0 .020em,12px 54px 0 .020em #fff,18px 54px 0 .020em,24px 54px 0 .020em,30px 54px 0 .020em,36px 54px 0 .020em,42px 54px 0 .020em,48px 54px 0 .020em,54px 54px 0 .020em,60px 54px 0 .020em,66px 54px 0 .020em,72px 54px 0 .020em,78px 54px 0 .020em,84px 54px 0 .020em #fff,90px 54px 0 .020em,6px 60px 0 .020em,12px 60px 0 .020em #fff,18px 60px 0 .020em,24px 60px 0 .020em,30px 60px 0 .020em,36px 60px 0 .020em,42px 60px 0 .020em,48px 60px 0 .020em,54px 60px 0 .020em,60px 60px 0 .020em,66px 60px 0 .020em,72px 60px 0 .020em,78px 60px 0 .020em,84px 60px 0 .020em #fff,90px 60px 0 .020em,6px 66px 0 .020em,12px 66px 0 .020em #fff,18px 66px 0 .020em,24px 66px 0 .020em,30px 66px 0 .020em,36px 66px 0 .020em,42px 66px 0 .020em,48px 66px 0 .020em,54px 66px 0 .020em,60px 66px 0 .020em,66px 66px 0 .020em,72px 66px 0 .020em,78px 66px 0 .020em,84px 66px 0 .020em #fff,90px 66px 0 .020em,6px 72px 0 .020em,12px 72px 0 .020em #fff,18px 72px 0 .020em,24px 72px 0 .020em,30px 72px 0 .020em,36px 72px 0 .020em,42px 72px 0 .020em,48px 72px 0 .020em,54px 72px 0 .020em,60px 72px 0 .020em,66px 72px 0 .020em,72px 72px 0 .020em,78px 72px 0 .020em,84px 72px 0 .020em #fff,90px 72px 0 .020em,6px 78px 0 .020em,12px 78px 0 .020em #fff,18px 78px 0 .020em,24px 78px 0 .020em,30px 78px 0 .020em,36px 78px 0 .020em,42px 78px 0 .020em,48px 78px 0 .020em,54px 78px 0 .020em,60px 78px 0 .020em,66px 78px 0 .020em,72px 78px 0 .020em,78px 78px 0 .020em,84px 78px 0 .020em #fff,90px 78px 0 .020em,6px 84px 0 .020em,12px 84px 0 .020em #fff,18px 84px 0 .020em,24px 84px 0 .020em,30px 84px 0 .020em,36px 84px 0 .020em,42px 84px 0 .020em,48px 84px 0 .020em,54px 84px 0 .020em,60px 84px 0 .020em,66px 84px 0 .020em,72px 84px 0 .020em,78px 84px 0 .020em,84px 84px 0 .020em #fff,90px 84px 0 .020em,6px 90px 0 .020em,12px 90px 0 .020em #fff,18px 90px 0 .020em,24px 90px 0 .020em,30px 90px 0 .020em,36px 90px 0 .020em,42px 90px 0 .020em,48px 90px 0 .020em,54px 90px 0 .020em,60px 90px 0 .020em,66px 90px 0 .020em,72px 90px 0 .020em,78px 90px 0 .020em,84px 90px 0 .020em #fff,90px 90px 0 .020em,6px 96px 0 .020em,12px 96px 0 .020em #fff,18px 96px 0 .020em,24px 96px 0 .020em,30px 96px 0 .020em,36px 96px 0 .020em,42px 96px 0 .020em,48px 96px 0 .020em,54px 96px 0 .020em,60px 96px 0 .020em,66px 96px 0 .020em,72px 96px 0 .020em,78px 96px 0 .020em,84px 96px 0 .020em #fff,90px 96px 0 .020em,6px 102px 0 .020em,12px 102px 0 .020em #fff,18px 102px 0 .020em,24px 102px 0 .020em,30px 102px 0 .020em,36px 102px 0 .020em,42px 102px 0 .020em,48px 102px 0 .020em,54px 102px 0 .020em,60px 102px 0 .020em,66px 102px 0 .020em,72px 102px 0 .020em,78px 102px 0 .020em,84px 102px 0 .020em #fff,90px 102px 0 .020em,6px 108px 0 .020em,12px 108px 0 .020em #fff,18px 108px 0 .020em,24px 108px 0 .020em,30px 108px 0 .020em,36px 108px 0 .020em,42px 108px 0 .020em,48px 108px 0 .020em,54px 108px 0 .020em,60px 108px 0 .020em,66px 108px 0 .020em,72px 108px 0 .020em,78px 108px 0 .020em,84px 108px 0 .020em #fff,90px 108px 0 .020em,6px 114px 0 .020em,12px 114px 0 .020em #fff,18px 114px 0 .020em,24px 114px 0 .020em,30px 114px 0 .020em,36px 114px 0 .020em,42px 114px 0 .020em,48px 114px 0 .020em,54px 114px 0 .020em,60px 114px 0 .020em,66px 114px 0 .020em,72px 114px 0 .020em,78px 114px 0 .020em,84px 114px 0 .020em #fff,90px 114px 0 .020em,6px 120px 0 .020em,12px 120px 0 .020em #fff,18px 120px 0 .020em,24px 120px 0 .020em,30px 120px 0 .020em,36px 120px 0 .020em,42px 120px 0 .020em,48px 120px 0 .020em,54px 120px 0 .020em,60px 120px 0 .020em,66px 120px 0 .020em,72px 120px 0 .020em,78px 120px 0 .020em,84px 120px 0 .020em #fff,90px 120px 0 .020em,6px 126px 0 .020em,12px 126px 0 .020em #fff,18px 126px 0 .020em,24px 126px 0 .020em,30px 126px 0 .020em,36px 126px 0 .020em,42px 126px 0 .020em,48px 126px 0 .020em,54px 126px 0 .020em,60px 126px 0 .020em,66px 126px 0 .020em,72px 126px 0 .020em,78px 126px 0 .020em,84px 126px 0 .020em #fff,90px 126px 0 .020em,6px 132px 0 .020em,12px 132px 0 .020em #fff,18px 132px 0 .020em,24px 132px 0 .020em,30px 132px 0 .020em,36px 132px 0 .020em,42px 132px 0 .020em,48px 132px 0 .020em,54px 132px 0 .020em,60px 132px 0 .020em,66px 132px 0 .020em,72px 132px 0 .020em,78px 132px 0 .020em,84px 132px 0 .020em #fff,90px 132px 0 .020em,6px 138px 0 .020em,12px 138px 0 .020em #fff,18px 138px 0 .020em #fff,24px 138px 0 .020em #fff,30px 138px 0 .020em #fff,36px 138px 0 .020em #fff,42px 138px 0 .020em #fff,48px 138px 0 .020em #fff,54px 138px 0 .020em #fff,60px 138px 0 .020em #fff,66px 138px 0 .020em #fff,72px 138px 0 .020em #fff,78px 138px 0 .020em #fff,84px 138px 0 .020em #fff,90px 138px 0 .020em,6px 144px 0 .020em,12px 144px 0 .020em #fff,18px 144px 0 .020em #fff,24px 144px 0 .020em #fff,30px 144px 0 .020em #fff,36px 144px 0 .020em #fff,42px 144px 0 .020em #fff,48px 144px 0 .020em,54px 144px 0 .020em,60px 144px 0 .020em #fff,66px 144px 0 .020em #fff,72px 144px 0 .020em #fff,78px 144px 0 .020em #fff,84px 144px 0 .020em #fff,90px 144px 0 .020em,6px 150px 0 .020em,12px 150px 0 .020em #fff,18px 150px 0 .020em #fff,24px 150px 0 .020em #fff,30px 150px 0 .020em #fff,36px 150px 0 .020em #fff,42px 150px 0 .020em #fff,48px 150px 0 .020em,54px 150px 0 .020em,60px 150px 0 .020em #fff,66px 150px 0 .020em #fff,72px 150px 0 .020em #fff,78px 150px 0 .020em #fff,84px 150px 0 .020em #fff,90px 150px 0 .020em,6px 156px 0 .020em,12px 156px 0 .020em,18px 156px 0 .020em #fff,24px 156px 0 .020em #fff,30px 156px 0 .020em #fff,36px 156px 0 .020em #fff,42px 156px 0 .020em #fff,48px 156px 0 .020em #fff,54px 156px 0 .020em #fff,60px 156px 0 .020em #fff,66px 156px 0 .020em #fff,72px 156px 0 .020em #fff,78px 156px 0 .020em #fff,84px 156px 0 .020em,90px 156px 0 .020em,12px 162px 0 .020em,18px 162px 0 .020em,24px 162px 0 .020em,30px 162px 0 .020em,36px 162px 0 .020em,42px 162px 0 .020em,48px 162px 0 .020em,54px 162px 0 .020em,60px 162px 0 .020em,66px 162px 0 .020em,72px 162px 0 .020em,78px 162px 0 .020em,84px 162px 0 .020em}}.nes-mario{position:relative;display:inline-block;width:84px;height:96px}.nes-mario::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#f81c2f;box-shadow:30px 6px,36px 6px,42px 6px,48px 6px,54px 6px,24px 12px,30px 12px,36px 12px,42px 12px,48px 12px,54px 12px,60px 12px,66px 12px,72px 12px,24px 18px #65352b,30px 18px #65352b,36px 18px #65352b,42px 18px #ffbb8e,48px 18px #ffbb8e,54px 18px #000,60px 18px #ffbb8e,18px 24px #65352b,24px 24px #ffbb8e,30px 24px #65352b,36px 24px #ffbb8e,42px 24px #ffbb8e,48px 24px #ffbb8e,54px 24px #000,60px 24px #ffbb8e,66px 24px #ffbb8e,72px 24px #ffbb8e,18px 30px #65352b,24px 30px #ffbb8e,30px 30px #65352b,36px 30px #65352b,42px 30px #ffbb8e,48px 30px #ffbb8e,54px 30px #ffbb8e,60px 30px #000,66px 30px #ffbb8e,72px 30px #ffbb8e,78px 30px #ffbb8e,18px 36px #65352b,24px 36px #65352b,30px 36px #ffbb8e,36px 36px #ffbb8e,42px 36px #ffbb8e,48px 36px #ffbb8e,54px 36px #000,60px 36px #000,66px 36px #000,72px 36px #000,30px 42px #ffbb8e,36px 42px #ffbb8e,42px 42px #ffbb8e,48px 42px #ffbb8e,54px 42px #ffbb8e,60px 42px #ffbb8e,66px 42px #ffbb8e,30px 48px,36px 48px #1560ad,42px 48px,48px 48px,54px 48px #1560ad,18px 54px,24px 54px,30px 54px,36px 54px #1560ad,42px 54px,48px 54px,54px 54px #1560ad,60px 54px,66px 54px,72px 54px,12px 60px,18px 60px,24px 60px,30px 60px,36px 60px #1560ad,42px 60px #1560ad,48px 60px #1560ad,54px 60px #1560ad,60px 60px,66px 60px,72px 60px,78px 60px,12px 66px #aeaeac,18px 66px #aeaeac,24px 66px,30px 66px #1560ad,36px 66px #fef102,42px 66px #1560ad,48px 66px #1560ad,54px 66px #fef102,60px 66px #1560ad,66px 66px,72px 66px #aeaeac,78px 66px #aeaeac,12px 72px #aeaeac,18px 72px #aeaeac,24px 72px #aeaeac,30px 72px #1560ad,36px 72px #1560ad,42px 72px #1560ad,48px 72px #1560ad,54px 72px #1560ad,60px 72px #1560ad,66px 72px #aeaeac,72px 72px #aeaeac,78px 72px #aeaeac,12px 78px #aeaeac,18px 78px #aeaeac,24px 78px #1560ad,30px 78px #1560ad,36px 78px #1560ad,42px 78px #1560ad,48px 78px #1560ad,54px 78px #1560ad,60px 78px #1560ad,66px 78px #1560ad,72px 78px #aeaeac,78px 78px #aeaeac,24px 84px #1560ad,30px 84px #1560ad,36px 84px #1560ad,54px 84px #1560ad,60px 84px #1560ad,66px 84px #1560ad,18px 90px #65352b,24px 90px #65352b,30px 90px #65352b,60px 90px #65352b,66px 90px #65352b,72px 90px #65352b,12px 96px #65352b,18px 96px #65352b,24px 96px #65352b,30px 96px #65352b,60px 96px #65352b,66px 96px #65352b,72px 96px #65352b,78px 96px #65352b;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-mario::before{box-shadow:30px 6px 0 .020em,36px 6px 0 .020em,42px 6px 0 .020em,48px 6px 0 .020em,54px 6px 0 .020em,24px 12px 0 .020em,30px 12px 0 .020em,36px 12px 0 .020em,42px 12px 0 .020em,48px 12px 0 .020em,54px 12px 0 .020em,60px 12px 0 .020em,66px 12px 0 .020em,72px 12px 0 .020em,24px 18px 0 .020em #65352b,30px 18px 0 .020em #65352b,36px 18px 0 .020em #65352b,42px 18px 0 .020em #ffbb8e,48px 18px 0 .020em #ffbb8e,54px 18px 0 .020em #000,60px 18px 0 .020em #ffbb8e,18px 24px 0 .020em #65352b,24px 24px 0 .020em #ffbb8e,30px 24px 0 .020em #65352b,36px 24px 0 .020em #ffbb8e,42px 24px 0 .020em #ffbb8e,48px 24px 0 .020em #ffbb8e,54px 24px 0 .020em #000,60px 24px 0 .020em #ffbb8e,66px 24px 0 .020em #ffbb8e,72px 24px 0 .020em #ffbb8e,18px 30px 0 .020em #65352b,24px 30px 0 .020em #ffbb8e,30px 30px 0 .020em #65352b,36px 30px 0 .020em #65352b,42px 30px 0 .020em #ffbb8e,48px 30px 0 .020em #ffbb8e,54px 30px 0 .020em #ffbb8e,60px 30px 0 .020em #000,66px 30px 0 .020em #ffbb8e,72px 30px 0 .020em #ffbb8e,78px 30px 0 .020em #ffbb8e,18px 36px 0 .020em #65352b,24px 36px 0 .020em #65352b,30px 36px 0 .020em #ffbb8e,36px 36px 0 .020em #ffbb8e,42px 36px 0 .020em #ffbb8e,48px 36px 0 .020em #ffbb8e,54px 36px 0 .020em #000,60px 36px 0 .020em #000,66px 36px 0 .020em #000,72px 36px 0 .020em #000,30px 42px 0 .020em #ffbb8e,36px 42px 0 .020em #ffbb8e,42px 42px 0 .020em #ffbb8e,48px 42px 0 .020em #ffbb8e,54px 42px 0 .020em #ffbb8e,60px 42px 0 .020em #ffbb8e,66px 42px 0 .020em #ffbb8e,30px 48px 0 .020em,36px 48px 0 .020em #1560ad,42px 48px 0 .020em,48px 48px 0 .020em,54px 48px 0 .020em #1560ad,18px 54px 0 .020em,24px 54px 0 .020em,30px 54px 0 .020em,36px 54px 0 .020em #1560ad,42px 54px 0 .020em,48px 54px 0 .020em,54px 54px 0 .020em #1560ad,60px 54px 0 .020em,66px 54px 0 .020em,72px 54px 0 .020em,12px 60px 0 .020em,18px 60px 0 .020em,24px 60px 0 .020em,30px 60px 0 .020em,36px 60px 0 .020em #1560ad,42px 60px 0 .020em #1560ad,48px 60px 0 .020em #1560ad,54px 60px 0 .020em #1560ad,60px 60px 0 .020em,66px 60px 0 .020em,72px 60px 0 .020em,78px 60px 0 .020em,12px 66px 0 .020em #aeaeac,18px 66px 0 .020em #aeaeac,24px 66px 0 .020em,30px 66px 0 .020em #1560ad,36px 66px 0 .020em #fef102,42px 66px 0 .020em #1560ad,48px 66px 0 .020em #1560ad,54px 66px 0 .020em #fef102,60px 66px 0 .020em #1560ad,66px 66px 0 .020em,72px 66px 0 .020em #aeaeac,78px 66px 0 .020em #aeaeac,12px 72px 0 .020em #aeaeac,18px 72px 0 .020em #aeaeac,24px 72px 0 .020em #aeaeac,30px 72px 0 .020em #1560ad,36px 72px 0 .020em #1560ad,42px 72px 0 .020em #1560ad,48px 72px 0 .020em #1560ad,54px 72px 0 .020em #1560ad,60px 72px 0 .020em #1560ad,66px 72px 0 .020em #aeaeac,72px 72px 0 .020em #aeaeac,78px 72px 0 .020em #aeaeac,12px 78px 0 .020em #aeaeac,18px 78px 0 .020em #aeaeac,24px 78px 0 .020em #1560ad,30px 78px 0 .020em #1560ad,36px 78px 0 .020em #1560ad,42px 78px 0 .020em #1560ad,48px 78px 0 .020em #1560ad,54px 78px 0 .020em #1560ad,60px 78px 0 .020em #1560ad,66px 78px 0 .020em #1560ad,72px 78px 0 .020em #aeaeac,78px 78px 0 .020em #aeaeac,24px 84px 0 .020em #1560ad,30px 84px 0 .020em #1560ad,36px 84px 0 .020em #1560ad,54px 84px 0 .020em #1560ad,60px 84px 0 .020em #1560ad,66px 84px 0 .020em #1560ad,18px 90px 0 .020em #65352b,24px 90px 0 .020em #65352b,30px 90px 0 .020em #65352b,60px 90px 0 .020em #65352b,66px 90px 0 .020em #65352b,72px 90px 0 .020em #65352b,12px 96px 0 .020em #65352b,18px 96px 0 .020em #65352b,24px 96px 0 .020em #65352b,30px 96px 0 .020em #65352b,60px 96px 0 .020em #65352b,66px 96px 0 .020em #65352b,72px 96px 0 .020em #65352b,78px 96px 0 .020em #65352b}}.nes-kirby{position:relative;display:inline-block;width:96px;height:96px}.nes-kirby::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#ffaccc;box-shadow:18px 6px #000,24px 6px #000,36px 6px #000,42px 6px #000,48px 6px #000,54px 6px #000,60px 6px #000,12px 12px #000,18px 12px,24px 12px,30px 12px #000,36px 12px,42px 12px,48px 12px,54px 12px,60px 12px,66px 12px #000,72px 12px #000,6px 18px #000,12px 18px,18px 18px,24px 18px #000,30px 18px,36px 18px,42px 18px,48px 18px,54px 18px,60px 18px,66px 18px,72px 18px,78px 18px #000,6px 24px #000,12px 24px,18px 24px,24px 24px,30px 24px,36px 24px,42px 24px #000,48px 24px,54px 24px #000,60px 24px,66px 24px,72px 24px,78px 24px,84px 24px #000,6px 30px #000,12px 30px,18px 30px,24px 30px,30px 30px,36px 30px,42px 30px #000,48px 30px,54px 30px #000,60px 30px,66px 30px,72px 30px,78px 30px,84px 30px #000,6px 36px #000,12px 36px,18px 36px,24px 36px,30px 36px,36px 36px,42px 36px #000,48px 36px,54px 36px #000,60px 36px,66px 36px,72px 36px,78px 36px,84px 36px,90px 36px #000,6px 42px #000,12px 42px,18px 42px,24px 42px,30px 42px #ff5478,36px 42px #ff5478,42px 42px,48px 42px,54px 42px,60px 42px #ff5478,66px 42px #ff5478,72px 42px,78px 42px,84px 42px,90px 42px,96px 42px #000,6px 48px #000,12px 48px,18px 48px,24px 48px,30px 48px,36px 48px,42px 48px,48px 48px #000,54px 48px,60px 48px,66px 48px,72px 48px,78px 48px,84px 48px,90px 48px,96px 48px #000,12px 54px #000,18px 54px,24px 54px,30px 54px,36px 54px,42px 54px,48px 54px #000,54px 54px,60px 54px,66px 54px,72px 54px,78px 54px,84px 54px,90px 54px,96px 54px #000,12px 60px #000,18px 60px,24px 60px,30px 60px,36px 60px,42px 60px,48px 60px,54px 60px,60px 60px,66px 60px,72px 60px,78px 60px #000,84px 60px #000,90px 60px #000,12px 66px #000,18px 66px,24px 66px,30px 66px,36px 66px,42px 66px,48px 66px,54px 66px,60px 66px,66px 66px,72px 66px #000,78px 66px #ff5478,84px 66px #ff5478,90px 66px #ff5478,96px 66px #000,18px 72px #000,24px 72px,30px 72px,36px 72px,42px 72px,48px 72px,54px 72px,60px 72px,66px 72px #000,72px 72px #ff5478,78px 72px #ff5478,84px 72px #ff5478,90px 72px #ff5478,96px 72px #000,18px 78px #000,24px 78px #000,30px 78px,36px 78px,42px 78px,48px 78px,54px 78px,60px 78px,66px 78px #000,72px 78px #ff5478,78px 78px #ff5478,84px 78px #ff5478,90px 78px #ff5478,96px 78px #000,12px 84px #000,18px 84px #ff5478,24px 84px #ff5478,30px 84px #000,36px 84px #000,42px 84px,48px 84px,54px 84px,60px 84px #000,66px 84px #ff5478,72px 84px #ff5478,78px 84px #ff5478,84px 84px #ff5478,90px 84px #000,6px 90px #000,12px 90px #ff5478,18px 90px #ff5478,24px 90px #ff5478,30px 90px #ff5478,36px 90px #ff5478,42px 90px #000,48px 90px #000,54px 90px #000,60px 90px #000,66px 90px #000,72px 90px #ff5478,78px 90px #ff5478,84px 90px #000,12px 96px #000,18px 96px #000,24px 96px #000,30px 96px #000,36px 96px #000,42px 96px #000,66px 96px #000,72px 96px #000,78px 96px #000;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-kirby::before{box-shadow:18px 6px 0 .020em #000,24px 6px 0 .020em #000,36px 6px 0 .020em #000,42px 6px 0 .020em #000,48px 6px 0 .020em #000,54px 6px 0 .020em #000,60px 6px 0 .020em #000,12px 12px 0 .020em #000,18px 12px 0 .020em,24px 12px 0 .020em,30px 12px 0 .020em #000,36px 12px 0 .020em,42px 12px 0 .020em,48px 12px 0 .020em,54px 12px 0 .020em,60px 12px 0 .020em,66px 12px 0 .020em #000,72px 12px 0 .020em #000,6px 18px 0 .020em #000,12px 18px 0 .020em,18px 18px 0 .020em,24px 18px 0 .020em #000,30px 18px 0 .020em,36px 18px 0 .020em,42px 18px 0 .020em,48px 18px 0 .020em,54px 18px 0 .020em,60px 18px 0 .020em,66px 18px 0 .020em,72px 18px 0 .020em,78px 18px 0 .020em #000,6px 24px 0 .020em #000,12px 24px 0 .020em,18px 24px 0 .020em,24px 24px 0 .020em,30px 24px 0 .020em,36px 24px 0 .020em,42px 24px 0 .020em #000,48px 24px 0 .020em,54px 24px 0 .020em #000,60px 24px 0 .020em,66px 24px 0 .020em,72px 24px 0 .020em,78px 24px 0 .020em,84px 24px 0 .020em #000,6px 30px 0 .020em #000,12px 30px 0 .020em,18px 30px 0 .020em,24px 30px 0 .020em,30px 30px 0 .020em,36px 30px 0 .020em,42px 30px 0 .020em #000,48px 30px 0 .020em,54px 30px 0 .020em #000,60px 30px 0 .020em,66px 30px 0 .020em,72px 30px 0 .020em,78px 30px 0 .020em,84px 30px 0 .020em #000,6px 36px 0 .020em #000,12px 36px 0 .020em,18px 36px 0 .020em,24px 36px 0 .020em,30px 36px 0 .020em,36px 36px 0 .020em,42px 36px 0 .020em #000,48px 36px 0 .020em,54px 36px 0 .020em #000,60px 36px 0 .020em,66px 36px 0 .020em,72px 36px 0 .020em,78px 36px 0 .020em,84px 36px 0 .020em,90px 36px 0 .020em #000,6px 42px 0 .020em #000,12px 42px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em,30px 42px 0 .020em #ff5478,36px 42px 0 .020em #ff5478,42px 42px 0 .020em,48px 42px 0 .020em,54px 42px 0 .020em,60px 42px 0 .020em #ff5478,66px 42px 0 .020em #ff5478,72px 42px 0 .020em,78px 42px 0 .020em,84px 42px 0 .020em,90px 42px 0 .020em,96px 42px 0 .020em #000,6px 48px 0 .020em #000,12px 48px 0 .020em,18px 48px 0 .020em,24px 48px 0 .020em,30px 48px 0 .020em,36px 48px 0 .020em,42px 48px 0 .020em,48px 48px 0 .020em #000,54px 48px 0 .020em,60px 48px 0 .020em,66px 48px 0 .020em,72px 48px 0 .020em,78px 48px 0 .020em,84px 48px 0 .020em,90px 48px 0 .020em,96px 48px 0 .020em #000,12px 54px 0 .020em #000,18px 54px 0 .020em,24px 54px 0 .020em,30px 54px 0 .020em,36px 54px 0 .020em,42px 54px 0 .020em,48px 54px 0 .020em #000,54px 54px 0 .020em,60px 54px 0 .020em,66px 54px 0 .020em,72px 54px 0 .020em,78px 54px 0 .020em,84px 54px 0 .020em,90px 54px 0 .020em,96px 54px 0 .020em #000,12px 60px 0 .020em #000,18px 60px 0 .020em,24px 60px 0 .020em,30px 60px 0 .020em,36px 60px 0 .020em,42px 60px 0 .020em,48px 60px 0 .020em,54px 60px 0 .020em,60px 60px 0 .020em,66px 60px 0 .020em,72px 60px 0 .020em,78px 60px 0 .020em #000,84px 60px 0 .020em #000,90px 60px 0 .020em #000,12px 66px 0 .020em #000,18px 66px 0 .020em,24px 66px 0 .020em,30px 66px 0 .020em,36px 66px 0 .020em,42px 66px 0 .020em,48px 66px 0 .020em,54px 66px 0 .020em,60px 66px 0 .020em,66px 66px 0 .020em,72px 66px 0 .020em #000,78px 66px 0 .020em #ff5478,84px 66px 0 .020em #ff5478,90px 66px 0 .020em #ff5478,96px 66px 0 .020em #000,18px 72px 0 .020em #000,24px 72px 0 .020em,30px 72px 0 .020em,36px 72px 0 .020em,42px 72px 0 .020em,48px 72px 0 .020em,54px 72px 0 .020em,60px 72px 0 .020em,66px 72px 0 .020em #000,72px 72px 0 .020em #ff5478,78px 72px 0 .020em #ff5478,84px 72px 0 .020em #ff5478,90px 72px 0 .020em #ff5478,96px 72px 0 .020em #000,18px 78px 0 .020em #000,24px 78px 0 .020em #000,30px 78px 0 .020em,36px 78px 0 .020em,42px 78px 0 .020em,48px 78px 0 .020em,54px 78px 0 .020em,60px 78px 0 .020em,66px 78px 0 .020em #000,72px 78px 0 .020em #ff5478,78px 78px 0 .020em #ff5478,84px 78px 0 .020em #ff5478,90px 78px 0 .020em #ff5478,96px 78px 0 .020em #000,12px 84px 0 .020em #000,18px 84px 0 .020em #ff5478,24px 84px 0 .020em #ff5478,30px 84px 0 .020em #000,36px 84px 0 .020em #000,42px 84px 0 .020em,48px 84px 0 .020em,54px 84px 0 .020em,60px 84px 0 .020em #000,66px 84px 0 .020em #ff5478,72px 84px 0 .020em #ff5478,78px 84px 0 .020em #ff5478,84px 84px 0 .020em #ff5478,90px 84px 0 .020em #000,6px 90px 0 .020em #000,12px 90px 0 .020em #ff5478,18px 90px 0 .020em #ff5478,24px 90px 0 .020em #ff5478,30px 90px 0 .020em #ff5478,36px 90px 0 .020em #ff5478,42px 90px 0 .020em #000,48px 90px 0 .020em #000,54px 90px 0 .020em #000,60px 90px 0 .020em #000,66px 90px 0 .020em #000,72px 90px 0 .020em #ff5478,78px 90px 0 .020em #ff5478,84px 90px 0 .020em #000,12px 96px 0 .020em #000,18px 96px 0 .020em #000,24px 96px 0 .020em #000,30px 96px 0 .020em #000,36px 96px 0 .020em #000,42px 96px 0 .020em #000,66px 96px 0 .020em #000,72px 96px 0 .020em #000,78px 96px 0 .020em #000}}.nes-octocat{position:relative;display:inline-block;width:84px;height:90px}.nes-octocat::before{position:absolute;top:-6px;left:-6px;content:"";background:0 0;width:6px;height:6px;color:#333;box-shadow:24px 6px,78px 6px,24px 12px,30px 12px,72px 12px,78px 12px,24px 18px,30px 18px,36px 18px,42px 18px,48px 18px,54px 18px,60px 18px,66px 18px,72px 18px,78px 18px,18px 24px,24px 24px,30px 24px,36px 24px,42px 24px,48px 24px,54px 24px,60px 24px,66px 24px,72px 24px,78px 24px,84px 24px,18px 30px,24px 30px,30px 30px,36px 30px,42px 30px,48px 30px,54px 30px,60px 30px,66px 30px,72px 30px,78px 30px,84px 30px,18px 36px,24px 36px,30px 36px,36px 36px #ffdec4,42px 36px #ffdec4,48px 36px #ffdec4,54px 36px #ffdec4,60px 36px #ffdec4,66px 36px #ffdec4,72px 36px,78px 36px,84px 36px,18px 42px,24px 42px,30px 42px #ffdec4,36px 42px #cb7066,42px 42px #ffdec4,48px 42px #ffdec4,54px 42px #ffdec4,60px 42px #ffdec4,66px 42px #cb7066,72px 42px #ffdec4,78px 42px,84px 42px,18px 48px,24px 48px,30px 48px #ffdec4,36px 48px #cb7066,42px 48px #ffdec4,48px 48px #ffdec4,54px 48px #ffdec4,60px 48px #ffdec4,66px 48px #cb7066,72px 48px #ffdec4,78px 48px,84px 48px,24px 54px,30px 54px,36px 54px #ffdec4,42px 54px #ffdec4,48px 54px #cb7066,54px 54px #cb7066,60px 54px #ffdec4,66px 54px #ffdec4,72px 54px,78px 54px,6px 60px,12px 60px,42px 60px,48px 60px,54px 60px,60px 60px,18px 66px,24px 66px,36px 66px,42px 66px,48px 66px,54px 66px,60px 66px,66px 66px,24px 72px,30px 72px,36px 72px,42px 72px,48px 72px,54px 72px,60px 72px,66px 72px,36px 78px,48px 78px,54px 78px,66px 78px,36px 84px,48px 84px,54px 84px,66px 84px,30px 90px,42px 90px,60px 90px,72px 90px;transform:rotate(0)}@supports (-moz-appearance:meterbar){.nes-octocat::before{box-shadow:24px 6px 0 .020em,78px 6px 0 .020em,24px 12px 0 .020em,30px 12px 0 .020em,72px 12px 0 .020em,78px 12px 0 .020em,24px 18px 0 .020em,30px 18px 0 .020em,36px 18px 0 .020em,42px 18px 0 .020em,48px 18px 0 .020em,54px 18px 0 .020em,60px 18px 0 .020em,66px 18px 0 .020em,72px 18px 0 .020em,78px 18px 0 .020em,18px 24px 0 .020em,24px 24px 0 .020em,30px 24px 0 .020em,36px 24px 0 .020em,42px 24px 0 .020em,48px 24px 0 .020em,54px 24px 0 .020em,60px 24px 0 .020em,66px 24px 0 .020em,72px 24px 0 .020em,78px 24px 0 .020em,84px 24px 0 .020em,18px 30px 0 .020em,24px 30px 0 .020em,30px 30px 0 .020em,36px 30px 0 .020em,42px 30px 0 .020em,48px 30px 0 .020em,54px 30px 0 .020em,60px 30px 0 .020em,66px 30px 0 .020em,72px 30px 0 .020em,78px 30px 0 .020em,84px 30px 0 .020em,18px 36px 0 .020em,24px 36px 0 .020em,30px 36px 0 .020em,36px 36px 0 .020em #ffdec4,42px 36px 0 .020em #ffdec4,48px 36px 0 .020em #ffdec4,54px 36px 0 .020em #ffdec4,60px 36px 0 .020em #ffdec4,66px 36px 0 .020em #ffdec4,72px 36px 0 .020em,78px 36px 0 .020em,84px 36px 0 .020em,18px 42px 0 .020em,24px 42px 0 .020em,30px 42px 0 .020em #ffdec4,36px 42px 0 .020em #cb7066,42px 42px 0 .020em #ffdec4,48px 42px 0 .020em #ffdec4,54px 42px 0 .020em #ffdec4,60px 42px 0 .020em #ffdec4,66px 42px 0 .020em #cb7066,72px 42px 0 .020em #ffdec4,78px 42px 0 .020em,84px 42px 0 .020em,18px 48px 0 .020em,24px 48px 0 .020em,30px 48px 0 .020em #ffdec4,36px 48px 0 .020em #cb7066,42px 48px 0 .020em #ffdec4,48px 48px 0 .020em #ffdec4,54px 48px 0 .020em #ffdec4,60px 48px 0 .020em #ffdec4,66px 48px 0 .020em #cb7066,72px 48px 0 .020em #ffdec4,78px 48px 0 .020em,84px 48px 0 .020em,24px 54px 0 .020em,30px 54px 0 .020em,36px 54px 0 .020em #ffdec4,42px 54px 0 .020em #ffdec4,48px 54px 0 .020em #cb7066,54px 54px 0 .020em #cb7066,60px 54px 0 .020em #ffdec4,66px 54px 0 .020em #ffdec4,72px 54px 0 .020em,78px 54px 0 .020em,6px 60px 0 .020em,12px 60px 0 .020em,42px 60px 0 .020em,48px 60px 0 .020em,54px 60px 0 .020em,60px 60px 0 .020em,18px 66px 0 .020em,24px 66px 0 .020em,36px 66px 0 .020em,42px 66px 0 .020em,48px 66px 0 .020em,54px 66px 0 .020em,60px 66px 0 .020em,66px 66px 0 .020em,24px 72px 0 .020em,30px 72px 0 .020em,36px 72px 0 .020em,42px 72px 0 .020em,48px 72px 0 .020em,54px 72px 0 .020em,60px 72px 0 .020em,66px 72px 0 .020em,36px 78px 0 .020em,48px 78px 0 .020em,54px 78px 0 .020em,66px 78px 0 .020em,36px 84px 0 .020em,48px 84px 0 .020em,54px 84px 0 .020em,66px 84px 0 .020em,30px 90px 0 .020em,42px 90px 0 .020em,60px 90px 0 .020em,72px 90px 0 .020em}}.nes-octocat.animate::before{animation:wave .5s infinite steps(1)}@keyframes wave{50%{width:6px;height:6px;color:#333;box-shadow:24px 6px,78px 6px,24px 12px,30px 12px,72px 12px,78px 12px,24px 18px,30px 18px,36px 18px,42px 18px,48px 18px,54px 18px,60px 18px,66px 18px,72px 18px,78px 18px,18px 24px,24px 24px,30px 24px,36px 24px,42px 24px,48px 24px,54px 24px,60px 24px,66px 24px,72px 24px,78px 24px,84px 24px,18px 30px,24px 30px,30px 30px,36px 30px,42px 30px,48px 30px,54px 30px,60px 30px,66px 30px,72px 30px,78px 30px,84px 30px,18px 36px,24px 36px,30px 36px,36px 36px #ffdec4,42px 36px #ffdec4,48px 36px #ffdec4,54px 36px #ffdec4,60px 36px #ffdec4,66px 36px #ffdec4,72px 36px,78px 36px,84px 36px,18px 42px,24px 42px,30px 42px #ffdec4,36px 42px #ffdec4,42px 42px #ffdec4,48px 42px #ffdec4,54px 42px #ffdec4,60px 42px #ffdec4,66px 42px #ffdec4,72px 42px #ffdec4,78px 42px,84px 42px,12px 48px,18px 48px,24px 48px,30px 48px #ffdec4,36px 48px #cb7066,42px 48px #ffdec4,48px 48px #ffdec4,54px 48px #ffdec4,60px 48px #ffdec4,66px 48px #cb7066,72px 48px #ffdec4,78px 48px,84px 48px,12px 54px,24px 54px,30px 54px,36px 54px #ffdec4,42px 54px #ffdec4,48px 54px #cb7066,54px 54px #cb7066,60px 54px #ffdec4,66px 54px #ffdec4,72px 54px,78px 54px,18px 60px,42px 60px,48px 60px,54px 60px,60px 60px,24px 66px,36px 66px,42px 66px,48px 66px,54px 66px,60px 66px,66px 66px,24px 72px,30px 72px,36px 72px,42px 72px,48px 72px,54px 72px,60px 72px,66px 72px,36px 78px,48px 78px,54px 78px,66px 78px,36px 84px,48px 84px,54px 84px,66px 84px,30px 90px,42px 90px,60px 90px,72px 90px}} \ No newline at end of file diff --git a/websites/front-page/tsconfig.app.json b/websites/front-page/tsconfig.app.json new file mode 100644 index 00000000..7f42e5f7 --- /dev/null +++ b/websites/front-page/tsconfig.app.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023", "DOM"], + "module": "esnext", + "types": ["vite/client"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/websites/front-page/tsconfig.json b/websites/front-page/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/websites/front-page/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/websites/front-page/tsconfig.node.json b/websites/front-page/tsconfig.node.json new file mode 100644 index 00000000..d3c52ea6 --- /dev/null +++ b/websites/front-page/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023"], + "module": "esnext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/websites/front-page/vite.config.ts b/websites/front-page/vite.config.ts new file mode 100644 index 00000000..8b0f57b9 --- /dev/null +++ b/websites/front-page/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From e7cb424111842bd6ce2f339f56bca69bc84ea4b4 Mon Sep 17 00:00:00 2001 From: hieu Date: Tue, 26 May 2026 09:56:57 -0400 Subject: [PATCH 03/21] started working on info modal and other styling tweaks --- websites/front-page/package.json | 2 +- websites/front-page/src/App.css | 102 +++++++++++++++ websites/front-page/src/App.tsx | 210 ++++++++++++++++++++++++++++++- 3 files changed, 312 insertions(+), 2 deletions(-) diff --git a/websites/front-page/package.json b/websites/front-page/package.json index f9ff5f17..2671e6fb 100644 --- a/websites/front-page/package.json +++ b/websites/front-page/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite --host", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview" diff --git a/websites/front-page/src/App.css b/websites/front-page/src/App.css index 150fa74a..2bd6f382 100644 --- a/websites/front-page/src/App.css +++ b/websites/front-page/src/App.css @@ -10,6 +10,10 @@ height: 100vh; } +p { + margin: 0; +} + /* .container { position: fixed; inset: 0; @@ -175,6 +179,104 @@ footer p { color: rgb(161, 161, 161) !important; } +.ReactModal__Content { + padding: 10px !important; +} + +.tabs button { + line-height: 0.5; + font-size: 1.3rem; +} + +.modal-close-btn { + position: absolute; + top: -8px; + right: -8px; + padding: 0 8px; + opacity: 75%; +} + +.track-container { + max-height: 195px !important; + overflow: scroll; +} + +.track-header { + margin-left: 20px; + position: relative; + background: none; + border: none; + outline: none; + font-size: 1.3rem !important; + color: #ddc8af; +} + +.track-header:focus { + outline: none; +} + +.track-header::before { + position: absolute; + top: 5px; + left: -20px; + content: ""; + width: 2px; + height: 2px; + color: #ddc8af; + box-shadow: 2px 2px, 4px 2px, 2px 4px, 4px 4px, 6px 4px, 8px 4px, 2px 6px, 4px 6px, 6px 6px, 8px 6px, 10px 6px, 2px 8px, 4px 8px, 6px 8px, 8px 8px, 10px 8px, 12px 8px, 2px 10px, 4px 10px, 6px 10px, 8px 10px, 10px 10px, 2px 12px, 4px 12px, 6px 12px, 8px 12px, 2px 14px, 4px 14px; + /* transition: transform 200ms ease; */ + display: block; +} + +.track.open .track-header::before { + transform: rotate(90deg); + top: 5px; + left: -5px; +} + +.info-modal-container { + position: relative; + display: flex; + flex-direction: column; + font-family: "Jersey 20", cursive; + width: 550px; + min-width: 200px; + min-height: 280px; +} + +.tab-container { + display: flex; + max-height: 300px; + gap: 10px; + color: #ddc8af; +} + +.track-container { + flex-direction: column; +} + +/* .tab-container p { + max-height: 300px; + overflow: scroll; +} */ + +.tab-title { + color: #D8B286; + font-size: 1.5rem; + margin: 0; +} + +.tab-container * { + font-size: 1.2rem; +} + +.info-modal-container input { + padding: 10px; + background-color: #221909; + color: white; + outline: none; +} + @keyframes badgeTextPulse { 0%, 100% { diff --git a/websites/front-page/src/App.tsx b/websites/front-page/src/App.tsx index 48808698..3aa305ef 100644 --- a/websites/front-page/src/App.tsx +++ b/websites/front-page/src/App.tsx @@ -1,8 +1,41 @@ import "./App.css"; import swamphacksIcon from "./assets/shxii-icon-transparent.png"; import gatorGif from "./assets/gator.gif"; +import Modal from "react-modal"; +import { useState } from "react"; + +const customStyles = { + overlay: { + backgroundColor: "rgba(0, 0, 0, 0.35)", + }, + content: { + overflow: "hidden", + // maxHeight: "310px", + borderColor: "#231909", + borderWidth: "5px", + backgroundColor: "#7D573C", + top: "50%", + left: "50%", + right: "auto", + bottom: "auto", + marginRight: "-50%", + transform: "translate(-50%, -50%)", + }, +}; + +Modal.setAppElement("#root"); function App() { + const [modalIsOpen, setIsOpen] = useState(false); + + function openModal() { + setIsOpen(true); + } + + function closeModal() { + setIsOpen(false); + } + return (

@@ -19,7 +52,9 @@ function App() {
- +
@@ -50,8 +85,181 @@ function App() {

Made with ❤️ by the SwampHacks Team © 2026

+ + + + +
+ ); +} + +interface InformationModalProps { + closeModal: () => void; +} + +function InformationModal({ closeModal }: InformationModalProps) { + const [currentTab, setCurrentTab] = useState("about"); + + const handleSetTab = (tab: string) => { + setCurrentTab(tab); + }; + + const renderTab = () => { + switch (currentTab) { + case "about": + return ; + case "tracks": + return ; + case "team": + return ; + case "faq": + return ; + } + }; + + return ( +
+ +
+ + + + +
+ {renderTab()}
); } +function About() { + return ( +
+

About SwampHacks

+
+

+ SwampHacks is the University of Florida’s flagship hackathon, bringing + together 400+ students each year for 36 hours of creativity, + collaboration, and innovation. Recognized for excellence by UF’s + Herbert Wertheim College of Engineering, SwampHacks offers hands-on + workshops, mentorship, and community-building activities that help + hackers grow their skills and bring their ideas to life. Whether + you’re a first-time hacker or a seasoned coder, SwampHacks is the + place to build, connect, and inspire. +

+
+
+ ); +} + +function Tracks() { + const tracks = [ + { + name: "Overall Prize", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "Education, Accessibility & Social Impact", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "Sustainability", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "Game Design", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "The Design of Everyday Life (Human-Centered Design)", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + ]; + const [openIndex, setOpenIndex] = useState(null); + + const toggle = (index: number) => { + setOpenIndex(openIndex === index ? null : index); + }; + + // TODO: when click on "team", resize the modal to be taller to fit more content + + return ( +
+

Tracks

+
+ {tracks.map((track, idx) => ( +
+ + + {openIndex === idx && ( +
+

{track.description}

+
+ )} +
+ ))} +
+
+ ); +} + +function Team() { + return
Team
; +} + +function FAQ() { + return
FAQ
; +} + export default App; From 573d99e4e55844051f116b9d7c28ef55ad0cd500 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Tue, 26 May 2026 15:11:07 -0400 Subject: [PATCH 04/21] teams tab and more changes --- websites/front-page/README.md | 74 +----- websites/front-page/src/About.tsx | 19 ++ websites/front-page/src/App.css | 211 +++++++++++++----- websites/front-page/src/App.tsx | 124 ++-------- websites/front-page/src/Faq.tsx | 114 ++++++++++ websites/front-page/src/Team.tsx | 80 +++++++ websites/front-page/src/Tracks.tsx | 65 ++++++ websites/front-page/src/assets/pfps/Chris.png | Bin 0 -> 572313 bytes websites/front-page/src/assets/pfps/Gabby.png | Bin 0 -> 21059 bytes 9 files changed, 461 insertions(+), 226 deletions(-) create mode 100644 websites/front-page/src/About.tsx create mode 100644 websites/front-page/src/Faq.tsx create mode 100644 websites/front-page/src/Team.tsx create mode 100644 websites/front-page/src/Tracks.tsx create mode 100644 websites/front-page/src/assets/pfps/Chris.png create mode 100644 websites/front-page/src/assets/pfps/Gabby.png diff --git a/websites/front-page/README.md b/websites/front-page/README.md index 7dbf7ebf..a1d16a68 100644 --- a/websites/front-page/README.md +++ b/websites/front-page/README.md @@ -1,73 +1,3 @@ -# React + TypeScript + Vite +SwampHacks XII Front Page -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - -Currently, two official plugins are available: - -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) - -## React Compiler - -The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: - -```js -export default defineConfig([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... - - // Remove tseslint.configs.recommended and replace with this - tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - tseslint.configs.stylisticTypeChecked, - - // Other configs... - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) -``` - -You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: - -```js -// eslint.config.js -import reactX from 'eslint-plugin-react-x' -import reactDom from 'eslint-plugin-react-dom' - -export default defineConfig([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... - // Enable lint rules for React - reactX.configs['recommended-typescript'], - // Enable lint rules for React DOM - reactDom.configs.recommended, - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) -``` +Tech: React, Typescript, CSS, NES.css framework \ No newline at end of file diff --git a/websites/front-page/src/About.tsx b/websites/front-page/src/About.tsx new file mode 100644 index 00000000..7ed963a0 --- /dev/null +++ b/websites/front-page/src/About.tsx @@ -0,0 +1,19 @@ +export default function About() { + return ( +
+

About SwampHacks

+
+

+ SwampHacks is the University of Florida’s flagship hackathon, bringing + together 400+ students each year for 36 hours of creativity, + collaboration, and innovation. Recognized for excellence by UF’s + Herbert Wertheim College of Engineering, SwampHacks offers hands-on + workshops, mentorship, and community-building activities that help + hackers grow their skills and bring their ideas to life. Whether + you’re a first-time hacker or a seasoned coder, SwampHacks is the + place to build, connect, and inspire. +

+
+
+ ); +} diff --git a/websites/front-page/src/App.css b/websites/front-page/src/App.css index 2bd6f382..983f5220 100644 --- a/websites/front-page/src/App.css +++ b/websites/front-page/src/App.css @@ -14,18 +14,6 @@ p { margin: 0; } -/* .container { - position: fixed; - inset: 0; - height: 100%; - overflow: hidden; - height: 100%; - background-color: #050902; - background-position: center top; - background-repeat: no-repeat; - background-size: cover; -} */ - .container { position: fixed; inset: 0; @@ -80,7 +68,7 @@ p { margin: 0; font-family: "Jersey 20", cursive; color: #d8b286; - font-size: 99px; + font-size: 56px; line-height: 0.78; font-weight: 400; letter-spacing: 0.045em; @@ -91,33 +79,43 @@ p { } .badge { + opacity: 85%; position: absolute; - bottom: -90%; - right: -17%; - font-size: 2.3rem; + bottom: -137%; + right: -26%; width: 120px; padding: 0; font-family: "Jersey 20", cursive; color: #fff4d8; - /* font-size: 1.5rem; */ + font-size: 1.8rem; line-height: 0.78; - font-weight: 400; text-transform: uppercase; text-align: center; letter-spacing: 0.045em; -webkit-text-stroke: clamp(1px, 0.10vw, 3px) #6d2e1f; - text-shadow: - 0 4px 0 rgba(67, 18, 6, 0.92), - 0 10px 12px rgba(0, 0, 0, 0.3); + text-shadow: none; animation: badgeTextPulse 1.6s ease-in-out infinite; } -.subtitle { +.subheader { + margin-top: 20px; + display: flex; + flex-direction: column; + gap: 10px; +} + +.subheader p { + margin: 0; + padding: 0; +} + +.date, .location { margin: 25px 0 0 0; font-family: "Jersey 20", cursive; color: #d8b286; - font-size: 2.7rem; - -webkit-text-stroke: 0.2px #5a3f2b; + font-size: 2.4rem; + line-height: 0.78; + -webkit-text-stroke: 0.5px #7c573c; } .menu-container { @@ -180,6 +178,7 @@ footer p { } .ReactModal__Content { + width: 95%; padding: 10px !important; } @@ -188,6 +187,28 @@ footer p { font-size: 1.3rem; } +.info-modal-container { + position: relative; + display: flex; + flex-direction: column; + font-family: "Jersey 20", cursive; + width: 100%; + min-height: 280px; + transition: min-height 200ms ease; +} + +.tab-container { + display: flex; + max-height: 250px; + gap: 10px; + color: #ddc8af; + overflow-y: auto; +} + +.modal-large { + min-height: 600px !important; +} + .modal-close-btn { position: absolute; top: -8px; @@ -196,12 +217,11 @@ footer p { opacity: 75%; } -.track-container { - max-height: 195px !important; - overflow: scroll; +.faq-container { + flex-direction: column; } -.track-header { +.track-header, .faq-question { margin-left: 20px; position: relative; background: none; @@ -209,13 +229,14 @@ footer p { outline: none; font-size: 1.3rem !important; color: #ddc8af; + text-align: left; } -.track-header:focus { +.track-header:focus, .faq-question:focus { outline: none; } -.track-header::before { +.track-header::before, .faq-question::before { position: absolute; top: 5px; left: -20px; @@ -224,46 +245,99 @@ footer p { height: 2px; color: #ddc8af; box-shadow: 2px 2px, 4px 2px, 2px 4px, 4px 4px, 6px 4px, 8px 4px, 2px 6px, 4px 6px, 6px 6px, 8px 6px, 10px 6px, 2px 8px, 4px 8px, 6px 8px, 8px 8px, 10px 8px, 12px 8px, 2px 10px, 4px 10px, 6px 10px, 8px 10px, 10px 10px, 2px 12px, 4px 12px, 6px 12px, 8px 12px, 2px 14px, 4px 14px; - /* transition: transform 200ms ease; */ display: block; } -.track.open .track-header::before { +.track.open .track-header::before, .faq.open .faq-question::before { transform: rotate(90deg); top: 5px; left: -5px; } -.info-modal-container { - position: relative; +.track-container { + flex-direction: column; +} + +.tab-title { + color: #D8B286; + font-size: 1.5rem; + margin: 0; +} + +.team-container { + width: 98%; + position: fixed; + flex-direction: column; + max-height: 520px !important; + overflow-y: scroll; +} + +/* Team layout and profile picture style */ +.team-grid { + display: grid; + gap: 1rem; + padding: 2px 0 20px; +} + +.team-group { display: flex; flex-direction: column; - font-family: "Jersey 20", cursive; - width: 550px; - min-width: 200px; - min-height: 280px; + /* gap: 0.75rem; */ } -.tab-container { +.team-position { + color: #d8b286; + font-size: 1.35rem; + margin: 0; +} + +.team-members { display: flex; - max-height: 300px; - gap: 10px; - color: #ddc8af; + flex-wrap: wrap; + gap: 1rem; } -.track-container { +.team-card { + display: flex; flex-direction: column; + align-items: center; + width: 135px; + padding: 0.4rem; + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 18px; + text-align: center; + position: relative; } -/* .tab-container p { - max-height: 300px; - overflow: scroll; -} */ +.avatar { + width: 95px; + height: 95px; + border-radius: 50%; + overflow: hidden; + margin-bottom: 0.75rem; +} -.tab-title { - color: #D8B286; - font-size: 1.5rem; +.profile-pic { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +.team-name { margin: 0; + color: #ddc8af; + font-size: 1rem; + /* font-weight: 600; */ +} + +.profile-linkedin { + position: absolute; + right: -3px; + top: 0; + scale: 90%; + cursor: pointer; } .tab-container * { @@ -277,6 +351,43 @@ footer p { outline: none; } +@media (min-width: 768px) { + .title { + font-size: 99px; + } + .badge { + bottom: -90%; + right: -17%; + font-size: 2.3rem; + } + .ReactModal__Content { + max-width: 550px; + padding: 10px !important; + } + .tab-container { + min-height: 235px; + max-height: 235px; + } +} + +/* Targeted for Chrome, Edge, and Safari */ +::-webkit-scrollbar { + width: 8px; /* Adjust width as needed */ +} + +::-webkit-scrollbar-track { + background: transparent; /* Removes the white background */ +} + +::-webkit-scrollbar-thumb { + background: #888; /* The actual scroll handle */ + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #555; +} + @keyframes badgeTextPulse { 0%, 100% { diff --git a/websites/front-page/src/App.tsx b/websites/front-page/src/App.tsx index 3aa305ef..d200ddf6 100644 --- a/websites/front-page/src/App.tsx +++ b/websites/front-page/src/App.tsx @@ -3,14 +3,17 @@ import swamphacksIcon from "./assets/shxii-icon-transparent.png"; import gatorGif from "./assets/gator.gif"; import Modal from "react-modal"; import { useState } from "react"; +import Team from "./Team"; +import { Tracks } from "./Tracks"; +import FAQ from "./Faq"; +import About from "./About"; -const customStyles = { +const customModalStyles = { overlay: { backgroundColor: "rgba(0, 0, 0, 0.35)", }, content: { overflow: "hidden", - // maxHeight: "310px", borderColor: "#231909", borderWidth: "5px", backgroundColor: "#7D573C", @@ -47,7 +50,11 @@ function App() { SwampHacks XII Apply now!

Uv;pb`e^=m^qIu>3gH?Ds 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 literal 0 HcmV?d00001 diff --git a/websites/front-page/src/assets/gator.gif b/websites/front-page/src/assets/gator.gif new file mode 100644 index 0000000000000000000000000000000000000000..7f65c996aa9b56e482a255edaef3dba1d620f8bb GIT binary patch literal 142438 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 z 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 H1q1*))E}eg literal 0 HcmV?d00001 diff --git a/websites/front-page/src/assets/nnnoise.svg b/websites/front-page/src/assets/nnnoise.svg new file mode 100644 index 00000000..52633014 --- /dev/null +++ b/websites/front-page/src/assets/nnnoise.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/websites/front-page/src/assets/shxii-icon-transparent.png b/websites/front-page/src/assets/shxii-icon-transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..4dca2c75f3977656e81a3753b2884792f9e46b39 GIT binary patch literal 209155 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

-

Oct 16 - 18, 2026 | Reitz Union

+ +
+

Oct 16 - 18, 2026

+

Reitz Union

+
@@ -89,7 +96,7 @@ function App() { @@ -122,7 +129,9 @@ function InformationModal({ closeModal }: InformationModalProps) { }; return ( -
+
@@ -146,22 +155,22 @@ function InformationModal({ closeModal }: InformationModalProps) { Tracks
{renderTab()} @@ -169,97 +178,4 @@ function InformationModal({ closeModal }: InformationModalProps) { ); } -function About() { - return ( -
-

About SwampHacks

-
-

- SwampHacks is the University of Florida’s flagship hackathon, bringing - together 400+ students each year for 36 hours of creativity, - collaboration, and innovation. Recognized for excellence by UF’s - Herbert Wertheim College of Engineering, SwampHacks offers hands-on - workshops, mentorship, and community-building activities that help - hackers grow their skills and bring their ideas to life. Whether - you’re a first-time hacker or a seasoned coder, SwampHacks is the - place to build, connect, and inspire. -

-
-
- ); -} - -function Tracks() { - const tracks = [ - { - name: "Overall Prize", - description: - "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", - }, - { - name: "Education, Accessibility & Social Impact", - description: - "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", - }, - { - name: "Sustainability", - description: - "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", - }, - { - name: "Game Design", - description: - "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", - }, - { - name: "The Design of Everyday Life (Human-Centered Design)", - description: - "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", - }, - ]; - const [openIndex, setOpenIndex] = useState(null); - - const toggle = (index: number) => { - setOpenIndex(openIndex === index ? null : index); - }; - - // TODO: when click on "team", resize the modal to be taller to fit more content - - return ( -
-

Tracks

-
- {tracks.map((track, idx) => ( -
- - - {openIndex === idx && ( -
-

{track.description}

-
- )} -
- ))} -
-
- ); -} - -function Team() { - return
Team
; -} - -function FAQ() { - return
FAQ
; -} - export default App; diff --git a/websites/front-page/src/Faq.tsx b/websites/front-page/src/Faq.tsx new file mode 100644 index 00000000..731eca45 --- /dev/null +++ b/websites/front-page/src/Faq.tsx @@ -0,0 +1,114 @@ +import { useState } from "react"; + +const faqSections = [ + { + section: "General", + faqs: [ + { + q: "What is SwampHacks?", + a: "SwampHacks is a 36-hour event, where participants collaborate in teams to create solutions, typically in the form of software and hardware projects. Participants can work in teams or individually to develop and build innovative solutions.", + }, + { + q: "Who can participate?", + a: "Students 18 and older and from any university/college are eligible to participate. Students from all academic background are highly encouraged to participate. Regardless of your skill/experience level, we welcome all to join and make the most of the event! As part of our dedication to the UF community and fostering experiential learning in early computing education, we’ll be releasing more details soon about our application review and acceptance processes.", + }, + { + q: "Do I need to have coding experience to participate?", + a: "No experience, no problem! We welcome participant of all skill levels. The idea is that throughout the event, we will support you through workshops and mentors available around the clock.", + }, + { + q: "It’s my first hackathon. Should I apply?", + a: "Yes! We highly encourage and want first time hackers to apply. We’re dedicated to providing experiential learning opportunities for those early in their computing journey.", + }, + { + q: "How can I prepare for the hackathon?", + a: "You can prepare by familiarizing yourself with coding languages or tools, you are looking to use/explore, brushing up on project management skills, and collaboration. However, everything you need will be available during the hackathon.", + }, + { + q: "How much does it cost to participate?", + a: "Nothing! SwampHacks is completely free for all student accepted to the event. However, SwampHacks is unable to cover transportation costs at this time.", + }, + { + q: "Is SwampHacks in-person or virtual?", + a: "SwampHacks is FULLY in-person! Everything from check-in to judging will occur at our venue. Make sure you are able to attend in-person before registering.", + }, + ], + }, + { + section: "Event Details", + faqs: [ + { + q: "What is SwampHacks?", + a: "SwampHacks is a 36-hour event, where participants collaborate in teams to create solutions, typically in the form of software and hardware projects. Participants can work in teams or individually to develop and build innovative solutions.", + }, + { + q: "Who can participate?", + a: "Students 18 and older and from any university/college are eligible to participate. Students from all academic background are highly encouraged to participate. Regardless of your skill/experience level, we welcome all to join and make the most of the event! As part of our dedication to the UF community and fostering experiential learning in early computing education, we’ll be releasing more details soon about our application review and acceptance processes.", + }, + { + q: "Do I need to have coding experience to participate?", + a: "No experience, no problem! We welcome participant of all skill levels. The idea is that throughout the event, we will support you through workshops and mentors available around the clock.", + }, + { + q: "It’s my first hackathon. Should I apply?", + a: "Yes! We highly encourage and want first time hackers to apply. We’re dedicated to providing experiential learning opportunities for those early in their computing journey.", + }, + { + q: "How can I prepare for the hackathon?", + a: "You can prepare by familiarizing yourself with coding languages or tools, you are looking to use/explore, brushing up on project management skills, and collaboration. However, everything you need will be available during the hackathon.", + }, + { + q: "How much does it cost to participate?", + a: "Nothing! SwampHacks is completely free for all student accepted to the event. However, SwampHacks is unable to cover transportation costs at this time.", + }, + { + q: "Is SwampHacks in-person or virtual?", + a: "SwampHacks is FULLY in-person! Everything from check-in to judging will occur at our venue. Make sure you are able to attend in-person before registering.", + }, + ], + }, +]; + +export default function FAQ() { + const [openQuestion, setOpenQuestion] = useState(null); + + const toggle = (sectionIndex: number, questionIndex: number) => { + const key = `${sectionIndex}-${questionIndex}`; + setOpenQuestion(openQuestion === key ? null : key); + }; + + return ( +
+

FAQ

+
+ {faqSections.map((item, sectionIndex) => ( +
+

{item.section}

+ {item.faqs.map((faqItem, questionIndex) => { + const itemKey = `${sectionIndex}-${questionIndex}`; + const isOpen = openQuestion === itemKey; + + return ( +
+ + + {isOpen && ( +
+

{faqItem.a}

+
+ )} +
+ ); + })} +
+ ))} +
+
+ ); +} diff --git a/websites/front-page/src/Team.tsx b/websites/front-page/src/Team.tsx new file mode 100644 index 00000000..844344cb --- /dev/null +++ b/websites/front-page/src/Team.tsx @@ -0,0 +1,80 @@ +import Gabby from "./assets/pfps/Gabby.png"; +import Chris from "./assets/pfps/Chris.png"; + +const team = [ + { + position: "Organizers", + members: [ + { name: "Christian Cardenas", pic: Gabby, linkedin: "" }, + { name: "Gabby Houser", pic: Chris, linkedin: "" }, + ], + }, + { + position: "Marketing", + members: [ + { name: "Christian Cardenas", pic: Gabby, linkedin: "" }, + { name: "Gabby Houser", pic: Chris, linkedin: "" }, + ], + }, + { + position: "Finance", + members: [ + { name: "Christian Cardenas", pic: Gabby, linkedin: "" }, + { name: "Gabby Houser", pic: Chris, linkedin: "" }, + ], + }, + { + position: "Logistics", + members: [ + { name: "Christian Cardenas", pic: Gabby, linkedin: "" }, + { name: "Gabby Houser", pic: Chris, linkedin: "" }, + ], + }, + { + position: "Technology", + members: [ + { name: "Abby Moore (Executive)", pic: Chris, linkedin: "" }, + { + name: "Hieu Nguyen (Executive)", + pic: Gabby, + linkedin: "https://www.linkedin.com/in/hieutnguyendev", + }, + ], + }, +]; + +export default function Team() { + return ( +
+ ); +} diff --git a/websites/front-page/src/Tracks.tsx b/websites/front-page/src/Tracks.tsx new file mode 100644 index 00000000..ce6e7f4c --- /dev/null +++ b/websites/front-page/src/Tracks.tsx @@ -0,0 +1,65 @@ +import { useState } from "react"; + +const tracks = [ + { + name: "Overall Prize", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "Education, Accessibility & Social Impact", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "Sustainability", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "Game Design", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, + { + name: "The Design of Everyday Life (Human-Centered Design)", + description: + "All projects are considered for the Overall Prize. The General Track is for any innovative projects that do not necessarily fit under any of the other tracks.", + }, +]; + +export function Tracks() { + const [openIndex, setOpenIndex] = useState(null); + + const toggle = (index: number) => { + setOpenIndex(openIndex === index ? null : index); + }; + + return ( +
+

Tracks

+
+ {tracks.map((track, idx) => ( +
+ + + {openIndex === idx && ( +
+

{track.description}

+
+ )} +
+ ))} +
+
+ ); +} diff --git a/websites/front-page/src/assets/pfps/Chris.png b/websites/front-page/src/assets/pfps/Chris.png new file mode 100644 index 0000000000000000000000000000000000000000..772a80df8ef56e094bcdf12e5a6e707b4b811c8b GIT binary patch literal 572313 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�bk0I2}j!ha>&X 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

8jR>-Yi?CVP)DZCs=_zTBkkAw8w7Vqr$LRA7QiI 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%0AAIpS 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 Date: Tue, 26 May 2026 19:11:06 -0400 Subject: [PATCH 05/21] add Sponsors and Partners components with modal functionality --- websites/front-page/src/App.css | 387 +++++++++++++++++- websites/front-page/src/App.tsx | 50 ++- websites/front-page/src/Partners.tsx | 85 ++++ websites/front-page/src/Sponsors.tsx | 94 +++++ .../front-page/src/assets/sponsors/uf.png | Bin 0 -> 87988 bytes 5 files changed, 603 insertions(+), 13 deletions(-) create mode 100644 websites/front-page/src/Partners.tsx create mode 100644 websites/front-page/src/Sponsors.tsx create mode 100644 websites/front-page/src/assets/sponsors/uf.png diff --git a/websites/front-page/src/App.css b/websites/front-page/src/App.css index 983f5220..1b8f0458 100644 --- a/websites/front-page/src/App.css +++ b/websites/front-page/src/App.css @@ -46,7 +46,7 @@ p { display: flex; flex-direction: column; align-items: center; - margin-top: 100px; + margin-top: 80px; flex: 1; justify-content: flex-start; } @@ -110,12 +110,25 @@ p { } .date, .location { - margin: 25px 0 0 0; + position: relative; + display: inline-block; + margin: 0; font-family: "Jersey 20", cursive; color: #d8b286; font-size: 2.4rem; line-height: 0.78; - -webkit-text-stroke: 0.5px #7c573c; + /* font-weight: 400; */ + letter-spacing: 0.045em; + -webkit-text-stroke: 1px #7c573c; + text-shadow: + 0 2px 0 #312821, + 0 4px 10px rgba(0, 0, 0, 0.1); + /* margin: 25px 0 0 0; + font-family: "Jersey 20", cursive; + color: #d8b286; + font-size: 2.4rem; + line-height: 0.78; + -webkit-text-stroke: 0.5px #7c573c; */ } .menu-container { @@ -145,6 +158,52 @@ p { 0 -2px #5b3119; } +.submenu-container { + text-align: center; + font-family: "Jersey 20", cursive; + color: #e4ceb2 !important; + text-shadow: + 1px 0 #7e5d4c, + -1px 0 #7e5d4c, + 0 1px #7e5d4c, + 0 -1px #7e5d4c; + font-size: 1.5rem; + +} + +.submenu-container-title { + font-size: 1.7rem; + letter-spacing: 1.5px; +} + +.submenu-links-container { + display: flex; + /* gap: 25px; */ + align-items: center; + gap: 5px; + font-family: "Jersey 20", cursive; + color: #e4ceb2 !important; + text-shadow: + 1px 0 #7e5d4c, + -1px 0 #7e5d4c, + 0 1px #7e5d4c, + 0 -1px #7e5d4c; + font-size: 1.5rem; +} + +.submenu-links-container span{ + user-select: none; +} + + +.submenu-link { + text-decoration: underline !important; +} + +.submenu-link:hover { + color: #d6b58d !important; +} + .community-buttons { display: flex; width: 100%; @@ -187,7 +246,7 @@ footer p { font-size: 1.3rem; } -.info-modal-container { +.info-modal-container, .sponsor-modal-container { position: relative; display: flex; flex-direction: column; @@ -197,6 +256,10 @@ footer p { transition: min-height 200ms ease; } +.sponsor-modal-container { + min-height: 500px; +} + .tab-container { display: flex; max-height: 250px; @@ -205,6 +268,10 @@ footer p { overflow-y: auto; } +.track-container { + min-height: 250px; +} + .modal-large { min-height: 600px !important; } @@ -351,6 +418,24 @@ footer p { outline: none; } +.sponsors-container { + max-height: 500px !important; + margin-top: 10px; +} + +.sponsor { + width: 50%; + height: 80px; + padding: 0.4rem; + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.08); + border-radius: 18px; +} + +.sponsor img { + width: 100%; +} + @media (min-width: 768px) { .title { font-size: 99px; @@ -368,6 +453,9 @@ footer p { min-height: 235px; max-height: 235px; } + .date, .location { + font-size: 2.8rem; + } } /* Targeted for Chrome, Edge, and Safari */ @@ -400,3 +488,294 @@ footer p { scale(1.06); } } + +/* ================== SPONSORS STYLES (Copied from XI front page) ==================== */ + +.sponsor-header { + display: flex; + align-items: center; + gap: 20px; +} + +.sponsor-header a { + opacity: 90%; + line-height: 0.7; + font-size: 1.4rem; +} + + +/* Sponsors Grid - Tight, Mixed Layout */ +.sponsors-grid { + overflow-x: hidden; + /* padding: 1rem; */ + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-auto-rows: minmax(70px, auto); + grid-auto-flow: dense; + gap: 0.5rem; + width: 100%; + /* max-width: 250px; */ + margin: 0 auto; +} + +@media (min-width: 768px) { + .sponsors-grid { + padding: 1rem; + max-width: none; + grid-template-columns: repeat(4, 1fr); + grid-auto-rows: 100px; + gap: 1.5rem; + } +} + +@media (min-width: 1024px) { + .sponsors-grid { + grid-auto-rows: 150px; + gap: 1.25rem; + } +} + +/* Sponsor Card Base */ +.sponsor-card { + position: relative; + height: 100%; + z-index: 1; + transition: z-index 0s; +} + +.sponsor-card:hover { + z-index: 100; +} + +/* Grid Spans for Different Sizes - Mobile (3 columns) */ +.sponsor-rect-long { + grid-column: span 3; + grid-row: span 1; +} + +.sponsor-rect-wide { + grid-column: span 3; + grid-row: span 1; +} + +.sponsor-big-rect { + grid-column: span 3; + grid-row: span 2; +} + +.sponsor-small { + grid-column: span 1; + grid-row: span 1; +} + +.sponsor-co-host { + grid-column: span 3; + grid-row: span 2; +} + +/* Desktop (6 columns) */ +@media (min-width: 768px) { + /* Long rectangle: 3 columns × 1 row */ + .sponsor-rect-long { + grid-column: span 2; + grid-row: span 1; + } + + /* Small squares: 1 column × 1 row */ + .sponsor-small { + grid-column: span 1; + grid-row: span 1; + } + + /* Big rectangle: 3 columns × 2 rows */ + .sponsor-big-rect { + grid-column: span 3; + grid-row: span 2; + } + + /* Even longer rectangle: 3 columns × 1 row */ + .sponsor-rect-wide { + grid-column: span 3; + grid-row: span 1; + } + + /* Co-Host: 6 columns × 2 rows */ + .sponsor-co-host { + grid-column: span 4; + grid-row: span 1; + } +} + +/* Logo Card Container */ +.sponsor-logo-card { + display: flex; + align-items: center; + justify-content: center; + min-height: 60px; + border-radius: 0.5rem; + transition: all 0.3s ease; + overflow: hidden; + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.08); + backdrop-filter: blur(4px); +} + +/* Use height 100% for items that span multiple rows, but not for small items */ +.sponsor-rect-long .sponsor-logo-card, +.sponsor-rect-wide .sponsor-logo-card, +.sponsor-big-rect .sponsor-logo-card, +.sponsor-co-host .sponsor-logo-card { + height: 100%; +} + +@media (min-width: 768px) { + .sponsor-logo-card { + border-radius: 1rem; + min-height: 100px; + } +} + +/* Different padding for different sizes - Mobile */ +.sponsor-rect-long .sponsor-logo-card { + padding: 0.7rem; + min-height: 80px; + height: auto; + max-height: 80px; +} + +.sponsor-big-rect .sponsor-logo-card { + padding: 0.5rem; + min-height: 120px; +} + +.sponsor-co-host .sponsor-logo-card { + padding: 0.75rem; + min-height: 140px; +} + +.sponsor-small .sponsor-logo-card { + padding: 0.7rem; + height: 100%; +} + +@media (min-width: 768px) { + .sponsor-rect-long .sponsor-logo-card { + padding: 1rem; + min-height: 100px; + height: 100%; + max-height: none; + } + .sponsor-big-rect .sponsor-logo-card { + padding: 2rem; + min-height: 200px; + } + + .sponsor-co-host .sponsor-logo-card { + /* padding: 3rem; */ + min-height: 150px; + } + + .sponsor-small .sponsor-logo-card { + height: 100%; + } +} + +/* Logo Image */ +.sponsor-logo { + height: auto; + max-width: 80%; + max-height: 80%; + padding: 0.25rem; + object-fit: contain; +} + +@media (min-width: 768px) { + .sponsor-logo { + max-width: 120%; + max-height: 120%; + padding: 0.5rem; + } +} + +/* Make logos larger in rect-long cards */ +.sponsor-rect-long .sponsor-logo { + padding: 0.25rem !important; + max-width: 70%; + max-height: 70%; +} + +@media (min-width: 768px) { + .sponsor-rect-long .sponsor-logo { + padding: 0.75rem; + max-width: 100%; + max-height: 100%; + } +} + +/* Logo Size Variations - Reduce container padding for large logos */ +.sponsor-logo-card:has(.logo-large) { + padding: 0.25rem !important; +} + +@media (min-width: 768px) { + .sponsor-logo-card:has(.logo-large) { + padding: 1rem !important; + } + + .sponsor-big-rect .sponsor-logo-card:has(.logo-large) { + padding: 1.25rem !important; + } + + .sponsor-co-host .sponsor-logo-card:has(.logo-large) { + padding: 2rem !important; + } +} + +.logo-large { + max-width: 70% !important; + max-height: 70% !important; + padding: 0 !important; + width: auto !important; + height: auto !important; +} + +@media (min-width: 768px) { + .logo-large { + max-width: 280% !important; + max-height: 280% !important; + } +} + +/* Hover Effects */ +.group:hover .sponsor-logo-card { + transform: scale(1.03); +} + +/* Tooltip Styles */ +.sponsor-tooltip { + position: absolute; + bottom: -2.5rem; + left: 50%; + transform: translateX(-50%); + white-space: nowrap; + border-radius: 0.5rem; + background-color: rgb(31, 41, 55); + padding: 0.375rem 0.75rem; + font-size: 0.75rem; + color: white; + opacity: 0; + transition: opacity 0.3s; + z-index: 101; + pointer-events: none; +} + +@media (min-width: 768px) { + .sponsor-tooltip { + bottom: -3rem; + font-size: 0.875rem; + } +} + +.group:hover .sponsor-tooltip { + opacity: 1; +} \ No newline at end of file diff --git a/websites/front-page/src/App.tsx b/websites/front-page/src/App.tsx index d200ddf6..e135d4ba 100644 --- a/websites/front-page/src/App.tsx +++ b/websites/front-page/src/App.tsx @@ -7,6 +7,8 @@ import Team from "./Team"; import { Tracks } from "./Tracks"; import FAQ from "./Faq"; import About from "./About"; +import Sponsors from "./Sponsors"; +import Partners from "./Partners"; const customModalStyles = { overlay: { @@ -30,13 +32,13 @@ Modal.setAppElement("#root"); function App() { const [modalIsOpen, setIsOpen] = useState(false); - - function openModal() { - setIsOpen(true); - } + const [sponsorModalIsOpen, setSponsorModalIsOpen] = useState(false); + const [partnersModalIsOpen, setPartnersModalIsOpen] = useState(false); function closeModal() { setIsOpen(false); + setSponsorModalIsOpen(false); + setPartnersModalIsOpen(false); } return ( @@ -59,12 +61,36 @@ function App() {

-
- - + + +
+
+ +
@@ -94,11 +120,17 @@ function App() { - + {sponsorModalIsOpen ? ( + + ) : partnersModalIsOpen ? ( + + ) : ( + + )}
); diff --git a/websites/front-page/src/Partners.tsx b/websites/front-page/src/Partners.tsx new file mode 100644 index 00000000..cccda5d1 --- /dev/null +++ b/websites/front-page/src/Partners.tsx @@ -0,0 +1,85 @@ +import UF from "./assets/sponsors/uf.png"; + +interface PartnersProps { + closeModal: () => void; +} + +const sponsors = [ + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "co-host", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "rect-long", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "rect-long", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "small", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "small", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "small", + }, +]; + +export default function Partners({ closeModal }: PartnersProps) { + return ( +
+ +
+

Our Community Partners

+
+
+ {sponsors.map((sponsor) => ( + + ))} +
+ {/*
+ +
*/} +
+
+
+ ); +} diff --git a/websites/front-page/src/Sponsors.tsx b/websites/front-page/src/Sponsors.tsx new file mode 100644 index 00000000..3923df57 --- /dev/null +++ b/websites/front-page/src/Sponsors.tsx @@ -0,0 +1,94 @@ +import UF from "./assets/sponsors/uf.png"; + +interface SponsorsProps { + closeModal: () => void; +} + +const sponsors = [ + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "co-host", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "rect-long", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "rect-long", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "small", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "small", + }, + { + name: "Placeholder", + logo: UF, + url: "", + gridSize: "small", + }, +]; + +export default function Sponsors({ closeModal }: SponsorsProps) { + return ( +
+ +
+
+

Our Sponsors

+ + Sponsor SH XII + +
+
+
+ {sponsors.map((sponsor) => ( + + ))} +
+ {/*
+ +
*/} +
+
+
+ ); +} diff --git a/websites/front-page/src/assets/sponsors/uf.png b/websites/front-page/src/assets/sponsors/uf.png new file mode 100644 index 0000000000000000000000000000000000000000..2d22d2236bb9b110bccb3a08be25644aa66cd7b5 GIT binary patch literal 87988 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 literal 0 HcmV?d00001 From f699ff2c5ddb3e79998ba5b28e4be93abe4d3511 Mon Sep 17 00:00:00 2001 From: William Chi Date: Tue, 2 Jun 2026 14:09:03 -0700 Subject: [PATCH 06/21] Adds the email campaign service layer inside the existing email domain (#352) * feat: add the existing email routes and handler to the API * feat: add email campaigns migration with status, format, and recipient types * feat: add EmailCampaign model with status, format, and recipient types * feat: update SQLC version to v1.30.0 * feat: add SQL queries for email campaigns management * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: use sqlc.narg for nullable scheduled_at and sent_at in update queries Agent-Logs-Url: https://github.com/swamphacks/core/sessions/1e2e08e9-0737-47dd-8a01-bddead1ad570 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * style: group stdlib and third-party imports in email_campaigns repository Agent-Logs-Url: https://github.com/swamphacks/core/sessions/5c4475ce-1d02-429a-80bf-15b48fefcd07 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * feat: implement EmailCampaignService with CRUD operations and validation --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> --- .../domains/email/campaign_service.go | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 apps/api/internal/domains/email/campaign_service.go diff --git a/apps/api/internal/domains/email/campaign_service.go b/apps/api/internal/domains/email/campaign_service.go new file mode 100644 index 00000000..f978d0a9 --- /dev/null +++ b/apps/api/internal/domains/email/campaign_service.go @@ -0,0 +1,150 @@ +package email + +import ( + "context" + "errors" + "strings" + + "github.com/rs/zerolog" + "github.com/swamphacks/core/apps/api/internal/database/repository" + "github.com/swamphacks/core/apps/api/internal/database/sqlc" +) + +var ( + //Reuses repository-level "not found" error + ErrEmailCampaignNotFound = repository.ErrEmailCampaignNotFound + + //validation errors before writing error to db + ErrEmailCampaignTitleRequired = errors.New("email campaign title is required") + ErrEmailCampaignSubjectRequired = errors.New("email campaign subject is required") + ErrEmailCampaignBodyRequired = errors.New("email campaign body is required") + ErrEmailCampaignRecipientsRequired = errors.New("email campaign recipients are required") + + ErrEmailCampaignCannotEdit = errors.New("email campaign cannot be edited") + + //status-specific validation errors + ErrEmailCampaignScheduledAtRequired = errors.New("scheduled_at is required for scheduled campaigns") + ErrEmailCampaignSentAtRequired = errors.New("sent_at is required for sent campaigns") +) + +// EmailCampaignService owns business rules for saved email campaigns. +type EmailCampaignService struct { + emailCampaignRepo *repository.EmailCampaignRepository + logger zerolog.Logger +} + +// NewEmailCampaignService creates the service and stores its dependencies. +// This will eventually be called from api.go when wiring the app together. +func NewEmailCampaignService( + emailCampaignRepo *repository.EmailCampaignRepository, + logger zerolog.Logger, +) *EmailCampaignService { + return &EmailCampaignService{ + emailCampaignRepo: emailCampaignRepo, + logger: logger.With().Str("service", "EmailCampaignService").Str("domain", "email").Logger(), + } +} + +// CreateCampaign validates required campaign fields, then stores a new campaign. +// The actual INSERT is handled by the repository/sqlc layer. +func (s *EmailCampaignService) CreateCampaign( + ctx context.Context, + params sqlc.CreateEmailCampaignParams, +) (*sqlc.EmailCampaign, error) { + if err := validateCampaignContent(params.Title, params.Subject, params.Body, params.RecipientTypes); err != nil { + return nil, err + } + + return s.emailCampaignRepo.CreateEmailCampaign(ctx, params) +} + + +// GetCampaignByID fetches one campaign scoped to a hackathon. +// The hackathon scope prevents one event from reading another event's campaign. +func (s *EmailCampaignService) GetCampaignByID( + ctx context.Context, + params sqlc.GetEmailCampaignByIDParams, +) (*sqlc.EmailCampaign, error) { + return s.emailCampaignRepo.GetEmailCampaignByID(ctx, params) +} + +// ListCampaigns fetches all campaigns for one hackathon. +// Sorting is handled by the SQL query, currently newest first. +func (s *EmailCampaignService) ListCampaigns( + ctx context.Context, + hackathonID string, +) ([]sqlc.EmailCampaign, error) { + return s.emailCampaignRepo.ListEmailCampaigns(ctx, hackathonID) +} + +// UpdateCampaign updates editable campaign fields. +// It first loads the existing campaign so we can enforce status rules before updating. +func (s *EmailCampaignService) UpdateCampaign( + ctx context.Context, + params sqlc.UpdateEmailCampaignParams, +) (*sqlc.EmailCampaign, error) { + existingCampaign, err := s.emailCampaignRepo.GetEmailCampaignByID(ctx, sqlc.GetEmailCampaignByIDParams{ + ID: params.ID, + HackathonID: params.HackathonID, + }) + if err != nil { + return nil, err + } + + if !canEditCampaign(existingCampaign.Status) { + return nil, ErrEmailCampaignCannotEdit + } + + return s.emailCampaignRepo.UpdateEmailCampaign(ctx, params) +} + +// UpdateCampaignStatus changes lifecycle fields such as draft -> scheduled or sending -> sent. +// The database also has constraints, but checking here gives cleaner service-level errors. +func (s *EmailCampaignService) UpdateCampaignStatus( + ctx context.Context, + params sqlc.UpdateEmailCampaignStatusParams, +) (*sqlc.EmailCampaign, error) { + if params.Status == sqlc.EmailCampaignStatusScheduled && params.ScheduledAt == nil { + return nil, ErrEmailCampaignScheduledAtRequired + } + + if params.Status == sqlc.EmailCampaignStatusSent && params.SentAt == nil { + return nil, ErrEmailCampaignSentAtRequired + } + + return s.emailCampaignRepo.UpdateEmailCampaignStatus(ctx, params) +} + +// validateCampaignContent checks fields that every campaign needs before it is saved. +// strings.TrimSpace prevents values like " " from passing validation. +func validateCampaignContent( + title string, + subject string, + body string, + recipientTypes []sqlc.EmailRecipientType, +) error { + if strings.TrimSpace(title) == "" { + return ErrEmailCampaignTitleRequired + } + + if strings.TrimSpace(subject) == "" { + return ErrEmailCampaignSubjectRequired + } + + if strings.TrimSpace(body) == "" { + return ErrEmailCampaignBodyRequired + } + + if len(recipientTypes) == 0 { + return ErrEmailCampaignRecipientsRequired + } + + return nil +} + +// canEditCampaign centralizes edit rules. +// Drafts are editable, and scheduled campaigns can still be adjusted before sending. +func canEditCampaign(status sqlc.EmailCampaignStatus) bool { + return status == sqlc.EmailCampaignStatusDraft || + status == sqlc.EmailCampaignStatusScheduled +} \ No newline at end of file From 1a6bda73dc4688bee33f00a5b79d4725f282e7dd Mon Sep 17 00:00:00 2001 From: William Chi Date: Thu, 4 Jun 2026 12:49:04 -0700 Subject: [PATCH 07/21] feat: add email campaign HTTP handlers (#353) * feat: add the existing email routes and handler to the API * feat: add email campaigns migration with status, format, and recipient types * feat: add EmailCampaign model with status, format, and recipient types * feat: update SQLC version to v1.30.0 * feat: add SQL queries for email campaigns management * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: use sqlc.narg for nullable scheduled_at and sent_at in update queries Agent-Logs-Url: https://github.com/swamphacks/core/sessions/1e2e08e9-0737-47dd-8a01-bddead1ad570 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * style: group stdlib and third-party imports in email_campaigns repository Agent-Logs-Url: https://github.com/swamphacks/core/sessions/5c4475ce-1d02-429a-80bf-15b48fefcd07 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * feat: implement EmailCampaignService with CRUD operations and validation * Add email campaign HTTP routes and handler implementations * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> --- .../internal/domains/email/campaign_http.go | 313 ++++++++++++++++++ 1 file changed, 313 insertions(+) create mode 100644 apps/api/internal/domains/email/campaign_http.go diff --git a/apps/api/internal/domains/email/campaign_http.go b/apps/api/internal/domains/email/campaign_http.go new file mode 100644 index 00000000..a5cf754b --- /dev/null +++ b/apps/api/internal/domains/email/campaign_http.go @@ -0,0 +1,313 @@ +package email + +import ( + "context" + "errors" + "net/http" + "time" + + "github.com/danielgtaylor/huma/v2" + "github.com/google/uuid" + "github.com/rs/zerolog" + "github.com/swamphacks/core/apps/api/internal/api/cookie" + "github.com/swamphacks/core/apps/api/internal/api/middleware" + "github.com/swamphacks/core/apps/api/internal/ctxutils" + "github.com/swamphacks/core/apps/api/internal/database/sqlc" +) + +func RegisterCampaignRoutes(emailCampaignHandler *emailCampaignHandler, group huma.API, mw *middleware.Middleware) { + huma.Register(group, huma.Operation{ + OperationID: "create-email-campaign", + Method: http.MethodPost, + Summary: "Create Email Campaign", + Description: "Creates a saved email campaign draft for a hackathon.", + Tags: []string{"Email Campaigns"}, + Path: "/campaigns", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Errors: []int{http.StatusUnauthorized, http.StatusBadRequest, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusCreated, + }, emailCampaignHandler.handleCreateCampaign) + + huma.Register(group, huma.Operation{ + OperationID: "list-email-campaigns", + Method: http.MethodGet, + Summary: "List Email Campaigns", + Description: "Returns all saved email campaigns for a hackathon.", + Tags: []string{"Email Campaigns"}, + Path: "/campaigns", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Errors: []int{http.StatusUnauthorized, http.StatusBadRequest, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, emailCampaignHandler.handleListCampaigns) + + huma.Register(group, huma.Operation{ + OperationID: "get-email-campaign", + Method: http.MethodGet, + Summary: "Get Email Campaign", + Description: "Returns one saved email campaign by id.", + Tags: []string{"Email Campaigns"}, + Path: "/campaigns/{campaignId}", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Errors: []int{http.StatusUnauthorized, http.StatusBadRequest, http.StatusNotFound, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, emailCampaignHandler.handleGetCampaign) + + huma.Register(group, huma.Operation{ + OperationID: "update-email-campaign", + Method: http.MethodPatch, + Summary: "Update Email Campaign", + Description: "Updates editable fields on a draft or scheduled email campaign.", + Tags: []string{"Email Campaigns"}, + Path: "/campaigns/{campaignId}", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Errors: []int{http.StatusUnauthorized, http.StatusBadRequest, http.StatusNotFound, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, emailCampaignHandler.handleUpdateCampaign) + + huma.Register(group, huma.Operation{ + OperationID: "update-email-campaign-status", + Method: http.MethodPatch, + Summary: "Update Email Campaign Status", + Description: "Updates lifecycle fields such as status, scheduled_at, sent_at, and last_error.", + Tags: []string{"Email Campaigns"}, + Path: "/campaigns/{campaignId}/status", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Errors: []int{http.StatusUnauthorized, http.StatusBadRequest, http.StatusNotFound, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, emailCampaignHandler.handleUpdateCampaignStatus) +} + +type emailCampaignHandler struct { + emailCampaignService *EmailCampaignService + logger zerolog.Logger +} + +func NewCampaignHandler(emailCampaignService *EmailCampaignService, logger zerolog.Logger) *emailCampaignHandler { + return &emailCampaignHandler{ + emailCampaignService: emailCampaignService, + logger: logger.With().Str("handler", "EmailCampaignHandler").Str("domain", "email").Logger(), + } +} + +type CreateEmailCampaignRequest struct { + HackathonID string `json:"hackathonId" required:"true"` + Title string `json:"title" minLength:"1"` + Description *string `json:"description,omitempty"` + Subject string `json:"subject" minLength:"1"` + Body string `json:"body" minLength:"1"` + Format sqlc.EmailCampaignFormat `json:"format" required:"true"` + RecipientTypes []sqlc.EmailRecipientType `json:"recipientTypes" minItems:"1"` + ScheduledAt *time.Time `json:"scheduledAt,omitempty"` +} + +type UpdateEmailCampaignRequest struct { + Title *string `json:"title,omitempty"` + Description *string `json:"description,omitempty"` + Subject *string `json:"subject,omitempty"` + Body *string `json:"body,omitempty"` + Format *sqlc.EmailCampaignFormat `json:"format,omitempty"` + RecipientTypes *[]sqlc.EmailRecipientType `json:"recipientTypes,omitempty"` + ScheduledAt *time.Time `json:"scheduledAt,omitempty"` +} + +type UpdateEmailCampaignStatusRequest struct { + Status sqlc.EmailCampaignStatus `json:"status" required:"true"` + ScheduledAt *time.Time `json:"scheduledAt,omitempty"` + SentAt *time.Time `json:"sentAt,omitempty"` + LastError *string `json:"lastError,omitempty"` +} + +type EmailCampaignOutput struct { + Body *sqlc.EmailCampaign +} + +type ListEmailCampaignsOutput struct { + Body []sqlc.EmailCampaign +} + +func (h *emailCampaignHandler) handleCreateCampaign(ctx context.Context, input *struct { + Body CreateEmailCampaignRequest +}) (*EmailCampaignOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + campaign, err := h.emailCampaignService.CreateCampaign(ctx, sqlc.CreateEmailCampaignParams{ + HackathonID: input.Body.HackathonID, + Title: input.Body.Title, + Description: input.Body.Description, + Subject: input.Body.Subject, + Body: input.Body.Body, + Format: input.Body.Format, + RecipientTypes: input.Body.RecipientTypes, + ScheduledAt: input.Body.ScheduledAt, + CreatedByUserID: &userCtx.UserID, + UpdatedByUserID: &userCtx.UserID, + }) + if err != nil { + return nil, campaignHTTPError(err, "Failed to create email campaign") + } + + return &EmailCampaignOutput{Body: campaign}, nil +} + +func (h *emailCampaignHandler) handleListCampaigns(ctx context.Context, input *struct { + HackathonID string `query:"hackathonId" required:"true"` +}) (*ListEmailCampaignsOutput, error) { + campaigns, err := h.emailCampaignService.ListCampaigns(ctx, input.HackathonID) + if err != nil { + return nil, campaignHTTPError(err, "Failed to list email campaigns") + } + + return &ListEmailCampaignsOutput{Body: campaigns}, nil +} + +func (h *emailCampaignHandler) handleGetCampaign(ctx context.Context, input *struct { + CampaignID string `path:"campaignId"` + HackathonID string `query:"hackathonId" required:"true"` +}) (*EmailCampaignOutput, error) { + campaignID, err := uuid.Parse(input.CampaignID) + if err != nil { + return nil, huma.Error400BadRequest("Invalid campaign id") + } + + campaign, err := h.emailCampaignService.GetCampaignByID(ctx, sqlc.GetEmailCampaignByIDParams{ + ID: campaignID, + HackathonID: input.HackathonID, + }) + if err != nil { + return nil, campaignHTTPError(err, "Failed to get email campaign") + } + + return &EmailCampaignOutput{Body: campaign}, nil +} + +func (h *emailCampaignHandler) handleUpdateCampaign(ctx context.Context, input *struct { + CampaignID string `path:"campaignId"` + HackathonID string `query:"hackathonId" required:"true"` + Body UpdateEmailCampaignRequest +}) (*EmailCampaignOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + campaignID, err := uuid.Parse(input.CampaignID) + if err != nil { + return nil, huma.Error400BadRequest("Invalid campaign id") + } + if input.Body.Title != nil && *input.Body.Title == "" { + return nil, huma.Error400BadRequest(ErrEmailCampaignTitleRequired.Error()) + } + if input.Body.Subject != nil && *input.Body.Subject == "" { + return nil, huma.Error400BadRequest(ErrEmailCampaignSubjectRequired.Error()) + } + if input.Body.Body != nil && *input.Body.Body == "" { + return nil, huma.Error400BadRequest(ErrEmailCampaignBodyRequired.Error()) + } + if input.Body.RecipientTypes != nil && len(*input.Body.RecipientTypes) == 0 { + return nil, huma.Error400BadRequest(ErrEmailCampaignRecipientsRequired.Error()) + } + + params := sqlc.UpdateEmailCampaignParams{ + TitleDoUpdate: input.Body.Title != nil, + DescriptionDoUpdate: input.Body.Description != nil, + SubjectDoUpdate: input.Body.Subject != nil, + BodyDoUpdate: input.Body.Body != nil, + FormatDoUpdate: input.Body.Format != nil, + RecipientTypesDoUpdate: input.Body.RecipientTypes != nil, + ScheduledAtDoUpdate: input.Body.ScheduledAt != nil, + UpdatedByUserIDDoUpdate: true, + UpdatedByUserID: userCtx.UserID, + ID: campaignID, + HackathonID: input.HackathonID, + } + + if input.Body.Title != nil { + params.Title = *input.Body.Title + } + if input.Body.Description != nil { + params.Description = input.Body.Description + } + if input.Body.Subject != nil { + params.Subject = *input.Body.Subject + } + if input.Body.Body != nil { + params.Body = *input.Body.Body + } + if input.Body.Format != nil { + params.Format = *input.Body.Format + } + if input.Body.RecipientTypes != nil { + params.RecipientTypes = *input.Body.RecipientTypes + } + if input.Body.ScheduledAt != nil { + params.ScheduledAt = input.Body.ScheduledAt + } + + campaign, err := h.emailCampaignService.UpdateCampaign(ctx, params) + if err != nil { + return nil, campaignHTTPError(err, "Failed to update email campaign") + } + + return &EmailCampaignOutput{Body: campaign}, nil +} + +func (h *emailCampaignHandler) handleUpdateCampaignStatus(ctx context.Context, input *struct { + CampaignID string `path:"campaignId"` + HackathonID string `query:"hackathonId" required:"true"` + Body UpdateEmailCampaignStatusRequest +}) (*EmailCampaignOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + campaignID, err := uuid.Parse(input.CampaignID) + if err != nil { + return nil, huma.Error400BadRequest("Invalid campaign id") + } + + campaign, err := h.emailCampaignService.UpdateCampaignStatus(ctx, sqlc.UpdateEmailCampaignStatusParams{ + Status: input.Body.Status, + ScheduledAtDoUpdate: input.Body.ScheduledAt != nil, + ScheduledAt: input.Body.ScheduledAt, + SentAtDoUpdate: input.Body.SentAt != nil, + SentAt: input.Body.SentAt, + LastErrorDoUpdate: input.Body.LastError != nil, + LastError: input.Body.LastError, + UpdatedByUserIDDoUpdate: true, + UpdatedByUserID: userCtx.UserID, + ID: campaignID, + HackathonID: input.HackathonID, + }) + if err != nil { + return nil, campaignHTTPError(err, "Failed to update email campaign status") + } + + return &EmailCampaignOutput{Body: campaign}, nil +} + +func campaignHTTPError(err error, fallback string) error { + if errors.Is(err, ErrEmailCampaignNotFound) { + return huma.Error404NotFound("Email campaign not found") + } + + if errors.Is(err, ErrEmailCampaignCannotEdit) || + errors.Is(err, ErrEmailCampaignTitleRequired) || + errors.Is(err, ErrEmailCampaignSubjectRequired) || + errors.Is(err, ErrEmailCampaignBodyRequired) || + errors.Is(err, ErrEmailCampaignRecipientsRequired) || + errors.Is(err, ErrEmailCampaignScheduledAtRequired) || + errors.Is(err, ErrEmailCampaignSentAtRequired) { + return huma.Error400BadRequest(err.Error()) + } + + return huma.Error500InternalServerError(fallback) +} From 9c3b28768663da4ad3af2d1c991b41013abc7e72 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen <76720778+hieunguyent12@users.noreply.github.com> Date: Thu, 4 Jun 2026 15:56:20 -0400 Subject: [PATCH 08/21] Applicant Views (Accepted, Rejected, Waitlisted) (#354) * started work on applicant views * added accepted, rejectd, waitlisted views --- apps/api/cmd/samples/main.go | 2 +- apps/api/docs/openapi.json | 2 +- apps/api/internal/api/middleware/auth.go | 23 +- ...0502234849_has_seen_application_status.sql | 5 + .../database/queries/applications.sql | 3 +- .../internal/database/queries/sessions.sql | 5 +- apps/api/internal/database/queries/users.sql | 7 +- .../database/sqlc/applications.sql.go | 2 +- .../internal/database/sqlc/hackathons.sql.go | 3 +- apps/api/internal/database/sqlc/models.go | 29 +- .../internal/database/sqlc/sessions.sql.go | 29 +- apps/api/internal/database/sqlc/users.sql.go | 66 +- .../api/internal/domains/hackathon/service.go | 3 - apps/api/internal/domains/users/http.go | 41 +- apps/api/internal/domains/users/service.go | 6 +- apps/web/src/components/AppShell/AppShell.tsx | 31 +- .../components/AppShell/ApplicantNavbar.tsx | 38 + apps/web/src/components/AppShell/NavLink.tsx | 54 +- .../src/components/AppShell/NavSection.tsx | 12 + apps/web/src/components/AppShell/Profile.tsx | 28 +- .../src/components/AppShell/VisitorNavbar.tsx | 29 + apps/web/src/lib/auth/hooks/useUser.ts | 4 +- apps/web/src/lib/auth/services/user.ts | 2 - apps/web/src/lib/auth/types/user.ts | 3 +- apps/web/src/lib/authClient.ts | 2 +- apps/web/src/lib/openapi/schema.d.ts | 807 +++++++++++++++++- .../modules/Application/ApplicationForm.tsx | 45 +- .../Application/hooks/useMyApplication.ts | 3 +- .../modules/Dashboard/ApplicantAppShell.tsx | 60 -- .../modules/Onboarding/OnboardingModal.tsx | 6 +- .../web/src/modules/Settings/SettingsPage.tsx | 4 +- .../Settings/hooks/useSettingsActions.tsx | 6 +- .../routes/_protected/_user/application.tsx | 226 ++++- .../src/routes/_protected/_user/layout.tsx | 59 +- .../events/$eventId/dashboard/layout.tsx | 6 +- apps/web/src/routes/index.tsx | 2 +- 36 files changed, 1370 insertions(+), 283 deletions(-) create mode 100644 apps/api/internal/database/migrations/20260502234849_has_seen_application_status.sql create mode 100644 apps/web/src/components/AppShell/ApplicantNavbar.tsx create mode 100644 apps/web/src/components/AppShell/NavSection.tsx create mode 100644 apps/web/src/components/AppShell/VisitorNavbar.tsx delete mode 100644 apps/web/src/modules/Dashboard/ApplicantAppShell.tsx diff --git a/apps/api/cmd/samples/main.go b/apps/api/cmd/samples/main.go index bb068bda..f917369f 100644 --- a/apps/api/cmd/samples/main.go +++ b/apps/api/cmd/samples/main.go @@ -16,7 +16,7 @@ func main() { hackathonRepo := repository.NewHackathonRepository(db) - appOpenTime := time.Date(2026, 5, 26, 19, 13, 20, 0, time.UTC) + appOpenTime := time.Date(2026, 4, 26, 19, 13, 20, 0, time.UTC) appCloseTime := time.Date(2026, 6, 26, 19, 13, 20, 0, time.UTC) earlyAppOpenTime := time.Date(2026, 4, 20, 19, 13, 20, 0, time.UTC) earlyAppCloseTime := time.Date(2026, 4, 26, 19, 13, 20, 0, time.UTC) diff --git a/apps/api/docs/openapi.json b/apps/api/docs/openapi.json index c532b40e..d19cdd12 100644 --- a/apps/api/docs/openapi.json +++ b/apps/api/docs/openapi.json @@ -1 +1 @@ -{"components":{"schemas":{"ApplicationStatistics":{"additionalProperties":false,"properties":{"ageStats":{"$ref":"#/components/schemas/GetApplicationAgeSplitRow"},"genderStats":{"$ref":"#/components/schemas/GetApplicationGenderSplitRow"},"majorStats":{"items":{"$ref":"#/components/schemas/GetApplicationMajorSplitRow"},"type":["array","null"]},"raceStats":{"items":{"$ref":"#/components/schemas/GetApplicationRaceSplitRow"},"type":["array","null"]},"schoolStats":{"items":{"$ref":"#/components/schemas/GetApplicationSchoolSplitRow"},"type":["array","null"]},"statusStats":{"$ref":"#/components/schemas/GetApplicationStatusSplitRow"}},"required":["genderStats","ageStats","raceStats","majorStats","schoolStats","statusStats"],"type":"object"},"AssignRoleBatchRequest":{"additionalProperties":false,"properties":{"assignments":{"items":{"$ref":"#/components/schemas/AssignRoleRequest"},"type":["array","null"]}},"required":["assignments"],"type":"object"},"AssignRoleRequest":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"role":{"type":"string"},"userID":{"type":["string","null"]}},"required":["email","userID","role"],"type":"object"},"AssignedApplication":{"additionalProperties":false,"properties":{"applicantId":{"type":"string"},"status":{"type":"string"}},"required":["applicantId","status"],"type":"object"},"CheckInRequest":{"additionalProperties":false,"properties":{"rfid":{"type":["string","null"]},"userID":{"type":"string"}},"required":["userID","rfid"],"type":"object"},"CreateJoinRequest":{"additionalProperties":false,"properties":{"message":{"type":["string","null"]}},"required":["message"],"type":"object"},"CreateRedeemableRequest":{"additionalProperties":false,"properties":{"amount":{"format":"int64","minimum":1,"type":"integer"},"maxUserAmount":{"format":"int64","type":"integer"},"name":{"minLength":1,"type":"string"}},"required":["name","amount","maxUserAmount"],"type":"object"},"CreateTeamRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"ErrorDetail":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"},"ErrorModel":{"additionalProperties":false,"properties":{"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","examples":["Property foo is required but is missing."],"type":"string"},"errors":{"description":"Optional list of individual error details","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":["array","null"]},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","examples":["https://example.com/error-log/abc123"],"format":"uri","type":"string"},"status":{"description":"HTTP status code","examples":[400],"format":"int64","type":"integer"},"title":{"description":"A short, human-readable summary of the problem type. This value should not change between occurrences of the error.","examples":["Bad Request"],"type":"string"},"type":{"default":"about:blank","description":"A URI reference to human-readable documentation for the error.","examples":["https://example.com/errors/example"],"format":"uri","type":"string"}},"type":"object"},"FormFile":{"additionalProperties":false,"properties":{"ContentType":{"type":"string"},"Filename":{"type":"string"},"IsSet":{"type":"boolean"},"Size":{"format":"int64","type":"integer"}},"required":["ContentType","IsSet","Size","Filename"],"type":"object"},"GetApplicationAgeSplitRow":{"additionalProperties":false,"properties":{"age_18":{"format":"int64","type":"integer"},"age_19":{"format":"int64","type":"integer"},"age_20":{"format":"int64","type":"integer"},"age_21":{"format":"int64","type":"integer"},"age_22":{"format":"int64","type":"integer"},"age_23_plus":{"format":"int64","type":"integer"},"underage":{"format":"int64","type":"integer"}},"required":["underage","age_18","age_19","age_20","age_21","age_22","age_23_plus"],"type":"object"},"GetApplicationGenderSplitRow":{"additionalProperties":false,"properties":{"female":{"format":"int64","type":"integer"},"male":{"format":"int64","type":"integer"},"non_binary":{"format":"int64","type":"integer"},"other":{"format":"int64","type":"integer"}},"required":["male","female","non_binary","other"],"type":"object"},"GetApplicationMajorSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"major":{"type":"string"}},"required":["major","count"],"type":"object"},"GetApplicationRaceSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"race_group":{"type":"string"}},"required":["race_group","count"],"type":"object"},"GetApplicationSchoolSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"school":{"type":"string"}},"required":["school","count"],"type":"object"},"GetApplicationStatusSplitRow":{"additionalProperties":false,"properties":{"accepted":{"format":"int64","type":"integer"},"rejected":{"format":"int64","type":"integer"},"started":{"format":"int64","type":"integer"},"submitted":{"format":"int64","type":"integer"},"under_review":{"format":"int64","type":"integer"},"waitlisted":{"format":"int64","type":"integer"},"withdrawn":{"format":"int64","type":"integer"}},"required":["started","submitted","under_review","accepted","rejected","waitlisted","withdrawn"],"type":"object"},"GetAttendeesWithDiscordRow":{"additionalProperties":false,"properties":{"discord_id":{"type":"string"},"email":{"type":["string","null"]},"name":{"type":"string"},"user_id":{"type":"string"}},"required":["discord_id","user_id","name","email"],"type":"object"},"GetRedeemablesRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"total_redeemed":{},"total_stock":{"format":"int32","type":"integer"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","total_stock","max_user_amount","created_at","updated_at","total_redeemed"],"type":"object"},"Hackathon":{"additionalProperties":false,"properties":{"accept_early_applications":{"type":"boolean"},"application_close":{"format":"date-time","type":"string"},"application_open":{"format":"date-time","type":"string"},"application_review_started":{"type":"boolean"},"banner":{"type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"decision_release":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"early_application_close":{"format":"date-time","type":["string","null"]},"early_application_open":{"format":"date-time","type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_active":{"type":"boolean"},"location":{"type":["string","null"]},"location_url":{"type":["string","null"]},"max_attendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvp_deadline":{"format":"date-time","type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","description","location","location_url","max_attendees","application_open","application_close","rsvp_deadline","decision_release","start_time","end_time","is_active","created_at","updated_at","banner","application_review_started","accept_early_applications","early_application_open","early_application_close"],"type":"object"},"HackerApplication":{"additionalProperties":false,"properties":{"application":{"contentEncoding":"base64","type":"string"},"createdAt":{"format":"date-time","type":"string"},"hackathonId":{"type":"string"},"savedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"submittedAt":{"format":"date-time","type":["string","null"]},"updatedAt":{"format":"date-time","type":"string"},"userId":{"type":"string"}},"required":["userId","status","application","createdAt","savedAt","updatedAt","submittedAt","hackathonId"],"type":"object"},"ListJoinRequestsByTeamAndStatusWithUserRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_email":{"type":["string","null"]},"user_id":{"type":"string"},"user_image":{"type":["string","null"]},"user_name":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at","user_email","user_name","user_image"],"type":"object"},"MemberWithUserInfo":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"image":{"type":["string","null"]},"joinedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"userID":{"type":"string"}},"required":["userID","email","image","name","joinedAt"],"type":"object"},"OnboardingRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"PublicHackathon":{"additionalProperties":false,"properties":{"acceptEarlyApplications":{"type":"boolean"},"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"banner":{"type":["string","null"]},"description":{"type":["string","null"]},"earlyApplicationClose":{"format":"date-time","type":["string","null"]},"earlyApplicationOpen":{"format":"date-time","type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"required":["id","name","description","location","locationUrl","applicationOpen","applicationClose","acceptEarlyApplications","earlyApplicationOpen","earlyApplicationClose","rsvpDeadline","startTime","endTime","banner"],"type":"object"},"QueueConfirmationEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"}},"required":["email","firstName"],"type":"object"},"QueueTextEmailRequest":{"additionalProperties":false,"properties":{"body":{"minLength":1,"type":"string"},"subject":{"minLength":1,"type":"string"},"to":{"items":{"type":"string"},"type":["array","null"]}},"required":["to","subject","body"],"type":"object"},"QueueWelcomeEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"recipientId":{"type":"string"}},"required":["email","firstName","recipientId"],"type":"object"},"Redeemable":{"additionalProperties":false,"properties":{"amount":{"format":"int32","type":"integer"},"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","amount","max_user_amount","created_at","updated_at","hackathon_id"],"type":"object"},"ReviewRatings":{"additionalProperties":false,"properties":{"experienceRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"},"passionRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"}},"required":["passionRating","experienceRating"],"type":"object"},"ReviewerAssignment":{"additionalProperties":false,"properties":{"amount":{"format":"int64","type":["integer","null"]},"userID":{"type":"string"}},"required":["userID","amount"],"type":"object"},"SubmitInterestEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"source":{"type":["string","null"]}},"required":["email","source"],"type":"object"},"Team":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"owner_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","owner_id","created_at","updated_at","hackathon_id"],"type":"object"},"TeamJoinRequest":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at"],"type":"object"},"TeamWithMembers":{"additionalProperties":false,"properties":{"id":{"type":"string"},"members":{"items":{"$ref":"#/components/schemas/MemberWithUserInfo"},"type":["array","null"]},"name":{"type":"string"},"ownerId":{"type":"string"}},"required":["id","ownerId","name","members"],"type":"object"},"UpdateEmailConsentRequest":{"additionalProperties":false,"properties":{"emailConsent":{"type":"boolean"}},"required":["emailConsent"],"type":"object"},"UpdateHackathonRequest":{"additionalProperties":false,"properties":{"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"decisionRelease":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"maxAttendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"type":"object"},"UpdateRedeemableRequest":{"additionalProperties":false,"properties":{"maxUserAmount":{"format":"int64","type":"integer"},"name":{"type":"string"},"totalStock":{"format":"int64","type":"integer"}},"type":"object"},"UpdateRedemptionRequest":{"additionalProperties":false,"properties":{"newAmount":{"format":"int64","type":"integer"}},"type":"object"},"UpdateUserRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"User":{"additionalProperties":false,"properties":{"checked_in_at":{"format":"date-time","type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"email":{"type":["string","null"]},"email_consent":{"type":"boolean"},"email_verified":{"type":"boolean"},"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"},"onboarded":{"type":"boolean"},"preferred_email":{"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"type":"string"},"role_assigned_at":{"format":"date-time","type":["string","null"]},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","email","email_verified","onboarded","image","created_at","updated_at","preferred_email","email_consent","checked_in_at","rfid","role_assigned_at","role"],"type":"object"},"UserContext":{"additionalProperties":false,"properties":{"checkedInAt":{"format":"date-time","type":["string","null"]},"email":{"examples":["user@example.com"],"type":["string","null"]},"emailConsent":{"examples":[false],"type":"boolean"},"image":{"examples":["https://cdn.example.com/avatar.png"],"type":["string","null"]},"name":{"examples":["Jane Doe"],"type":"string"},"onboarded":{"examples":[true],"type":"boolean"},"preferredEmail":{"examples":["user.alt@example.com"],"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"enum":["admin","staff","attendee","applicant","visitor"],"type":"string"},"userId":{"examples":["550e8400-e29b-41d4-a716-446655440000"],"format":"uuid","type":"string"}},"required":["userId","email","preferredEmail","name","onboarded","image","role","emailConsent","rfid","checkedInAt"],"type":"object"}}},"info":{"title":"SwampHacks API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/application":{"get":{"description":"Get the application of the current user","operationId":"get-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HackerApplication"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application","tags":["Application"]}},"/application/accept-acceptance":{"patch":{"description":"Accept an acceptance after being accepted. Sets event role to attendee, from applicant.","operationId":"accept-application-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Application Acceptance","tags":["Application"]}},"/application/assigned":{"get":{"description":"Returns assigned applications and their review progress for the authenticated reviewer","operationId":"get-assigned-applications","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AssignedApplication"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Assigned Applications","tags":["Application"]}},"/application/calculate-admissions":{"post":{"description":"Queues an admission calculation task to the BAT worker","operationId":"calculate-admissions-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Admissions Calculation Request","tags":["Application"]}},"/application/join-waitlist":{"patch":{"description":"Adds a waitlist join time to application. Sets status to waitlisted","operationId":"join-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Join Waitlist","tags":["Application"]}},"/application/release-decisions/{runId}":{"post":{"description":"Releases decisions that were calculated by the worker from a specific run id","operationId":"release-decisions","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"runId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Release Decisions","tags":["Application"]}},"/application/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for the user's specific object, which is their uploaded resume. The client can use this URL to download the object.","operationId":"get-download-resume-url","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume Download URL","tags":["Application"]}},"/application/review/assign":{"post":{"description":"Assigns applications to reviewers for the application review process.","operationId":"assign-application-reviewers","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReviewerAssignment"},"type":["array","null"]}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Application Reviewers","tags":["Application"]}},"/application/review/reset":{"post":{"description":"Resets all application reviews, clearing any existing reviewer assignments.","operationId":"reset-application-reviews","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reset Application Reviews","tags":["Application"]}},"/application/review/{applicantId}":{"post":{"description":"Handles ratings submissions from staff during the application review process","operationId":"submit-application-review","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRatings"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application Review","tags":["Application"]}},"/application/review/{applicantId}/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for a specific user's resume as an object. The client can use this URL to download the object temporarily for application review.","operationId":"get-resume","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume URL (for review process)","tags":["Application"]}},"/application/save":{"post":{"description":"Save user's progress on the application. File/Upload fields are not saved (eg. resumes).","operationId":"save-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Save Application","tags":["Application"]}},"/application/stats":{"get":{"description":"Aggregates applications by race, gender, age, majors, and schools","operationId":"get-application-statistics","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationStatistics"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application Statistics","tags":["Application"]}},"/application/submit":{"post":{"description":"Submit the application","operationId":"submit-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application","tags":["Application"]}},"/application/transition-waitlisted-applications":{"patch":{"description":"Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected.","operationId":"transition-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Transition Waitlisted Applications","tags":["Application"]}},"/application/withdraw-acceptance":{"patch":{"description":"Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected.","operationId":"withdraw-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Acceptance","tags":["Application"]}},"/application/withdraw-attendance":{"patch":{"description":"Withdraw attendance after accepting to go to the hackathon. Sets application status from accepted to withdrawn. Sets event role from attendee, back to applicant.","operationId":"withdraw-attendance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Attendance","tags":["Application"]}},"/auth/callback":{"get":{"description":"Handles the OAuth provider callback, validates state and nonce, and sets the session cookie.","operationId":"oauth-callback","parameters":[{"description":"OAuth authorization code","explode":false,"in":"query","name":"code","required":true,"schema":{"description":"OAuth authorization code","type":"string"}},{"description":"Base64 encoded OAuth state","explode":false,"in":"query","name":"state","required":true,"schema":{"description":"Base64 encoded OAuth state","type":"string"}},{"description":"Auth nonce cookie for CSRF protection","in":"cookie","name":"sh_auth_nonce","required":true,"schema":{"description":"Auth nonce cookie for CSRF protection","type":"string"}},{"description":"Client user agent","in":"header","name":"User-Agent","schema":{"description":"Client user agent","type":"string"}}],"responses":{"204":{"description":"No Content","headers":{"Location":{"schema":{"type":"string"}},"Set-Cookie":{"schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"},"501":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Implemented"}},"summary":"OAuth Callback","tags":["Auth"]}},"/auth/logout":{"post":{"description":"Logs out the authenticated user by invalidating their session","operationId":"logout","responses":{"204":{"description":"No Content","headers":{"Set-Cookie":{"schema":{"type":"string"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Logout","tags":["Auth"]}},"/email/queue-confirmation-email":{"post":{"description":"Pushes a confirmation email request to the task queue","operationId":"queue-confirmation-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueConfirmationEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Confirmation Email","tags":["Email"]}},"/email/queue-text-email":{"post":{"description":"Pushes a text email request to the task queue","operationId":"queue-text-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueTextEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Text Email","tags":["Email"]}},"/email/queue-welcome-email":{"post":{"description":"Pushes a welcome email request to the task queue","operationId":"queue-welcome-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueWelcomeEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Welcome Email","tags":["Email"]}},"/email/send-welcome-emails":{"post":{"description":"Send welcome emails to all attendees","operationId":"send-welcome-emails","responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Send Welcome Emails","tags":["Email"]}},"/hackathon":{"get":{"description":"Returns public information of the hackathon","operationId":"get-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon","tags":["Hackathon"]},"patch":{"description":"Updates the information of the hackathon","operationId":"update-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHackathonRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Hackathon","tags":["Hackathon"]}},"/hackathon/attendees/count":{"get":{"description":"Returns the number of users who is attending the hackathon","operationId":"get-hackathon-attendees-count","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"format":"int64","type":"integer"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees Count","tags":["Hackathon"]}},"/hackathon/attendees/discord":{"get":{"description":"Returns all users with a discord account that is also attending the hackathon","operationId":"get-hackathon-attendees-with-discord","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetAttendeesWithDiscordRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees with Discord","tags":["Hackathon"]}},"/hackathon/attendees/userids":{"get":{"description":"Returns all users ids of users who are attending the hackathon","operationId":"get-hackathon-attendees-userids","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees User Ids","tags":["Hackathon"]}},"/hackathon/banner":{"delete":{"description":"Deletes the banner","operationId":"delete-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Banner","tags":["Hackathon"]},"post":{"description":"Uploads an image to be used as the banner for the hackathon","operationId":"upload-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"image":{"contentType":"image/png, image/jpeg, image/jpg"}},"schema":{"properties":{"image":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["image"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":["string","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Upload Banner","tags":["Hackathon"]}},"/hackathon/checkin":{"post":{"description":"Staff route for checking a user to an event. The user to check in must be an attendee and have never been checked in yet.","operationId":"check-in","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Check In User","tags":["Hackathon"]}},"/hackathon/detailed":{"get":{"description":"Returns all information of the hackathon","operationId":"get-hackathon-for-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Detailed Hackathon","tags":["Hackathon"]}},"/hackathon/interest":{"post":{"description":"Submits an email to interest/mailing list for the hackathon","operationId":"submit-interest-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitInterestEmailRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Interest Email","tags":["Hackathon"]}},"/hackathon/staff":{"get":{"description":"Returns the users who are part of the current staff of the hackathon","operationId":"get-hackathon-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Staff","tags":["Hackathon"]}},"/ping":{"get":{"description":"Health Check","operationId":"ping","responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Error"}},"summary":"Ping","tags":["Misc"]}},"/redeemables":{"get":{"description":"Returns a list of all redeemable items","operationId":"get-redeemables","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetRedeemablesRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Redeemables","tags":["Redeemables"]},"post":{"description":"Creates a new redeemable item","operationId":"create-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRedeemableRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Redeemable"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}":{"delete":{"description":"Deletes a redeemable by id","operationId":"delete-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Redeemable","tags":["Redeemables"]},"patch":{"description":"Update specific fields (name, stock, max per user) of a redeemable","operationId":"update-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedeemableRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}/users/{userID}":{"patch":{"description":"Updates a redemption created by the user.","operationId":"update-redemption","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedemptionRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redemption","tags":["Redeemables"]},"post":{"description":"Redeems a redeemable by id. Creates a redemption record linking a specific user to a redeemable item","operationId":"redeem-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Redeem Redeemable","tags":["Redeemables"]}},"/teams":{"post":{"description":"Creates a new team and assigns the user as the owner. Returns the team.","operationId":"create-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Team"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Team","tags":["Team"]}},"/teams/me":{"get":{"description":"Returns the team information and the full list of team members for the currently authenticated user","operationId":"get-my-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get My Team","tags":["Team"]}},"/teams/me/pending-joins":{"get":{"description":"Returns the current user's pending requests for teams.","operationId":"get-my-pending-join-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamJoinRequest"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User's Pending Join Requests","tags":["Team"]}},"/teams/{requestId}/accept":{"post":{"description":"Accepts a pending team join request. Only the team owner can perform this action.","operationId":"accept-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Team Join Request","tags":["Team"]}},"/teams/{requestId}/reject":{"post":{"description":"Rejects a pending team join request. Only the team owner can perform this action.","operationId":"reject-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reject Team Join Request","tags":["Team"]}},"/teams/{teamId}":{"get":{"description":"Returns the team information and the full list of team members by team id","operationId":"get-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Team","tags":["Team"]}},"/teams/{teamId}/join":{"post":{"description":"Requests to join a team or fails if user is already on a team.","operationId":"create-join-team-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJoinRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamJoinRequest"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Request to Join Team","tags":["Team"]}},"/teams/{teamId}/kick/{memberId}":{"post":{"description":"Kicks a member from a team. Only the team owner can perform this action.","operationId":"kick-member-from-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"memberId","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Kick Team Member","tags":["Team"]}},"/teams/{teamId}/leave":{"post":{"description":"Leaves a team if the user is on the team.","operationId":"leave-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Leave Team","tags":["Team"]}},"/teams/{teamId}/pending-joins":{"get":{"description":"Returns a team's pending join requests. This is only allowed for the team's owner.","operationId":"get-pending-join-team-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ListJoinRequestsByTeamAndStatusWithUserRow"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Pending Join Requests for Team","tags":["Team"]}},"/users":{"get":{"description":"Get or search for users by name or email. If no search term is provided, returns all users with pagination.","operationId":"get-users","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"explode":false,"in":"query","name":"search","schema":{"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","type":"integer"}},{"explode":false,"in":"query","name":"offset","schema":{"default":0,"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Users","tags":["Users"]}},"/users/email/{email}":{"get":{"description":"Returns the user associated with the email","operationId":"get-user-by-email","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Email","tags":["Users"]}},"/users/me":{"get":{"description":"Returns the authenticated user's profile","operationId":"get-me","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContext"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Me","tags":["Users"]},"patch":{"description":"Updates information of the authenticated user","operationId":"update-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update User","tags":["Users"]}},"/users/me/email-consent":{"patch":{"description":"Updates the user's email consent setting","operationId":"update-email-consent","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailConsentRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Email Consent","tags":["Users"]}},"/users/me/onboarding":{"patch":{"description":"Allows the user to submit information such as name and preferred email, and complete the onboarding process","operationId":"onboard-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Onboard User","tags":["Users"]}},"/users/rfid/{rfid}":{"get":{"description":"Returns the user associated with the RFID","operationId":"get-user-by-rfid","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"rfid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By RFID","tags":["Users"]}},"/users/roles/assign":{"post":{"description":"Assigns/modify a user's role","operationId":"assign-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Role","tags":["Users"]}},"/users/roles/batch-assign":{"post":{"description":"Batch assign/modify multiple users' roles","operationId":"batch-assign-roles","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Batch Assign Roles","tags":["Users"]}},"/users/roles/revoke/{userID}":{"post":{"description":"Remove a user's role","operationId":"revoke-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Revoke Role","tags":["Users"]}},"/users/userid/{userID}":{"get":{"description":"Returns the user associated with the user id","operationId":"get-user-by-id","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Id","tags":["Users"]}}}} \ No newline at end of file +{"components":{"schemas":{"ApplicationStatistics":{"additionalProperties":false,"properties":{"ageStats":{"$ref":"#/components/schemas/GetApplicationAgeSplitRow"},"genderStats":{"$ref":"#/components/schemas/GetApplicationGenderSplitRow"},"majorStats":{"items":{"$ref":"#/components/schemas/GetApplicationMajorSplitRow"},"type":["array","null"]},"raceStats":{"items":{"$ref":"#/components/schemas/GetApplicationRaceSplitRow"},"type":["array","null"]},"schoolStats":{"items":{"$ref":"#/components/schemas/GetApplicationSchoolSplitRow"},"type":["array","null"]},"statusStats":{"$ref":"#/components/schemas/GetApplicationStatusSplitRow"}},"required":["genderStats","ageStats","raceStats","majorStats","schoolStats","statusStats"],"type":"object"},"AssignRoleBatchRequest":{"additionalProperties":false,"properties":{"assignments":{"items":{"$ref":"#/components/schemas/AssignRoleRequest"},"type":["array","null"]}},"required":["assignments"],"type":"object"},"AssignRoleRequest":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"role":{"type":"string"},"userID":{"type":["string","null"]}},"required":["email","userID","role"],"type":"object"},"AssignedApplication":{"additionalProperties":false,"properties":{"applicantId":{"type":"string"},"status":{"type":"string"}},"required":["applicantId","status"],"type":"object"},"CheckInRequest":{"additionalProperties":false,"properties":{"rfid":{"type":["string","null"]},"userID":{"type":"string"}},"required":["userID","rfid"],"type":"object"},"CreateJoinRequest":{"additionalProperties":false,"properties":{"message":{"type":["string","null"]}},"required":["message"],"type":"object"},"CreateRedeemableRequest":{"additionalProperties":false,"properties":{"amount":{"format":"int64","minimum":1,"type":"integer"},"maxUserAmount":{"format":"int64","type":"integer"},"name":{"minLength":1,"type":"string"}},"required":["name","amount","maxUserAmount"],"type":"object"},"CreateTeamRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"CreateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"ErrorDetail":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"},"ErrorModel":{"additionalProperties":false,"properties":{"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","examples":["Property foo is required but is missing."],"type":"string"},"errors":{"description":"Optional list of individual error details","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":["array","null"]},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","examples":["https://example.com/error-log/abc123"],"format":"uri","type":"string"},"status":{"description":"HTTP status code","examples":[400],"format":"int64","type":"integer"},"title":{"description":"A short, human-readable summary of the problem type. This value should not change between occurrences of the error.","examples":["Bad Request"],"type":"string"},"type":{"default":"about:blank","description":"A URI reference to human-readable documentation for the error.","examples":["https://example.com/errors/example"],"format":"uri","type":"string"}},"type":"object"},"FormFile":{"additionalProperties":false,"properties":{"ContentType":{"type":"string"},"Filename":{"type":"string"},"IsSet":{"type":"boolean"},"Size":{"format":"int64","type":"integer"}},"required":["ContentType","IsSet","Size","Filename"],"type":"object"},"GetApplicationAgeSplitRow":{"additionalProperties":false,"properties":{"age_18":{"format":"int64","type":"integer"},"age_19":{"format":"int64","type":"integer"},"age_20":{"format":"int64","type":"integer"},"age_21":{"format":"int64","type":"integer"},"age_22":{"format":"int64","type":"integer"},"age_23_plus":{"format":"int64","type":"integer"},"underage":{"format":"int64","type":"integer"}},"required":["underage","age_18","age_19","age_20","age_21","age_22","age_23_plus"],"type":"object"},"GetApplicationGenderSplitRow":{"additionalProperties":false,"properties":{"female":{"format":"int64","type":"integer"},"male":{"format":"int64","type":"integer"},"non_binary":{"format":"int64","type":"integer"},"other":{"format":"int64","type":"integer"}},"required":["male","female","non_binary","other"],"type":"object"},"GetApplicationMajorSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"major":{"type":"string"}},"required":["major","count"],"type":"object"},"GetApplicationRaceSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"race_group":{"type":"string"}},"required":["race_group","count"],"type":"object"},"GetApplicationSchoolSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"school":{"type":"string"}},"required":["school","count"],"type":"object"},"GetApplicationStatusSplitRow":{"additionalProperties":false,"properties":{"accepted":{"format":"int64","type":"integer"},"rejected":{"format":"int64","type":"integer"},"started":{"format":"int64","type":"integer"},"submitted":{"format":"int64","type":"integer"},"under_review":{"format":"int64","type":"integer"},"waitlisted":{"format":"int64","type":"integer"},"withdrawn":{"format":"int64","type":"integer"}},"required":["started","submitted","under_review","accepted","rejected","waitlisted","withdrawn"],"type":"object"},"GetAttendeesWithDiscordRow":{"additionalProperties":false,"properties":{"discord_id":{"type":"string"},"email":{"type":["string","null"]},"name":{"type":"string"},"user_id":{"type":"string"}},"required":["discord_id","user_id","name","email"],"type":"object"},"GetRedeemablesRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"total_redeemed":{},"total_stock":{"format":"int32","type":"integer"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","total_stock","max_user_amount","created_at","updated_at","total_redeemed"],"type":"object"},"Hackathon":{"additionalProperties":false,"properties":{"accept_early_applications":{"type":"boolean"},"application_close":{"format":"date-time","type":"string"},"application_open":{"format":"date-time","type":"string"},"application_review_started":{"type":"boolean"},"banner":{"type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"decision_release":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"early_application_close":{"format":"date-time","type":["string","null"]},"early_application_open":{"format":"date-time","type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_active":{"type":"boolean"},"location":{"type":["string","null"]},"location_url":{"type":["string","null"]},"max_attendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvp_deadline":{"format":"date-time","type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","description","location","location_url","max_attendees","application_open","application_close","rsvp_deadline","decision_release","start_time","end_time","is_active","created_at","updated_at","banner","application_review_started","accept_early_applications","early_application_open","early_application_close"],"type":"object"},"HackerApplication":{"additionalProperties":false,"properties":{"application":{"contentEncoding":"base64","type":"string"},"createdAt":{"format":"date-time","type":"string"},"hackathonId":{"type":"string"},"savedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"submittedAt":{"format":"date-time","type":["string","null"]},"updatedAt":{"format":"date-time","type":"string"},"userId":{"type":"string"}},"required":["userId","status","application","createdAt","savedAt","updatedAt","submittedAt","hackathonId"],"type":"object"},"ListJoinRequestsByTeamAndStatusWithUserRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_email":{"type":["string","null"]},"user_id":{"type":"string"},"user_image":{"type":["string","null"]},"user_name":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at","user_email","user_name","user_image"],"type":"object"},"MemberWithUserInfo":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"image":{"type":["string","null"]},"joinedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"userID":{"type":"string"}},"required":["userID","email","image","name","joinedAt"],"type":"object"},"OnboardingRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"OpenWorkshop":{"additionalProperties":false,"properties":{"attendees":{"format":"int64","type":"integer"},"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["id","title","start_time","end_time","location","description","presenter","attendees"],"type":"object"},"PublicHackathon":{"additionalProperties":false,"properties":{"acceptEarlyApplications":{"type":"boolean"},"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"banner":{"type":["string","null"]},"description":{"type":["string","null"]},"earlyApplicationClose":{"format":"date-time","type":["string","null"]},"earlyApplicationOpen":{"format":"date-time","type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"required":["id","name","description","location","locationUrl","applicationOpen","applicationClose","acceptEarlyApplications","earlyApplicationOpen","earlyApplicationClose","rsvpDeadline","startTime","endTime","banner"],"type":"object"},"QueueConfirmationEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"}},"required":["email","firstName"],"type":"object"},"QueueTextEmailRequest":{"additionalProperties":false,"properties":{"body":{"minLength":1,"type":"string"},"subject":{"minLength":1,"type":"string"},"to":{"items":{"type":"string"},"type":["array","null"]}},"required":["to","subject","body"],"type":"object"},"QueueWelcomeEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"recipientId":{"type":"string"}},"required":["email","firstName","recipientId"],"type":"object"},"Redeemable":{"additionalProperties":false,"properties":{"amount":{"format":"int32","type":"integer"},"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","amount","max_user_amount","created_at","updated_at","hackathon_id"],"type":"object"},"ReviewRatings":{"additionalProperties":false,"properties":{"experienceRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"},"passionRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"}},"required":["passionRating","experienceRating"],"type":"object"},"ReviewerAssignment":{"additionalProperties":false,"properties":{"amount":{"format":"int64","type":["integer","null"]},"userID":{"type":"string"}},"required":["userID","amount"],"type":"object"},"SubmissionResult":{"additionalProperties":false,"properties":{"submittedAt":{"format":"date-time","type":["string","null"]}},"required":["submittedAt"],"type":"object"},"SubmitInterestEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"source":{"type":["string","null"]}},"required":["email","source"],"type":"object"},"Team":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"owner_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","owner_id","created_at","updated_at","hackathon_id"],"type":"object"},"TeamJoinRequest":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at"],"type":"object"},"TeamWithMembers":{"additionalProperties":false,"properties":{"id":{"type":"string"},"members":{"items":{"$ref":"#/components/schemas/MemberWithUserInfo"},"type":["array","null"]},"name":{"type":"string"},"ownerId":{"type":"string"}},"required":["id","ownerId","name","members"],"type":"object"},"UpdateEmailConsentRequest":{"additionalProperties":false,"properties":{"emailConsent":{"type":"boolean"}},"required":["emailConsent"],"type":"object"},"UpdateHackathonRequest":{"additionalProperties":false,"properties":{"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"decisionRelease":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"maxAttendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"type":"object"},"UpdateRedeemableRequest":{"additionalProperties":false,"properties":{"maxUserAmount":{"format":"int64","type":"integer"},"name":{"type":"string"},"totalStock":{"format":"int64","type":"integer"}},"type":"object"},"UpdateRedemptionRequest":{"additionalProperties":false,"properties":{"newAmount":{"format":"int64","type":"integer"}},"type":"object"},"UpdateUserRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"UpdateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":["string","null"]},"location":{"type":["string","null"]},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":["string","null"]},"title":{"type":["string","null"]}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"User":{"additionalProperties":false,"properties":{"checked_in_at":{"format":"date-time","type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"email":{"type":["string","null"]},"email_consent":{"type":"boolean"},"email_verified":{"type":"boolean"},"has_seen_new_application_status":{"type":["boolean","null"]},"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"},"onboarded":{"type":"boolean"},"preferred_email":{"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"type":"string"},"role_assigned_at":{"format":"date-time","type":["string","null"]},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","email","email_verified","onboarded","image","created_at","updated_at","preferred_email","email_consent","checked_in_at","rfid","role_assigned_at","role","has_seen_new_application_status"],"type":"object"},"UserContext":{"additionalProperties":false,"properties":{"checkedInAt":{"format":"date-time","type":["string","null"]},"email":{"examples":["user@example.com"],"type":["string","null"]},"emailConsent":{"examples":[false],"type":"boolean"},"hasSeenNewApplicationStatus":{"type":["boolean","null"]},"image":{"examples":["https://cdn.example.com/avatar.png"],"type":["string","null"]},"name":{"examples":["Jane Doe"],"type":"string"},"onboarded":{"examples":[true],"type":"boolean"},"preferredEmail":{"examples":["user.alt@example.com"],"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"enum":["admin","staff","attendee","applicant","visitor"],"type":"string"},"userId":{"examples":["550e8400-e29b-41d4-a716-446655440000"],"format":"uuid","type":"string"}},"required":["userId","email","preferredEmail","name","onboarded","image","role","emailConsent","rfid","checkedInAt","hasSeenNewApplicationStatus"],"type":"object"},"Workshop":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"num_attendees":{"format":"int32","type":"integer"},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","title","description","start_time","end_time","num_attendees","location","presenter","created_at","updated_at"],"type":"object"}}},"info":{"title":"SwampHacks API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/application":{"get":{"description":"Get the application of the current user","operationId":"get-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HackerApplication"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application","tags":["Application"]}},"/application/accept-acceptance":{"patch":{"description":"Accept an acceptance after being accepted. Sets event role to attendee, from applicant.","operationId":"accept-application-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Application Acceptance","tags":["Application"]}},"/application/assigned":{"get":{"description":"Returns assigned applications and their review progress for the authenticated reviewer","operationId":"get-assigned-applications","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AssignedApplication"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Assigned Applications","tags":["Application"]}},"/application/calculate-admissions":{"post":{"description":"Queues an admission calculation task to the BAT worker","operationId":"calculate-admissions-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Admissions Calculation Request","tags":["Application"]}},"/application/join-waitlist":{"patch":{"description":"Adds a waitlist join time to application. Sets status to waitlisted","operationId":"join-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Join Waitlist","tags":["Application"]}},"/application/release-decisions/{runId}":{"post":{"description":"Releases decisions that were calculated by the worker from a specific run id","operationId":"release-decisions","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"runId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Release Decisions","tags":["Application"]}},"/application/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for the user's specific object, which is their uploaded resume. The client can use this URL to download the object.","operationId":"get-download-resume-url","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume Download URL","tags":["Application"]}},"/application/review/assign":{"post":{"description":"Assigns applications to reviewers for the application review process.","operationId":"assign-application-reviewers","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReviewerAssignment"},"type":["array","null"]}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Application Reviewers","tags":["Application"]}},"/application/review/reset":{"post":{"description":"Resets all application reviews, clearing any existing reviewer assignments.","operationId":"reset-application-reviews","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reset Application Reviews","tags":["Application"]}},"/application/review/{applicantId}":{"post":{"description":"Handles ratings submissions from staff during the application review process","operationId":"submit-application-review","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRatings"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application Review","tags":["Application"]}},"/application/review/{applicantId}/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for a specific user's resume as an object. The client can use this URL to download the object temporarily for application review.","operationId":"get-resume","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume URL (for review process)","tags":["Application"]}},"/application/save":{"post":{"description":"Save user's progress on the application. File/Upload fields are not saved (eg. resumes).","operationId":"save-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Save Application","tags":["Application"]}},"/application/stats":{"get":{"description":"Aggregates applications by race, gender, age, majors, and schools","operationId":"get-application-statistics","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationStatistics"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application Statistics","tags":["Application"]}},"/application/submit":{"post":{"description":"Submit the application","operationId":"submit-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResult"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application","tags":["Application"]}},"/application/transition-waitlisted-applications":{"patch":{"description":"Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected.","operationId":"transition-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Transition Waitlisted Applications","tags":["Application"]}},"/application/withdraw-acceptance":{"patch":{"description":"Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected.","operationId":"withdraw-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Acceptance","tags":["Application"]}},"/application/withdraw-attendance":{"patch":{"description":"Withdraw attendance after accepting to go to the hackathon. Sets application status from accepted to withdrawn. Sets event role from attendee, back to applicant.","operationId":"withdraw-attendance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Attendance","tags":["Application"]}},"/auth/callback":{"get":{"description":"Handles the OAuth provider callback, validates state and nonce, and sets the session cookie.","operationId":"oauth-callback","parameters":[{"description":"OAuth authorization code","explode":false,"in":"query","name":"code","required":true,"schema":{"description":"OAuth authorization code","type":"string"}},{"description":"Base64 encoded OAuth state","explode":false,"in":"query","name":"state","required":true,"schema":{"description":"Base64 encoded OAuth state","type":"string"}},{"description":"Auth nonce cookie for CSRF protection","in":"cookie","name":"sh_auth_nonce","required":true,"schema":{"description":"Auth nonce cookie for CSRF protection","type":"string"}},{"description":"Client user agent","in":"header","name":"User-Agent","schema":{"description":"Client user agent","type":"string"}}],"responses":{"204":{"description":"No Content","headers":{"Location":{"schema":{"type":"string"}},"Set-Cookie":{"schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"},"501":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Implemented"}},"summary":"OAuth Callback","tags":["Auth"]}},"/auth/logout":{"post":{"description":"Logs out the authenticated user by invalidating their session","operationId":"logout","responses":{"204":{"description":"No Content","headers":{"Set-Cookie":{"schema":{"type":"string"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Logout","tags":["Auth"]}},"/email/queue-confirmation-email":{"post":{"description":"Pushes a confirmation email request to the task queue","operationId":"queue-confirmation-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueConfirmationEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Confirmation Email","tags":["Email"]}},"/email/queue-text-email":{"post":{"description":"Pushes a text email request to the task queue","operationId":"queue-text-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueTextEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Text Email","tags":["Email"]}},"/email/queue-welcome-email":{"post":{"description":"Pushes a welcome email request to the task queue","operationId":"queue-welcome-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueWelcomeEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Welcome Email","tags":["Email"]}},"/email/send-welcome-emails":{"post":{"description":"Send welcome emails to all attendees","operationId":"send-welcome-emails","responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Send Welcome Emails","tags":["Email"]}},"/hackathon":{"get":{"description":"Returns public information of the hackathon","operationId":"get-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon","tags":["Hackathon"]},"patch":{"description":"Updates the information of the hackathon","operationId":"update-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHackathonRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Hackathon","tags":["Hackathon"]}},"/hackathon/attendees/count":{"get":{"description":"Returns the number of users who is attending the hackathon","operationId":"get-hackathon-attendees-count","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"format":"int64","type":"integer"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees Count","tags":["Hackathon"]}},"/hackathon/attendees/discord":{"get":{"description":"Returns all users with a discord account that is also attending the hackathon","operationId":"get-hackathon-attendees-with-discord","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetAttendeesWithDiscordRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees with Discord","tags":["Hackathon"]}},"/hackathon/attendees/userids":{"get":{"description":"Returns all users ids of users who are attending the hackathon","operationId":"get-hackathon-attendees-userids","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees User Ids","tags":["Hackathon"]}},"/hackathon/banner":{"delete":{"description":"Deletes the banner","operationId":"delete-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Banner","tags":["Hackathon"]},"post":{"description":"Uploads an image to be used as the banner for the hackathon","operationId":"upload-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"image":{"contentType":"image/png, image/jpeg, image/jpg"}},"schema":{"properties":{"image":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["image"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":["string","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Upload Banner","tags":["Hackathon"]}},"/hackathon/checkin":{"post":{"description":"Staff route for checking a user to an event. The user to check in must be an attendee and have never been checked in yet.","operationId":"check-in","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Check In User","tags":["Hackathon"]}},"/hackathon/detailed":{"get":{"description":"Returns all information of the hackathon","operationId":"get-hackathon-for-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Detailed Hackathon","tags":["Hackathon"]}},"/hackathon/interest":{"post":{"description":"Submits an email to interest/mailing list for the hackathon","operationId":"submit-interest-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitInterestEmailRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Interest Email","tags":["Hackathon"]}},"/hackathon/staff":{"get":{"description":"Returns the users who are part of the current staff of the hackathon","operationId":"get-hackathon-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Staff","tags":["Hackathon"]}},"/ping":{"get":{"description":"Health Check","operationId":"ping","responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Error"}},"summary":"Ping","tags":["Misc"]}},"/redeemables":{"get":{"description":"Returns a list of all redeemable items","operationId":"get-redeemables","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetRedeemablesRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Redeemables","tags":["Redeemables"]},"post":{"description":"Creates a new redeemable item","operationId":"create-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRedeemableRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Redeemable"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}":{"delete":{"description":"Deletes a redeemable by id","operationId":"delete-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Redeemable","tags":["Redeemables"]},"patch":{"description":"Update specific fields (name, stock, max per user) of a redeemable","operationId":"update-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedeemableRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}/users/{userID}":{"patch":{"description":"Updates a redemption created by the user.","operationId":"update-redemption","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedemptionRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redemption","tags":["Redeemables"]},"post":{"description":"Redeems a redeemable by id. Creates a redemption record linking a specific user to a redeemable item","operationId":"redeem-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Redeem Redeemable","tags":["Redeemables"]}},"/teams":{"post":{"description":"Creates a new team and assigns the user as the owner. Returns the team.","operationId":"create-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Team"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Team","tags":["Team"]}},"/teams/me":{"get":{"description":"Returns the team information and the full list of team members for the currently authenticated user","operationId":"get-my-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get My Team","tags":["Team"]}},"/teams/me/pending-joins":{"get":{"description":"Returns the current user's pending requests for teams.","operationId":"get-my-pending-join-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamJoinRequest"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User's Pending Join Requests","tags":["Team"]}},"/teams/{requestId}/accept":{"post":{"description":"Accepts a pending team join request. Only the team owner can perform this action.","operationId":"accept-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Team Join Request","tags":["Team"]}},"/teams/{requestId}/reject":{"post":{"description":"Rejects a pending team join request. Only the team owner can perform this action.","operationId":"reject-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reject Team Join Request","tags":["Team"]}},"/teams/{teamId}":{"get":{"description":"Returns the team information and the full list of team members by team id","operationId":"get-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Team","tags":["Team"]}},"/teams/{teamId}/join":{"post":{"description":"Requests to join a team or fails if user is already on a team.","operationId":"create-join-team-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJoinRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamJoinRequest"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Request to Join Team","tags":["Team"]}},"/teams/{teamId}/kick/{memberId}":{"post":{"description":"Kicks a member from a team. Only the team owner can perform this action.","operationId":"kick-member-from-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"memberId","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Kick Team Member","tags":["Team"]}},"/teams/{teamId}/leave":{"post":{"description":"Leaves a team if the user is on the team.","operationId":"leave-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Leave Team","tags":["Team"]}},"/teams/{teamId}/pending-joins":{"get":{"description":"Returns a team's pending join requests. This is only allowed for the team's owner.","operationId":"get-pending-join-team-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ListJoinRequestsByTeamAndStatusWithUserRow"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Pending Join Requests for Team","tags":["Team"]}},"/users":{"get":{"description":"Get or search for users by name or email. If no search term is provided, returns all users with pagination.","operationId":"get-users","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"explode":false,"in":"query","name":"search","schema":{"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","type":"integer"}},{"explode":false,"in":"query","name":"offset","schema":{"default":0,"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Users","tags":["Users"]}},"/users/email/{email}":{"get":{"description":"Returns the user associated with the email","operationId":"get-user-by-email","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Email","tags":["Users"]}},"/users/me":{"get":{"description":"Returns the authenticated user's profile","operationId":"get-me","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContext"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Me","tags":["Users"]},"patch":{"description":"Updates information of the authenticated user","operationId":"update-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update User","tags":["Users"]}},"/users/me/acknowledge-new-application-status":{"post":{"description":"Mark that the user has seen their new application status","operationId":"update-has-seen-new-application-status","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Acknowledge New Application Status","tags":["Users"]}},"/users/me/email-consent":{"patch":{"description":"Updates the user's email consent setting","operationId":"update-email-consent","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailConsentRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Email Consent","tags":["Users"]}},"/users/me/onboarding":{"patch":{"description":"Allows the user to submit information such as name and preferred email, and complete the onboarding process","operationId":"onboard-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Onboard User","tags":["Users"]}},"/users/rfid/{rfid}":{"get":{"description":"Returns the user associated with the RFID","operationId":"get-user-by-rfid","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"rfid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By RFID","tags":["Users"]}},"/users/roles/assign":{"post":{"description":"Assigns/modify a user's role","operationId":"assign-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Role","tags":["Users"]}},"/users/roles/batch-assign":{"post":{"description":"Batch assign/modify multiple users' roles","operationId":"batch-assign-roles","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Batch Assign Roles","tags":["Users"]}},"/users/roles/revoke/{userID}":{"post":{"description":"Remove a user's role","operationId":"revoke-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Revoke Role","tags":["Users"]}},"/users/userid/{userID}":{"get":{"description":"Returns the user associated with the user id","operationId":"get-user-by-id","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Id","tags":["Users"]}},"/workshops":{"get":{"description":"Returns a list of all workshops.","operationId":"get-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get all UPCOMING workshops","tags":["Workshops"]},"post":{"description":"Creates a workshop based on the provided body.","operationId":"create-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create a workshop","tags":["Workshops"]}},"/workshops/delete-all":{"delete":{"description":"Deletes all the workshops","operationId":"delete-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete all workshops","tags":["Workshops"]}},"/workshops/view-all":{"get":{"description":"Returns a list of all workshops, including past workshops.","operationId":"view-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"View all workshops ever made","tags":["Workshops"]}},"/workshops/{workshopId}":{"delete":{"description":"Deletes a workshop based on the provided id.","operationId":"delete-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete a workshop","tags":["Workshops"]},"get":{"description":"Returns a workshop based on the provided id.","operationId":"get-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get a workshop off of workshopID","tags":["Workshops"]},"patch":{"description":"Updates a workshop based on the provided id and body. Only the fields provided in the body will be updated.","operationId":"update-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update a workshop","tags":["Workshops"]}},"/workshops/{workshopId}/register":{"delete":{"description":"Lets a user unregister for a workshop.","operationId":"unregister-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Unregister for a workshop","tags":["Workshops"]},"post":{"description":"Lets a user register for a workshop.","operationId":"register-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Register for a workshop","tags":["Workshops"]}}}} \ No newline at end of file diff --git a/apps/api/internal/api/middleware/auth.go b/apps/api/internal/api/middleware/auth.go index 1135eab5..f43032b9 100644 --- a/apps/api/internal/api/middleware/auth.go +++ b/apps/api/internal/api/middleware/auth.go @@ -65,6 +65,8 @@ type UserContext struct { Rfid *string `json:"rfid"` CheckedInAt *time.Time `json:"checkedInAt"` + + HasSeeNewApplicationStatus *bool `json:"hasSeenNewApplicationStatus"` } type SessionContext struct { @@ -191,16 +193,17 @@ func (m *AuthMiddleware) RequireAuth(next http.Handler) http.Handler { // TODO: I don't think we need UserContext here, just return sqlc.User directly userContext := UserContext{ - UserID: user.UserID, - Name: user.Name, - Email: user.Email, - PreferredEmail: user.PreferredEmail, - Image: user.Image, - Onboarded: user.Onboarded, - Role: user.Role, - EmailConsent: user.EmailConsent, - Rfid: user.Rfid, - CheckedInAt: user.CheckedInAt, + UserID: user.UserID, + Name: user.Name, + Email: user.Email, + PreferredEmail: user.PreferredEmail, + Image: user.Image, + Onboarded: user.Onboarded, + Role: user.Role, + EmailConsent: user.EmailConsent, + Rfid: user.Rfid, + CheckedInAt: user.CheckedInAt, + HasSeeNewApplicationStatus: user.HasSeenNewApplicationStatus, } sessionContext := SessionContext{ diff --git a/apps/api/internal/database/migrations/20260502234849_has_seen_application_status.sql b/apps/api/internal/database/migrations/20260502234849_has_seen_application_status.sql new file mode 100644 index 00000000..ea9bb47b --- /dev/null +++ b/apps/api/internal/database/migrations/20260502234849_has_seen_application_status.sql @@ -0,0 +1,5 @@ +-- +goose Up +alter table users add has_seen_new_application_status boolean; + +-- +goose Down +alter table users drop column has_seen_new_application_status; diff --git a/apps/api/internal/database/queries/applications.sql b/apps/api/internal/database/queries/applications.sql index d2b05256..717cc9f5 100644 --- a/apps/api/internal/database/queries/applications.sql +++ b/apps/api/internal/database/queries/applications.sql @@ -29,7 +29,7 @@ SELECT user_id FROM applications WHERE status = 'submitted' AND experience_rating IS NULL AND passion_rating IS NULL -ORDER BY +ORDER BY user_id ASC; -- name: ListAdmissionCandidates :many @@ -105,4 +105,3 @@ WHERE user_id IN ( LIMIT @acceptanceCount::int ) RETURNING user_id; - diff --git a/apps/api/internal/database/queries/sessions.sql b/apps/api/internal/database/queries/sessions.sql index a0fe6132..968a731b 100644 --- a/apps/api/internal/database/queries/sessions.sql +++ b/apps/api/internal/database/queries/sessions.sql @@ -21,7 +21,10 @@ DELETE FROM sessions WHERE expires_at < NOW(); -- name: GetActiveSessionUserInfo :one -SELECT u.id AS user_id, u.name, u.email, u.preferred_email, u.onboarded, u.image, u.role, u.email_consent, u.checked_in_at, u.rfid, s.last_used_at +SELECT u.id AS user_id, u.name, u.email, u.preferred_email, + u.onboarded, u.image, u.role, u.email_consent, + u.checked_in_at, u.rfid, u.has_seen_new_application_status, + s.last_used_at FROM sessions s JOIN users u ON s.user_id = u.id WHERE s.id = $1 diff --git a/apps/api/internal/database/queries/users.sql b/apps/api/internal/database/queries/users.sql index e1bf0a8f..d545d058 100644 --- a/apps/api/internal/database/queries/users.sql +++ b/apps/api/internal/database/queries/users.sql @@ -40,8 +40,9 @@ SET email_consent = CASE WHEN @email_consent_do_update::boolean THEN @email_consent ELSE email_consent END, checked_in_at = CASE WHEN @checked_in_at_do_update::boolean THEN @checked_in_at ELSE checked_in_at END, rfid = CASE WHEN @rfid_do_update::boolean THEN @rfid ELSE rfid END, - role = CASE WHEN @role_do_update::boolean THEN @role ELSE role END, - role_assigned_at = CASE WHEN @role_do_update::boolean THEN NOW() ELSE role_assigned_at END, + -- role = CASE WHEN @role_do_update::boolean THEN @role ELSE role END, + -- role_assigned_at = CASE WHEN @role_do_update::boolean THEN NOW() ELSE role_assigned_at END, + has_seen_new_application_status = CASE WHEN @has_seen_new_application_status_do_update::boolean THEN @has_seen_new_application_status ELSE has_seen_new_application_status END, updated_at = NOW() WHERE id = @id::uuid; @@ -82,4 +83,4 @@ WHERE id = @user_id::uuid; -- name: UpdateRFID :exec UPDATE users SET rfid = @rfid -WHERE id = @user_id::uuid; \ No newline at end of file +WHERE id = @user_id::uuid; diff --git a/apps/api/internal/database/sqlc/applications.sql.go b/apps/api/internal/database/sqlc/applications.sql.go index 795268a1..7e48b27a 100644 --- a/apps/api/internal/database/sqlc/applications.sql.go +++ b/apps/api/internal/database/sqlc/applications.sql.go @@ -195,7 +195,7 @@ SELECT user_id FROM applications WHERE status = 'submitted' AND experience_rating IS NULL AND passion_rating IS NULL -ORDER BY +ORDER BY user_id ASC ` diff --git a/apps/api/internal/database/sqlc/hackathons.sql.go b/apps/api/internal/database/sqlc/hackathons.sql.go index 3a84b299..f5183626 100644 --- a/apps/api/internal/database/sqlc/hackathons.sql.go +++ b/apps/api/internal/database/sqlc/hackathons.sql.go @@ -217,7 +217,7 @@ func (q *Queries) GetHackathon(ctx context.Context) (Hackathon, error) { } const getStaff = `-- name: GetStaff :many -SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role FROM users +SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role, has_seen_new_application_status FROM users WHERE role IN ('admin', 'staff') ` @@ -245,6 +245,7 @@ func (q *Queries) GetStaff(ctx context.Context) ([]User, error) { &i.Rfid, &i.RoleAssignedAt, &i.Role, + &i.HasSeenNewApplicationStatus, ); err != nil { return nil, err } diff --git a/apps/api/internal/database/sqlc/models.go b/apps/api/internal/database/sqlc/models.go index 58fa9d52..b5839bae 100644 --- a/apps/api/internal/database/sqlc/models.go +++ b/apps/api/internal/database/sqlc/models.go @@ -521,20 +521,21 @@ type TeamMember struct { } type User struct { - ID uuid.UUID `json:"id"` - Name string `json:"name"` - Email *string `json:"email"` - EmailVerified bool `json:"email_verified"` - Onboarded bool `json:"onboarded"` - Image *string `json:"image"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` - PreferredEmail *string `json:"preferred_email"` - EmailConsent bool `json:"email_consent"` - CheckedInAt *time.Time `json:"checked_in_at"` - Rfid *string `json:"rfid"` - RoleAssignedAt *time.Time `json:"role_assigned_at"` - Role UserRole `json:"role"` + ID uuid.UUID `json:"id"` + Name string `json:"name"` + Email *string `json:"email"` + EmailVerified bool `json:"email_verified"` + Onboarded bool `json:"onboarded"` + Image *string `json:"image"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + PreferredEmail *string `json:"preferred_email"` + EmailConsent bool `json:"email_consent"` + CheckedInAt *time.Time `json:"checked_in_at"` + Rfid *string `json:"rfid"` + RoleAssignedAt *time.Time `json:"role_assigned_at"` + Role UserRole `json:"role"` + HasSeenNewApplicationStatus *bool `json:"has_seen_new_application_status"` } type UserRedemption struct { diff --git a/apps/api/internal/database/sqlc/sessions.sql.go b/apps/api/internal/database/sqlc/sessions.sql.go index ea2f8f63..54d16a91 100644 --- a/apps/api/internal/database/sqlc/sessions.sql.go +++ b/apps/api/internal/database/sqlc/sessions.sql.go @@ -57,7 +57,10 @@ func (q *Queries) DeleteExpiredSession(ctx context.Context) error { } const getActiveSessionUserInfo = `-- name: GetActiveSessionUserInfo :one -SELECT u.id AS user_id, u.name, u.email, u.preferred_email, u.onboarded, u.image, u.role, u.email_consent, u.checked_in_at, u.rfid, s.last_used_at +SELECT u.id AS user_id, u.name, u.email, u.preferred_email, + u.onboarded, u.image, u.role, u.email_consent, + u.checked_in_at, u.rfid, u.has_seen_new_application_status, + s.last_used_at FROM sessions s JOIN users u ON s.user_id = u.id WHERE s.id = $1 @@ -66,17 +69,18 @@ LIMIT 1 ` type GetActiveSessionUserInfoRow struct { - UserID uuid.UUID `json:"user_id"` - Name string `json:"name"` - Email *string `json:"email"` - PreferredEmail *string `json:"preferred_email"` - Onboarded bool `json:"onboarded"` - Image *string `json:"image"` - Role UserRole `json:"role"` - EmailConsent bool `json:"email_consent"` - CheckedInAt *time.Time `json:"checked_in_at"` - Rfid *string `json:"rfid"` - LastUsedAt time.Time `json:"last_used_at"` + UserID uuid.UUID `json:"user_id"` + Name string `json:"name"` + Email *string `json:"email"` + PreferredEmail *string `json:"preferred_email"` + Onboarded bool `json:"onboarded"` + Image *string `json:"image"` + Role UserRole `json:"role"` + EmailConsent bool `json:"email_consent"` + CheckedInAt *time.Time `json:"checked_in_at"` + Rfid *string `json:"rfid"` + HasSeenNewApplicationStatus *bool `json:"has_seen_new_application_status"` + LastUsedAt time.Time `json:"last_used_at"` } func (q *Queries) GetActiveSessionUserInfo(ctx context.Context, id uuid.UUID) (GetActiveSessionUserInfoRow, error) { @@ -93,6 +97,7 @@ func (q *Queries) GetActiveSessionUserInfo(ctx context.Context, id uuid.UUID) (G &i.EmailConsent, &i.CheckedInAt, &i.Rfid, + &i.HasSeenNewApplicationStatus, &i.LastUsedAt, ) return i, err diff --git a/apps/api/internal/database/sqlc/users.sql.go b/apps/api/internal/database/sqlc/users.sql.go index 489ed1d1..1c2b5a6c 100644 --- a/apps/api/internal/database/sqlc/users.sql.go +++ b/apps/api/internal/database/sqlc/users.sql.go @@ -15,7 +15,7 @@ import ( const createUser = `-- name: CreateUser :one INSERT INTO users (name, email, image) VALUES ($1, $2, $3) -RETURNING id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role +RETURNING id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role, has_seen_new_application_status ` type CreateUserParams struct { @@ -42,6 +42,7 @@ func (q *Queries) CreateUser(ctx context.Context, arg CreateUserParams) (User, e &i.Rfid, &i.RoleAssignedAt, &i.Role, + &i.HasSeenNewApplicationStatus, ) return i, err } @@ -57,7 +58,7 @@ func (q *Queries) DeleteUser(ctx context.Context, id uuid.UUID) error { } const getUserByEmail = `-- name: GetUserByEmail :one -SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role FROM users +SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role, has_seen_new_application_status FROM users WHERE email = $1 ` @@ -79,12 +80,13 @@ func (q *Queries) GetUserByEmail(ctx context.Context, email *string) (User, erro &i.Rfid, &i.RoleAssignedAt, &i.Role, + &i.HasSeenNewApplicationStatus, ) return i, err } const getUserByID = `-- name: GetUserByID :one -SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role FROM users +SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role, has_seen_new_application_status FROM users WHERE id = $1 ` @@ -106,12 +108,13 @@ func (q *Queries) GetUserByID(ctx context.Context, id uuid.UUID) (User, error) { &i.Rfid, &i.RoleAssignedAt, &i.Role, + &i.HasSeenNewApplicationStatus, ) return i, err } const getUserByRFID = `-- name: GetUserByRFID :one -SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role FROM users +SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role, has_seen_new_application_status FROM users WHERE rfid = $1 ` @@ -133,6 +136,7 @@ func (q *Queries) GetUserByRFID(ctx context.Context, rfid *string) (User, error) &i.Rfid, &i.RoleAssignedAt, &i.Role, + &i.HasSeenNewApplicationStatus, ) return i, err } @@ -170,7 +174,7 @@ func (q *Queries) GetUserEmailInfoById(ctx context.Context, id uuid.UUID) (GetUs } const getUsers = `-- name: GetUsers :many -SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role +SELECT id, name, email, email_verified, onboarded, image, created_at, updated_at, preferred_email, email_consent, checked_in_at, rfid, role_assigned_at, role, has_seen_new_application_status FROM users WHERE LOWER(name) LIKE LOWER('%' || COALESCE($1, '') || '%') OR LOWER(email) LIKE LOWER('%' || COALESCE($1, '') || '%') @@ -208,6 +212,7 @@ func (q *Queries) GetUsers(ctx context.Context, arg GetUsersParams) ([]User, err &i.Rfid, &i.RoleAssignedAt, &i.Role, + &i.HasSeenNewApplicationStatus, ); err != nil { return nil, err } @@ -292,35 +297,36 @@ SET email_consent = CASE WHEN $13::boolean THEN $14 ELSE email_consent END, checked_in_at = CASE WHEN $15::boolean THEN $16 ELSE checked_in_at END, rfid = CASE WHEN $17::boolean THEN $18 ELSE rfid END, - role = CASE WHEN $19::boolean THEN $20 ELSE role END, - role_assigned_at = CASE WHEN $19::boolean THEN NOW() ELSE role_assigned_at END, + -- role = CASE WHEN @role_do_update::boolean THEN @role ELSE role END, + -- role_assigned_at = CASE WHEN @role_do_update::boolean THEN NOW() ELSE role_assigned_at END, + has_seen_new_application_status = CASE WHEN $19::boolean THEN $20 ELSE has_seen_new_application_status END, updated_at = NOW() WHERE id = $21::uuid ` type UpdateUserParams struct { - NameDoUpdate bool `json:"name_do_update"` - Name string `json:"name"` - EmailDoUpdate bool `json:"email_do_update"` - Email *string `json:"email"` - EmailVerifiedDoUpdate bool `json:"email_verified_do_update"` - EmailVerified bool `json:"email_verified"` - PreferredEmailDoUpdate bool `json:"preferred_email_do_update"` - PreferredEmail *string `json:"preferred_email"` - OnboardedDoUpdate bool `json:"onboarded_do_update"` - Onboarded bool `json:"onboarded"` - ImageDoUpdate bool `json:"image_do_update"` - Image *string `json:"image"` - EmailConsentDoUpdate bool `json:"email_consent_do_update"` - EmailConsent bool `json:"email_consent"` - CheckedInAtDoUpdate bool `json:"checked_in_at_do_update"` - CheckedInAt *time.Time `json:"checked_in_at"` - RfidDoUpdate bool `json:"rfid_do_update"` - Rfid *string `json:"rfid"` - RoleDoUpdate bool `json:"role_do_update"` - Role UserRole `json:"role"` - ID uuid.UUID `json:"id"` + NameDoUpdate bool `json:"name_do_update"` + Name string `json:"name"` + EmailDoUpdate bool `json:"email_do_update"` + Email *string `json:"email"` + EmailVerifiedDoUpdate bool `json:"email_verified_do_update"` + EmailVerified bool `json:"email_verified"` + PreferredEmailDoUpdate bool `json:"preferred_email_do_update"` + PreferredEmail *string `json:"preferred_email"` + OnboardedDoUpdate bool `json:"onboarded_do_update"` + Onboarded bool `json:"onboarded"` + ImageDoUpdate bool `json:"image_do_update"` + Image *string `json:"image"` + EmailConsentDoUpdate bool `json:"email_consent_do_update"` + EmailConsent bool `json:"email_consent"` + CheckedInAtDoUpdate bool `json:"checked_in_at_do_update"` + CheckedInAt *time.Time `json:"checked_in_at"` + RfidDoUpdate bool `json:"rfid_do_update"` + Rfid *string `json:"rfid"` + HasSeenNewApplicationStatusDoUpdate bool `json:"has_seen_new_application_status_do_update"` + HasSeenNewApplicationStatus *bool `json:"has_seen_new_application_status"` + ID uuid.UUID `json:"id"` } func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) error { @@ -343,8 +349,8 @@ func (q *Queries) UpdateUser(ctx context.Context, arg UpdateUserParams) error { arg.CheckedInAt, arg.RfidDoUpdate, arg.Rfid, - arg.RoleDoUpdate, - arg.Role, + arg.HasSeenNewApplicationStatusDoUpdate, + arg.HasSeenNewApplicationStatus, arg.ID, ) return err diff --git a/apps/api/internal/domains/hackathon/service.go b/apps/api/internal/domains/hackathon/service.go index 10eddea1..51789858 100644 --- a/apps/api/internal/domains/hackathon/service.go +++ b/apps/api/internal/domains/hackathon/service.go @@ -154,9 +154,6 @@ func (s *HackathonService) CheckInAttendee(ctx context.Context, userID uuid.UUID return s.userRepo.UpdateUser(ctx, sqlc.UpdateUserParams{ ID: userID, - Role: sqlc.UserRoleAttendee, - RoleDoUpdate: true, - CheckedInAt: &now, CheckedInAtDoUpdate: true, diff --git a/apps/api/internal/domains/users/http.go b/apps/api/internal/domains/users/http.go index b968ccb8..3d1b5255 100644 --- a/apps/api/internal/domains/users/http.go +++ b/apps/api/internal/domains/users/http.go @@ -151,6 +151,18 @@ func RegisterRoutes(userHandler *handler, group huma.API, mw *middleware.Middlew Errors: []int{http.StatusUnauthorized, http.StatusBadRequest, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, }, userHandler.handleRevokeEventRole) + + huma.Register(group, huma.Operation{ + OperationID: "update-has-seen-new-application-status", + Method: http.MethodPost, + Summary: "Acknowledge New Application Status", + Description: "Mark that the user has seen their new application status", + Tags: []string{"Users"}, + Path: "/me/acknowledge-new-application-status", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + Errors: []int{http.StatusUnauthorized, http.StatusBadRequest, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + }, userHandler.handleAcknowledgeNewApplicationStatus) } type handler struct { @@ -286,7 +298,7 @@ func (h *handler) handleUpdateUser(ctx context.Context, input *struct { PreferredEmail: &input.Body.PreferredEmail, } - err := h.userService.UpdateUser(ctx, userCtx.UserID, params) + err := h.userService.UpdateUser(ctx, params) if err != nil { h.logger.Err(err).Msg("failed to update user") if errors.Is(err, ErrUserNotFound) { @@ -321,11 +333,12 @@ func (h *handler) handleUpdateEmailConsent(ctx context.Context, input *struct { } params := sqlc.UpdateUserParams{ + ID: userCtx.UserID, EmailConsentDoUpdate: true, EmailConsent: input.Body.EmailConsent, } - err := h.userService.UpdateUser(ctx, userCtx.UserID, params) + err := h.userService.UpdateUser(ctx, params) if err != nil { h.logger.Err(err).Msg("failed to update email consent") @@ -496,6 +509,30 @@ func (h *handler) handleRevokeEventRole(ctx context.Context, input *struct { return &RevokeEventRoleOutput{Status: http.StatusOK}, nil } +type AcknowledgeNewApplicationStatusOutput struct { + Status int +} + +func (h *handler) handleAcknowledgeNewApplicationStatus(ctx context.Context, input *struct{}) (*AcknowledgeNewApplicationStatusOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + err := h.userService.UpdateUser(ctx, sqlc.UpdateUserParams{ + ID: userCtx.UserID, + HasSeenNewApplicationStatusDoUpdate: true, + HasSeenNewApplicationStatus: new(true), + }) + + if err != nil { + return nil, huma.Error500InternalServerError("Failed to acknowledge new application status") + } + + return &AcknowledgeNewApplicationStatusOutput{Status: http.StatusOK}, nil +} + func ParseUUIDOrNil(s *string) *uuid.UUID { if s == nil || *s == "" { return nil diff --git a/apps/api/internal/domains/users/service.go b/apps/api/internal/domains/users/service.go index 792cc822..65d67311 100644 --- a/apps/api/internal/domains/users/service.go +++ b/apps/api/internal/domains/users/service.go @@ -99,9 +99,7 @@ func (s *UserService) GetUserByRFID(ctx context.Context, rfid string) (*sqlc.Use // return checkedIn, nil // } -func (s *UserService) UpdateUser(ctx context.Context, userID uuid.UUID, params sqlc.UpdateUserParams) error { - params.ID = userID - +func (s *UserService) UpdateUser(ctx context.Context, params sqlc.UpdateUserParams) error { err := s.userRepo.UpdateUser(ctx, params) if err != nil { if err == repository.ErrUserNotFound { @@ -127,7 +125,7 @@ func (s *UserService) CompleteOnboarding(ctx context.Context, userID uuid.UUID, Onboarded: true, } - return s.UpdateUser(ctx, userID, params) + return s.UpdateUser(ctx, params) } func (s *UserService) GetAllUsers(ctx context.Context, search *string, limit, offset int32) ([]sqlc.User, error) { diff --git a/apps/web/src/components/AppShell/AppShell.tsx b/apps/web/src/components/AppShell/AppShell.tsx index 1b4d0180..3dd4ecfb 100644 --- a/apps/web/src/components/AppShell/AppShell.tsx +++ b/apps/web/src/components/AppShell/AppShell.tsx @@ -16,9 +16,6 @@ import IconX from "~icons/tabler/x"; import { auth } from "@/lib/authClient"; import { Profile } from "./Profile"; import { MobileProfile } from "@/components/AppShell/MobileProfile"; -import { Link, useLocation } from "@tanstack/react-router"; -import TablerArrowRight from "~icons/tabler/arrow-right"; -import TablerArrowLeft from "~icons/tabler/arrow-left"; interface AppShellComponent extends FC { Header: FC; @@ -50,12 +47,7 @@ const AppShellBase: FC = ({ children }) => { [children], ); const { data } = auth.useUser(); - const pathname = useLocation({ select: (loc) => loc.pathname }); - - const isAdminPortal = pathname.startsWith("/admin"); - const user = data?.user; - const role = user?.role === "user" ? "Hacker" : "Administrator"; if (data?.error || !user) { return

Something went wrong while loading user information.

; @@ -102,28 +94,7 @@ const AppShellBase: FC = ({ children }) => {
{navbar}
- {user.role === "superuser" && ( -
- {isAdminPortal ? ( - - - Go back to Portal - - ) : ( - - Go to Admin Portal - - - )} -
- )} - +
diff --git a/apps/web/src/components/AppShell/ApplicantNavbar.tsx b/apps/web/src/components/AppShell/ApplicantNavbar.tsx new file mode 100644 index 00000000..ddd57809 --- /dev/null +++ b/apps/web/src/components/AppShell/ApplicantNavbar.tsx @@ -0,0 +1,38 @@ +import { NavLink } from "@/components/AppShell/NavLink"; +import TablerCode from "~icons/tabler/code"; +import TablerClipboard from "~icons/tabler/clipboard"; +import TablerAlertCircleFilled from "~icons/tabler/alert-circle-filled"; + +interface ApplicantNavbarProps { + pathname: string; + hasSeenNewApplicationStatus: boolean | null; +} + +export default function ApplicantNavbar({ + pathname, + hasSeenNewApplicationStatus, +}: ApplicantNavbarProps) { + const commonNavLinks = ( + <> + } + active={pathname.startsWith("/information")} + /> + + } + rightSection={ + hasSeenNewApplicationStatus === false && ( + + ) + } + active={pathname.startsWith("/application")} + /> + + ); + return commonNavLinks; +} diff --git a/apps/web/src/components/AppShell/NavLink.tsx b/apps/web/src/components/AppShell/NavLink.tsx index 4d22e7cf..7aea5f8d 100644 --- a/apps/web/src/components/AppShell/NavLink.tsx +++ b/apps/web/src/components/AppShell/NavLink.tsx @@ -1,4 +1,8 @@ -import { useEffect, type PropsWithChildren, type ReactNode } from "react"; +import React, { + useEffect, + type PropsWithChildren, + type ReactNode, +} from "react"; import TablerChevronRight from "~icons/tabler/chevron-right"; import { tv } from "tailwind-variants"; import { useToggleState } from "react-stately"; @@ -19,7 +23,7 @@ const navLink = tv({ interface NavLinkProps { href?: string; - label: string; + label: string | React.ReactNode; description?: string; leftSection?: ReactNode; rightSection?: ReactNode; @@ -63,20 +67,21 @@ const NavLink = ({
{isExpandable ? ( -
- {leftSection && ( - - {leftSection} - - )} -
- {label} - {description && ( - - {description} +
+
+ {leftSection && ( + + {leftSection} )} + {label}
+ + {description && ( + + {description} + + )}
(closeNavbarOnClick ? setMobileNavOpen(false) : null)} > -
- {leftSection && ( - - {leftSection} - - )} -
- {label} - {description && ( - - {description} +
+
+ {leftSection && ( + + {leftSection} )} + {label}
+ + {description && ( + + {description} + + )}
{rightSection && ( diff --git a/apps/web/src/components/AppShell/NavSection.tsx b/apps/web/src/components/AppShell/NavSection.tsx new file mode 100644 index 00000000..da4f3589 --- /dev/null +++ b/apps/web/src/components/AppShell/NavSection.tsx @@ -0,0 +1,12 @@ +interface NavSectionProps { + name: string; +} + +export function NavSection({ name }: NavSectionProps) { + return ( +
+

{name}

+
+
+ ); +} diff --git a/apps/web/src/components/AppShell/Profile.tsx b/apps/web/src/components/AppShell/Profile.tsx index c1e226d7..adb25a10 100644 --- a/apps/web/src/components/AppShell/Profile.tsx +++ b/apps/web/src/components/AppShell/Profile.tsx @@ -3,8 +3,15 @@ import { useAppShell } from "@/components/AppShell/AppShellContext"; import { cn } from "@/utils/cn"; import { useRouter } from "@tanstack/react-router"; import { auth } from "@/lib/authClient"; +import type { UserContext } from "@/lib/auth/types"; -export function Profile({ name, role }: { name: string; role: string }) { +export function Profile({ + name, + role, +}: { + name: string; + role: UserContext["role"]; +}) { const router = useRouter(); const { setMobileNavOpen } = useAppShell(); const { data } = auth.useUser(); @@ -22,7 +29,9 @@ export function Profile({ name, role }: { name: string; role: string }) {

{name}

-

{role}

+

+ {getRoleString(role)} +

); } + +function getRoleString(role: UserContext["role"]) { + switch (role) { + case "admin": + return "Admin"; + case "staff": + return "Staff"; + case "applicant": + return "Applicant"; + case "visitor": + return "Visitor"; + default: + return "Hacker"; + } +} diff --git a/apps/web/src/components/AppShell/VisitorNavbar.tsx b/apps/web/src/components/AppShell/VisitorNavbar.tsx new file mode 100644 index 00000000..5f3bc6a8 --- /dev/null +++ b/apps/web/src/components/AppShell/VisitorNavbar.tsx @@ -0,0 +1,29 @@ +import { NavLink } from "@/components/AppShell/NavLink"; +import TablerCode from "~icons/tabler/code"; +import TablerClipboard from "~icons/tabler/clipboard"; + +interface VisitorNavbarProps { + pathname: string; +} + +export default function VisitorNavbar({ pathname }: VisitorNavbarProps) { + const commonNavLinks = ( + <> + } + active={pathname.startsWith("/information")} + /> + + } + active={pathname.startsWith("/application")} + /> + + ); + + return <>{commonNavLinks}; +} diff --git a/apps/web/src/lib/auth/hooks/useUser.ts b/apps/web/src/lib/auth/hooks/useUser.ts index 17aced69..645d0a6c 100644 --- a/apps/web/src/lib/auth/hooks/useUser.ts +++ b/apps/web/src/lib/auth/hooks/useUser.ts @@ -1,12 +1,12 @@ import { useQuery } from "@tanstack/react-query"; import { _getUser } from "../services/user"; -export const queryKey = ["auth", "me"] as const; +export const useUserQueryKey = ["auth", "me"] as const; export function _useUser() { // eslint-disable-next-line react-hooks/rules-of-hooks return useQuery({ - queryKey, + queryKey: useUserQueryKey, queryFn: async () => await _getUser(), refetchOnWindowFocus: false, refetchOnMount: true, diff --git a/apps/web/src/lib/auth/services/user.ts b/apps/web/src/lib/auth/services/user.ts index f296c92e..eb61d373 100644 --- a/apps/web/src/lib/auth/services/user.ts +++ b/apps/web/src/lib/auth/services/user.ts @@ -24,8 +24,6 @@ export function _logout(config: AuthConfig) { } export async function _getUser(): Promise { - console.log("fetching user info..."); - try { const res = await fetch(authConfig.AUTH_ME_URL, { credentials: "include", diff --git a/apps/web/src/lib/auth/types/user.ts b/apps/web/src/lib/auth/types/user.ts index b7b2357f..ece045c4 100644 --- a/apps/web/src/lib/auth/types/user.ts +++ b/apps/web/src/lib/auth/types/user.ts @@ -7,10 +7,11 @@ export const userContextSchema = z.object({ name: z.string(), onboarded: z.boolean(), image: z.string().nullable().optional(), - role: z.enum(['admin', 'staff', 'attendee', 'applicant', 'visitor']), + role: z.enum(["admin", "staff", "attendee", "applicant", "visitor"]), emailConsent: z.boolean(), checkedInAt: z.date().nullable(), rfid: z.string().nullable(), + hasSeenNewApplicationStatus: z.boolean().nullable(), }); export type UserContext = z.infer; diff --git a/apps/web/src/lib/authClient.ts b/apps/web/src/lib/authClient.ts index 7e7c69a2..4b1e51c0 100644 --- a/apps/web/src/lib/authClient.ts +++ b/apps/web/src/lib/authClient.ts @@ -2,7 +2,7 @@ import Auth from "./auth"; import { authConfig } from "./auth/config"; import { Discord } from "./auth/providers"; import { queryClient } from "./tanstack-query-client"; -import { queryKey as useUserQueryKey } from "./auth/hooks/useUser"; +import { useUserQueryKey } from "./auth/hooks/useUser"; export const auth = Auth({ providers: [Discord], diff --git a/apps/web/src/lib/openapi/schema.d.ts b/apps/web/src/lib/openapi/schema.d.ts index 6b011e17..3327770a 100644 --- a/apps/web/src/lib/openapi/schema.d.ts +++ b/apps/web/src/lib/openapi/schema.d.ts @@ -1008,6 +1008,26 @@ export interface paths { patch: operations["update-user"]; trace?: never; }; + "/users/me/acknowledge-new-application-status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Acknowledge New Application Status + * @description Mark that the user has seen their new application status + */ + post: operations["update-has-seen-new-application-status"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/users/me/email-consent": { parameters: { query?: never; @@ -1148,6 +1168,122 @@ export interface paths { patch?: never; trace?: never; }; + "/workshops": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get all UPCOMING workshops + * @description Returns a list of all workshops. + */ + get: operations["get-all-workshops"]; + put?: never; + /** + * Create a workshop + * @description Creates a workshop based on the provided body. + */ + post: operations["create-workshop"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/workshops/delete-all": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post?: never; + /** + * Delete all workshops + * @description Deletes all the workshops + */ + delete: operations["delete-all-workshops"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/workshops/view-all": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * View all workshops ever made + * @description Returns a list of all workshops, including past workshops. + */ + get: operations["view-all-workshops"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/workshops/{workshopId}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get a workshop off of workshopID + * @description Returns a workshop based on the provided id. + */ + get: operations["get-workshop"]; + put?: never; + post?: never; + /** + * Delete a workshop + * @description Deletes a workshop based on the provided id. + */ + delete: operations["delete-workshop"]; + options?: never; + head?: never; + /** + * Update a workshop + * @description Updates a workshop based on the provided id and body. Only the fields provided in the body will be updated. + */ + patch: operations["update-workshop"]; + trace?: never; + }; + "/workshops/{workshopId}/register": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Register for a workshop + * @description Lets a user register for a workshop. + */ + post: operations["register-for-workshop"]; + /** + * Unregister for a workshop + * @description Lets a user unregister for a workshop. + */ + delete: operations["unregister-for-workshop"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; } export type webhooks = Record; export interface components { @@ -1191,6 +1327,16 @@ export interface components { CreateTeamRequest: { name: string; }; + CreateWorkshopInput: { + description: string; + /** Format: date-time */ + end_time: string; + location: string; + presenter: string; + /** Format: date-time */ + start_time: string; + title: string; + }; ErrorDetail: { /** @description Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id' */ location?: string; @@ -1382,6 +1528,19 @@ export interface components { name: string; preferredEmail: string; }; + OpenWorkshop: { + /** Format: int64 */ + attendees: number; + description: string; + /** Format: date-time */ + end_time: string; + id: string; + location: string; + presenter: string; + /** Format: date-time */ + start_time: string; + title: string; + }; PublicHackathon: { acceptEarlyApplications: boolean; /** Format: date-time */ @@ -1443,6 +1602,10 @@ export interface components { amount: number | null; userID: string; }; + SubmissionResult: { + /** Format: date-time */ + submittedAt: string | null; + }; SubmitInterestEmailRequest: { email: string; source: string | null; @@ -1515,6 +1678,16 @@ export interface components { name: string; preferredEmail: string; }; + UpdateWorkshopInput: { + description: string | null; + /** Format: date-time */ + end_time: string | null; + location: string | null; + presenter: string | null; + /** Format: date-time */ + start_time: string | null; + title: string | null; + }; User: { /** Format: date-time */ checked_in_at: string | null; @@ -1523,6 +1696,7 @@ export interface components { email: string | null; email_consent: boolean; email_verified: boolean; + has_seen_new_application_status: boolean | null; id: string; image: string | null; name: string; @@ -1540,6 +1714,7 @@ export interface components { checkedInAt: string | null; email: string | null; emailConsent: boolean; + hasSeenNewApplicationStatus: boolean | null; image: string | null; name: string; onboarded: boolean; @@ -1550,6 +1725,23 @@ export interface components { /** Format: uuid */ userId: string; }; + Workshop: { + /** Format: date-time */ + created_at: string; + description: string | null; + /** Format: date-time */ + end_time: string; + id: string; + location: string | null; + /** Format: int32 */ + num_attendees: number; + presenter: string | null; + /** Format: date-time */ + start_time: string; + title: string; + /** Format: date-time */ + updated_at: string; + }; }; responses: never; parameters: never; @@ -2160,7 +2352,9 @@ export interface operations { headers: { [name: string]: unknown; }; - content?: never; + content: { + "application/json": components["schemas"]["SubmissionResult"]; + }; }; /** @description Unauthorized */ 401: { @@ -4394,6 +4588,54 @@ export interface operations { }; }; }; + "update-has-seen-new-application-status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description No Content */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; "update-email-consent": { parameters: { query?: never; @@ -4855,4 +5097,567 @@ export interface operations { }; }; }; + "get-all-workshops": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Workshop"][] | null; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "create-workshop": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CreateWorkshopInput"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OpenWorkshop"]; + }; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unprocessable Entity */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "delete-all-workshops": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description No Content */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "view-all-workshops": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["Workshop"][] | null; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "get-workshop": { + parameters: { + query?: never; + header?: never; + path: { + workshopId: string; + }; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OpenWorkshop"]; + }; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unprocessable Entity */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "delete-workshop": { + parameters: { + query?: never; + header?: never; + path: { + workshopId: string; + }; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description No Content */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unprocessable Entity */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "update-workshop": { + parameters: { + query?: never; + header?: never; + path: { + workshopId: string; + }; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateWorkshopInput"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OpenWorkshop"]; + }; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unprocessable Entity */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "register-for-workshop": { + parameters: { + query?: never; + header?: never; + path: { + workshopId: string; + }; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OpenWorkshop"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unprocessable Entity */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; + "unregister-for-workshop": { + parameters: { + query?: never; + header?: never; + path: { + workshopId: string; + }; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["OpenWorkshop"]; + }; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Not Found */ + 404: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unprocessable Entity */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; } diff --git a/apps/web/src/modules/Application/ApplicationForm.tsx b/apps/web/src/modules/Application/ApplicationForm.tsx index e580a66b..0578045f 100644 --- a/apps/web/src/modules/Application/ApplicationForm.tsx +++ b/apps/web/src/modules/Application/ApplicationForm.tsx @@ -4,8 +4,6 @@ import { QuestionTypes } from "@/modules/FormBuilder/types"; import { showToast } from "@/lib/toast/toast"; import TablerCircleCheck from "~icons/tabler/circle-check"; import { api } from "@/lib/ky"; -import { Spinner } from "@/components/ui/Spinner"; -import { useMyApplication } from "@/modules/Application/hooks/useMyApplication"; import { formatDistanceToNowStrict, parseISO } from "date-fns"; import Cloud from "./assets/cloud.svg?react"; @@ -17,16 +15,22 @@ import Bell from "./assets/bell.svg?react"; // TODO: dynamically fetch application json data from somewhere (backend, cdn?) instead of hardcoding it in the frontend import data from "./application.json"; -import type { Hackathon } from "@/lib/openapi/types"; +import type { Application, Hackathon } from "@/lib/openapi/types"; import { HTTPError } from "ky"; const SAVE_DELAY_MS = 3000; // delay in time before saving form progress interface ApplicationFormProps { hackathon: Hackathon; + application: Application; + applicationResponses: any; } -export function ApplicationForm({ hackathon }: ApplicationFormProps) { +export function ApplicationForm({ + hackathon, + application, + applicationResponses, +}: ApplicationFormProps) { // TODO: make the `build` api better so components that use this function doesn't have to call useMemo on it? const { Form, fieldsTypes } = useMemo(() => build(data), []); const fileFields = useRef(new Set()); @@ -38,8 +42,6 @@ export function ApplicationForm({ hackathon }: ApplicationFormProps) { const [savedText, setSavedText] = useState(""); const [submittedAt, setSubmittedAt] = useState(undefined); - const application = useMyApplication(); - // Update saved text every second. Restart interval when lastSavedAt changes. useEffect(() => { const id = setInterval(() => { @@ -55,15 +57,15 @@ export function ApplicationForm({ hackathon }: ApplicationFormProps) { // Update saved at status message, if any. useEffect(() => { - if (!application || application.isLoading) return; + if (!application) return; - if (application.data?.savedAt) { - const parsed = parseISO(application.data.savedAt); + if (application?.savedAt) { + const parsed = parseISO(application.savedAt); setLastSavedAt(parsed); } else { setLastSavedAt(undefined); } - }, [application?.data?.savedAt, application?.isLoading]); + }, [application?.savedAt]); const onSubmit = useCallback(async (data: Record) => { setIsSubmitting(true); @@ -140,20 +142,7 @@ export function ApplicationForm({ hackathon }: ApplicationFormProps) { [isSubmitted, isSubmitting], ); - if (application.isLoading) { - return ( -
- -

Loading form...

-
- ); - } - - if (!application.data) { - throw new Error("Application data is empty."); - } - - const isApplicationSubmitted = application.data.status !== "started"; + const isApplicationSubmitted = application.status !== "started"; const saveStatus = ( <> @@ -175,9 +164,7 @@ export function ApplicationForm({ hackathon }: ApplicationFormProps) {
( )} isInvalid={isInvalid} @@ -233,7 +220,7 @@ export function ApplicationForm({ hackathon }: ApplicationFormProps) { function SubmitSuccess({ submittedAt }: { submittedAt: string }) { return (
-
+

Thank you! Your application has been received.

diff --git a/apps/web/src/modules/Application/hooks/useMyApplication.ts b/apps/web/src/modules/Application/hooks/useMyApplication.ts index b841b093..6d82e757 100644 --- a/apps/web/src/modules/Application/hooks/useMyApplication.ts +++ b/apps/web/src/modules/Application/hooks/useMyApplication.ts @@ -8,10 +8,11 @@ export async function fetchMyApplication(): Promise { return await api.get(`application`).json(); } -export function useMyApplication() { +export function useMyApplication(enabled: boolean = true) { return useQuery({ queryKey: myApplicationQueryKey, queryFn: () => fetchMyApplication(), staleTime: Infinity, + enabled, }); } diff --git a/apps/web/src/modules/Dashboard/ApplicantAppShell.tsx b/apps/web/src/modules/Dashboard/ApplicantAppShell.tsx deleted file mode 100644 index e1ddf49b..00000000 --- a/apps/web/src/modules/Dashboard/ApplicantAppShell.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { useLocation, useRouter } from "@tanstack/react-router"; -import { AppShell } from "@/components/AppShell/AppShell"; -import { NavLink } from "@/components/AppShell/NavLink"; -import TablerProgress from "~icons/tabler/progress"; -import TablerTransformPointBottomLeft from "~icons/tabler/transform-point-bottom-left"; -import { type PropsWithChildren } from "react"; -import { Logo } from "@/components/Logo"; - -interface DashboardAppShellProps { - eventId: string; - eventName?: string; -} - -export default function ApplicantAppShell({ - eventId, - children, - eventName, -}: PropsWithChildren) { - const router = useRouter(); - const pathname = useLocation({ select: (loc) => loc.pathname }); - - const applicationStatusActive = - /^\/events\/[^/]+\/dashboard\/application-status\/?$/.test(pathname); - const teamFormationActive = /^\/events\/[^/]+\/dashboard\/my-team\/?$/.test( - pathname, - ); - - return ( - - -
- router.navigate({ to: "/portal" })} - className="py-2 cursor-pointer" - label={eventName || "Event Portal"} - /> -
-
- - - } - active={applicationStatusActive} - /> - - } - active={teamFormationActive} - /> - - - {children} -
- ); -} diff --git a/apps/web/src/modules/Onboarding/OnboardingModal.tsx b/apps/web/src/modules/Onboarding/OnboardingModal.tsx index 02c68320..c0a1ce9f 100644 --- a/apps/web/src/modules/Onboarding/OnboardingModal.tsx +++ b/apps/web/src/modules/Onboarding/OnboardingModal.tsx @@ -12,7 +12,7 @@ import { api } from "@/lib/ky"; import { showToast } from "@/lib/toast/toast"; import Cookies from "js-cookie"; import { Button } from "@/components/ui/Button"; -import { queryKey as authQueryKey } from "@/lib/auth/hooks/useUser"; +import { useUserQueryKey } from "@/lib/auth/hooks/useUser"; import { useQueryClient } from "@tanstack/react-query"; interface OnboardingModalProps { @@ -43,11 +43,11 @@ export function OnboardingModal({ try { await api.patch("users/me/onboarding", { json: { - preferred_email: value.preferredEmail, + preferredEmail: value.preferredEmail, name: value.preferredName, }, }); - await queryClient.invalidateQueries({ queryKey: authQueryKey }); + await queryClient.invalidateQueries({ queryKey: useUserQueryKey }); showToast({ title: "Profile Updated", message: "Your profile has been updated successfully.", diff --git a/apps/web/src/modules/Settings/SettingsPage.tsx b/apps/web/src/modules/Settings/SettingsPage.tsx index 7a290b52..aa63d99c 100644 --- a/apps/web/src/modules/Settings/SettingsPage.tsx +++ b/apps/web/src/modules/Settings/SettingsPage.tsx @@ -59,7 +59,7 @@ export function SettingsPage({ logout }: { logout: () => void }) { try { setEmailConsent(selected); await api.patch("users/me/email-consent", { - json: { email_consent: selected }, + json: { emailConsent: selected }, }); } catch { showToast({ @@ -85,7 +85,7 @@ export function SettingsPage({ logout }: { logout: () => void }) { /> ) : ( router.navigate({ to: "/portal" })} + onClick={() => router.navigate({ to: "/information" })} className="size-7 hover:cursor-pointer text-text-secondary hover:text-text-main" /> )} diff --git a/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx b/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx index 3668aa03..ec327f8d 100644 --- a/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx +++ b/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx @@ -1,7 +1,7 @@ import z from "zod"; import { useMutation, useQueryClient } from "@tanstack/react-query"; import { api } from "@/lib/ky"; -import { queryKey as authQueryKey } from "@/lib/auth/hooks/useUser"; +import { useUserQueryKey } from "@/lib/auth/hooks/useUser"; export const settingsFieldsSchema = z.object({ name: z.string().min(1, "Name is required"), @@ -20,13 +20,13 @@ export function useSettingsActions() { .patch("users/me", { json: { name: data.name, - preferred_email: data.preferredEmail, + preferredEmail: data.preferredEmail, }, }) .json(); }, onSuccess: async () => { - await queryClient.invalidateQueries({ queryKey: authQueryKey }); + await queryClient.invalidateQueries({ queryKey: useUserQueryKey }); }, }); diff --git a/apps/web/src/routes/_protected/_user/application.tsx b/apps/web/src/routes/_protected/_user/application.tsx index ca729ae4..547225d1 100644 --- a/apps/web/src/routes/_protected/_user/application.tsx +++ b/apps/web/src/routes/_protected/_user/application.tsx @@ -5,6 +5,13 @@ import TablerAlertCircle from "~icons/tabler/alert-circle"; import { useEffect } from "react"; import { useHackathon } from "@/modules/Hackathon/hooks/useHackathon"; import { Spinner } from "@/components/ui/Spinner"; +import { api } from "@/lib/ky"; +import { auth } from "@/lib/authClient"; +import { useQueryClient } from "@tanstack/react-query"; +import { useUserQueryKey } from "@/lib/auth/hooks/useUser"; +import type { AuthUserResponse } from "@/lib/auth/types"; +import { useMyApplication } from "@/modules/Application/hooks/useMyApplication"; +import { Button } from "@/components/ui/Button"; export const Route = createFileRoute("/_protected/_user/application")({ component: RouteComponent, @@ -12,24 +19,44 @@ export const Route = createFileRoute("/_protected/_user/application")({ function RouteComponent() { const hackathon = useHackathon(); + const { data } = auth.useUser(); + const { user } = data!; + const queryClient = useQueryClient(); + const application = useMyApplication(); // Show a confirmation dialog when the user closes the tab - useEffect(() => { - function beforeUnload(e: BeforeUnloadEvent) { - e.preventDefault(); - } + // useEffect(() => { + // function beforeUnload(e: BeforeUnloadEvent) { + // e.preventDefault(); + // } - window.addEventListener("beforeunload", beforeUnload); + // window.addEventListener("beforeunload", beforeUnload); - return () => { - window.removeEventListener("beforeunload", beforeUnload); - }; - }, []); + // return () => { + // window.removeEventListener("beforeunload", beforeUnload); + // }; + // }, []); + + useEffect(() => { + if ( + user?.hasSeenNewApplicationStatus === false && + hackathon.data && + !hackathon.isLoading + ) { + api.post(`users/me/acknowledge-new-application-status`); - // TODO: - // check early application and regular application - // - mark user application as early or regular. Do this in the backend - // if early application, show a message in the header to tell the user that they are submitting an early application + queryClient.setQueryData( + useUserQueryKey, + (oldData: AuthUserResponse) => ({ + ...oldData, + user: { + ...oldData.user, + hasSeenNewApplicationStatus: true, + }, + }), + ); + } + }, [user, hackathon]); if (hackathon.isLoading) { return ( @@ -60,9 +87,40 @@ function RouteComponent() { ); } + if (application.isLoading) { + return ( +
+ +

Loading form...

+
+ ); + } + + if (!application.data) { + throw new Error("Application data is empty."); + } + + const applicationResponses = JSON.parse(atob(application.data.application)); + + if (application.data.status === "accepted") { + return ; + } + + if (application.data.status === "rejected") { + return ; + } + + if (application.data.status === "waitlisted") { + return ; + } + return ( - + ); } @@ -75,3 +133,143 @@ function Fallback() {
); } + +interface AcceptedProps { + name: string; +} + +function Accepted({ name }: AcceptedProps) { + const handleConfirmAttendance = () => {}; + + const handleWithdrawApplication = () => { + const isConfirmed = window.confirm( + "Are you sure you want to withdraw your application?", + ); + + if (isConfirmed) { + console.log("Withdrawing"); + } + }; + + return ( +
+

Congrats, {name}! 🎉

+
+

You've been accepted to hack in SwampHacks XII!

+

+ Please confirm your attendance by January 2nd. Failure to do so means + you are giving up your spot, and we will admit someone from a + waitlist. +

+

+ If you're no longer able to attend, please withdraw your application + so we can offer your spot to another applicant and maintain an + accurate attendee count. +

+
+
+ + +
+
+ ); +} + +interface RejectedProps { + name: string; +} + +function Rejected({ name }: RejectedProps) { + return ( +
+

Hi, {name}!

+
+

+ We sincerely appreciate your interest in SwampHacks XII and the time + you took to apply. After careful consideration, we are unable to + accept you as a hacker at this time. +

+ +

+ However, we’d love to stay connected and invite you to get involved in + other ways: +

+ +
    +
  1. + 1. Join the Waitlist: We may have openings + available closer to the event. You can join the waitlist in the{" "} + + SwampHacks Portal + {" "} + or by signing up in person on the day of check-in if space allows. + The waitlist operates on a first-come, first-served basis. +
  2. +
  3. + 2. Mentor: Share your knowledge and guide hackers + through their projects.{" "} + + Sign up to be a mentor here + + . +
  4. +
  5. + 3. Volunteer: Help us run the event smoothly.{" "} + + Sign up to volunteer here + + . +
  6. +
+ +

+ If you have any questions, reach out in our{" "} + Discord server or + email us at{" "} + contact@swamphacks.com. +

+
+
+ ); +} + +interface WaitlistedProps { + name: string; +} + +function Waitlisted({ name }: WaitlistedProps) { + return ( +
+

Hi, {name}!

+ +
+

+ Thank you for applying to SwampHacks XII! We were very impressed by + your application. At this time, we’re placing you on our{" "} + waitlist due to limited capacity. +

+ +

+ If spots open up, we’ll be sending out invitations on a rolling basis + leading up to the event. Waitlist decisions are made as space becomes + available. Please keep an eye out on your email or the hacker portal + for updates! +

+ +

+ If you have questions, feel free to reach out on our{" "} + Discord server or + email us at{" "} + contact@swamphacks.com +

+
+
+ ); +} diff --git a/apps/web/src/routes/_protected/_user/layout.tsx b/apps/web/src/routes/_protected/_user/layout.tsx index bb69785e..6e3f6246 100644 --- a/apps/web/src/routes/_protected/_user/layout.tsx +++ b/apps/web/src/routes/_protected/_user/layout.tsx @@ -1,15 +1,16 @@ -import { NavLink } from "@/components/AppShell/NavLink"; import { createFileRoute, Outlet, useLocation, useRouter, } from "@tanstack/react-router"; -import TablerCode from "~icons/tabler/code"; -import TablerClipboard from "~icons/tabler/clipboard"; import { AppShell } from "@/components/AppShell/AppShell"; import { PageLoading } from "@/components/PageLoading"; import { Logo } from "@/components/Logo"; +import { auth } from "@/lib/authClient"; +import { useMyApplication } from "@/modules/Application/hooks/useMyApplication"; +import ApplicantNavbar from "@/components/AppShell/ApplicantNavbar"; +import VisitorNavbar from "@/components/AppShell/VisitorNavbar"; export const Route = createFileRoute("/_protected/_user")({ pendingComponent: () => PageLoading(), @@ -20,6 +21,40 @@ function RouteComponent() { const router = useRouter(); const pathname = useLocation({ select: (loc) => loc.pathname }); + // TODO: pass this data down to outlet + const { data } = auth.useUser(); + const { user } = data!; + + if (!user) { + throw new Error("An error occurred: user is null"); + } + + const application = useMyApplication(user.role == "applicant"); + + if (application.isLoading) { + return; + } + + const renderNavbarBasedOnRole = () => { + switch (user.role) { + case "visitor": + return ; + case "applicant": + return ( + + ); + case "admin": + break; + case "staff": + break; + default: + break; + } + }; + return ( @@ -27,26 +62,12 @@ function RouteComponent() { router.navigate({ to: "/information" })} className="py-2 cursor-pointer" - label="SwampHacks" + label="SwampHacks XII" />
- - } - active={pathname.startsWith("/information")} - /> - - } - active={pathname.startsWith("/application")} - /> - + {renderNavbarBasedOnRole()} diff --git a/apps/web/src/routes/_protected/events/$eventId/dashboard/layout.tsx b/apps/web/src/routes/_protected/events/$eventId/dashboard/layout.tsx index 8670ebe2..a81b6e3a 100644 --- a/apps/web/src/routes/_protected/events/$eventId/dashboard/layout.tsx +++ b/apps/web/src/routes/_protected/events/$eventId/dashboard/layout.tsx @@ -1,5 +1,5 @@ import AttendeeAppShell from "@/modules/Dashboard/AttendeeAppShell"; -import ApplicantAppShell from "@/modules/Dashboard/ApplicantAppShell"; +import ApplicantNavbar from "@/modules/Dashboard/ApplicantAppShell"; import StaffAppShell from "@/modules/Dashboard/StaffAppShell"; import { getUserEventRole } from "@/modules/Event/api/getUserEventRole"; import NotFoundPage from "@/modules/NotFound/NotFoundPage"; @@ -67,9 +67,9 @@ function RouteComponent() { ); case "applicant": return ( - + - + ); default: return
Unknown role: {eventRole}
; diff --git a/apps/web/src/routes/index.tsx b/apps/web/src/routes/index.tsx index 1b747c29..b1313390 100644 --- a/apps/web/src/routes/index.tsx +++ b/apps/web/src/routes/index.tsx @@ -15,7 +15,7 @@ export const Route = createFileRoute("/")({ if (user) { console.log("User is already authenticated, redirecting to portal."); throw redirect({ - to: "/portal", + to: "/information", }); } }, From 6b62e05d1f9b385e6ceceacac1db24e8090bc2cb Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Thu, 4 Jun 2026 16:15:49 -0400 Subject: [PATCH 09/21] fix pnpm install fail inside docker --- apps/web/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 97c325fb..e9020e7a 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -8,6 +8,8 @@ RUN npm install -g pnpm COPY package.json pnpm-lock.yaml ./ +RUN pnpm approve-builds --all + # Install dependencies RUN pnpm install --frozen-lockfile From 022ad9c375803ee8b632c58e0d1360d9a52d9de2 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Thu, 4 Jun 2026 16:21:43 -0400 Subject: [PATCH 10/21] fix for pnpm install --- apps/web/.npmrc | 1 + apps/web/Dockerfile | 2 +- apps/web/pnpm-workspace.yaml | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 apps/web/.npmrc create mode 100644 apps/web/pnpm-workspace.yaml diff --git a/apps/web/.npmrc b/apps/web/.npmrc new file mode 100644 index 00000000..59acb2af --- /dev/null +++ b/apps/web/.npmrc @@ -0,0 +1 @@ +ignore-scripts=false \ No newline at end of file diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index e9020e7a..dc42a58a 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -8,7 +8,7 @@ RUN npm install -g pnpm COPY package.json pnpm-lock.yaml ./ -RUN pnpm approve-builds --all +ENV CI=true # Install dependencies RUN pnpm install --frozen-lockfile diff --git a/apps/web/pnpm-workspace.yaml b/apps/web/pnpm-workspace.yaml new file mode 100644 index 00000000..5b23a1c1 --- /dev/null +++ b/apps/web/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +onlyBuiltDependencies: + - '@tailwindcss/oxide' + - esbuild From 6d14fb35c72fabc34d0976c78e4e3fdc2e704f70 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Thu, 4 Jun 2026 16:26:24 -0400 Subject: [PATCH 11/21] maybe this will work --- apps/web/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index dc42a58a..4656191e 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -8,10 +8,10 @@ RUN npm install -g pnpm COPY package.json pnpm-lock.yaml ./ -ENV CI=true - +ENV HUSKY=0 # Install dependencies -RUN pnpm install --frozen-lockfile +RUN pnpm install --frozen-lockfile --ignore-scripts && \ + pnpm rebuild @tailwindcss/oxide esbuild COPY . . From 84cee8e9efc62b57d33628522b7f9b5a2c625451 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Thu, 4 Jun 2026 16:28:46 -0400 Subject: [PATCH 12/21] surely this time it'll work --- apps/web/package.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/web/package.json b/apps/web/package.json index 7043385c..e97dbe32 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -113,5 +113,11 @@ "extends": [ "plugin:storybook/recommended" ] + }, + "pnpm": { + "onlyBuiltDependencies": [ + "@tailwindcss/oxide", + "esbuild" + ] } } From 5c3860e772c13b709314f6f5ea52f1265853dfa5 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Thu, 4 Jun 2026 16:31:58 -0400 Subject: [PATCH 13/21] 4th time is the charm --- apps/web/.npmrc | 1 - apps/web/Dockerfile | 3 +-- apps/web/package.json | 6 ------ apps/web/pnpm-workspace.yaml | 7 ++++--- 4 files changed, 5 insertions(+), 12 deletions(-) delete mode 100644 apps/web/.npmrc diff --git a/apps/web/.npmrc b/apps/web/.npmrc deleted file mode 100644 index 59acb2af..00000000 --- a/apps/web/.npmrc +++ /dev/null @@ -1 +0,0 @@ -ignore-scripts=false \ No newline at end of file diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 4656191e..b9ede658 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -10,8 +10,7 @@ COPY package.json pnpm-lock.yaml ./ ENV HUSKY=0 # Install dependencies -RUN pnpm install --frozen-lockfile --ignore-scripts && \ - pnpm rebuild @tailwindcss/oxide esbuild +RUN pnpm install --frozen-lockfile COPY . . diff --git a/apps/web/package.json b/apps/web/package.json index e97dbe32..7043385c 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -113,11 +113,5 @@ "extends": [ "plugin:storybook/recommended" ] - }, - "pnpm": { - "onlyBuiltDependencies": [ - "@tailwindcss/oxide", - "esbuild" - ] } } diff --git a/apps/web/pnpm-workspace.yaml b/apps/web/pnpm-workspace.yaml index 5b23a1c1..b2871af4 100644 --- a/apps/web/pnpm-workspace.yaml +++ b/apps/web/pnpm-workspace.yaml @@ -1,3 +1,4 @@ -onlyBuiltDependencies: - - '@tailwindcss/oxide' - - esbuild +ignoreScripts: false +allowBuilds: + '@tailwindcss/oxide': true + esbuild: true From 1eda68794b47eda868bd65640a8b64df4139e4d8 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Thu, 4 Jun 2026 16:37:58 -0400 Subject: [PATCH 14/21] aaaaa --- apps/web/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index b9ede658..469b31f2 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -1,5 +1,5 @@ # ========== Base Stage =========== -FROM node:22.16.0-slim AS base +FROM node:24.16-slim AS base WORKDIR /app From 1caf1821ec7f733fe3ba1516c2393f7e7a17204f Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Thu, 4 Jun 2026 16:46:39 -0400 Subject: [PATCH 15/21] this should be it --- apps/web/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 469b31f2..6aaf5a96 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /app # Install pnpm globally RUN npm install -g pnpm -COPY package.json pnpm-lock.yaml ./ +COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ ENV HUSKY=0 # Install dependencies @@ -28,7 +28,7 @@ FROM base AS build RUN pnpm run build # ========== Production Stage (With Runtime Config Injection) =========== -FROM node:22.16.0-slim AS prod +FROM node:24.16-slim AS prod WORKDIR /app # Copy built React app (dist folder) From b1667b1c9bfcc71fe79e13d806b8bf90a8b17c05 Mon Sep 17 00:00:00 2001 From: Hieu Nguyen Date: Fri, 5 Jun 2026 15:10:41 -0400 Subject: [PATCH 16/21] confirm attendance, withdraw applications and small changes to settings page --- ...d_confirmed_type_to_application_status.sql | 5 + apps/api/internal/database/sqlc/models.go | 1 + apps/api/internal/domains/application/http.go | 44 +++--- .../internal/domains/application/service.go | 47 ++++-- apps/api/internal/domains/users/http.go | 8 +- .../components/AppShell/ApplicantNavbar.tsx | 4 +- .../components/AppShell/AttendeeNavbar.tsx | 27 ++++ .../src/components/AppShell/VisitorNavbar.tsx | 4 +- apps/web/src/lib/auth/hooks/useUser.ts | 12 +- .../hooks/useApplicationActions.ts | 61 ++++++++ .../Application/hooks/useMyApplication.ts | 9 +- .../modules/Hackathon/hooks/useHackathon.ts | 9 +- .../web/src/modules/Settings/SettingsPage.tsx | 33 ++-- .../Settings/hooks/useSettingsActions.tsx | 28 +++- .../_protected/_attendee/hacker-portal.tsx | 9 ++ .../routes/_protected/_attendee/layout.tsx | 10 ++ .../src/routes/_protected/_user/layout.tsx | 77 ---------- .../_protected/{_user => }/application.tsx | 143 +++++++++++------- .../_protected/{_user => }/information.tsx | 2 +- apps/web/src/routes/_protected/layout.tsx | 83 ++++++++-- apps/web/src/routes/_protected/settings.tsx | 7 +- 21 files changed, 420 insertions(+), 203 deletions(-) create mode 100644 apps/api/internal/database/migrations/20260605151151_add_confirmed_type_to_application_status.sql create mode 100644 apps/web/src/components/AppShell/AttendeeNavbar.tsx create mode 100644 apps/web/src/modules/Application/hooks/useApplicationActions.ts create mode 100644 apps/web/src/routes/_protected/_attendee/hacker-portal.tsx create mode 100644 apps/web/src/routes/_protected/_attendee/layout.tsx delete mode 100644 apps/web/src/routes/_protected/_user/layout.tsx rename apps/web/src/routes/_protected/{_user => }/application.tsx (68%) rename apps/web/src/routes/_protected/{_user => }/information.tsx (92%) diff --git a/apps/api/internal/database/migrations/20260605151151_add_confirmed_type_to_application_status.sql b/apps/api/internal/database/migrations/20260605151151_add_confirmed_type_to_application_status.sql new file mode 100644 index 00000000..49600cf3 --- /dev/null +++ b/apps/api/internal/database/migrations/20260605151151_add_confirmed_type_to_application_status.sql @@ -0,0 +1,5 @@ +-- +goose Up +ALTER TYPE application_status +ADD VALUE IF NOT EXISTS 'confirmed'; + +-- +goose Down diff --git a/apps/api/internal/database/sqlc/models.go b/apps/api/internal/database/sqlc/models.go index b5839bae..bd49efef 100644 --- a/apps/api/internal/database/sqlc/models.go +++ b/apps/api/internal/database/sqlc/models.go @@ -22,6 +22,7 @@ const ( ApplicationStatusRejected ApplicationStatus = "rejected" ApplicationStatusWaitlisted ApplicationStatus = "waitlisted" ApplicationStatusWithdrawn ApplicationStatus = "withdrawn" + ApplicationStatusConfirmed ApplicationStatus = "confirmed" ) func (e *ApplicationStatus) Scan(src interface{}) error { diff --git a/apps/api/internal/domains/application/http.go b/apps/api/internal/domains/application/http.go index 6f510330..767134e7 100644 --- a/apps/api/internal/domains/application/http.go +++ b/apps/api/internal/domains/application/http.go @@ -180,30 +180,30 @@ func RegisterRoutes(applicationHandler *handler, group huma.API, mw *middleware. }, applicationHandler.handleWithdrawAcceptance) huma.Register(group, huma.Operation{ - OperationID: "withdraw-attendance", + OperationID: "withdraw-application", Method: http.MethodPatch, - Summary: "Withdraw Attendance", - Description: "Withdraw attendance after accepting to go to the hackathon. Sets application status from accepted to withdrawn. Sets event role from attendee, back to applicant.", + Summary: "Withdraw Application", + Description: "Withdraw application after being accepted to the hackthon. Sets application status from accepted to withdrawn.", Tags: []string{"Application"}, Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/withdraw-attendance", + Path: "/withdraw-application", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleWithdrawAttendance) + }, applicationHandler.handleWithdrawApplication) huma.Register(group, huma.Operation{ - OperationID: "accept-application-acceptance", + OperationID: "confirm-attendance", Method: http.MethodPatch, - Summary: "Accept Application Acceptance", - Description: "Accept an acceptance after being accepted. Sets event role to attendee, from applicant.", + Summary: "Confirm Attendance", + Description: "Confirm attendance after being accepted. Sets event role to attendee from applicant.", Tags: []string{"Application"}, Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/accept-acceptance", + Path: "/confirm-attendance", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleAcceptApplicationAcceptance) + }, applicationHandler.handleConfirmAttendance) huma.Register(group, huma.Operation{ OperationID: "transition-waitlist", @@ -652,44 +652,52 @@ func (h *handler) handleWithdrawAcceptance(ctx context.Context, input *struct{}) return &WithdrawAcceptanceOutput{Status: http.StatusOK}, nil } -type WithdrawAttendanceOutput struct { +type WithdrawApplicationOutput struct { Status int } -func (h *handler) handleWithdrawAttendance(ctx context.Context, input *struct{}) (*WithdrawAttendanceOutput, error) { +func (h *handler) handleWithdrawApplication(ctx context.Context, input *struct{}) (*WithdrawApplicationOutput, error) { userCtx := ctxutils.GetUserFromCtx(ctx) if userCtx == nil { return nil, huma.Error400BadRequest("Failed to get current user info") } - err := h.applicationService.WithdrawAttendance(ctx, userCtx.UserID) + if userCtx.Role != sqlc.UserRoleApplicant { + return nil, huma.Error400BadRequest("Not an applicant") + } + + err := h.applicationService.WithdrawApplication(ctx, userCtx.UserID) if err != nil { return nil, huma.Error500InternalServerError("Unable to withdraw attendance") } - return &WithdrawAttendanceOutput{Status: http.StatusOK}, nil + return &WithdrawApplicationOutput{Status: http.StatusOK}, nil } -type AcceptApplicationAcceptanceOutput struct { +type ConfirmAttendanceOutput struct { Status int } -func (h *handler) handleAcceptApplicationAcceptance(ctx context.Context, input *struct{}) (*AcceptApplicationAcceptanceOutput, error) { +func (h *handler) handleConfirmAttendance(ctx context.Context, input *struct{}) (*ConfirmAttendanceOutput, error) { userCtx := ctxutils.GetUserFromCtx(ctx) if userCtx == nil { return nil, huma.Error400BadRequest("Failed to get current user info") } - err := h.applicationService.AcceptApplicationAcceptance(ctx, userCtx.UserID) + if userCtx.Role != sqlc.UserRoleApplicant { + return nil, huma.Error400BadRequest("Not an applicant") + } + + err := h.applicationService.ConfirmAttendance(ctx, userCtx.UserID) if err != nil { return nil, huma.Error500InternalServerError("Unable to withdraw attendance") } - return &AcceptApplicationAcceptanceOutput{Status: http.StatusOK}, nil + return &ConfirmAttendanceOutput{Status: http.StatusOK}, nil } type TransitionWaitlistedApplicationsOutput struct { diff --git a/apps/api/internal/domains/application/service.go b/apps/api/internal/domains/application/service.go index 1b24b147..28a11bad 100644 --- a/apps/api/internal/domains/application/service.go +++ b/apps/api/internal/domains/application/service.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "errors" + "fmt" "time" "github.com/google/uuid" @@ -612,7 +613,7 @@ func (s *ApplicationService) WithdrawAcceptance(ctx context.Context, userID uuid return nil } -func (s *ApplicationService) WithdrawAttendance(ctx context.Context, userID uuid.UUID) error { +func (s *ApplicationService) WithdrawApplication(ctx context.Context, userID uuid.UUID) error { // Make atomic err := s.txm.WithTx(ctx, func(tx pgx.Tx) error { txAppRepo := s.applicationRepo.NewTx(tx) @@ -640,17 +641,43 @@ func (s *ApplicationService) WithdrawAttendance(ctx context.Context, userID uuid return nil } -func (s *ApplicationService) AcceptApplicationAcceptance(ctx context.Context, userID uuid.UUID) error { - // is a check for a user being accepted necessary here? or is the frontend enough +func (s *ApplicationService) ConfirmAttendance(ctx context.Context, userID uuid.UUID) error { + // Atomic + err := s.txm.WithTx(ctx, func(tx pgx.Tx) error { + txAppRepo := s.applicationRepo.NewTx(tx) + txUserRepo := s.userRepo.NewTx(tx) + + application, err := s.applicationRepo.GetApplicationByUserId(ctx, userID) + + if err != nil { + s.logger.Err(err).Msg("ConfirmAttendance fail, unable to retrieve user application") + return err + } + + if application.Status != sqlc.ApplicationStatusAccepted { + err = errors.New("User is not accepted to hack") + s.logger.Err(err).Msg(fmt.Sprintf("ConfirmAttendance fail, application is not accepted, status: %s", application.Status)) + return err + } + + if err := txAppRepo.UpdateApplication(ctx, sqlc.UpdateApplicationParams{ + UserID: userID, + StatusDoUpdate: true, + Status: sqlc.ApplicationStatusConfirmed, + }); err != nil { + return err + } + + return txUserRepo.UpdateRole(ctx, + sqlc.UpdateRoleParams{ + UserID: userID, + Role: sqlc.UserRoleAttendee, + }, + ) + }) - err := s.userRepo.UpdateRole(ctx, - sqlc.UpdateRoleParams{ - UserID: userID, - Role: sqlc.UserRoleAttendee, - }, - ) if err != nil { - s.logger.Err(err).Msg("AcceptApplicationAcceptance fail, unable to update role") + s.logger.Err(err).Msg("ConfirmAttendance fail") return err } return nil diff --git a/apps/api/internal/domains/users/http.go b/apps/api/internal/domains/users/http.go index 3d1b5255..d26b9384 100644 --- a/apps/api/internal/domains/users/http.go +++ b/apps/api/internal/domains/users/http.go @@ -289,13 +289,19 @@ func (h *handler) handleUpdateUser(ctx context.Context, input *struct { return nil, huma.Error400BadRequest("Invalid email format") } + var preferredEmail *string + + if input.Body.PreferredEmail != "" { + preferredEmail = &input.Body.PreferredEmail + } + // TODO: Allow/add more fields here params := sqlc.UpdateUserParams{ ID: userCtx.UserID, NameDoUpdate: true, Name: input.Body.Name, PreferredEmailDoUpdate: true, - PreferredEmail: &input.Body.PreferredEmail, + PreferredEmail: preferredEmail, } err := h.userService.UpdateUser(ctx, params) diff --git a/apps/web/src/components/AppShell/ApplicantNavbar.tsx b/apps/web/src/components/AppShell/ApplicantNavbar.tsx index ddd57809..dc39b650 100644 --- a/apps/web/src/components/AppShell/ApplicantNavbar.tsx +++ b/apps/web/src/components/AppShell/ApplicantNavbar.tsx @@ -1,5 +1,5 @@ import { NavLink } from "@/components/AppShell/NavLink"; -import TablerCode from "~icons/tabler/code"; +import TablerInfoCircle from "~icons/tabler/info-circle"; import TablerClipboard from "~icons/tabler/clipboard"; import TablerAlertCircleFilled from "~icons/tabler/alert-circle-filled"; @@ -17,7 +17,7 @@ export default function ApplicantNavbar({ } + leftSection={} active={pathname.startsWith("/information")} /> diff --git a/apps/web/src/components/AppShell/AttendeeNavbar.tsx b/apps/web/src/components/AppShell/AttendeeNavbar.tsx new file mode 100644 index 00000000..1888e999 --- /dev/null +++ b/apps/web/src/components/AppShell/AttendeeNavbar.tsx @@ -0,0 +1,27 @@ +import { NavLink } from "@/components/AppShell/NavLink"; +import TablerLayoutDashboard from "~icons/tabler/layout-dashboard"; +import TablerInfoCircle from "~icons/tabler/info-circle"; + +interface AttendeeNavbarProps { + pathname: string; +} + +export default function AttendeeNavbar({ pathname }: AttendeeNavbarProps) { + const commonNavLinks = ( + <> + } + active={pathname.startsWith("/information")} + /> + } + active={pathname.startsWith("/hacker-portal")} + /> + + ); + return commonNavLinks; +} diff --git a/apps/web/src/components/AppShell/VisitorNavbar.tsx b/apps/web/src/components/AppShell/VisitorNavbar.tsx index 5f3bc6a8..bfd1a4a9 100644 --- a/apps/web/src/components/AppShell/VisitorNavbar.tsx +++ b/apps/web/src/components/AppShell/VisitorNavbar.tsx @@ -1,5 +1,5 @@ import { NavLink } from "@/components/AppShell/NavLink"; -import TablerCode from "~icons/tabler/code"; +import TablerInfoCircle from "~icons/tabler/info-circle"; import TablerClipboard from "~icons/tabler/clipboard"; interface VisitorNavbarProps { @@ -12,7 +12,7 @@ export default function VisitorNavbar({ pathname }: VisitorNavbarProps) { } + leftSection={} active={pathname.startsWith("/information")} /> diff --git a/apps/web/src/lib/auth/hooks/useUser.ts b/apps/web/src/lib/auth/hooks/useUser.ts index 645d0a6c..7a2f4b64 100644 --- a/apps/web/src/lib/auth/hooks/useUser.ts +++ b/apps/web/src/lib/auth/hooks/useUser.ts @@ -1,8 +1,18 @@ -import { useQuery } from "@tanstack/react-query"; +import { queryOptions, useQuery } from "@tanstack/react-query"; import { _getUser } from "../services/user"; export const useUserQueryKey = ["auth", "me"] as const; +export const userQueryOptions = () => + queryOptions({ + queryKey: useUserQueryKey, + queryFn: async () => await _getUser(), + refetchOnWindowFocus: false, + refetchOnMount: true, + staleTime: 1000 * 60 * 10, // 10 minutes + retry: false, + }); + export function _useUser() { // eslint-disable-next-line react-hooks/rules-of-hooks return useQuery({ diff --git a/apps/web/src/modules/Application/hooks/useApplicationActions.ts b/apps/web/src/modules/Application/hooks/useApplicationActions.ts new file mode 100644 index 00000000..2038a204 --- /dev/null +++ b/apps/web/src/modules/Application/hooks/useApplicationActions.ts @@ -0,0 +1,61 @@ +import { api } from "@/lib/ky"; +import { useMutation, useQueryClient } from "@tanstack/react-query"; +import { HTTPError } from "ky"; +import { toast } from "react-toastify"; +import { myApplicationQueryKey } from "./useMyApplication"; +import type { ErrorResponse } from "@/lib/auth/types"; + +async function confirmAttendanceFn() { + try { + await api.patch("application/confirm-attendance"); + } catch (err) { + if (err instanceof HTTPError) { + const errorBody = await err.response.json(); + toast.error(errorBody.message || "Failed to confirm attendance."); + } else { + toast.error("An error occurred while confirming attendance."); + } + + throw err; + } +} + +async function withdrawApplicationFn() { + try { + await api.patch("application/withdraw-application"); + } catch (err) { + if (err instanceof HTTPError) { + const errorBody = await err.response.json(); + toast.error(errorBody.message || "Failed to withdraw application."); + } else { + toast.error("An error occurred while withdrawing application."); + } + + throw err; + } +} + +export function useApplicationActions() { + const queryClient = useQueryClient(); + + const confirmAttendance = useMutation({ + mutationFn: confirmAttendanceFn, + onSuccess: () => { + toast.success("Attendance confirmed!"); + queryClient.invalidateQueries({ + queryKey: myApplicationQueryKey, + }); + }, + }); + + const withdrawApplication = useMutation({ + mutationFn: withdrawApplicationFn, + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: myApplicationQueryKey, + }); + }, + }); + + return { confirmAttendance, withdrawApplication }; +} diff --git a/apps/web/src/modules/Application/hooks/useMyApplication.ts b/apps/web/src/modules/Application/hooks/useMyApplication.ts index 6d82e757..91384b5d 100644 --- a/apps/web/src/modules/Application/hooks/useMyApplication.ts +++ b/apps/web/src/modules/Application/hooks/useMyApplication.ts @@ -1,6 +1,6 @@ import { api } from "@/lib/ky"; import type { Application } from "@/lib/openapi/types"; -import { useQuery } from "@tanstack/react-query"; +import { queryOptions, useQuery } from "@tanstack/react-query"; export const myApplicationQueryKey = ["my-application"]; @@ -8,6 +8,13 @@ export async function fetchMyApplication(): Promise { return await api.get(`application`).json(); } +export const myApplicationQueryOptions = () => + queryOptions({ + queryKey: myApplicationQueryKey, + queryFn: fetchMyApplication, + staleTime: 1000 * 60 * 1, // 1 minutes + }); + export function useMyApplication(enabled: boolean = true) { return useQuery({ queryKey: myApplicationQueryKey, diff --git a/apps/web/src/modules/Hackathon/hooks/useHackathon.ts b/apps/web/src/modules/Hackathon/hooks/useHackathon.ts index 27b38051..1ec0d740 100644 --- a/apps/web/src/modules/Hackathon/hooks/useHackathon.ts +++ b/apps/web/src/modules/Hackathon/hooks/useHackathon.ts @@ -1,6 +1,6 @@ import { api } from "@/lib/ky"; import type { Hackathon } from "@/lib/openapi/types"; -import { useQuery } from "@tanstack/react-query"; +import { queryOptions, useQuery } from "@tanstack/react-query"; export const hackthonQueryKey = ["hackathon"]; @@ -8,6 +8,13 @@ export async function fetchHackathon(): Promise { return await api.get(`hackathon`).json(); } +export const hackathonQueryOptions = () => + queryOptions({ + queryKey: hackthonQueryKey, + queryFn: fetchHackathon, + staleTime: 1000 * 60 * 5, // 5 minutes + }); + export function useHackathon() { return useQuery({ queryKey: hackthonQueryKey, diff --git a/apps/web/src/modules/Settings/SettingsPage.tsx b/apps/web/src/modules/Settings/SettingsPage.tsx index aa63d99c..456c3787 100644 --- a/apps/web/src/modules/Settings/SettingsPage.tsx +++ b/apps/web/src/modules/Settings/SettingsPage.tsx @@ -7,8 +7,6 @@ import { Button } from "@/components/ui/Button"; import { cn } from "@/utils/cn"; import z from "zod"; import { useFormErrors } from "@/components/Form"; -import { api } from "@/lib/ky"; -import { auth } from "@/lib/authClient"; import { showToast } from "@/lib/toast/toast"; import { useState } from "react"; import TablerPlaystationX from "~icons/tabler/playstation-x"; @@ -21,16 +19,17 @@ import TablerLogout from "~icons/tabler/logout"; import { useRouter, useCanGoBack } from "@tanstack/react-router"; import TablerHome from "~icons/tabler/home"; import { ThemeSwitch } from "@/components/ThemeProvider"; +import type { UserContext } from "@/lib/auth/types"; -export function SettingsPage({ logout }: { logout: () => void }) { +interface SettingsPageProps { + logout: () => void; + user: UserContext | null; +} + +export function SettingsPage({ logout, user }: SettingsPageProps) { const router = useRouter(); const canGoBack = useCanGoBack(); - - const { data } = auth.useUser(); - const { user } = data!; - - const { updateAccountInfo } = useSettingsActions(); - + const { updateAccountInfo, updateEmailConsent } = useSettingsActions(); const [emailConsent, setEmailConsent] = useState(user?.emailConsent); const form = useForm({ @@ -42,6 +41,10 @@ export function SettingsPage({ logout }: { logout: () => void }) { onChange: settingsFieldsSchema, }, onSubmit: async ({ value }) => { + if (value.preferredEmail === null || value.preferredEmail === undefined) { + value.preferredEmail = ""; + } + await updateAccountInfo.mutateAsync( value as z.infer, { @@ -58,9 +61,7 @@ export function SettingsPage({ logout }: { logout: () => void }) { const handleEmailConsentToggle = async (selected: boolean) => { try { setEmailConsent(selected); - await api.patch("users/me/email-consent", { - json: { emailConsent: selected }, - }); + await updateEmailConsent.mutateAsync(selected); } catch { showToast({ title: "Something went wrong :(", @@ -71,6 +72,14 @@ export function SettingsPage({ logout }: { logout: () => void }) { } }; + if (!user) { + return ( +
+

Unable to load user settings...

+
+ ); + } + return (
diff --git a/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx b/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx index ec327f8d..12d4a051 100644 --- a/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx +++ b/apps/web/src/modules/Settings/hooks/useSettingsActions.tsx @@ -5,10 +5,11 @@ import { useUserQueryKey } from "@/lib/auth/hooks/useUser"; export const settingsFieldsSchema = z.object({ name: z.string().min(1, "Name is required"), - preferredEmail: z.preprocess( - (val: string) => (val === "" ? undefined : val), - z.email("Email address is invalid").optional(), - ), + preferredEmail: z.preprocess((val: string) => { + if (typeof val !== "string") return undefined; + if (val.trim() === "") return undefined; + return val; + }, z.email("Email address is invalid").optional()), }); export function useSettingsActions() { @@ -25,10 +26,23 @@ export function useSettingsActions() { }) .json(); }, - onSuccess: async () => { - await queryClient.invalidateQueries({ queryKey: useUserQueryKey }); + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: useUserQueryKey }); }, }); - return { updateAccountInfo }; + const updateEmailConsent = useMutation({ + mutationFn: (selected: boolean) => { + return api + .patch("users/me/email-consent", { + json: { emailConsent: selected }, + }) + .json(); + }, + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: useUserQueryKey }); + }, + }); + + return { updateAccountInfo, updateEmailConsent }; } diff --git a/apps/web/src/routes/_protected/_attendee/hacker-portal.tsx b/apps/web/src/routes/_protected/_attendee/hacker-portal.tsx new file mode 100644 index 00000000..493a0d4a --- /dev/null +++ b/apps/web/src/routes/_protected/_attendee/hacker-portal.tsx @@ -0,0 +1,9 @@ +import { createFileRoute } from "@tanstack/react-router"; + +export const Route = createFileRoute("/_protected/_attendee/hacker-portal")({ + component: RouteComponent, +}); + +function RouteComponent() { + return
TODO
; +} diff --git a/apps/web/src/routes/_protected/_attendee/layout.tsx b/apps/web/src/routes/_protected/_attendee/layout.tsx new file mode 100644 index 00000000..4fc9b6b2 --- /dev/null +++ b/apps/web/src/routes/_protected/_attendee/layout.tsx @@ -0,0 +1,10 @@ +import { createFileRoute, notFound, Outlet } from "@tanstack/react-router"; + +export const Route = createFileRoute("/_protected/_attendee")({ + component: () => , + beforeLoad: ({ context }) => { + if (context.user.role !== "attendee") { + return notFound(); + } + }, +}); diff --git a/apps/web/src/routes/_protected/_user/layout.tsx b/apps/web/src/routes/_protected/_user/layout.tsx deleted file mode 100644 index 6e3f6246..00000000 --- a/apps/web/src/routes/_protected/_user/layout.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import { - createFileRoute, - Outlet, - useLocation, - useRouter, -} from "@tanstack/react-router"; -import { AppShell } from "@/components/AppShell/AppShell"; -import { PageLoading } from "@/components/PageLoading"; -import { Logo } from "@/components/Logo"; -import { auth } from "@/lib/authClient"; -import { useMyApplication } from "@/modules/Application/hooks/useMyApplication"; -import ApplicantNavbar from "@/components/AppShell/ApplicantNavbar"; -import VisitorNavbar from "@/components/AppShell/VisitorNavbar"; - -export const Route = createFileRoute("/_protected/_user")({ - pendingComponent: () => PageLoading(), - component: RouteComponent, -}); - -function RouteComponent() { - const router = useRouter(); - const pathname = useLocation({ select: (loc) => loc.pathname }); - - // TODO: pass this data down to outlet - const { data } = auth.useUser(); - const { user } = data!; - - if (!user) { - throw new Error("An error occurred: user is null"); - } - - const application = useMyApplication(user.role == "applicant"); - - if (application.isLoading) { - return; - } - - const renderNavbarBasedOnRole = () => { - switch (user.role) { - case "visitor": - return ; - case "applicant": - return ( - - ); - case "admin": - break; - case "staff": - break; - default: - break; - } - }; - - return ( - - -
- router.navigate({ to: "/information" })} - className="py-2 cursor-pointer" - label="SwampHacks XII" - /> -
-
- - {renderNavbarBasedOnRole()} - - - - -
- ); -} diff --git a/apps/web/src/routes/_protected/_user/application.tsx b/apps/web/src/routes/_protected/application.tsx similarity index 68% rename from apps/web/src/routes/_protected/_user/application.tsx rename to apps/web/src/routes/_protected/application.tsx index 547225d1..c848356f 100644 --- a/apps/web/src/routes/_protected/_user/application.tsx +++ b/apps/web/src/routes/_protected/application.tsx @@ -1,28 +1,41 @@ -import { createFileRoute } from "@tanstack/react-router"; +import { createFileRoute, redirect } from "@tanstack/react-router"; import { ErrorBoundary } from "react-error-boundary"; import { ApplicationForm } from "@/modules/Application/ApplicationForm"; import TablerAlertCircle from "~icons/tabler/alert-circle"; import { useEffect } from "react"; -import { useHackathon } from "@/modules/Hackathon/hooks/useHackathon"; -import { Spinner } from "@/components/ui/Spinner"; +import { hackathonQueryOptions } from "@/modules/Hackathon/hooks/useHackathon"; import { api } from "@/lib/ky"; -import { auth } from "@/lib/authClient"; -import { useQueryClient } from "@tanstack/react-query"; +import { useQueryClient, useSuspenseQuery } from "@tanstack/react-query"; import { useUserQueryKey } from "@/lib/auth/hooks/useUser"; import type { AuthUserResponse } from "@/lib/auth/types"; -import { useMyApplication } from "@/modules/Application/hooks/useMyApplication"; +import { myApplicationQueryOptions } from "@/modules/Application/hooks/useMyApplication"; +import { useApplicationActions } from "@/modules/Application/hooks/useApplicationActions"; import { Button } from "@/components/ui/Button"; +import { PageLoading } from "@/components/PageLoading"; -export const Route = createFileRoute("/_protected/_user/application")({ +export const Route = createFileRoute("/_protected/application")({ component: RouteComponent, + beforeLoad: ({ context }) => { + if (context.user.role === "attendee") { + throw redirect({ + to: "/hacker-portal", + }); + } + }, + pendingComponent: PageLoading, + loader: ({ context }) => { + return Promise.all([ + context.queryClient.ensureQueryData(hackathonQueryOptions()), + context.queryClient.ensureQueryData(myApplicationQueryOptions()), + ]); + }, }); function RouteComponent() { - const hackathon = useHackathon(); - const { data } = auth.useUser(); - const { user } = data!; + const { user } = Route.useRouteContext(); const queryClient = useQueryClient(); - const application = useMyApplication(); + const hackathon = useSuspenseQuery(hackathonQueryOptions()); + const application = useSuspenseQuery(myApplicationQueryOptions()); // Show a confirmation dialog when the user closes the tab // useEffect(() => { @@ -38,11 +51,7 @@ function RouteComponent() { // }, []); useEffect(() => { - if ( - user?.hasSeenNewApplicationStatus === false && - hackathon.data && - !hackathon.isLoading - ) { + if (user.hasSeenNewApplicationStatus === false) { api.post(`users/me/acknowledge-new-application-status`); queryClient.setQueryData( @@ -56,25 +65,7 @@ function RouteComponent() { }), ); } - }, [user, hackathon]); - - if (hackathon.isLoading) { - return ( -
- -

Loading hackathon...

-
- ); - } - - if (!hackathon.data) { - return ( -
- -

Something went wrong while loading hackathon information :(

-
- ); - } + }, [user]); if (new Date() > new Date(hackathon.data.applicationClose)) { return ( @@ -87,31 +78,23 @@ function RouteComponent() { ); } - if (application.isLoading) { - return ( -
- -

Loading form...

-
- ); - } - - if (!application.data) { - throw new Error("Application data is empty."); - } - const applicationResponses = JSON.parse(atob(application.data.application)); + const name = applicationResponses["firstName"]; if (application.data.status === "accepted") { - return ; + return ; } if (application.data.status === "rejected") { - return ; + return ; } if (application.data.status === "waitlisted") { - return ; + return ; + } + + if (application.data.status === "withdrawn") { + return ; } return ( @@ -139,15 +122,20 @@ interface AcceptedProps { } function Accepted({ name }: AcceptedProps) { - const handleConfirmAttendance = () => {}; + const { confirmAttendance, withdrawApplication } = useApplicationActions(); + + const handleConfirmAttendance = async () => { + await confirmAttendance.mutateAsync(); + window.location.reload(); + }; - const handleWithdrawApplication = () => { + const handleWithdrawApplication = async () => { const isConfirmed = window.confirm( "Are you sure you want to withdraw your application?", ); if (isConfirmed) { - console.log("Withdrawing"); + await withdrawApplication.mutateAsync(); } }; @@ -202,7 +190,7 @@ function Rejected({ name }: RejectedProps) { other ways:

-
    +
    1. 1. Join the Waitlist: We may have openings available closer to the event. You can join the waitlist in the{" "} @@ -233,7 +221,7 @@ function Rejected({ name }: RejectedProps) { If you have any questions, reach out in our{" "} Discord server or email us at{" "} - contact@swamphacks.com. + contact@swamphacks.com

@@ -273,3 +261,46 @@ function Waitlisted({ name }: WaitlistedProps) {
); } + +interface WithdrawnProps { + name: string; +} + +function Withdrawn({ name }: WithdrawnProps) { + return ( +
+

Hi, {name}!

+ +
+

Your application for SwampHacks XII has been withdrawn.

+ +

+ We appreciate your interest in SwampHacks and the time you took to + apply. While we're sorry you won't be able to join us this year, we + hope to see you at a future event. +

+ +

+ If your plans change and registration is still open, please reach out + to our team and we'll do our best to help. +

+ +

+ You can also stay connected with the SwampHacks community through our{" "} + + Discord server + {" "} + and follow future announcements for upcoming events and opportunities. +

+ +

+ If you have any questions, feel free to contact us at{" "} + + contact@swamphacks.com + + . +

+
+
+ ); +} diff --git a/apps/web/src/routes/_protected/_user/information.tsx b/apps/web/src/routes/_protected/information.tsx similarity index 92% rename from apps/web/src/routes/_protected/_user/information.tsx rename to apps/web/src/routes/_protected/information.tsx index c9bc2461..6fff52af 100644 --- a/apps/web/src/routes/_protected/_user/information.tsx +++ b/apps/web/src/routes/_protected/information.tsx @@ -3,7 +3,7 @@ import { useState } from "react"; import { OnboardingModal } from "@/modules/Onboarding/OnboardingModal"; import Cookies from "js-cookie"; -export const Route = createFileRoute("/_protected/_user/information")({ +export const Route = createFileRoute("/_protected/information")({ beforeLoad: (context) => { const { user } = context.context; const hasSkippedCookie = Cookies.get("welcome-modal-skipped") === "true"; diff --git a/apps/web/src/routes/_protected/layout.tsx b/apps/web/src/routes/_protected/layout.tsx index ebbe0094..b401fef2 100644 --- a/apps/web/src/routes/_protected/layout.tsx +++ b/apps/web/src/routes/_protected/layout.tsx @@ -1,20 +1,24 @@ -import { createFileRoute, Outlet, redirect } from "@tanstack/react-router"; +import { + createFileRoute, + Outlet, + redirect, + useLocation, + useRouter, +} from "@tanstack/react-router"; import { PageLoading } from "@/components/PageLoading"; +import ApplicantNavbar from "@/components/AppShell/ApplicantNavbar"; +import { AppShell } from "@/components/AppShell/AppShell"; +import AttendeeNavbar from "@/components/AppShell/AttendeeNavbar"; +import VisitorNavbar from "@/components/AppShell/VisitorNavbar"; +import { Logo } from "@/components/Logo"; +import { useSuspenseQuery } from "@tanstack/react-query"; +import { userQueryOptions } from "@/lib/auth/hooks/useUser"; // This layout component performs authentication checks before the user can access protected pages export const Route = createFileRoute("/_protected")({ beforeLoad: async ({ context, location }) => { const { user, error } = await context.userQuery.promise; - // Unauthenticated, return to login page - if (!user && !error) { - console.log("User is not authenticated, redirecting to login."); - throw redirect({ - to: "/", - search: { redirect: location.pathname }, - }); - } - if (error) { // TODO: Display a friendly error to the user? console.error("Auth error in beforeLoad in layout.tsx:", error); @@ -26,14 +30,67 @@ export const Route = createFileRoute("/_protected")({ }); } + // Unauthenticated, return to login page + if (!user) { + console.log("User is not authenticated, redirecting to login."); + throw redirect({ + to: "/", + search: { redirect: location.pathname }, + }); + } + // Return user data for use in the route loader or component return { user }; }, - pendingMs: 1000, - pendingComponent: () => PageLoading(), + pendingComponent: PageLoading, component: RouteComponent, }); function RouteComponent() { - return ; + const router = useRouter(); + const pathname = useLocation({ select: (loc) => loc.pathname }); + const { data } = useSuspenseQuery(userQueryOptions()); + const user = data.user!; + + const renderNavbarBasedOnRole = () => { + switch (user.role) { + case "visitor": + return ; + case "applicant": + return ( + + ); + case "attendee": + return ; + case "admin": + break; + case "staff": + break; + default: + break; + } + }; + + return ( + + +
+ router.navigate({ to: "/information" })} + className="py-2 cursor-pointer" + label="SwampHacks XII" + /> +
+
+ + {renderNavbarBasedOnRole()} + + + + +
+ ); } diff --git a/apps/web/src/routes/_protected/settings.tsx b/apps/web/src/routes/_protected/settings.tsx index c60a532b..19a8b2b3 100644 --- a/apps/web/src/routes/_protected/settings.tsx +++ b/apps/web/src/routes/_protected/settings.tsx @@ -1,6 +1,8 @@ import { SettingsPage } from "@/modules/Settings/SettingsPage"; import { auth } from "@/lib/authClient"; import { createFileRoute, useRouter } from "@tanstack/react-router"; +import { userQueryOptions } from "@/lib/auth/hooks/useUser"; +import { useSuspenseQuery } from "@tanstack/react-query"; export const Route = createFileRoute("/_protected/settings")({ component: RouteComponent, @@ -8,6 +10,9 @@ export const Route = createFileRoute("/_protected/settings")({ function RouteComponent() { const router = useRouter(); + // We call useSuspenseQuery to get user data because they can change their information and + // this hook lets us subscribe to it and rerender whenever a change happens + const user = useSuspenseQuery(userQueryOptions()); const logout = async () => { await auth.logOut(); @@ -16,7 +21,7 @@ function RouteComponent() { return (
- +
); } From 34f7d5644f57bf0a1bb99b737750d862cc5f44ab Mon Sep 17 00:00:00 2001 From: William Chi Date: Sun, 7 Jun 2026 09:50:41 -0700 Subject: [PATCH 17/21] feat/resume updating for applicants (#356) * feat: add functionality to replace uploaded resume in application form - Implemented a new component `ReplaceResume` to allow users to upload a new PDF resume. - Added a file input for selecting the resume and a button to trigger the upload. - Integrated `useReplaceResume` hook to handle the resume replacement API call. - Displayed success and error messages based on the upload status. * Fix PR review feedback for resume replacement flow --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- apps/api/docs/openapi.json | 2 +- apps/api/internal/domains/application/http.go | 61 +++++ .../internal/domains/application/service.go | 41 ++- apps/web/src/lib/openapi/schema.d.ts | 234 ++++++++++++------ .../modules/Application/ApplicationForm.tsx | 76 ++++++ .../Application/hooks/useReplaceResume.ts | 19 ++ 6 files changed, 357 insertions(+), 76 deletions(-) create mode 100644 apps/web/src/modules/Application/hooks/useReplaceResume.ts diff --git a/apps/api/docs/openapi.json b/apps/api/docs/openapi.json index d19cdd12..5ae2a550 100644 --- a/apps/api/docs/openapi.json +++ b/apps/api/docs/openapi.json @@ -1 +1 @@ -{"components":{"schemas":{"ApplicationStatistics":{"additionalProperties":false,"properties":{"ageStats":{"$ref":"#/components/schemas/GetApplicationAgeSplitRow"},"genderStats":{"$ref":"#/components/schemas/GetApplicationGenderSplitRow"},"majorStats":{"items":{"$ref":"#/components/schemas/GetApplicationMajorSplitRow"},"type":["array","null"]},"raceStats":{"items":{"$ref":"#/components/schemas/GetApplicationRaceSplitRow"},"type":["array","null"]},"schoolStats":{"items":{"$ref":"#/components/schemas/GetApplicationSchoolSplitRow"},"type":["array","null"]},"statusStats":{"$ref":"#/components/schemas/GetApplicationStatusSplitRow"}},"required":["genderStats","ageStats","raceStats","majorStats","schoolStats","statusStats"],"type":"object"},"AssignRoleBatchRequest":{"additionalProperties":false,"properties":{"assignments":{"items":{"$ref":"#/components/schemas/AssignRoleRequest"},"type":["array","null"]}},"required":["assignments"],"type":"object"},"AssignRoleRequest":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"role":{"type":"string"},"userID":{"type":["string","null"]}},"required":["email","userID","role"],"type":"object"},"AssignedApplication":{"additionalProperties":false,"properties":{"applicantId":{"type":"string"},"status":{"type":"string"}},"required":["applicantId","status"],"type":"object"},"CheckInRequest":{"additionalProperties":false,"properties":{"rfid":{"type":["string","null"]},"userID":{"type":"string"}},"required":["userID","rfid"],"type":"object"},"CreateJoinRequest":{"additionalProperties":false,"properties":{"message":{"type":["string","null"]}},"required":["message"],"type":"object"},"CreateRedeemableRequest":{"additionalProperties":false,"properties":{"amount":{"format":"int64","minimum":1,"type":"integer"},"maxUserAmount":{"format":"int64","type":"integer"},"name":{"minLength":1,"type":"string"}},"required":["name","amount","maxUserAmount"],"type":"object"},"CreateTeamRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"CreateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"ErrorDetail":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"},"ErrorModel":{"additionalProperties":false,"properties":{"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","examples":["Property foo is required but is missing."],"type":"string"},"errors":{"description":"Optional list of individual error details","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":["array","null"]},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","examples":["https://example.com/error-log/abc123"],"format":"uri","type":"string"},"status":{"description":"HTTP status code","examples":[400],"format":"int64","type":"integer"},"title":{"description":"A short, human-readable summary of the problem type. This value should not change between occurrences of the error.","examples":["Bad Request"],"type":"string"},"type":{"default":"about:blank","description":"A URI reference to human-readable documentation for the error.","examples":["https://example.com/errors/example"],"format":"uri","type":"string"}},"type":"object"},"FormFile":{"additionalProperties":false,"properties":{"ContentType":{"type":"string"},"Filename":{"type":"string"},"IsSet":{"type":"boolean"},"Size":{"format":"int64","type":"integer"}},"required":["ContentType","IsSet","Size","Filename"],"type":"object"},"GetApplicationAgeSplitRow":{"additionalProperties":false,"properties":{"age_18":{"format":"int64","type":"integer"},"age_19":{"format":"int64","type":"integer"},"age_20":{"format":"int64","type":"integer"},"age_21":{"format":"int64","type":"integer"},"age_22":{"format":"int64","type":"integer"},"age_23_plus":{"format":"int64","type":"integer"},"underage":{"format":"int64","type":"integer"}},"required":["underage","age_18","age_19","age_20","age_21","age_22","age_23_plus"],"type":"object"},"GetApplicationGenderSplitRow":{"additionalProperties":false,"properties":{"female":{"format":"int64","type":"integer"},"male":{"format":"int64","type":"integer"},"non_binary":{"format":"int64","type":"integer"},"other":{"format":"int64","type":"integer"}},"required":["male","female","non_binary","other"],"type":"object"},"GetApplicationMajorSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"major":{"type":"string"}},"required":["major","count"],"type":"object"},"GetApplicationRaceSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"race_group":{"type":"string"}},"required":["race_group","count"],"type":"object"},"GetApplicationSchoolSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"school":{"type":"string"}},"required":["school","count"],"type":"object"},"GetApplicationStatusSplitRow":{"additionalProperties":false,"properties":{"accepted":{"format":"int64","type":"integer"},"rejected":{"format":"int64","type":"integer"},"started":{"format":"int64","type":"integer"},"submitted":{"format":"int64","type":"integer"},"under_review":{"format":"int64","type":"integer"},"waitlisted":{"format":"int64","type":"integer"},"withdrawn":{"format":"int64","type":"integer"}},"required":["started","submitted","under_review","accepted","rejected","waitlisted","withdrawn"],"type":"object"},"GetAttendeesWithDiscordRow":{"additionalProperties":false,"properties":{"discord_id":{"type":"string"},"email":{"type":["string","null"]},"name":{"type":"string"},"user_id":{"type":"string"}},"required":["discord_id","user_id","name","email"],"type":"object"},"GetRedeemablesRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"total_redeemed":{},"total_stock":{"format":"int32","type":"integer"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","total_stock","max_user_amount","created_at","updated_at","total_redeemed"],"type":"object"},"Hackathon":{"additionalProperties":false,"properties":{"accept_early_applications":{"type":"boolean"},"application_close":{"format":"date-time","type":"string"},"application_open":{"format":"date-time","type":"string"},"application_review_started":{"type":"boolean"},"banner":{"type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"decision_release":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"early_application_close":{"format":"date-time","type":["string","null"]},"early_application_open":{"format":"date-time","type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_active":{"type":"boolean"},"location":{"type":["string","null"]},"location_url":{"type":["string","null"]},"max_attendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvp_deadline":{"format":"date-time","type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","description","location","location_url","max_attendees","application_open","application_close","rsvp_deadline","decision_release","start_time","end_time","is_active","created_at","updated_at","banner","application_review_started","accept_early_applications","early_application_open","early_application_close"],"type":"object"},"HackerApplication":{"additionalProperties":false,"properties":{"application":{"contentEncoding":"base64","type":"string"},"createdAt":{"format":"date-time","type":"string"},"hackathonId":{"type":"string"},"savedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"submittedAt":{"format":"date-time","type":["string","null"]},"updatedAt":{"format":"date-time","type":"string"},"userId":{"type":"string"}},"required":["userId","status","application","createdAt","savedAt","updatedAt","submittedAt","hackathonId"],"type":"object"},"ListJoinRequestsByTeamAndStatusWithUserRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_email":{"type":["string","null"]},"user_id":{"type":"string"},"user_image":{"type":["string","null"]},"user_name":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at","user_email","user_name","user_image"],"type":"object"},"MemberWithUserInfo":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"image":{"type":["string","null"]},"joinedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"userID":{"type":"string"}},"required":["userID","email","image","name","joinedAt"],"type":"object"},"OnboardingRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"OpenWorkshop":{"additionalProperties":false,"properties":{"attendees":{"format":"int64","type":"integer"},"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["id","title","start_time","end_time","location","description","presenter","attendees"],"type":"object"},"PublicHackathon":{"additionalProperties":false,"properties":{"acceptEarlyApplications":{"type":"boolean"},"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"banner":{"type":["string","null"]},"description":{"type":["string","null"]},"earlyApplicationClose":{"format":"date-time","type":["string","null"]},"earlyApplicationOpen":{"format":"date-time","type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"required":["id","name","description","location","locationUrl","applicationOpen","applicationClose","acceptEarlyApplications","earlyApplicationOpen","earlyApplicationClose","rsvpDeadline","startTime","endTime","banner"],"type":"object"},"QueueConfirmationEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"}},"required":["email","firstName"],"type":"object"},"QueueTextEmailRequest":{"additionalProperties":false,"properties":{"body":{"minLength":1,"type":"string"},"subject":{"minLength":1,"type":"string"},"to":{"items":{"type":"string"},"type":["array","null"]}},"required":["to","subject","body"],"type":"object"},"QueueWelcomeEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"recipientId":{"type":"string"}},"required":["email","firstName","recipientId"],"type":"object"},"Redeemable":{"additionalProperties":false,"properties":{"amount":{"format":"int32","type":"integer"},"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","amount","max_user_amount","created_at","updated_at","hackathon_id"],"type":"object"},"ReviewRatings":{"additionalProperties":false,"properties":{"experienceRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"},"passionRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"}},"required":["passionRating","experienceRating"],"type":"object"},"ReviewerAssignment":{"additionalProperties":false,"properties":{"amount":{"format":"int64","type":["integer","null"]},"userID":{"type":"string"}},"required":["userID","amount"],"type":"object"},"SubmissionResult":{"additionalProperties":false,"properties":{"submittedAt":{"format":"date-time","type":["string","null"]}},"required":["submittedAt"],"type":"object"},"SubmitInterestEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"source":{"type":["string","null"]}},"required":["email","source"],"type":"object"},"Team":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"owner_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","owner_id","created_at","updated_at","hackathon_id"],"type":"object"},"TeamJoinRequest":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at"],"type":"object"},"TeamWithMembers":{"additionalProperties":false,"properties":{"id":{"type":"string"},"members":{"items":{"$ref":"#/components/schemas/MemberWithUserInfo"},"type":["array","null"]},"name":{"type":"string"},"ownerId":{"type":"string"}},"required":["id","ownerId","name","members"],"type":"object"},"UpdateEmailConsentRequest":{"additionalProperties":false,"properties":{"emailConsent":{"type":"boolean"}},"required":["emailConsent"],"type":"object"},"UpdateHackathonRequest":{"additionalProperties":false,"properties":{"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"decisionRelease":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"maxAttendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"type":"object"},"UpdateRedeemableRequest":{"additionalProperties":false,"properties":{"maxUserAmount":{"format":"int64","type":"integer"},"name":{"type":"string"},"totalStock":{"format":"int64","type":"integer"}},"type":"object"},"UpdateRedemptionRequest":{"additionalProperties":false,"properties":{"newAmount":{"format":"int64","type":"integer"}},"type":"object"},"UpdateUserRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"UpdateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":["string","null"]},"location":{"type":["string","null"]},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":["string","null"]},"title":{"type":["string","null"]}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"User":{"additionalProperties":false,"properties":{"checked_in_at":{"format":"date-time","type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"email":{"type":["string","null"]},"email_consent":{"type":"boolean"},"email_verified":{"type":"boolean"},"has_seen_new_application_status":{"type":["boolean","null"]},"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"},"onboarded":{"type":"boolean"},"preferred_email":{"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"type":"string"},"role_assigned_at":{"format":"date-time","type":["string","null"]},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","email","email_verified","onboarded","image","created_at","updated_at","preferred_email","email_consent","checked_in_at","rfid","role_assigned_at","role","has_seen_new_application_status"],"type":"object"},"UserContext":{"additionalProperties":false,"properties":{"checkedInAt":{"format":"date-time","type":["string","null"]},"email":{"examples":["user@example.com"],"type":["string","null"]},"emailConsent":{"examples":[false],"type":"boolean"},"hasSeenNewApplicationStatus":{"type":["boolean","null"]},"image":{"examples":["https://cdn.example.com/avatar.png"],"type":["string","null"]},"name":{"examples":["Jane Doe"],"type":"string"},"onboarded":{"examples":[true],"type":"boolean"},"preferredEmail":{"examples":["user.alt@example.com"],"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"enum":["admin","staff","attendee","applicant","visitor"],"type":"string"},"userId":{"examples":["550e8400-e29b-41d4-a716-446655440000"],"format":"uuid","type":"string"}},"required":["userId","email","preferredEmail","name","onboarded","image","role","emailConsent","rfid","checkedInAt","hasSeenNewApplicationStatus"],"type":"object"},"Workshop":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"num_attendees":{"format":"int32","type":"integer"},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","title","description","start_time","end_time","num_attendees","location","presenter","created_at","updated_at"],"type":"object"}}},"info":{"title":"SwampHacks API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/application":{"get":{"description":"Get the application of the current user","operationId":"get-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HackerApplication"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application","tags":["Application"]}},"/application/accept-acceptance":{"patch":{"description":"Accept an acceptance after being accepted. Sets event role to attendee, from applicant.","operationId":"accept-application-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Application Acceptance","tags":["Application"]}},"/application/assigned":{"get":{"description":"Returns assigned applications and their review progress for the authenticated reviewer","operationId":"get-assigned-applications","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AssignedApplication"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Assigned Applications","tags":["Application"]}},"/application/calculate-admissions":{"post":{"description":"Queues an admission calculation task to the BAT worker","operationId":"calculate-admissions-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Admissions Calculation Request","tags":["Application"]}},"/application/join-waitlist":{"patch":{"description":"Adds a waitlist join time to application. Sets status to waitlisted","operationId":"join-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Join Waitlist","tags":["Application"]}},"/application/release-decisions/{runId}":{"post":{"description":"Releases decisions that were calculated by the worker from a specific run id","operationId":"release-decisions","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"runId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Release Decisions","tags":["Application"]}},"/application/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for the user's specific object, which is their uploaded resume. The client can use this URL to download the object.","operationId":"get-download-resume-url","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume Download URL","tags":["Application"]}},"/application/review/assign":{"post":{"description":"Assigns applications to reviewers for the application review process.","operationId":"assign-application-reviewers","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReviewerAssignment"},"type":["array","null"]}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Application Reviewers","tags":["Application"]}},"/application/review/reset":{"post":{"description":"Resets all application reviews, clearing any existing reviewer assignments.","operationId":"reset-application-reviews","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reset Application Reviews","tags":["Application"]}},"/application/review/{applicantId}":{"post":{"description":"Handles ratings submissions from staff during the application review process","operationId":"submit-application-review","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRatings"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application Review","tags":["Application"]}},"/application/review/{applicantId}/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for a specific user's resume as an object. The client can use this URL to download the object temporarily for application review.","operationId":"get-resume","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume URL (for review process)","tags":["Application"]}},"/application/save":{"post":{"description":"Save user's progress on the application. File/Upload fields are not saved (eg. resumes).","operationId":"save-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Save Application","tags":["Application"]}},"/application/stats":{"get":{"description":"Aggregates applications by race, gender, age, majors, and schools","operationId":"get-application-statistics","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationStatistics"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application Statistics","tags":["Application"]}},"/application/submit":{"post":{"description":"Submit the application","operationId":"submit-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResult"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application","tags":["Application"]}},"/application/transition-waitlisted-applications":{"patch":{"description":"Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected.","operationId":"transition-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Transition Waitlisted Applications","tags":["Application"]}},"/application/withdraw-acceptance":{"patch":{"description":"Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected.","operationId":"withdraw-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Acceptance","tags":["Application"]}},"/application/withdraw-attendance":{"patch":{"description":"Withdraw attendance after accepting to go to the hackathon. Sets application status from accepted to withdrawn. Sets event role from attendee, back to applicant.","operationId":"withdraw-attendance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Attendance","tags":["Application"]}},"/auth/callback":{"get":{"description":"Handles the OAuth provider callback, validates state and nonce, and sets the session cookie.","operationId":"oauth-callback","parameters":[{"description":"OAuth authorization code","explode":false,"in":"query","name":"code","required":true,"schema":{"description":"OAuth authorization code","type":"string"}},{"description":"Base64 encoded OAuth state","explode":false,"in":"query","name":"state","required":true,"schema":{"description":"Base64 encoded OAuth state","type":"string"}},{"description":"Auth nonce cookie for CSRF protection","in":"cookie","name":"sh_auth_nonce","required":true,"schema":{"description":"Auth nonce cookie for CSRF protection","type":"string"}},{"description":"Client user agent","in":"header","name":"User-Agent","schema":{"description":"Client user agent","type":"string"}}],"responses":{"204":{"description":"No Content","headers":{"Location":{"schema":{"type":"string"}},"Set-Cookie":{"schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"},"501":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Implemented"}},"summary":"OAuth Callback","tags":["Auth"]}},"/auth/logout":{"post":{"description":"Logs out the authenticated user by invalidating their session","operationId":"logout","responses":{"204":{"description":"No Content","headers":{"Set-Cookie":{"schema":{"type":"string"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Logout","tags":["Auth"]}},"/email/queue-confirmation-email":{"post":{"description":"Pushes a confirmation email request to the task queue","operationId":"queue-confirmation-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueConfirmationEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Confirmation Email","tags":["Email"]}},"/email/queue-text-email":{"post":{"description":"Pushes a text email request to the task queue","operationId":"queue-text-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueTextEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Text Email","tags":["Email"]}},"/email/queue-welcome-email":{"post":{"description":"Pushes a welcome email request to the task queue","operationId":"queue-welcome-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueWelcomeEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Welcome Email","tags":["Email"]}},"/email/send-welcome-emails":{"post":{"description":"Send welcome emails to all attendees","operationId":"send-welcome-emails","responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Send Welcome Emails","tags":["Email"]}},"/hackathon":{"get":{"description":"Returns public information of the hackathon","operationId":"get-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon","tags":["Hackathon"]},"patch":{"description":"Updates the information of the hackathon","operationId":"update-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHackathonRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Hackathon","tags":["Hackathon"]}},"/hackathon/attendees/count":{"get":{"description":"Returns the number of users who is attending the hackathon","operationId":"get-hackathon-attendees-count","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"format":"int64","type":"integer"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees Count","tags":["Hackathon"]}},"/hackathon/attendees/discord":{"get":{"description":"Returns all users with a discord account that is also attending the hackathon","operationId":"get-hackathon-attendees-with-discord","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetAttendeesWithDiscordRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees with Discord","tags":["Hackathon"]}},"/hackathon/attendees/userids":{"get":{"description":"Returns all users ids of users who are attending the hackathon","operationId":"get-hackathon-attendees-userids","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees User Ids","tags":["Hackathon"]}},"/hackathon/banner":{"delete":{"description":"Deletes the banner","operationId":"delete-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Banner","tags":["Hackathon"]},"post":{"description":"Uploads an image to be used as the banner for the hackathon","operationId":"upload-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"image":{"contentType":"image/png, image/jpeg, image/jpg"}},"schema":{"properties":{"image":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["image"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":["string","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Upload Banner","tags":["Hackathon"]}},"/hackathon/checkin":{"post":{"description":"Staff route for checking a user to an event. The user to check in must be an attendee and have never been checked in yet.","operationId":"check-in","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Check In User","tags":["Hackathon"]}},"/hackathon/detailed":{"get":{"description":"Returns all information of the hackathon","operationId":"get-hackathon-for-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Detailed Hackathon","tags":["Hackathon"]}},"/hackathon/interest":{"post":{"description":"Submits an email to interest/mailing list for the hackathon","operationId":"submit-interest-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitInterestEmailRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Interest Email","tags":["Hackathon"]}},"/hackathon/staff":{"get":{"description":"Returns the users who are part of the current staff of the hackathon","operationId":"get-hackathon-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Staff","tags":["Hackathon"]}},"/ping":{"get":{"description":"Health Check","operationId":"ping","responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Error"}},"summary":"Ping","tags":["Misc"]}},"/redeemables":{"get":{"description":"Returns a list of all redeemable items","operationId":"get-redeemables","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetRedeemablesRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Redeemables","tags":["Redeemables"]},"post":{"description":"Creates a new redeemable item","operationId":"create-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRedeemableRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Redeemable"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}":{"delete":{"description":"Deletes a redeemable by id","operationId":"delete-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Redeemable","tags":["Redeemables"]},"patch":{"description":"Update specific fields (name, stock, max per user) of a redeemable","operationId":"update-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedeemableRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}/users/{userID}":{"patch":{"description":"Updates a redemption created by the user.","operationId":"update-redemption","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedemptionRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redemption","tags":["Redeemables"]},"post":{"description":"Redeems a redeemable by id. Creates a redemption record linking a specific user to a redeemable item","operationId":"redeem-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Redeem Redeemable","tags":["Redeemables"]}},"/teams":{"post":{"description":"Creates a new team and assigns the user as the owner. Returns the team.","operationId":"create-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Team"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Team","tags":["Team"]}},"/teams/me":{"get":{"description":"Returns the team information and the full list of team members for the currently authenticated user","operationId":"get-my-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get My Team","tags":["Team"]}},"/teams/me/pending-joins":{"get":{"description":"Returns the current user's pending requests for teams.","operationId":"get-my-pending-join-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamJoinRequest"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User's Pending Join Requests","tags":["Team"]}},"/teams/{requestId}/accept":{"post":{"description":"Accepts a pending team join request. Only the team owner can perform this action.","operationId":"accept-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Team Join Request","tags":["Team"]}},"/teams/{requestId}/reject":{"post":{"description":"Rejects a pending team join request. Only the team owner can perform this action.","operationId":"reject-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reject Team Join Request","tags":["Team"]}},"/teams/{teamId}":{"get":{"description":"Returns the team information and the full list of team members by team id","operationId":"get-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Team","tags":["Team"]}},"/teams/{teamId}/join":{"post":{"description":"Requests to join a team or fails if user is already on a team.","operationId":"create-join-team-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJoinRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamJoinRequest"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Request to Join Team","tags":["Team"]}},"/teams/{teamId}/kick/{memberId}":{"post":{"description":"Kicks a member from a team. Only the team owner can perform this action.","operationId":"kick-member-from-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"memberId","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Kick Team Member","tags":["Team"]}},"/teams/{teamId}/leave":{"post":{"description":"Leaves a team if the user is on the team.","operationId":"leave-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Leave Team","tags":["Team"]}},"/teams/{teamId}/pending-joins":{"get":{"description":"Returns a team's pending join requests. This is only allowed for the team's owner.","operationId":"get-pending-join-team-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ListJoinRequestsByTeamAndStatusWithUserRow"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Pending Join Requests for Team","tags":["Team"]}},"/users":{"get":{"description":"Get or search for users by name or email. If no search term is provided, returns all users with pagination.","operationId":"get-users","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"explode":false,"in":"query","name":"search","schema":{"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","type":"integer"}},{"explode":false,"in":"query","name":"offset","schema":{"default":0,"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Users","tags":["Users"]}},"/users/email/{email}":{"get":{"description":"Returns the user associated with the email","operationId":"get-user-by-email","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Email","tags":["Users"]}},"/users/me":{"get":{"description":"Returns the authenticated user's profile","operationId":"get-me","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContext"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Me","tags":["Users"]},"patch":{"description":"Updates information of the authenticated user","operationId":"update-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update User","tags":["Users"]}},"/users/me/acknowledge-new-application-status":{"post":{"description":"Mark that the user has seen their new application status","operationId":"update-has-seen-new-application-status","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Acknowledge New Application Status","tags":["Users"]}},"/users/me/email-consent":{"patch":{"description":"Updates the user's email consent setting","operationId":"update-email-consent","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailConsentRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Email Consent","tags":["Users"]}},"/users/me/onboarding":{"patch":{"description":"Allows the user to submit information such as name and preferred email, and complete the onboarding process","operationId":"onboard-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Onboard User","tags":["Users"]}},"/users/rfid/{rfid}":{"get":{"description":"Returns the user associated with the RFID","operationId":"get-user-by-rfid","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"rfid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By RFID","tags":["Users"]}},"/users/roles/assign":{"post":{"description":"Assigns/modify a user's role","operationId":"assign-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Role","tags":["Users"]}},"/users/roles/batch-assign":{"post":{"description":"Batch assign/modify multiple users' roles","operationId":"batch-assign-roles","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Batch Assign Roles","tags":["Users"]}},"/users/roles/revoke/{userID}":{"post":{"description":"Remove a user's role","operationId":"revoke-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Revoke Role","tags":["Users"]}},"/users/userid/{userID}":{"get":{"description":"Returns the user associated with the user id","operationId":"get-user-by-id","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Id","tags":["Users"]}},"/workshops":{"get":{"description":"Returns a list of all workshops.","operationId":"get-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get all UPCOMING workshops","tags":["Workshops"]},"post":{"description":"Creates a workshop based on the provided body.","operationId":"create-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create a workshop","tags":["Workshops"]}},"/workshops/delete-all":{"delete":{"description":"Deletes all the workshops","operationId":"delete-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete all workshops","tags":["Workshops"]}},"/workshops/view-all":{"get":{"description":"Returns a list of all workshops, including past workshops.","operationId":"view-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"View all workshops ever made","tags":["Workshops"]}},"/workshops/{workshopId}":{"delete":{"description":"Deletes a workshop based on the provided id.","operationId":"delete-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete a workshop","tags":["Workshops"]},"get":{"description":"Returns a workshop based on the provided id.","operationId":"get-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get a workshop off of workshopID","tags":["Workshops"]},"patch":{"description":"Updates a workshop based on the provided id and body. Only the fields provided in the body will be updated.","operationId":"update-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update a workshop","tags":["Workshops"]}},"/workshops/{workshopId}/register":{"delete":{"description":"Lets a user unregister for a workshop.","operationId":"unregister-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Unregister for a workshop","tags":["Workshops"]},"post":{"description":"Lets a user register for a workshop.","operationId":"register-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Register for a workshop","tags":["Workshops"]}}}} \ No newline at end of file +{"components":{"schemas":{"ApplicationStatistics":{"additionalProperties":false,"properties":{"ageStats":{"$ref":"#/components/schemas/GetApplicationAgeSplitRow"},"genderStats":{"$ref":"#/components/schemas/GetApplicationGenderSplitRow"},"majorStats":{"items":{"$ref":"#/components/schemas/GetApplicationMajorSplitRow"},"type":["array","null"]},"raceStats":{"items":{"$ref":"#/components/schemas/GetApplicationRaceSplitRow"},"type":["array","null"]},"schoolStats":{"items":{"$ref":"#/components/schemas/GetApplicationSchoolSplitRow"},"type":["array","null"]},"statusStats":{"$ref":"#/components/schemas/GetApplicationStatusSplitRow"}},"required":["genderStats","ageStats","raceStats","majorStats","schoolStats","statusStats"],"type":"object"},"AssignRoleBatchRequest":{"additionalProperties":false,"properties":{"assignments":{"items":{"$ref":"#/components/schemas/AssignRoleRequest"},"type":["array","null"]}},"required":["assignments"],"type":"object"},"AssignRoleRequest":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"role":{"type":"string"},"userID":{"type":["string","null"]}},"required":["email","userID","role"],"type":"object"},"AssignedApplication":{"additionalProperties":false,"properties":{"applicantId":{"type":"string"},"status":{"type":"string"}},"required":["applicantId","status"],"type":"object"},"CheckInRequest":{"additionalProperties":false,"properties":{"rfid":{"type":["string","null"]},"userID":{"type":"string"}},"required":["userID","rfid"],"type":"object"},"CreateJoinRequest":{"additionalProperties":false,"properties":{"message":{"type":["string","null"]}},"required":["message"],"type":"object"},"CreateRedeemableRequest":{"additionalProperties":false,"properties":{"amount":{"format":"int64","minimum":1,"type":"integer"},"maxUserAmount":{"format":"int64","type":"integer"},"name":{"minLength":1,"type":"string"}},"required":["name","amount","maxUserAmount"],"type":"object"},"CreateTeamRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"CreateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"ErrorDetail":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"},"ErrorModel":{"additionalProperties":false,"properties":{"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","examples":["Property foo is required but is missing."],"type":"string"},"errors":{"description":"Optional list of individual error details","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":["array","null"]},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","examples":["https://example.com/error-log/abc123"],"format":"uri","type":"string"},"status":{"description":"HTTP status code","examples":[400],"format":"int64","type":"integer"},"title":{"description":"A short, human-readable summary of the problem type. This value should not change between occurrences of the error.","examples":["Bad Request"],"type":"string"},"type":{"default":"about:blank","description":"A URI reference to human-readable documentation for the error.","examples":["https://example.com/errors/example"],"format":"uri","type":"string"}},"type":"object"},"FormFile":{"additionalProperties":false,"properties":{"ContentType":{"type":"string"},"Filename":{"type":"string"},"IsSet":{"type":"boolean"},"Size":{"format":"int64","type":"integer"}},"required":["ContentType","IsSet","Size","Filename"],"type":"object"},"GetApplicationAgeSplitRow":{"additionalProperties":false,"properties":{"age_18":{"format":"int64","type":"integer"},"age_19":{"format":"int64","type":"integer"},"age_20":{"format":"int64","type":"integer"},"age_21":{"format":"int64","type":"integer"},"age_22":{"format":"int64","type":"integer"},"age_23_plus":{"format":"int64","type":"integer"},"underage":{"format":"int64","type":"integer"}},"required":["underage","age_18","age_19","age_20","age_21","age_22","age_23_plus"],"type":"object"},"GetApplicationGenderSplitRow":{"additionalProperties":false,"properties":{"female":{"format":"int64","type":"integer"},"male":{"format":"int64","type":"integer"},"non_binary":{"format":"int64","type":"integer"},"other":{"format":"int64","type":"integer"}},"required":["male","female","non_binary","other"],"type":"object"},"GetApplicationMajorSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"major":{"type":"string"}},"required":["major","count"],"type":"object"},"GetApplicationRaceSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"race_group":{"type":"string"}},"required":["race_group","count"],"type":"object"},"GetApplicationSchoolSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"school":{"type":"string"}},"required":["school","count"],"type":"object"},"GetApplicationStatusSplitRow":{"additionalProperties":false,"properties":{"accepted":{"format":"int64","type":"integer"},"rejected":{"format":"int64","type":"integer"},"started":{"format":"int64","type":"integer"},"submitted":{"format":"int64","type":"integer"},"under_review":{"format":"int64","type":"integer"},"waitlisted":{"format":"int64","type":"integer"},"withdrawn":{"format":"int64","type":"integer"}},"required":["started","submitted","under_review","accepted","rejected","waitlisted","withdrawn"],"type":"object"},"GetAttendeesWithDiscordRow":{"additionalProperties":false,"properties":{"discord_id":{"type":"string"},"email":{"type":["string","null"]},"name":{"type":"string"},"user_id":{"type":"string"}},"required":["discord_id","user_id","name","email"],"type":"object"},"GetRedeemablesRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"total_redeemed":{},"total_stock":{"format":"int32","type":"integer"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","total_stock","max_user_amount","created_at","updated_at","total_redeemed"],"type":"object"},"Hackathon":{"additionalProperties":false,"properties":{"accept_early_applications":{"type":"boolean"},"application_close":{"format":"date-time","type":"string"},"application_open":{"format":"date-time","type":"string"},"application_review_started":{"type":"boolean"},"banner":{"type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"decision_release":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"early_application_close":{"format":"date-time","type":["string","null"]},"early_application_open":{"format":"date-time","type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_active":{"type":"boolean"},"location":{"type":["string","null"]},"location_url":{"type":["string","null"]},"max_attendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvp_deadline":{"format":"date-time","type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","description","location","location_url","max_attendees","application_open","application_close","rsvp_deadline","decision_release","start_time","end_time","is_active","created_at","updated_at","banner","application_review_started","accept_early_applications","early_application_open","early_application_close"],"type":"object"},"HackerApplication":{"additionalProperties":false,"properties":{"application":{"contentEncoding":"base64","type":"string"},"createdAt":{"format":"date-time","type":"string"},"hackathonId":{"type":"string"},"savedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"submittedAt":{"format":"date-time","type":["string","null"]},"updatedAt":{"format":"date-time","type":"string"},"userId":{"type":"string"}},"required":["userId","status","application","createdAt","savedAt","updatedAt","submittedAt","hackathonId"],"type":"object"},"ListJoinRequestsByTeamAndStatusWithUserRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_email":{"type":["string","null"]},"user_id":{"type":"string"},"user_image":{"type":["string","null"]},"user_name":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at","user_email","user_name","user_image"],"type":"object"},"MemberWithUserInfo":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"image":{"type":["string","null"]},"joinedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"userID":{"type":"string"}},"required":["userID","email","image","name","joinedAt"],"type":"object"},"OnboardingRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"OpenWorkshop":{"additionalProperties":false,"properties":{"attendees":{"format":"int64","type":"integer"},"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["id","title","start_time","end_time","location","description","presenter","attendees"],"type":"object"},"PublicHackathon":{"additionalProperties":false,"properties":{"acceptEarlyApplications":{"type":"boolean"},"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"banner":{"type":["string","null"]},"description":{"type":["string","null"]},"earlyApplicationClose":{"format":"date-time","type":["string","null"]},"earlyApplicationOpen":{"format":"date-time","type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"required":["id","name","description","location","locationUrl","applicationOpen","applicationClose","acceptEarlyApplications","earlyApplicationOpen","earlyApplicationClose","rsvpDeadline","startTime","endTime","banner"],"type":"object"},"QueueConfirmationEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"}},"required":["email","firstName"],"type":"object"},"QueueTextEmailRequest":{"additionalProperties":false,"properties":{"body":{"minLength":1,"type":"string"},"subject":{"minLength":1,"type":"string"},"to":{"items":{"type":"string"},"type":["array","null"]}},"required":["to","subject","body"],"type":"object"},"QueueWelcomeEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"recipientId":{"type":"string"}},"required":["email","firstName","recipientId"],"type":"object"},"Redeemable":{"additionalProperties":false,"properties":{"amount":{"format":"int32","type":"integer"},"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","amount","max_user_amount","created_at","updated_at","hackathon_id"],"type":"object"},"ReviewRatings":{"additionalProperties":false,"properties":{"experienceRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"},"passionRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"}},"required":["passionRating","experienceRating"],"type":"object"},"ReviewerAssignment":{"additionalProperties":false,"properties":{"amount":{"format":"int64","type":["integer","null"]},"userID":{"type":"string"}},"required":["userID","amount"],"type":"object"},"SubmissionResult":{"additionalProperties":false,"properties":{"submittedAt":{"format":"date-time","type":["string","null"]}},"required":["submittedAt"],"type":"object"},"SubmitInterestEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"source":{"type":["string","null"]}},"required":["email","source"],"type":"object"},"Team":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"owner_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","owner_id","created_at","updated_at","hackathon_id"],"type":"object"},"TeamJoinRequest":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at"],"type":"object"},"TeamWithMembers":{"additionalProperties":false,"properties":{"id":{"type":"string"},"members":{"items":{"$ref":"#/components/schemas/MemberWithUserInfo"},"type":["array","null"]},"name":{"type":"string"},"ownerId":{"type":"string"}},"required":["id","ownerId","name","members"],"type":"object"},"UpdateEmailConsentRequest":{"additionalProperties":false,"properties":{"emailConsent":{"type":"boolean"}},"required":["emailConsent"],"type":"object"},"UpdateHackathonRequest":{"additionalProperties":false,"properties":{"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"decisionRelease":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"maxAttendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"type":"object"},"UpdateRedeemableRequest":{"additionalProperties":false,"properties":{"maxUserAmount":{"format":"int64","type":"integer"},"name":{"type":"string"},"totalStock":{"format":"int64","type":"integer"}},"type":"object"},"UpdateRedemptionRequest":{"additionalProperties":false,"properties":{"newAmount":{"format":"int64","type":"integer"}},"type":"object"},"UpdateUserRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"UpdateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":["string","null"]},"location":{"type":["string","null"]},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":["string","null"]},"title":{"type":["string","null"]}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"User":{"additionalProperties":false,"properties":{"checked_in_at":{"format":"date-time","type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"email":{"type":["string","null"]},"email_consent":{"type":"boolean"},"email_verified":{"type":"boolean"},"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"},"onboarded":{"type":"boolean"},"preferred_email":{"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"type":"string"},"role_assigned_at":{"format":"date-time","type":["string","null"]},"updated_at":{"format":"date-time","type":"string"},"has_seen_new_application_status":{"type":["boolean","null"]}},"required":["id","name","email","email_verified","onboarded","image","created_at","updated_at","preferred_email","email_consent","checked_in_at","rfid","role_assigned_at","role","has_seen_new_application_status"],"type":"object"},"UserContext":{"additionalProperties":false,"properties":{"checkedInAt":{"format":"date-time","type":["string","null"]},"email":{"examples":["user@example.com"],"type":["string","null"]},"emailConsent":{"examples":[false],"type":"boolean"},"image":{"examples":["https://cdn.example.com/avatar.png"],"type":["string","null"]},"name":{"examples":["Jane Doe"],"type":"string"},"onboarded":{"examples":[true],"type":"boolean"},"preferredEmail":{"examples":["user.alt@example.com"],"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"enum":["admin","staff","attendee","applicant","visitor"],"type":"string"},"userId":{"examples":["550e8400-e29b-41d4-a716-446655440000"],"format":"uuid","type":"string"},"hasSeenNewApplicationStatus":{"type":["boolean","null"]}},"required":["userId","email","preferredEmail","name","onboarded","image","role","emailConsent","rfid","checkedInAt","hasSeenNewApplicationStatus"],"type":"object"},"Workshop":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"num_attendees":{"format":"int32","type":"integer"},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","title","description","start_time","end_time","num_attendees","location","presenter","created_at","updated_at"],"type":"object"}}},"info":{"title":"SwampHacks API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/application":{"get":{"description":"Get the application of the current user","operationId":"get-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HackerApplication"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application","tags":["Application"]}},"/application/accept-acceptance":{"patch":{"description":"Accept an acceptance after being accepted. Sets event role to attendee, from applicant.","operationId":"accept-application-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Application Acceptance","tags":["Application"]}},"/application/assigned":{"get":{"description":"Returns assigned applications and their review progress for the authenticated reviewer","operationId":"get-assigned-applications","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AssignedApplication"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Assigned Applications","tags":["Application"]}},"/application/calculate-admissions":{"post":{"description":"Queues an admission calculation task to the BAT worker","operationId":"calculate-admissions-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Admissions Calculation Request","tags":["Application"]}},"/application/join-waitlist":{"patch":{"description":"Adds a waitlist join time to application. Sets status to waitlisted","operationId":"join-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Join Waitlist","tags":["Application"]}},"/application/release-decisions/{runId}":{"post":{"description":"Releases decisions that were calculated by the worker from a specific run id","operationId":"release-decisions","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"runId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Release Decisions","tags":["Application"]}},"/application/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for the user's specific object, which is their uploaded resume. The client can use this URL to download the object.","operationId":"get-download-resume-url","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume Download URL","tags":["Application"]},"put":{"description":"Replaces the resume of an already-submitted application without modifying any question responses.","operationId":"replace-resume","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"resume":{"contentType":"application/pdf"}},"schema":{"properties":{"resume":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["resume"],"type":"object"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Replace Resume","tags":["Application"]}},"/application/review/assign":{"post":{"description":"Assigns applications to reviewers for the application review process.","operationId":"assign-application-reviewers","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReviewerAssignment"},"type":["array","null"]}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Application Reviewers","tags":["Application"]}},"/application/review/reset":{"post":{"description":"Resets all application reviews, clearing any existing reviewer assignments.","operationId":"reset-application-reviews","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reset Application Reviews","tags":["Application"]}},"/application/review/{applicantId}":{"post":{"description":"Handles ratings submissions from staff during the application review process","operationId":"submit-application-review","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRatings"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application Review","tags":["Application"]}},"/application/review/{applicantId}/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for a specific user's resume as an object. The client can use this URL to download the object temporarily for application review.","operationId":"get-resume","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume URL (for review process)","tags":["Application"]}},"/application/save":{"post":{"description":"Save user's progress on the application. File/Upload fields are not saved (eg. resumes).","operationId":"save-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Save Application","tags":["Application"]}},"/application/stats":{"get":{"description":"Aggregates applications by race, gender, age, majors, and schools","operationId":"get-application-statistics","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationStatistics"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application Statistics","tags":["Application"]}},"/application/submit":{"post":{"description":"Submit the application","operationId":"submit-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResult"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application","tags":["Application"]}},"/application/transition-waitlisted-applications":{"patch":{"description":"Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected.","operationId":"transition-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Transition Waitlisted Applications","tags":["Application"]}},"/application/withdraw-acceptance":{"patch":{"description":"Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected.","operationId":"withdraw-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Acceptance","tags":["Application"]}},"/application/withdraw-attendance":{"patch":{"description":"Withdraw attendance after accepting to go to the hackathon. Sets application status from accepted to withdrawn. Sets event role from attendee, back to applicant.","operationId":"withdraw-attendance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Attendance","tags":["Application"]}},"/auth/callback":{"get":{"description":"Handles the OAuth provider callback, validates state and nonce, and sets the session cookie.","operationId":"oauth-callback","parameters":[{"description":"OAuth authorization code","explode":false,"in":"query","name":"code","required":true,"schema":{"description":"OAuth authorization code","type":"string"}},{"description":"Base64 encoded OAuth state","explode":false,"in":"query","name":"state","required":true,"schema":{"description":"Base64 encoded OAuth state","type":"string"}},{"description":"Auth nonce cookie for CSRF protection","in":"cookie","name":"sh_auth_nonce","required":true,"schema":{"description":"Auth nonce cookie for CSRF protection","type":"string"}},{"description":"Client user agent","in":"header","name":"User-Agent","schema":{"description":"Client user agent","type":"string"}}],"responses":{"204":{"description":"No Content","headers":{"Location":{"schema":{"type":"string"}},"Set-Cookie":{"schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"},"501":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Implemented"}},"summary":"OAuth Callback","tags":["Auth"]}},"/auth/logout":{"post":{"description":"Logs out the authenticated user by invalidating their session","operationId":"logout","responses":{"204":{"description":"No Content","headers":{"Set-Cookie":{"schema":{"type":"string"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Logout","tags":["Auth"]}},"/email/queue-confirmation-email":{"post":{"description":"Pushes a confirmation email request to the task queue","operationId":"queue-confirmation-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueConfirmationEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Confirmation Email","tags":["Email"]}},"/email/queue-text-email":{"post":{"description":"Pushes a text email request to the task queue","operationId":"queue-text-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueTextEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Text Email","tags":["Email"]}},"/email/queue-welcome-email":{"post":{"description":"Pushes a welcome email request to the task queue","operationId":"queue-welcome-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueWelcomeEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Welcome Email","tags":["Email"]}},"/email/send-welcome-emails":{"post":{"description":"Send welcome emails to all attendees","operationId":"send-welcome-emails","responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Send Welcome Emails","tags":["Email"]}},"/hackathon":{"get":{"description":"Returns public information of the hackathon","operationId":"get-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon","tags":["Hackathon"]},"patch":{"description":"Updates the information of the hackathon","operationId":"update-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHackathonRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Hackathon","tags":["Hackathon"]}},"/hackathon/attendees/count":{"get":{"description":"Returns the number of users who is attending the hackathon","operationId":"get-hackathon-attendees-count","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"format":"int64","type":"integer"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees Count","tags":["Hackathon"]}},"/hackathon/attendees/discord":{"get":{"description":"Returns all users with a discord account that is also attending the hackathon","operationId":"get-hackathon-attendees-with-discord","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetAttendeesWithDiscordRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees with Discord","tags":["Hackathon"]}},"/hackathon/attendees/userids":{"get":{"description":"Returns all users ids of users who are attending the hackathon","operationId":"get-hackathon-attendees-userids","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees User Ids","tags":["Hackathon"]}},"/hackathon/banner":{"delete":{"description":"Deletes the banner","operationId":"delete-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Banner","tags":["Hackathon"]},"post":{"description":"Uploads an image to be used as the banner for the hackathon","operationId":"upload-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"image":{"contentType":"image/png, image/jpeg, image/jpg"}},"schema":{"properties":{"image":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["image"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":["string","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Upload Banner","tags":["Hackathon"]}},"/hackathon/checkin":{"post":{"description":"Staff route for checking a user to an event. The user to check in must be an attendee and have never been checked in yet.","operationId":"check-in","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Check In User","tags":["Hackathon"]}},"/hackathon/detailed":{"get":{"description":"Returns all information of the hackathon","operationId":"get-hackathon-for-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Detailed Hackathon","tags":["Hackathon"]}},"/hackathon/interest":{"post":{"description":"Submits an email to interest/mailing list for the hackathon","operationId":"submit-interest-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitInterestEmailRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Interest Email","tags":["Hackathon"]}},"/hackathon/staff":{"get":{"description":"Returns the users who are part of the current staff of the hackathon","operationId":"get-hackathon-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Staff","tags":["Hackathon"]}},"/ping":{"get":{"description":"Health Check","operationId":"ping","responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Error"}},"summary":"Ping","tags":["Misc"]}},"/redeemables":{"get":{"description":"Returns a list of all redeemable items","operationId":"get-redeemables","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetRedeemablesRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Redeemables","tags":["Redeemables"]},"post":{"description":"Creates a new redeemable item","operationId":"create-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRedeemableRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Redeemable"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}":{"delete":{"description":"Deletes a redeemable by id","operationId":"delete-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Redeemable","tags":["Redeemables"]},"patch":{"description":"Update specific fields (name, stock, max per user) of a redeemable","operationId":"update-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedeemableRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}/users/{userID}":{"patch":{"description":"Updates a redemption created by the user.","operationId":"update-redemption","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedemptionRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redemption","tags":["Redeemables"]},"post":{"description":"Redeems a redeemable by id. Creates a redemption record linking a specific user to a redeemable item","operationId":"redeem-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Redeem Redeemable","tags":["Redeemables"]}},"/teams":{"post":{"description":"Creates a new team and assigns the user as the owner. Returns the team.","operationId":"create-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Team"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Team","tags":["Team"]}},"/teams/me":{"get":{"description":"Returns the team information and the full list of team members for the currently authenticated user","operationId":"get-my-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get My Team","tags":["Team"]}},"/teams/me/pending-joins":{"get":{"description":"Returns the current user's pending requests for teams.","operationId":"get-my-pending-join-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamJoinRequest"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User's Pending Join Requests","tags":["Team"]}},"/teams/{requestId}/accept":{"post":{"description":"Accepts a pending team join request. Only the team owner can perform this action.","operationId":"accept-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Team Join Request","tags":["Team"]}},"/teams/{requestId}/reject":{"post":{"description":"Rejects a pending team join request. Only the team owner can perform this action.","operationId":"reject-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reject Team Join Request","tags":["Team"]}},"/teams/{teamId}":{"get":{"description":"Returns the team information and the full list of team members by team id","operationId":"get-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Team","tags":["Team"]}},"/teams/{teamId}/join":{"post":{"description":"Requests to join a team or fails if user is already on a team.","operationId":"create-join-team-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJoinRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamJoinRequest"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Request to Join Team","tags":["Team"]}},"/teams/{teamId}/kick/{memberId}":{"post":{"description":"Kicks a member from a team. Only the team owner can perform this action.","operationId":"kick-member-from-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"memberId","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Kick Team Member","tags":["Team"]}},"/teams/{teamId}/leave":{"post":{"description":"Leaves a team if the user is on the team.","operationId":"leave-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Leave Team","tags":["Team"]}},"/teams/{teamId}/pending-joins":{"get":{"description":"Returns a team's pending join requests. This is only allowed for the team's owner.","operationId":"get-pending-join-team-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ListJoinRequestsByTeamAndStatusWithUserRow"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Pending Join Requests for Team","tags":["Team"]}},"/users":{"get":{"description":"Get or search for users by name or email. If no search term is provided, returns all users with pagination.","operationId":"get-users","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"explode":false,"in":"query","name":"search","schema":{"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","type":"integer"}},{"explode":false,"in":"query","name":"offset","schema":{"default":0,"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Users","tags":["Users"]}},"/users/email/{email}":{"get":{"description":"Returns the user associated with the email","operationId":"get-user-by-email","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Email","tags":["Users"]}},"/users/me":{"get":{"description":"Returns the authenticated user's profile","operationId":"get-me","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContext"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Me","tags":["Users"]},"patch":{"description":"Updates information of the authenticated user","operationId":"update-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update User","tags":["Users"]}},"/users/me/email-consent":{"patch":{"description":"Updates the user's email consent setting","operationId":"update-email-consent","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailConsentRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Email Consent","tags":["Users"]}},"/users/me/onboarding":{"patch":{"description":"Allows the user to submit information such as name and preferred email, and complete the onboarding process","operationId":"onboard-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Onboard User","tags":["Users"]}},"/users/rfid/{rfid}":{"get":{"description":"Returns the user associated with the RFID","operationId":"get-user-by-rfid","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"rfid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By RFID","tags":["Users"]}},"/users/roles/assign":{"post":{"description":"Assigns/modify a user's role","operationId":"assign-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Role","tags":["Users"]}},"/users/roles/batch-assign":{"post":{"description":"Batch assign/modify multiple users' roles","operationId":"batch-assign-roles","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Batch Assign Roles","tags":["Users"]}},"/users/roles/revoke/{userID}":{"post":{"description":"Remove a user's role","operationId":"revoke-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Revoke Role","tags":["Users"]}},"/users/userid/{userID}":{"get":{"description":"Returns the user associated with the user id","operationId":"get-user-by-id","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Id","tags":["Users"]}},"/workshops":{"get":{"description":"Returns a list of all workshops.","operationId":"get-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get all UPCOMING workshops","tags":["Workshops"]},"post":{"description":"Creates a workshop based on the provided body.","operationId":"create-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create a workshop","tags":["Workshops"]}},"/workshops/delete-all":{"delete":{"description":"Deletes all the workshops","operationId":"delete-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete all workshops","tags":["Workshops"]}},"/workshops/view-all":{"get":{"description":"Returns a list of all workshops, including past workshops.","operationId":"view-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"View all workshops ever made","tags":["Workshops"]}},"/workshops/{workshopId}":{"delete":{"description":"Deletes a workshop based on the provided id.","operationId":"delete-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete a workshop","tags":["Workshops"]},"get":{"description":"Returns a workshop based on the provided id.","operationId":"get-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get a workshop off of workshopID","tags":["Workshops"]},"patch":{"description":"Updates a workshop based on the provided id and body. Only the fields provided in the body will be updated.","operationId":"update-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update a workshop","tags":["Workshops"]}},"/workshops/{workshopId}/register":{"delete":{"description":"Lets a user unregister for a workshop.","operationId":"unregister-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Unregister for a workshop","tags":["Workshops"]},"post":{"description":"Lets a user register for a workshop.","operationId":"register-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Register for a workshop","tags":["Workshops"]}},"/users/me/acknowledge-new-application-status":{"post":{"description":"Mark that the user has seen their new application status","operationId":"update-has-seen-new-application-status","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Acknowledge New Application Status","tags":["Users"]}}}} \ No newline at end of file diff --git a/apps/api/internal/domains/application/http.go b/apps/api/internal/domains/application/http.go index 767134e7..b9c43c3c 100644 --- a/apps/api/internal/domains/application/http.go +++ b/apps/api/internal/domains/application/http.go @@ -75,6 +75,18 @@ func RegisterRoutes(applicationHandler *handler, group huma.API, mw *middleware. DefaultStatus: http.StatusOK, }, applicationHandler.handleGetDownloadResumeURL) + huma.Register(group, huma.Operation{ + OperationID: "replace-resume", + Method: http.MethodPut, + Summary: "Replace Resume", + Description: "Replaces the resume of an already-submitted application without modifying any question responses.", + Tags: []string{"Application"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + Path: "/resume", + Errors: []int{http.StatusBadRequest, http.StatusUnauthorized, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + }, applicationHandler.handleReplaceResume) + huma.Register(group, huma.Operation{ OperationID: "get-application-statistics", Method: http.MethodGet, @@ -482,6 +494,55 @@ func (h *handler) handleGetDownloadResumeURL(ctx context.Context, input *struct{ return &GetDownloadResumeOutput{Body: request.URL}, nil } +type ReplaceResumeOutput struct { + Status int +} + +func (h *handler) handleReplaceResume(ctx context.Context, input *struct { + RawBody huma.MultipartFormFiles[struct { + Resume huma.FormFile `form:"resume" contentType:"application/pdf" required:"true"` + }] +}) (*ReplaceResumeOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + fileHeaders := input.RawBody.Form.File["resume"] + if len(fileHeaders) == 0 { + return nil, huma.Error400BadRequest("Invalid resume file") + } + fileHeader := fileHeaders[0] + + if fileHeader.Size > 10*1024*1024 { // 10 MiB + return nil, huma.Error400BadRequest("File too large") + } + + file, err := fileHeader.Open() + if err != nil { + return nil, huma.Error400BadRequest("Failed to parse uploaded resume") + } + defer file.Close() + + resumeBuffer := bytes.NewBuffer(nil) + if _, err := io.Copy(resumeBuffer, file); err != nil { + return nil, huma.Error500InternalServerError("Error while parsing resume") + } + + if err := h.applicationService.ReplaceResume(ctx, userCtx.UserID, resumeBuffer.Bytes()); err != nil { + if errors.Is(err, database.ErrApplicationNotFound) { + return nil, huma.Error400BadRequest("No application found to replace resume for") + } + if errors.Is(err, ErrCannotReplaceResume) { + return nil, huma.Error400BadRequest(err.Error()) + } + return nil, huma.Error500InternalServerError("Unable to replace resume") + } + + return &ReplaceResumeOutput{Status: http.StatusNoContent}, nil +} + type GetApplicationStatisticsOutput struct { Body *ApplicationStatistics } diff --git a/apps/api/internal/domains/application/service.go b/apps/api/internal/domains/application/service.go index 28a11bad..5e6da0fd 100644 --- a/apps/api/internal/domains/application/service.go +++ b/apps/api/internal/domains/application/service.go @@ -25,6 +25,7 @@ var ( ErrApplicationNotOpened = errors.New("Application not opened") ErrFailedToCreateApplication = errors.New("Failed to create application") ErrFailedToGetHackathon = errors.New("Failed to get hackathon information") + ErrCannotReplaceResume = errors.New("cannot replace resume before the application has been submitted") ) type ApplicationService struct { @@ -287,6 +288,36 @@ func (s *ApplicationService) SubmitApplicationReview(ctx context.Context) (*sqlc return nil, nil } +// ReplaceResume overwrites the resume of an already-submitted application without +// touching any of the question responses. Hackers sometimes submit the wrong resume +// and need to swap it out after the fact. +func (s *ApplicationService) ReplaceResume(ctx context.Context, userID uuid.UUID, resume []byte) error { + hackathon, err := s.hackathonRepo.GetHackathon(ctx) + if err != nil { + s.logger.Err(err).Msg("Replace resume fail because can't retrieve hackathon") + return ErrFailedToGetHackathon + } + + application, err := s.GetApplicationByUserId(ctx, userID) + if err != nil { + return err + } + + // Only allow replacing the resume once the application has actually been submitted. + // Before submission the resume is handled as part of the normal submit flow. + if application.Status == sqlc.ApplicationStatusStarted { + return ErrCannotReplaceResume + } + + contentType := "application/pdf" + if err := s.storage.Store(ctx, s.buckets.ApplicationResumes, hackathon.ID+"/"+userID.String(), resume, &contentType); err != nil { + s.logger.Err(err).Msg("Replace resume fail while storing resume") + return err + } + + return nil +} + func (s *ApplicationService) GetDownloadResumeURL(ctx context.Context, userID uuid.UUID, lifetimeSecs int64) (*storage.PresignedRequest, error) { presignableStorage, ok := s.storage.(storage.PresignableStorage) @@ -301,7 +332,15 @@ func (s *ApplicationService) GetDownloadResumeURL(ctx context.Context, userID uu return nil, err } - request, err := presignableStorage.PresignGetObject(ctx, s.buckets.ApplicationResumes, userID.String(), lifetimeSecs) + hackathon, err := s.hackathonRepo.GetHackathon(ctx) + if err != nil { + s.logger.Err(err).Msg("download resume fail because can't retrieve hackathon") + return nil, ErrFailedToGetHackathon + } + + // Resumes are stored under hackathonID/userID (see SubmitApplication and ReplaceResume), + // so the presigned download key must match that prefix. + request, err := presignableStorage.PresignGetObject(ctx, s.buckets.ApplicationResumes, hackathon.ID+"/"+userID.String(), lifetimeSecs) if err != nil { s.logger.Err(err).Msg("fail presign get object") diff --git a/apps/web/src/lib/openapi/schema.d.ts b/apps/web/src/lib/openapi/schema.d.ts index 3327770a..2feae06e 100644 --- a/apps/web/src/lib/openapi/schema.d.ts +++ b/apps/web/src/lib/openapi/schema.d.ts @@ -136,7 +136,11 @@ export interface paths { * @description Returns a presigned S3 URL with GET permission for the user's specific object, which is their uploaded resume. The client can use this URL to download the object. */ get: operations["get-download-resume-url"]; - put?: never; + /** + * Replace Resume + * @description Replaces the resume of an already-submitted application without modifying any question responses. + */ + put: operations["replace-resume"]; post?: never; delete?: never; options?: never; @@ -1008,26 +1012,6 @@ export interface paths { patch: operations["update-user"]; trace?: never; }; - "/users/me/acknowledge-new-application-status": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Acknowledge New Application Status - * @description Mark that the user has seen their new application status - */ - post: operations["update-has-seen-new-application-status"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; "/users/me/email-consent": { parameters: { query?: never; @@ -1284,6 +1268,26 @@ export interface paths { patch?: never; trace?: never; }; + "/users/me/acknowledge-new-application-status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Acknowledge New Application Status + * @description Mark that the user has seen their new application status + */ + post: operations["update-has-seen-new-application-status"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; } export type webhooks = Record; export interface components { @@ -1346,26 +1350,35 @@ export interface components { value?: unknown; }; ErrorModel: { - /** @description A human-readable explanation specific to this occurrence of the problem. */ + /** + * @description A human-readable explanation specific to this occurrence of the problem. + * @example Property foo is required but is missing. + */ detail?: string; /** @description Optional list of individual error details */ errors?: components["schemas"]["ErrorDetail"][] | null; /** * Format: uri * @description A URI reference that identifies the specific occurrence of the problem. + * @example https://example.com/error-log/abc123 */ instance?: string; /** * Format: int64 * @description HTTP status code + * @example 400 */ status?: number; - /** @description A short, human-readable summary of the problem type. This value should not change between occurrences of the error. */ + /** + * @description A short, human-readable summary of the problem type. This value should not change between occurrences of the error. + * @example Bad Request + */ title?: string; /** * Format: uri * @description A URI reference to human-readable documentation for the error. * @default about:blank + * @example https://example.com/errors/example */ type: string; }; @@ -1696,7 +1709,6 @@ export interface components { email: string | null; email_consent: boolean; email_verified: boolean; - has_seen_new_application_status: boolean | null; id: string; image: string | null; name: string; @@ -1708,22 +1720,32 @@ export interface components { role_assigned_at: string | null; /** Format: date-time */ updated_at: string; + has_seen_new_application_status: boolean | null; }; UserContext: { /** Format: date-time */ checkedInAt: string | null; + /** @example user@example.com */ email: string | null; + /** @example false */ emailConsent: boolean; - hasSeenNewApplicationStatus: boolean | null; + /** @example https://cdn.example.com/avatar.png */ image: string | null; + /** @example Jane Doe */ name: string; + /** @example true */ onboarded: boolean; + /** @example user.alt@example.com */ preferredEmail: string | null; rfid: string | null; /** @enum {string} */ role: "admin" | "staff" | "attendee" | "applicant" | "visitor"; - /** Format: uuid */ + /** + * Format: uuid + * @example 550e8400-e29b-41d4-a716-446655440000 + */ userId: string; + hasSeenNewApplicationStatus: boolean | null; }; Workshop: { /** Format: date-time */ @@ -2043,6 +2065,70 @@ export interface operations { }; }; }; + "replace-resume": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: { + content: { + "multipart/form-data": { + /** Format: binary */ + resume: string; + }; + }; + }; + responses: { + /** @description No Content */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unprocessable Entity */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; "assign-application-reviewers": { parameters: { query?: never; @@ -4588,54 +4674,6 @@ export interface operations { }; }; }; - "update-has-seen-new-application-status": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; "update-email-consent": { parameters: { query?: never; @@ -5660,4 +5698,52 @@ export interface operations { }; }; }; + "update-has-seen-new-application-status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie: { + /** @description Session cookie used to authenticate the user */ + sh_session_id: string; + }; + }; + requestBody?: never; + responses: { + /** @description No Content */ + 204: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + /** @description Bad Request */ + 400: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Unauthorized */ + 401: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + /** @description Internal Server Error */ + 500: { + headers: { + [name: string]: unknown; + }; + content: { + "application/problem+json": components["schemas"]["ErrorModel"]; + }; + }; + }; + }; } diff --git a/apps/web/src/modules/Application/ApplicationForm.tsx b/apps/web/src/modules/Application/ApplicationForm.tsx index 0578045f..6720429d 100644 --- a/apps/web/src/modules/Application/ApplicationForm.tsx +++ b/apps/web/src/modules/Application/ApplicationForm.tsx @@ -3,7 +3,11 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { QuestionTypes } from "@/modules/FormBuilder/types"; import { showToast } from "@/lib/toast/toast"; import TablerCircleCheck from "~icons/tabler/circle-check"; +import TablerUpload from "~icons/tabler/upload"; import { api } from "@/lib/ky"; +import { Spinner } from "@/components/ui/Spinner"; +import { Button } from "@/components/ui/Button"; +import { useReplaceResume } from "@/modules/Application/hooks/useReplaceResume"; import { formatDistanceToNowStrict, parseISO } from "date-fns"; import Cloud from "./assets/cloud.svg?react"; @@ -234,6 +238,78 @@ function SubmitSuccess({ submittedAt }: { submittedAt: string }) { minute: "2-digit", }).format(new Date(submittedAt))}

+ +
+ ); +} + +function ReplaceResume() { + const inputRef = useRef(null); + const { mutate: replaceResume, isPending } = useReplaceResume(); + + const onSelectFile = (e: React.ChangeEvent) => { + const file = e.target.files?.[0]; + // Reset so selecting the same file again still fires onChange + e.target.value = ""; + + if (!file) return; + + if (file.type !== "application/pdf") { + showToast({ + title: "Invalid file", + message: "Please upload a PDF resume.", + type: "error", + }); + return; + } + + replaceResume(file, { + onSuccess: () => { + showToast({ + title: "Resume updated", + message: "Your resume has been replaced successfully.", + type: "success", + }); + }, + onError: async (err) => { + let message = "Something went wrong while replacing your resume."; + if (err instanceof HTTPError) { + const resBody = await err.response.json<{ detail?: string }>(); + message = resBody.detail || message; + } + + showToast({ + title: "Upload failed", + message, + type: "error", + }); + }, + }); + }; + + return ( +
+

+ Uploaded the wrong resume? You can replace it below. This does not + change any of your other application responses. +

+ +
); } diff --git a/apps/web/src/modules/Application/hooks/useReplaceResume.ts b/apps/web/src/modules/Application/hooks/useReplaceResume.ts new file mode 100644 index 00000000..dfe1b3ed --- /dev/null +++ b/apps/web/src/modules/Application/hooks/useReplaceResume.ts @@ -0,0 +1,19 @@ +import { api } from "@/lib/ky"; +import { useMutation } from "@tanstack/react-query"; + +// Replaces the resume on an already-submitted application without touching any +// of the question responses. Mirrors the multipart upload used by the submit flow. +export async function replaceResume(resume: File): Promise { + const formData = new FormData(); + formData.append("resume", resume); + + await api.put(`application/resume`, { + body: formData, + }); +} + +export function useReplaceResume() { + return useMutation({ + mutationFn: (resume: File) => replaceResume(resume), + }); +} From b2cbcc334a0c0041ae65723c08dfd49871910193 Mon Sep 17 00:00:00 2001 From: William Chi Date: Thu, 11 Jun 2026 08:45:52 -0700 Subject: [PATCH 18/21] feat: register email campaign CRUD API and fix enum array handling (#357) * feat: add the existing email routes and handler to the API * feat: add email campaigns migration with status, format, and recipient types * feat: add EmailCampaign model with status, format, and recipient types * feat: update SQLC version to v1.30.0 * feat: add SQL queries for email campaigns management * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: use sqlc.narg for nullable scheduled_at and sent_at in update queries Agent-Logs-Url: https://github.com/swamphacks/core/sessions/1e2e08e9-0737-47dd-8a01-bddead1ad570 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * style: group stdlib and third-party imports in email_campaigns repository Agent-Logs-Url: https://github.com/swamphacks/core/sessions/5c4475ce-1d02-429a-80bf-15b48fefcd07 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * feat: implement EmailCampaignService with CRUD operations and validation * Add email campaign HTTP routes and handler implementations * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * feat: register/manually tested email campaign CRUD API and fix pgx enum array handling --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> --- apps/api/internal/api/api.go | 5 ++ apps/api/internal/database/database.go | 42 ++++++++++++- .../database/queries/email_campaigns.sql | 8 +-- .../database/sqlc/email_campaigns.sql.go | 60 +++++++++---------- .../internal/domains/email/campaign_http.go | 37 +++++++----- .../domains/email/campaign_service.go | 7 +-- 6 files changed, 104 insertions(+), 55 deletions(-) diff --git a/apps/api/internal/api/api.go b/apps/api/internal/api/api.go index dc88253e..ad68834c 100644 --- a/apps/api/internal/api/api.go +++ b/apps/api/internal/api/api.go @@ -119,6 +119,7 @@ func Run() { batRunsRepo := repository.NewBatRunsRepository(db) eventInterestsRepo := repository.NewEventInterestsRepository(db) workshopRepo := repository.NewWorkshopsRepository(db) + emailCampaignRepo := repository.NewEmailCampaignRepository(db) mw := mw.NewMiddleware(userRepo, db, logger, config) @@ -139,6 +140,10 @@ func Run() { emailHandler := email.NewHandler(emailService, logger) email.RegisterRoutes(emailHandler, huma.NewGroup(api, "/email"), mw) + emailCampaignService := email.NewEmailCampaignService(emailCampaignRepo, logger) + emailCampaignHandler := email.NewCampaignHandler(emailCampaignService, logger) + email.RegisterCampaignRoutes(emailCampaignHandler, huma.NewGroup(api, "/email"), mw) + batService := bat.NewBatService(applicationRepo, hackathonRepo, userRepo, batRunsRepo, emailService, txm, taskQueueClient, nil, config, logger) applicationService := application.NewService(applicationRepo, userRepo, hackathonRepo, txm, r2Client, &config.CoreBuckets, nil, emailService, batService, config, logger) applicationHandler := application.NewHandler(applicationService, batService, config, logger) diff --git a/apps/api/internal/database/database.go b/apps/api/internal/database/database.go index afd8ccaf..aa2e9ac1 100644 --- a/apps/api/internal/database/database.go +++ b/apps/api/internal/database/database.go @@ -2,8 +2,11 @@ package database import ( "context" + "errors" "log" + "github.com/jackc/pgx/v5" + "github.com/jackc/pgx/v5/pgconn" "github.com/jackc/pgx/v5/pgxpool" "github.com/swamphacks/core/apps/api/internal/database/sqlc" ) @@ -14,7 +17,16 @@ type DB struct { } func NewDB(connStr string) *DB { - pool, err := pgxpool.New(context.Background(), connStr) + poolConfig, err := pgxpool.ParseConfig(connStr) + if err != nil { + log.Fatal(err) + } + + poolConfig.AfterConnect = func(ctx context.Context, conn *pgx.Conn) error { + return registerCustomTypes(ctx, conn) + } + + pool, err := pgxpool.NewWithConfig(context.Background(), poolConfig) if err != nil { log.Fatal(err) } @@ -32,3 +44,31 @@ func NewDB(connStr string) *DB { func (d *DB) Close() { d.Pool.Close() } + +func registerCustomTypes(ctx context.Context, conn *pgx.Conn) error { + typeNames := []string{ + "email_campaign_format", + "email_campaign_status", + "email_recipient_type", + "_email_recipient_type", + } + + for _, typeName := range typeNames { + dataType, err := conn.LoadType(ctx, typeName) + if isUndefinedType(err) { + continue + } + if err != nil { + return err + } + + conn.TypeMap().RegisterType(dataType) + } + + return nil +} + +func isUndefinedType(err error) bool { + var pgErr *pgconn.PgError + return errors.As(err, &pgErr) && pgErr.Code == "42704" +} diff --git a/apps/api/internal/database/queries/email_campaigns.sql b/apps/api/internal/database/queries/email_campaigns.sql index 5619c5cf..8d2fa02f 100644 --- a/apps/api/internal/database/queries/email_campaigns.sql +++ b/apps/api/internal/database/queries/email_campaigns.sql @@ -18,7 +18,7 @@ INSERT INTO email_campaigns ( @subject, @body, @format::email_campaign_format, - @recipient_types::email_recipient_type[], + sqlc.arg(recipient_types)::text[]::email_recipient_type[], sqlc.narg(scheduled_at), sqlc.narg(created_by_user_id), sqlc.narg(updated_by_user_id) @@ -61,11 +61,11 @@ SET ELSE body END, format = CASE WHEN @format_do_update::boolean - THEN @format::email_campaign_format + THEN sqlc.narg(format)::email_campaign_format ELSE format END, recipient_types = CASE WHEN @recipient_types_do_update::boolean - THEN @recipient_types::email_recipient_type[] + THEN sqlc.arg(recipient_types)::text[]::email_recipient_type[] ELSE recipient_types END, scheduled_at = CASE WHEN @scheduled_at_do_update::boolean @@ -102,4 +102,4 @@ SET ELSE updated_by_user_id END WHERE id = @id::uuid AND hackathon_id = @hackathon_id -RETURNING *; \ No newline at end of file +RETURNING *; diff --git a/apps/api/internal/database/sqlc/email_campaigns.sql.go b/apps/api/internal/database/sqlc/email_campaigns.sql.go index c18a9414..cdf9999d 100644 --- a/apps/api/internal/database/sqlc/email_campaigns.sql.go +++ b/apps/api/internal/database/sqlc/email_campaigns.sql.go @@ -31,7 +31,7 @@ INSERT INTO email_campaigns ( $4, $5, $6::email_campaign_format, - $7::email_recipient_type[], + $7::text[]::email_recipient_type[], $8, $9, $10 @@ -40,16 +40,16 @@ RETURNING id, hackathon_id, title, description, subject, body, format, recipient ` type CreateEmailCampaignParams struct { - HackathonID string `json:"hackathon_id"` - Title string `json:"title"` - Description *string `json:"description"` - Subject string `json:"subject"` - Body string `json:"body"` - Format EmailCampaignFormat `json:"format"` - RecipientTypes []EmailRecipientType `json:"recipient_types"` - ScheduledAt *time.Time `json:"scheduled_at"` - CreatedByUserID *uuid.UUID `json:"created_by_user_id"` - UpdatedByUserID *uuid.UUID `json:"updated_by_user_id"` + HackathonID string `json:"hackathon_id"` + Title string `json:"title"` + Description *string `json:"description"` + Subject string `json:"subject"` + Body string `json:"body"` + Format EmailCampaignFormat `json:"format"` + RecipientTypes []string `json:"recipient_types"` + ScheduledAt *time.Time `json:"scheduled_at"` + CreatedByUserID *uuid.UUID `json:"created_by_user_id"` + UpdatedByUserID *uuid.UUID `json:"updated_by_user_id"` } // creates a draft campaign. It stores the title, subject, body, format, recipient groups, and optional schedule time. @@ -195,7 +195,7 @@ SET ELSE format END, recipient_types = CASE WHEN $11::boolean - THEN $12::email_recipient_type[] + THEN $12::text[]::email_recipient_type[] ELSE recipient_types END, scheduled_at = CASE WHEN $13::boolean @@ -211,24 +211,24 @@ RETURNING id, hackathon_id, title, description, subject, body, format, recipient ` type UpdateEmailCampaignParams struct { - TitleDoUpdate bool `json:"title_do_update"` - Title string `json:"title"` - DescriptionDoUpdate bool `json:"description_do_update"` - Description *string `json:"description"` - SubjectDoUpdate bool `json:"subject_do_update"` - Subject string `json:"subject"` - BodyDoUpdate bool `json:"body_do_update"` - Body string `json:"body"` - FormatDoUpdate bool `json:"format_do_update"` - Format EmailCampaignFormat `json:"format"` - RecipientTypesDoUpdate bool `json:"recipient_types_do_update"` - RecipientTypes []EmailRecipientType `json:"recipient_types"` - ScheduledAtDoUpdate bool `json:"scheduled_at_do_update"` - ScheduledAt *time.Time `json:"scheduled_at"` - UpdatedByUserIDDoUpdate bool `json:"updated_by_user_id_do_update"` - UpdatedByUserID uuid.UUID `json:"updated_by_user_id"` - ID uuid.UUID `json:"id"` - HackathonID string `json:"hackathon_id"` + TitleDoUpdate bool `json:"title_do_update"` + Title string `json:"title"` + DescriptionDoUpdate bool `json:"description_do_update"` + Description *string `json:"description"` + SubjectDoUpdate bool `json:"subject_do_update"` + Subject string `json:"subject"` + BodyDoUpdate bool `json:"body_do_update"` + Body string `json:"body"` + FormatDoUpdate bool `json:"format_do_update"` + Format NullEmailCampaignFormat `json:"format"` + RecipientTypesDoUpdate bool `json:"recipient_types_do_update"` + RecipientTypes []string `json:"recipient_types"` + ScheduledAtDoUpdate bool `json:"scheduled_at_do_update"` + ScheduledAt *time.Time `json:"scheduled_at"` + UpdatedByUserIDDoUpdate bool `json:"updated_by_user_id_do_update"` + UpdatedByUserID uuid.UUID `json:"updated_by_user_id"` + ID uuid.UUID `json:"id"` + HackathonID string `json:"hackathon_id"` } // edits draft-like campaign fields: title, description, subject, body, format, recipients, and scheduled time. diff --git a/apps/api/internal/domains/email/campaign_http.go b/apps/api/internal/domains/email/campaign_http.go index a5cf754b..ca9eba7a 100644 --- a/apps/api/internal/domains/email/campaign_http.go +++ b/apps/api/internal/domains/email/campaign_http.go @@ -95,24 +95,24 @@ func NewCampaignHandler(emailCampaignService *EmailCampaignService, logger zerol } type CreateEmailCampaignRequest struct { - HackathonID string `json:"hackathonId" required:"true"` - Title string `json:"title" minLength:"1"` - Description *string `json:"description,omitempty"` - Subject string `json:"subject" minLength:"1"` - Body string `json:"body" minLength:"1"` - Format sqlc.EmailCampaignFormat `json:"format" required:"true"` - RecipientTypes []sqlc.EmailRecipientType `json:"recipientTypes" minItems:"1"` - ScheduledAt *time.Time `json:"scheduledAt,omitempty"` + HackathonID string `json:"hackathonId" required:"true"` + Title string `json:"title" minLength:"1"` + Description *string `json:"description,omitempty"` + Subject string `json:"subject" minLength:"1"` + Body string `json:"body" minLength:"1"` + Format sqlc.EmailCampaignFormat `json:"format" required:"true"` + RecipientTypes []string `json:"recipientTypes" minItems:"1"` + ScheduledAt *time.Time `json:"scheduledAt,omitempty"` } type UpdateEmailCampaignRequest struct { - Title *string `json:"title,omitempty"` - Description *string `json:"description,omitempty"` - Subject *string `json:"subject,omitempty"` - Body *string `json:"body,omitempty"` - Format *sqlc.EmailCampaignFormat `json:"format,omitempty"` - RecipientTypes *[]sqlc.EmailRecipientType `json:"recipientTypes,omitempty"` - ScheduledAt *time.Time `json:"scheduledAt,omitempty"` + Title *string `json:"title,omitempty"` + Description *string `json:"description,omitempty"` + Subject *string `json:"subject,omitempty"` + Body *string `json:"body,omitempty"` + Format *sqlc.EmailCampaignFormat `json:"format,omitempty"` + RecipientTypes *[]string `json:"recipientTypes,omitempty"` + ScheduledAt *time.Time `json:"scheduledAt,omitempty"` } type UpdateEmailCampaignStatusRequest struct { @@ -151,6 +151,7 @@ func (h *emailCampaignHandler) handleCreateCampaign(ctx context.Context, input * UpdatedByUserID: &userCtx.UserID, }) if err != nil { + h.logger.Err(err).Msg("Failed to create email campaign") return nil, campaignHTTPError(err, "Failed to create email campaign") } @@ -242,7 +243,10 @@ func (h *emailCampaignHandler) handleUpdateCampaign(ctx context.Context, input * params.Body = *input.Body.Body } if input.Body.Format != nil { - params.Format = *input.Body.Format + params.Format = sqlc.NullEmailCampaignFormat{ + EmailCampaignFormat: *input.Body.Format, + Valid: true, + } } if input.Body.RecipientTypes != nil { params.RecipientTypes = *input.Body.RecipientTypes @@ -253,6 +257,7 @@ func (h *emailCampaignHandler) handleUpdateCampaign(ctx context.Context, input * campaign, err := h.emailCampaignService.UpdateCampaign(ctx, params) if err != nil { + h.logger.Err(err).Msg("Failed to update email campaign") return nil, campaignHTTPError(err, "Failed to update email campaign") } diff --git a/apps/api/internal/domains/email/campaign_service.go b/apps/api/internal/domains/email/campaign_service.go index f978d0a9..30e628ff 100644 --- a/apps/api/internal/domains/email/campaign_service.go +++ b/apps/api/internal/domains/email/campaign_service.go @@ -30,7 +30,7 @@ var ( // EmailCampaignService owns business rules for saved email campaigns. type EmailCampaignService struct { emailCampaignRepo *repository.EmailCampaignRepository - logger zerolog.Logger + logger zerolog.Logger } // NewEmailCampaignService creates the service and stores its dependencies. @@ -58,7 +58,6 @@ func (s *EmailCampaignService) CreateCampaign( return s.emailCampaignRepo.CreateEmailCampaign(ctx, params) } - // GetCampaignByID fetches one campaign scoped to a hackathon. // The hackathon scope prevents one event from reading another event's campaign. func (s *EmailCampaignService) GetCampaignByID( @@ -121,7 +120,7 @@ func validateCampaignContent( title string, subject string, body string, - recipientTypes []sqlc.EmailRecipientType, + recipientTypes []string, ) error { if strings.TrimSpace(title) == "" { return ErrEmailCampaignTitleRequired @@ -147,4 +146,4 @@ func validateCampaignContent( func canEditCampaign(status sqlc.EmailCampaignStatus) bool { return status == sqlc.EmailCampaignStatusDraft || status == sqlc.EmailCampaignStatusScheduled -} \ No newline at end of file +} From ce054ee16c1dd206cbc7d902327e9a7ad16c04ff Mon Sep 17 00:00:00 2001 From: William Chi Date: Sun, 21 Jun 2026 14:48:19 -0400 Subject: [PATCH 19/21] =?UTF-8?q?Adds=20unit=20tests=20for=20the=20email?= =?UTF-8?q?=20campaign=20service=E2=80=99s=20validation=20and=20lifecycle?= =?UTF-8?q?=20rules.=20(#358)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add the existing email routes and handler to the API * feat: add email campaigns migration with status, format, and recipient types * feat: add EmailCampaign model with status, format, and recipient types * feat: update SQLC version to v1.30.0 * feat: add SQL queries for email campaigns management * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: use sqlc.narg for nullable scheduled_at and sent_at in update queries Agent-Logs-Url: https://github.com/swamphacks/core/sessions/1e2e08e9-0737-47dd-8a01-bddead1ad570 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * style: group stdlib and third-party imports in email_campaigns repository Agent-Logs-Url: https://github.com/swamphacks/core/sessions/5c4475ce-1d02-429a-80bf-15b48fefcd07 Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> * feat: implement EmailCampaignService with CRUD operations and validation * Add email campaign HTTP routes and handler implementations * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * feat: register/manually tested email campaign CRUD API and fix pgx enum array handling * added unit testing for email campaign api endpoints --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: williamchiii <188648862+williamchiii@users.noreply.github.com> --- .../domains/email/campaign_service_test.go | 139 ++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 apps/api/internal/domains/email/campaign_service_test.go diff --git a/apps/api/internal/domains/email/campaign_service_test.go b/apps/api/internal/domains/email/campaign_service_test.go new file mode 100644 index 00000000..d1a309b8 --- /dev/null +++ b/apps/api/internal/domains/email/campaign_service_test.go @@ -0,0 +1,139 @@ +package email + +import ( + "context" + "errors" + "testing" + + "github.com/swamphacks/core/apps/api/internal/database/sqlc" +) + +func TestValidateCampaignContent(t *testing.T) { + tests := []struct { + name string + title string + subject string + body string + recipientTypes []string + expectedError error + }{ + { + name: "valid campaign", + title: "Welcome", + subject: "Welcome to SwampHacks", + body: "Campaign body", + recipientTypes: []string{"admins"}, + expectedError: nil, + }, + { + name: "missing title", + title: " ", + subject: "Subject", + body: "Body", + recipientTypes: []string{"admins"}, + expectedError: ErrEmailCampaignTitleRequired, + }, + { + name: "missing subject", + title: "Title", + subject: "", + body: "Body", + recipientTypes: []string{"admins"}, + expectedError: ErrEmailCampaignSubjectRequired, + }, + { + name: "missing body", + title: "Title", + subject: "Subject", + body: " ", + recipientTypes: []string{"admins"}, + expectedError: ErrEmailCampaignBodyRequired, + }, + { + name: "missing recipients", + title: "Title", + subject: "Subject", + body: "Body", + recipientTypes: nil, + expectedError: ErrEmailCampaignRecipientsRequired, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + err := validateCampaignContent( + test.title, + test.subject, + test.body, + test.recipientTypes, + ) + + if !errors.Is(err, test.expectedError) { + t.Fatalf("expected error %v, got %v", test.expectedError, err) + } + }) + } +} + +func TestCanEditCampaign(t *testing.T) { + tests := []struct { + status sqlc.EmailCampaignStatus + expected bool + }{ + {status: sqlc.EmailCampaignStatusDraft, expected: true}, + {status: sqlc.EmailCampaignStatusScheduled, expected: true}, + {status: sqlc.EmailCampaignStatusSending, expected: false}, + {status: sqlc.EmailCampaignStatusSent, expected: false}, + {status: sqlc.EmailCampaignStatusFailed, expected: false}, + } + + for _, test := range tests { + t.Run(string(test.status), func(t *testing.T) { + result := canEditCampaign(test.status) + + if result != test.expected { + t.Fatalf("expected %v, got %v", test.expected, result) + } + }) + } +} + +func TestUpdateCampaignStatusRequiresScheduledAt(t *testing.T) { + service := &EmailCampaignService{} + + _, err := service.UpdateCampaignStatus( + context.Background(), + sqlc.UpdateEmailCampaignStatusParams{ + Status: sqlc.EmailCampaignStatusScheduled, + ScheduledAt: nil, + }, + ) + + if !errors.Is(err, ErrEmailCampaignScheduledAtRequired) { + t.Fatalf( + "expected %v, got %v", + ErrEmailCampaignScheduledAtRequired, + err, + ) + } +} + +func TestUpdateCampaignStatusRequiresSentAt(t *testing.T) { + service := &EmailCampaignService{} + + _, err := service.UpdateCampaignStatus( + context.Background(), + sqlc.UpdateEmailCampaignStatusParams{ + Status: sqlc.EmailCampaignStatusSent, + SentAt: nil, + }, + ) + + if !errors.Is(err, ErrEmailCampaignSentAtRequired) { + t.Fatalf( + "expected %v, got %v", + ErrEmailCampaignSentAtRequired, + err, + ) + } +} \ No newline at end of file From 59423fd7a7a6a30410370c0777ff6b24a71b237f Mon Sep 17 00:00:00 2001 From: Hieu Nguyen <76720778+hieunguyent12@users.noreply.github.com> Date: Mon, 22 Jun 2026 18:39:09 -0400 Subject: [PATCH 20/21] Hieu/applications review (#359) * started working on application reviews * auto decision requests table improvements and other minor changes * improvements to the decision requests table and some changes idk * change review scales and added notes * application search and application responses viewer * application search and minor changes * Small refactor for application search page * applications backend refactor * application frontend refactor and some small tweaks to backend * add db generator * table component touchups * update gitignore * fix rebase error * more tweaks * remove openapi.json from git * remove schema.d.ts from git --- apps/api/.gitignore | 1 + apps/api/cmd/BAT_worker/main.go | 149 +- apps/api/docs/openapi.json | 1 - apps/api/internal/api/api.go | 11 +- apps/api/internal/database/database.go | 9 + ...60618145942_applications_add_id_column.sql | 21 + ...lication_reviews_and_decision_requests.sql | 66 + .../database/queries/application_reviews.sql | 147 + .../{stats.sql => application_stats.sql} | 12 +- .../database/queries/applications.sql | 149 +- .../internal/database/queries/hackathons.sql | 3 +- .../database/repository/application.go | 137 - .../database/sqlc/application_reviews.sql.go | 576 ++ ...{stats.sql.go => application_stats.sql.go} | 202 +- .../database/sqlc/applications.sql.go | 552 +- .../internal/database/sqlc/hackathons.sql.go | 3 +- apps/api/internal/database/sqlc/models.go | 89 +- .../internal/domains/application/handlers.go | 1002 +++ apps/api/internal/domains/application/http.go | 919 +-- .../internal/domains/application/service.go | 1056 +-- .../api/internal/domains/application/types.go | 229 + apps/api/internal/domains/bat/http.go | 264 +- apps/api/internal/domains/bat/service.go | 528 +- apps/api/internal/domains/hackathon/http.go | 2 +- apps/api/internal/workers/bat.go | 272 +- apps/web/.gitignore | 2 + apps/web/package.json | 10 +- apps/web/pnpm-lock.yaml | 2011 ++---- .../src/components/AppShell/AdminNavbar.tsx | 58 + apps/web/src/components/AppShell/AppShell.tsx | 2 +- .../src/components/AppShell/StaffNavbar.tsx | 53 + apps/web/src/components/ui/Field/Field.tsx | 1 - .../src/components/ui/FileField/FileField.tsx | 11 +- apps/web/src/components/ui/Select/Select.tsx | 3 +- apps/web/src/components/ui/Sheet/Sheet.css | 67 + apps/web/src/components/ui/Sheet/Sheet.tsx | 28 + apps/web/src/components/ui/Sheet/index.ts | 1 + apps/web/src/components/ui/Table/Table.tsx | 500 +- apps/web/src/components/ui/Tabs/Tabs.tsx | 114 + apps/web/src/components/ui/Tabs/index.ts | 1 + apps/web/src/index.css | 18 + apps/web/src/lib/openapi/schema.d.ts | 5749 ----------------- apps/web/src/lib/openapi/types.ts | 5 - apps/web/src/lib/openapi/zodSchemas.ts | 14 - .../modules/Application/ApplicationForm.tsx | 3 +- .../ApplicationReviewPage.tsx | 296 + .../AutoDecisionRequestList.tsx | 259 + .../ApplicationReview/ResetReviewModal.tsx | 0 .../ReviewNotStartedAdmin.tsx | 50 + .../ReviewersAssignmentModal.tsx | 199 + .../ApplicationReview/Workspace.tsx | 703 ++ .../ApplicationSearch/ApplicationList.tsx | 168 + .../ApplicationSearchPage.tsx | 35 + .../ApplicationAgeChart.tsx | 0 .../ApplicationGenderChart.tsx | 0 .../ApplicationMajorsChart.tsx | 0 .../ApplicationOverview.tsx | 2 +- .../ApplicationRaceChart.tsx | 0 .../ApplicationSchoolsChart.tsx | 0 .../ApplicationStatistics.tsx | 0 .../ApplicationStats.tsx | 2 +- .../ApplicationStatus.tsx | 0 .../SubmissionsChart.tsx | 0 .../modules/Application/ApplicationViewer.tsx | 574 ++ .../hooks/useAppReviewProgress.ts | 9 +- .../hooks/useAppReviewTutorial.ts | 0 .../Application/hooks/useApplication.ts | 27 +- .../hooks/useApplicationActions.ts | 4 +- .../Application/hooks/useApplicationReview.ts | 49 + .../hooks/useApplicationReviewActions.ts | 209 + .../hooks/useApplicationReviewAdminActions.ts | 64 + .../hooks/useApplicationStatistics.ts | 20 +- .../hooks/useAssignedApplication.ts | 28 - .../hooks/useAutoDecisionRequests.ts | 44 + .../hooks/useExtendedApplication.ts | 54 + .../Application/hooks/useMyApplication.ts | 9 +- .../Application/hooks/useParsedForm.ts | 42 + .../hooks/useRatings.ts | 0 .../Application/hooks/useReplaceResume.ts | 2 +- .../Application/hooks/useReviewAssignments.ts | 24 + .../Application/hooks/useReviewersProgress.ts | 19 + .../hooks/useSearchApplications.ts | 33 + .../hooks/useSearchAutoDecisionRequests.ts | 53 + .../Review/ApplicationReviewContainer.tsx | 220 - .../Review/ApplicationReviewPage.tsx | 183 - .../Review/EssayResponse.tsx | 16 - .../ApplicationReview/Review/RatingFields.tsx | 37 - .../Review/ReviewNavigation.tsx | 114 - .../ReviewNotStarted/ReviewNotStarted.tsx | 34 - .../ReviewerAssignmentModal.tsx | 100 - .../ReviewNotStarted/ReviewerList.tsx | 92 - .../ReviewNotStarted/StartReviewButton.tsx | 58 - .../ReviewNotStarted/SummaryFooter.tsx | 14 - .../ApplicationReview/hooks/useAppResume.ts | 21 - .../hooks/useAppReviewActions.ts | 68 - .../hooks/useAppReviewAdminActions.ts | 78 - .../hooks/useAssignedApplications.ts | 26 - .../modules/Dashboard/AttendeeAppShell.tsx | 71 - .../src/modules/Dashboard/StaffAppShell.tsx | 204 - apps/web/src/modules/Event/api/getEvent.ts | 11 - .../src/modules/Event/api/getUserEventRole.ts | 17 - apps/web/src/modules/Event/api/updateEvent.ts | 15 - .../src/modules/Event/applicationStatus.ts | 152 - .../EventAcceptanceWithdrawalModal.tsx | 80 - .../EventAttendanceWithdrawalModal.tsx | 86 - .../modules/Event/components/EventBadge.tsx | 80 - .../Event/components/EventBannerUploader.tsx | 174 - .../modules/Event/components/EventButton.tsx | 176 - .../modules/Event/components/EventCard.tsx | 173 - .../Event/components/EventDetailsModal.tsx | 149 - .../Event/components/EventSettingsForm.tsx | 281 - .../Event/components/EventWaitlistModal.tsx | 77 - .../modules/Event/components/placeholder.jpg | Bin 82236 -> 0 bytes .../components/stories/EventBadge.stories.tsx | 102 - .../stories/EventButton.stories.tsx | 102 - .../components/stories/EventCard.stories.tsx | 37 - apps/web/src/modules/Event/hooks/useEvent.ts | 26 - .../Event/hooks/useEventBannerActions.ts | 58 - .../Event/hooks/useEventsWithUserInfo.ts | 28 - .../src/modules/Event/hooks/useUpdateEvent.ts | 20 - .../Event/hooks/useUpdateEventForm.tsx | 138 - apps/web/src/modules/Event/schemas/event.ts | 24 - apps/web/src/modules/Event/utils/mapper.ts | 110 - .../src/modules/EventAdmin/AddStaffModal.tsx | 160 - .../modules/EventAdmin/DeleteStaffDialog.tsx | 69 - apps/web/src/modules/EventAdmin/RoleBadge.tsx | 36 - .../web/src/modules/EventAdmin/StaffTable.tsx | 156 - .../src/modules/EventAdmin/UserSideDrawer.tsx | 18 - apps/web/src/modules/EventAdmin/UserTable.tsx | 163 - .../EventAdmin/hooks/useStaffActions.ts | 67 - .../EventAdmin/hooks/useUrlTableState.ts | 129 - .../EventOverview/AttendeeOverview.tsx | 176 - .../modules/EventOverview/EventDetails.tsx | 151 - .../modules/EventOverview/StaffOverview.tsx | 65 - .../EventOverview/hooks/useEventOverview.ts | 24 - .../modules/Hackathon/hooks/useHackathon.ts | 19 +- .../Hackathon/hooks/useHackathonStaff.ts | 20 + .../_protected/_admin/application-search.tsx | 10 + .../src/routes/_protected/_admin/layout.tsx | 10 + .../_staff/application-review/index.tsx | 20 + .../_staff/application-review/workspace.tsx | 35 + .../src/routes/_protected/_staff/layout.tsx | 10 + .../_protected/admin/events-management.tsx | 72 - .../src/routes/_protected/admin/layout.tsx | 87 - apps/web/src/routes/_protected/admin/logs.tsx | 10 - .../src/routes/_protected/admin/overview.tsx | 10 - .../src/routes/_protected/admin/settings.tsx | 10 - .../_protected/admin/users-management.tsx | 10 - .../web/src/routes/_protected/application.tsx | 36 +- .../events/$eventId/application.tsx | 84 - .../_admin/application-decisions.tsx | 42 - .../$eventId/dashboard/_admin/configs.tsx | 12 - .../dashboard/_admin/event-settings.tsx | 87 - .../$eventId/dashboard/_admin/layout.tsx | 14 - .../dashboard/_admin/staff-management.tsx | 62 - .../dashboard/_admin/user-management.tsx | 54 - .../_applicant/application-status.tsx | 14 - .../$eventId/dashboard/_applicant/layout.tsx | 17 - .../$eventId/dashboard/_attendee/layout.tsx | 17 - .../$eventId/dashboard/_attendee/schedule.tsx | 96 - .../dashboard/_staff/application-review.tsx | 98 - .../_staff/application-statistics.tsx | 18 - .../dashboard/_staff/attendee-directory.tsx | 12 - .../$eventId/dashboard/_staff/check-in.tsx | 70 - .../$eventId/dashboard/_staff/emails.tsx | 12 - .../$eventId/dashboard/_staff/layout.tsx | 14 - .../$eventId/dashboard/_staff/redeemables.tsx | 90 - .../dashboard/_staff/staff-overview.tsx | 12 - .../dashboard/_staff/team-management.tsx | 12 - .../$eventId/dashboard/_staff/waitlist.tsx | 12 - .../events/$eventId/dashboard/index.tsx | 44 - .../events/$eventId/dashboard/layout.tsx | 77 - .../events/$eventId/dashboard/my-team.tsx | 79 - .../$eventId/dashboard/teams-explorer.tsx | 67 - .../events/$eventId/feedback/declined.tsx | 12 - .../_protected/events/$eventId/index.tsx | 12 - .../_protected/events/$eventId/rejected.tsx | 10 - .../_protected/events/$eventId/summary.tsx | 10 - .../events/$eventId/waitlist/info.tsx | 12 - apps/web/src/routes/_protected/layout.tsx | 10 +- apps/web/src/theme.css | 7 + scripts/db-data-generator/.env.example | 1 + scripts/db-data-generator/.python-version | 1 + scripts/db-data-generator/README.md | 1 + scripts/db-data-generator/pyproject.toml | 11 + .../src/applications-generator.py | 214 + .../db-data-generator/src/users-generator.py | 173 + 187 files changed, 8765 insertions(+), 15879 deletions(-) delete mode 100644 apps/api/docs/openapi.json create mode 100644 apps/api/internal/database/migrations/20260618145942_applications_add_id_column.sql create mode 100644 apps/api/internal/database/migrations/20260618162831_application_reviews_and_decision_requests.sql create mode 100644 apps/api/internal/database/queries/application_reviews.sql rename apps/api/internal/database/queries/{stats.sql => application_stats.sql} (91%) delete mode 100644 apps/api/internal/database/repository/application.go create mode 100644 apps/api/internal/database/sqlc/application_reviews.sql.go rename apps/api/internal/database/sqlc/{stats.sql.go => application_stats.sql.go} (72%) create mode 100644 apps/api/internal/domains/application/handlers.go create mode 100644 apps/api/internal/domains/application/types.go create mode 100644 apps/web/src/components/AppShell/AdminNavbar.tsx create mode 100644 apps/web/src/components/AppShell/StaffNavbar.tsx create mode 100644 apps/web/src/components/ui/Sheet/Sheet.css create mode 100644 apps/web/src/components/ui/Sheet/Sheet.tsx create mode 100644 apps/web/src/components/ui/Sheet/index.ts create mode 100644 apps/web/src/components/ui/Tabs/Tabs.tsx create mode 100644 apps/web/src/components/ui/Tabs/index.ts delete mode 100644 apps/web/src/lib/openapi/schema.d.ts delete mode 100644 apps/web/src/lib/openapi/types.ts delete mode 100644 apps/web/src/lib/openapi/zodSchemas.ts create mode 100644 apps/web/src/modules/Application/ApplicationReview/ApplicationReviewPage.tsx create mode 100644 apps/web/src/modules/Application/ApplicationReview/AutoDecisionRequestList.tsx rename apps/web/src/modules/{ => Application}/ApplicationReview/ResetReviewModal.tsx (100%) create mode 100644 apps/web/src/modules/Application/ApplicationReview/ReviewNotStartedAdmin.tsx create mode 100644 apps/web/src/modules/Application/ApplicationReview/ReviewersAssignmentModal.tsx create mode 100644 apps/web/src/modules/Application/ApplicationReview/Workspace.tsx create mode 100644 apps/web/src/modules/Application/ApplicationSearch/ApplicationList.tsx create mode 100644 apps/web/src/modules/Application/ApplicationSearch/ApplicationSearchPage.tsx rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationAgeChart.tsx (100%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationGenderChart.tsx (100%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationMajorsChart.tsx (100%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationOverview.tsx (97%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationRaceChart.tsx (100%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationSchoolsChart.tsx (100%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationStatistics.tsx (100%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationStats.tsx (97%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/ApplicationStatus.tsx (100%) rename apps/web/src/modules/Application/{ => ApplicationStatistics}/SubmissionsChart.tsx (100%) create mode 100644 apps/web/src/modules/Application/ApplicationViewer.tsx rename apps/web/src/modules/{ApplicationReview => Application}/hooks/useAppReviewProgress.ts (92%) rename apps/web/src/modules/{ApplicationReview => Application}/hooks/useAppReviewTutorial.ts (100%) create mode 100644 apps/web/src/modules/Application/hooks/useApplicationReview.ts create mode 100644 apps/web/src/modules/Application/hooks/useApplicationReviewActions.ts create mode 100644 apps/web/src/modules/Application/hooks/useApplicationReviewAdminActions.ts delete mode 100644 apps/web/src/modules/Application/hooks/useAssignedApplication.ts create mode 100644 apps/web/src/modules/Application/hooks/useAutoDecisionRequests.ts create mode 100644 apps/web/src/modules/Application/hooks/useExtendedApplication.ts create mode 100644 apps/web/src/modules/Application/hooks/useParsedForm.ts rename apps/web/src/modules/{ApplicationReview => Application}/hooks/useRatings.ts (100%) create mode 100644 apps/web/src/modules/Application/hooks/useReviewAssignments.ts create mode 100644 apps/web/src/modules/Application/hooks/useReviewersProgress.ts create mode 100644 apps/web/src/modules/Application/hooks/useSearchApplications.ts create mode 100644 apps/web/src/modules/Application/hooks/useSearchAutoDecisionRequests.ts delete mode 100644 apps/web/src/modules/ApplicationReview/Review/ApplicationReviewContainer.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/Review/ApplicationReviewPage.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/Review/EssayResponse.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/Review/RatingFields.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/Review/ReviewNavigation.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/ReviewNotStarted/ReviewNotStarted.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/ReviewNotStarted/ReviewerAssignmentModal.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/ReviewNotStarted/ReviewerList.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/ReviewNotStarted/StartReviewButton.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/ReviewNotStarted/SummaryFooter.tsx delete mode 100644 apps/web/src/modules/ApplicationReview/hooks/useAppResume.ts delete mode 100644 apps/web/src/modules/ApplicationReview/hooks/useAppReviewActions.ts delete mode 100644 apps/web/src/modules/ApplicationReview/hooks/useAppReviewAdminActions.ts delete mode 100644 apps/web/src/modules/ApplicationReview/hooks/useAssignedApplications.ts delete mode 100644 apps/web/src/modules/Dashboard/AttendeeAppShell.tsx delete mode 100644 apps/web/src/modules/Dashboard/StaffAppShell.tsx delete mode 100644 apps/web/src/modules/Event/api/getEvent.ts delete mode 100644 apps/web/src/modules/Event/api/getUserEventRole.ts delete mode 100644 apps/web/src/modules/Event/api/updateEvent.ts delete mode 100644 apps/web/src/modules/Event/applicationStatus.ts delete mode 100644 apps/web/src/modules/Event/components/EventAcceptanceWithdrawalModal.tsx delete mode 100644 apps/web/src/modules/Event/components/EventAttendanceWithdrawalModal.tsx delete mode 100644 apps/web/src/modules/Event/components/EventBadge.tsx delete mode 100644 apps/web/src/modules/Event/components/EventBannerUploader.tsx delete mode 100644 apps/web/src/modules/Event/components/EventButton.tsx delete mode 100644 apps/web/src/modules/Event/components/EventCard.tsx delete mode 100644 apps/web/src/modules/Event/components/EventDetailsModal.tsx delete mode 100644 apps/web/src/modules/Event/components/EventSettingsForm.tsx delete mode 100644 apps/web/src/modules/Event/components/EventWaitlistModal.tsx delete mode 100644 apps/web/src/modules/Event/components/placeholder.jpg delete mode 100644 apps/web/src/modules/Event/components/stories/EventBadge.stories.tsx delete mode 100644 apps/web/src/modules/Event/components/stories/EventButton.stories.tsx delete mode 100644 apps/web/src/modules/Event/components/stories/EventCard.stories.tsx delete mode 100644 apps/web/src/modules/Event/hooks/useEvent.ts delete mode 100644 apps/web/src/modules/Event/hooks/useEventBannerActions.ts delete mode 100644 apps/web/src/modules/Event/hooks/useEventsWithUserInfo.ts delete mode 100644 apps/web/src/modules/Event/hooks/useUpdateEvent.ts delete mode 100644 apps/web/src/modules/Event/hooks/useUpdateEventForm.tsx delete mode 100644 apps/web/src/modules/Event/schemas/event.ts delete mode 100644 apps/web/src/modules/Event/utils/mapper.ts delete mode 100644 apps/web/src/modules/EventAdmin/AddStaffModal.tsx delete mode 100644 apps/web/src/modules/EventAdmin/DeleteStaffDialog.tsx delete mode 100644 apps/web/src/modules/EventAdmin/RoleBadge.tsx delete mode 100644 apps/web/src/modules/EventAdmin/StaffTable.tsx delete mode 100644 apps/web/src/modules/EventAdmin/UserSideDrawer.tsx delete mode 100644 apps/web/src/modules/EventAdmin/UserTable.tsx delete mode 100644 apps/web/src/modules/EventAdmin/hooks/useStaffActions.ts delete mode 100644 apps/web/src/modules/EventAdmin/hooks/useUrlTableState.ts delete mode 100644 apps/web/src/modules/EventOverview/AttendeeOverview.tsx delete mode 100644 apps/web/src/modules/EventOverview/EventDetails.tsx delete mode 100644 apps/web/src/modules/EventOverview/StaffOverview.tsx delete mode 100644 apps/web/src/modules/EventOverview/hooks/useEventOverview.ts create mode 100644 apps/web/src/modules/Hackathon/hooks/useHackathonStaff.ts create mode 100644 apps/web/src/routes/_protected/_admin/application-search.tsx create mode 100644 apps/web/src/routes/_protected/_admin/layout.tsx create mode 100644 apps/web/src/routes/_protected/_staff/application-review/index.tsx create mode 100644 apps/web/src/routes/_protected/_staff/application-review/workspace.tsx create mode 100644 apps/web/src/routes/_protected/_staff/layout.tsx delete mode 100644 apps/web/src/routes/_protected/admin/events-management.tsx delete mode 100644 apps/web/src/routes/_protected/admin/layout.tsx delete mode 100644 apps/web/src/routes/_protected/admin/logs.tsx delete mode 100644 apps/web/src/routes/_protected/admin/overview.tsx delete mode 100644 apps/web/src/routes/_protected/admin/settings.tsx delete mode 100644 apps/web/src/routes/_protected/admin/users-management.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/application.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_admin/application-decisions.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_admin/configs.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_admin/event-settings.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_admin/layout.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_admin/staff-management.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_admin/user-management.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_applicant/application-status.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_applicant/layout.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_attendee/layout.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_attendee/schedule.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/application-review.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/application-statistics.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/attendee-directory.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/check-in.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/emails.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/layout.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/redeemables.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/staff-overview.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/team-management.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/_staff/waitlist.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/index.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/layout.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/my-team.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/dashboard/teams-explorer.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/feedback/declined.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/index.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/rejected.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/summary.tsx delete mode 100644 apps/web/src/routes/_protected/events/$eventId/waitlist/info.tsx create mode 100644 scripts/db-data-generator/.env.example create mode 100644 scripts/db-data-generator/.python-version create mode 100644 scripts/db-data-generator/README.md create mode 100644 scripts/db-data-generator/pyproject.toml create mode 100644 scripts/db-data-generator/src/applications-generator.py create mode 100644 scripts/db-data-generator/src/users-generator.py diff --git a/apps/api/.gitignore b/apps/api/.gitignore index a16add54..4007624e 100644 --- a/apps/api/.gitignore +++ b/apps/api/.gitignore @@ -1,2 +1,3 @@ .env tmp +docs/openapi.json \ No newline at end of file diff --git a/apps/api/cmd/BAT_worker/main.go b/apps/api/cmd/BAT_worker/main.go index ac98ca19..bc8bf15d 100644 --- a/apps/api/cmd/BAT_worker/main.go +++ b/apps/api/cmd/BAT_worker/main.go @@ -1,23 +1,5 @@ package main -import ( - "time" - - "github.com/hibiken/asynq" - "github.com/swamphacks/core/apps/api/internal/config" - "github.com/swamphacks/core/apps/api/internal/database" - "github.com/swamphacks/core/apps/api/internal/database/repository" - "github.com/swamphacks/core/apps/api/internal/domains/application" - "github.com/swamphacks/core/apps/api/internal/domains/bat" - "github.com/swamphacks/core/apps/api/internal/domains/email" - "github.com/swamphacks/core/apps/api/internal/domains/hackathon" - "github.com/swamphacks/core/apps/api/internal/emailutils" - "github.com/swamphacks/core/apps/api/internal/logger" - "github.com/swamphacks/core/apps/api/internal/storage" - "github.com/swamphacks/core/apps/api/internal/tasks" - "github.com/swamphacks/core/apps/api/internal/workers" -) - /* -. .- _..-'( )`-.._ @@ -37,70 +19,69 @@ V V V }' `\ /' `{ V V V */ func main() { - logger := logger.New() - cfg := config.LoadConfig() - - redisOpt, err := asynq.ParseRedisURI(cfg.RedisURL) - if err != nil { - logger.Fatal().Msg("failed to parse REDIS_URL") - } - - srv := asynq.NewServer( - redisOpt, - asynq.Config{ - Concurrency: 1, - Queues: map[string]int{ - "bat": 1, - }, - TaskCheckInterval: 10 * time.Second, - DelayedTaskCheckInterval: time.Minute, - HealthCheckInterval: 2 * time.Minute, - JanitorInterval: time.Hour, - JanitorBatchSize: 100, - }, - ) - - schedulerLocation, err := time.LoadLocation("America/New_York") - if err != nil { - panic(err) - } - scheduler := asynq.NewScheduler( - redisOpt, - &asynq.SchedulerOpts{ - Location: schedulerLocation, - }, - ) - - taskQueueClient := asynq.NewClient(redisOpt) - defer taskQueueClient.Close() - - db := database.NewDB(cfg.DatabaseURL) - defer db.Close() - - txm := database.NewTransactionManager(db) - - hackathonRepo := repository.NewHackathonRepository(db) - applicationRepo := repository.NewApplicationRepository(db) - userRepo := repository.NewUserRepository(db) - batRunsRepo := repository.NewBatRunsRepository(db) - eventInterestsRepo := repository.NewEventInterestsRepository(db) - - sesClient := emailutils.NewSESClient(cfg.AWS.AccessKey, cfg.AWS.AccessKeySecret, cfg.AWS.Region, logger) - emailService := email.NewEmailService(hackathonRepo, userRepo, taskQueueClient, sesClient, nil, logger, cfg) - batService := bat.NewBatService(applicationRepo, hackathonRepo, userRepo, batRunsRepo, emailService, txm, nil, scheduler, cfg, logger) - applicationService := application.NewService(applicationRepo, userRepo, hackathonRepo, txm, nil, nil, scheduler, emailService, batService, cfg, logger) - hackathonService := hackathon.NewService(hackathonRepo, userRepo, eventInterestsRepo, &storage.R2Client{}, nil, logger) - - BATWorker := workers.NewBATWorker(batService, applicationService, hackathonService, scheduler, taskQueueClient, cfg, logger) - - mux := asynq.NewServeMux() - mux.HandleFunc(tasks.TypeCalculateAdmissions, BATWorker.HandleCalculateAdmissionsTask) - mux.HandleFunc(tasks.TypeTransitionWaitlist, BATWorker.HandleTransitionWaitlistTask) - mux.HandleFunc(tasks.TypeScheduleTransitionWaitlist, BATWorker.HandleScheduleTransitionWaitlistTask) - mux.HandleFunc(tasks.TypeShutdownScheduler, BATWorker.HandleShutdownScheduler) - - if err := srv.Run(mux); err != nil { - logger.Fatal().Msg("Failed to run BAT worker") - } - + // logger := logger.New() + // cfg := config.LoadConfig() + + // redisOpt, err := asynq.ParseRedisURI(cfg.RedisURL) + // if err != nil { + // logger.Fatal().Msg("failed to parse REDIS_URL") + // } + + // srv := asynq.NewServer( + // redisOpt, + // asynq.Config{ + // Concurrency: 1, + // Queues: map[string]int{ + // "bat": 1, + // }, + // TaskCheckInterval: 10 * time.Second, + // DelayedTaskCheckInterval: time.Minute, + // HealthCheckInterval: 2 * time.Minute, + // JanitorInterval: time.Hour, + // JanitorBatchSize: 100, + // }, + // ) + + // schedulerLocation, err := time.LoadLocation("America/New_York") + // if err != nil { + // panic(err) + // } + // scheduler := asynq.NewScheduler( + // redisOpt, + // &asynq.SchedulerOpts{ + // Location: schedulerLocation, + // }, + // ) + + // taskQueueClient := asynq.NewClient(redisOpt) + // defer taskQueueClient.Close() + + // db := database.NewDB(cfg.DatabaseURL) + // defer db.Close() + + // txm := database.NewTransactionManager(db) + + // hackathonRepo := repository.NewHackathonRepository(db) + // applicationRepo := repository.NewApplicationRepository(db) + // userRepo := repository.NewUserRepository(db) + // batRunsRepo := repository.NewBatRunsRepository(db) + // eventInterestsRepo := repository.NewEventInterestsRepository(db) + + // sesClient := emailutils.NewSESClient(cfg.AWS.AccessKey, cfg.AWS.AccessKeySecret, cfg.AWS.Region, logger) + // emailService := email.NewEmailService(hackathonRepo, userRepo, taskQueueClient, sesClient, nil, logger, cfg) + // batService := bat.NewBatService(applicationRepo, hackathonRepo, userRepo, batRunsRepo, emailService, txm, nil, scheduler, cfg, logger) + // applicationService := application.NewService(applicationRepo, userRepo, hackathonRepo, txm, nil, nil, scheduler, emailService, batService, cfg, logger) + // hackathonService := hackathon.NewService(hackathonRepo, userRepo, eventInterestsRepo, &storage.R2Client{}, nil, logger) + + // BATWorker := workers.NewBATWorker(batService, applicationService, hackathonService, scheduler, taskQueueClient, cfg, logger) + + // mux := asynq.NewServeMux() + // mux.HandleFunc(tasks.TypeCalculateAdmissions, BATWorker.HandleCalculateAdmissionsTask) + // mux.HandleFunc(tasks.TypeTransitionWaitlist, BATWorker.HandleTransitionWaitlistTask) + // mux.HandleFunc(tasks.TypeScheduleTransitionWaitlist, BATWorker.HandleScheduleTransitionWaitlistTask) + // mux.HandleFunc(tasks.TypeShutdownScheduler, BATWorker.HandleShutdownScheduler) + + // if err := srv.Run(mux); err != nil { + // logger.Fatal().Msg("Failed to run BAT worker") + // } } diff --git a/apps/api/docs/openapi.json b/apps/api/docs/openapi.json deleted file mode 100644 index 5ae2a550..00000000 --- a/apps/api/docs/openapi.json +++ /dev/null @@ -1 +0,0 @@ -{"components":{"schemas":{"ApplicationStatistics":{"additionalProperties":false,"properties":{"ageStats":{"$ref":"#/components/schemas/GetApplicationAgeSplitRow"},"genderStats":{"$ref":"#/components/schemas/GetApplicationGenderSplitRow"},"majorStats":{"items":{"$ref":"#/components/schemas/GetApplicationMajorSplitRow"},"type":["array","null"]},"raceStats":{"items":{"$ref":"#/components/schemas/GetApplicationRaceSplitRow"},"type":["array","null"]},"schoolStats":{"items":{"$ref":"#/components/schemas/GetApplicationSchoolSplitRow"},"type":["array","null"]},"statusStats":{"$ref":"#/components/schemas/GetApplicationStatusSplitRow"}},"required":["genderStats","ageStats","raceStats","majorStats","schoolStats","statusStats"],"type":"object"},"AssignRoleBatchRequest":{"additionalProperties":false,"properties":{"assignments":{"items":{"$ref":"#/components/schemas/AssignRoleRequest"},"type":["array","null"]}},"required":["assignments"],"type":"object"},"AssignRoleRequest":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"role":{"type":"string"},"userID":{"type":["string","null"]}},"required":["email","userID","role"],"type":"object"},"AssignedApplication":{"additionalProperties":false,"properties":{"applicantId":{"type":"string"},"status":{"type":"string"}},"required":["applicantId","status"],"type":"object"},"CheckInRequest":{"additionalProperties":false,"properties":{"rfid":{"type":["string","null"]},"userID":{"type":"string"}},"required":["userID","rfid"],"type":"object"},"CreateJoinRequest":{"additionalProperties":false,"properties":{"message":{"type":["string","null"]}},"required":["message"],"type":"object"},"CreateRedeemableRequest":{"additionalProperties":false,"properties":{"amount":{"format":"int64","minimum":1,"type":"integer"},"maxUserAmount":{"format":"int64","type":"integer"},"name":{"minLength":1,"type":"string"}},"required":["name","amount","maxUserAmount"],"type":"object"},"CreateTeamRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"},"CreateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"ErrorDetail":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"},"ErrorModel":{"additionalProperties":false,"properties":{"detail":{"description":"A human-readable explanation specific to this occurrence of the problem.","examples":["Property foo is required but is missing."],"type":"string"},"errors":{"description":"Optional list of individual error details","items":{"$ref":"#/components/schemas/ErrorDetail"},"type":["array","null"]},"instance":{"description":"A URI reference that identifies the specific occurrence of the problem.","examples":["https://example.com/error-log/abc123"],"format":"uri","type":"string"},"status":{"description":"HTTP status code","examples":[400],"format":"int64","type":"integer"},"title":{"description":"A short, human-readable summary of the problem type. This value should not change between occurrences of the error.","examples":["Bad Request"],"type":"string"},"type":{"default":"about:blank","description":"A URI reference to human-readable documentation for the error.","examples":["https://example.com/errors/example"],"format":"uri","type":"string"}},"type":"object"},"FormFile":{"additionalProperties":false,"properties":{"ContentType":{"type":"string"},"Filename":{"type":"string"},"IsSet":{"type":"boolean"},"Size":{"format":"int64","type":"integer"}},"required":["ContentType","IsSet","Size","Filename"],"type":"object"},"GetApplicationAgeSplitRow":{"additionalProperties":false,"properties":{"age_18":{"format":"int64","type":"integer"},"age_19":{"format":"int64","type":"integer"},"age_20":{"format":"int64","type":"integer"},"age_21":{"format":"int64","type":"integer"},"age_22":{"format":"int64","type":"integer"},"age_23_plus":{"format":"int64","type":"integer"},"underage":{"format":"int64","type":"integer"}},"required":["underage","age_18","age_19","age_20","age_21","age_22","age_23_plus"],"type":"object"},"GetApplicationGenderSplitRow":{"additionalProperties":false,"properties":{"female":{"format":"int64","type":"integer"},"male":{"format":"int64","type":"integer"},"non_binary":{"format":"int64","type":"integer"},"other":{"format":"int64","type":"integer"}},"required":["male","female","non_binary","other"],"type":"object"},"GetApplicationMajorSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"major":{"type":"string"}},"required":["major","count"],"type":"object"},"GetApplicationRaceSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"race_group":{"type":"string"}},"required":["race_group","count"],"type":"object"},"GetApplicationSchoolSplitRow":{"additionalProperties":false,"properties":{"count":{"format":"int64","type":"integer"},"school":{"type":"string"}},"required":["school","count"],"type":"object"},"GetApplicationStatusSplitRow":{"additionalProperties":false,"properties":{"accepted":{"format":"int64","type":"integer"},"rejected":{"format":"int64","type":"integer"},"started":{"format":"int64","type":"integer"},"submitted":{"format":"int64","type":"integer"},"under_review":{"format":"int64","type":"integer"},"waitlisted":{"format":"int64","type":"integer"},"withdrawn":{"format":"int64","type":"integer"}},"required":["started","submitted","under_review","accepted","rejected","waitlisted","withdrawn"],"type":"object"},"GetAttendeesWithDiscordRow":{"additionalProperties":false,"properties":{"discord_id":{"type":"string"},"email":{"type":["string","null"]},"name":{"type":"string"},"user_id":{"type":"string"}},"required":["discord_id","user_id","name","email"],"type":"object"},"GetRedeemablesRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"total_redeemed":{},"total_stock":{"format":"int32","type":"integer"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","total_stock","max_user_amount","created_at","updated_at","total_redeemed"],"type":"object"},"Hackathon":{"additionalProperties":false,"properties":{"accept_early_applications":{"type":"boolean"},"application_close":{"format":"date-time","type":"string"},"application_open":{"format":"date-time","type":"string"},"application_review_started":{"type":"boolean"},"banner":{"type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"decision_release":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"early_application_close":{"format":"date-time","type":["string","null"]},"early_application_open":{"format":"date-time","type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"is_active":{"type":"boolean"},"location":{"type":["string","null"]},"location_url":{"type":["string","null"]},"max_attendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvp_deadline":{"format":"date-time","type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","description","location","location_url","max_attendees","application_open","application_close","rsvp_deadline","decision_release","start_time","end_time","is_active","created_at","updated_at","banner","application_review_started","accept_early_applications","early_application_open","early_application_close"],"type":"object"},"HackerApplication":{"additionalProperties":false,"properties":{"application":{"contentEncoding":"base64","type":"string"},"createdAt":{"format":"date-time","type":"string"},"hackathonId":{"type":"string"},"savedAt":{"format":"date-time","type":"string"},"status":{"type":"string"},"submittedAt":{"format":"date-time","type":["string","null"]},"updatedAt":{"format":"date-time","type":"string"},"userId":{"type":"string"}},"required":["userId","status","application","createdAt","savedAt","updatedAt","submittedAt","hackathonId"],"type":"object"},"ListJoinRequestsByTeamAndStatusWithUserRow":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_email":{"type":["string","null"]},"user_id":{"type":"string"},"user_image":{"type":["string","null"]},"user_name":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at","user_email","user_name","user_image"],"type":"object"},"MemberWithUserInfo":{"additionalProperties":false,"properties":{"email":{"type":["string","null"]},"image":{"type":["string","null"]},"joinedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"userID":{"type":"string"}},"required":["userID","email","image","name","joinedAt"],"type":"object"},"OnboardingRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"OpenWorkshop":{"additionalProperties":false,"properties":{"attendees":{"format":"int64","type":"integer"},"description":{"type":"string"},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":"string"},"presenter":{"type":"string"},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"}},"required":["id","title","start_time","end_time","location","description","presenter","attendees"],"type":"object"},"PublicHackathon":{"additionalProperties":false,"properties":{"acceptEarlyApplications":{"type":"boolean"},"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"banner":{"type":["string","null"]},"description":{"type":["string","null"]},"earlyApplicationClose":{"format":"date-time","type":["string","null"]},"earlyApplicationOpen":{"format":"date-time","type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"required":["id","name","description","location","locationUrl","applicationOpen","applicationClose","acceptEarlyApplications","earlyApplicationOpen","earlyApplicationClose","rsvpDeadline","startTime","endTime","banner"],"type":"object"},"QueueConfirmationEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"}},"required":["email","firstName"],"type":"object"},"QueueTextEmailRequest":{"additionalProperties":false,"properties":{"body":{"minLength":1,"type":"string"},"subject":{"minLength":1,"type":"string"},"to":{"items":{"type":"string"},"type":["array","null"]}},"required":["to","subject","body"],"type":"object"},"QueueWelcomeEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"recipientId":{"type":"string"}},"required":["email","firstName","recipientId"],"type":"object"},"Redeemable":{"additionalProperties":false,"properties":{"amount":{"format":"int32","type":"integer"},"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"max_user_amount":{"format":"int32","type":"integer"},"name":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","amount","max_user_amount","created_at","updated_at","hackathon_id"],"type":"object"},"ReviewRatings":{"additionalProperties":false,"properties":{"experienceRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"},"passionRating":{"format":"int64","maxLength":5,"minLength":1,"type":"integer"}},"required":["passionRating","experienceRating"],"type":"object"},"ReviewerAssignment":{"additionalProperties":false,"properties":{"amount":{"format":"int64","type":["integer","null"]},"userID":{"type":"string"}},"required":["userID","amount"],"type":"object"},"SubmissionResult":{"additionalProperties":false,"properties":{"submittedAt":{"format":"date-time","type":["string","null"]}},"required":["submittedAt"],"type":"object"},"SubmitInterestEmailRequest":{"additionalProperties":false,"properties":{"email":{"type":"string"},"source":{"type":["string","null"]}},"required":["email","source"],"type":"object"},"Team":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"hackathon_id":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"owner_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","name","owner_id","created_at","updated_at","hackathon_id"],"type":"object"},"TeamJoinRequest":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"id":{"type":"string"},"processed_at":{"format":"date-time","type":["string","null"]},"processed_by_user_id":{"type":"string"},"request_message":{"type":["string","null"]},"status":{"type":"string"},"team_id":{"type":"string"},"updated_at":{"format":"date-time","type":"string"},"user_id":{"type":"string"}},"required":["id","team_id","user_id","request_message","status","processed_by_user_id","processed_at","created_at","updated_at"],"type":"object"},"TeamWithMembers":{"additionalProperties":false,"properties":{"id":{"type":"string"},"members":{"items":{"$ref":"#/components/schemas/MemberWithUserInfo"},"type":["array","null"]},"name":{"type":"string"},"ownerId":{"type":"string"}},"required":["id","ownerId","name","members"],"type":"object"},"UpdateEmailConsentRequest":{"additionalProperties":false,"properties":{"emailConsent":{"type":"boolean"}},"required":["emailConsent"],"type":"object"},"UpdateHackathonRequest":{"additionalProperties":false,"properties":{"applicationClose":{"format":"date-time","type":"string"},"applicationOpen":{"format":"date-time","type":"string"},"decisionRelease":{"format":"date-time","type":["string","null"]},"description":{"type":["string","null"]},"endTime":{"format":"date-time","type":"string"},"location":{"type":["string","null"]},"locationUrl":{"type":["string","null"]},"maxAttendees":{"format":"int32","type":["integer","null"]},"name":{"type":"string"},"rsvpDeadline":{"format":"date-time","type":["string","null"]},"startTime":{"format":"date-time","type":"string"}},"type":"object"},"UpdateRedeemableRequest":{"additionalProperties":false,"properties":{"maxUserAmount":{"format":"int64","type":"integer"},"name":{"type":"string"},"totalStock":{"format":"int64","type":"integer"}},"type":"object"},"UpdateRedemptionRequest":{"additionalProperties":false,"properties":{"newAmount":{"format":"int64","type":"integer"}},"type":"object"},"UpdateUserRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"preferredEmail":{"type":"string"}},"required":["name","preferredEmail"],"type":"object"},"UpdateWorkshopInput":{"additionalProperties":false,"properties":{"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":["string","null"]},"location":{"type":["string","null"]},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":["string","null"]},"title":{"type":["string","null"]}},"required":["title","description","start_time","end_time","location","presenter"],"type":"object"},"User":{"additionalProperties":false,"properties":{"checked_in_at":{"format":"date-time","type":["string","null"]},"created_at":{"format":"date-time","type":"string"},"email":{"type":["string","null"]},"email_consent":{"type":"boolean"},"email_verified":{"type":"boolean"},"id":{"type":"string"},"image":{"type":["string","null"]},"name":{"type":"string"},"onboarded":{"type":"boolean"},"preferred_email":{"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"type":"string"},"role_assigned_at":{"format":"date-time","type":["string","null"]},"updated_at":{"format":"date-time","type":"string"},"has_seen_new_application_status":{"type":["boolean","null"]}},"required":["id","name","email","email_verified","onboarded","image","created_at","updated_at","preferred_email","email_consent","checked_in_at","rfid","role_assigned_at","role","has_seen_new_application_status"],"type":"object"},"UserContext":{"additionalProperties":false,"properties":{"checkedInAt":{"format":"date-time","type":["string","null"]},"email":{"examples":["user@example.com"],"type":["string","null"]},"emailConsent":{"examples":[false],"type":"boolean"},"image":{"examples":["https://cdn.example.com/avatar.png"],"type":["string","null"]},"name":{"examples":["Jane Doe"],"type":"string"},"onboarded":{"examples":[true],"type":"boolean"},"preferredEmail":{"examples":["user.alt@example.com"],"type":["string","null"]},"rfid":{"type":["string","null"]},"role":{"enum":["admin","staff","attendee","applicant","visitor"],"type":"string"},"userId":{"examples":["550e8400-e29b-41d4-a716-446655440000"],"format":"uuid","type":"string"},"hasSeenNewApplicationStatus":{"type":["boolean","null"]}},"required":["userId","email","preferredEmail","name","onboarded","image","role","emailConsent","rfid","checkedInAt","hasSeenNewApplicationStatus"],"type":"object"},"Workshop":{"additionalProperties":false,"properties":{"created_at":{"format":"date-time","type":"string"},"description":{"type":["string","null"]},"end_time":{"format":"date-time","type":"string"},"id":{"type":"string"},"location":{"type":["string","null"]},"num_attendees":{"format":"int32","type":"integer"},"presenter":{"type":["string","null"]},"start_time":{"format":"date-time","type":"string"},"title":{"type":"string"},"updated_at":{"format":"date-time","type":"string"}},"required":["id","title","description","start_time","end_time","num_attendees","location","presenter","created_at","updated_at"],"type":"object"}}},"info":{"title":"SwampHacks API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/application":{"get":{"description":"Get the application of the current user","operationId":"get-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HackerApplication"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application","tags":["Application"]}},"/application/accept-acceptance":{"patch":{"description":"Accept an acceptance after being accepted. Sets event role to attendee, from applicant.","operationId":"accept-application-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Application Acceptance","tags":["Application"]}},"/application/assigned":{"get":{"description":"Returns assigned applications and their review progress for the authenticated reviewer","operationId":"get-assigned-applications","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AssignedApplication"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Assigned Applications","tags":["Application"]}},"/application/calculate-admissions":{"post":{"description":"Queues an admission calculation task to the BAT worker","operationId":"calculate-admissions-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Admissions Calculation Request","tags":["Application"]}},"/application/join-waitlist":{"patch":{"description":"Adds a waitlist join time to application. Sets status to waitlisted","operationId":"join-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Join Waitlist","tags":["Application"]}},"/application/release-decisions/{runId}":{"post":{"description":"Releases decisions that were calculated by the worker from a specific run id","operationId":"release-decisions","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"runId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Release Decisions","tags":["Application"]}},"/application/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for the user's specific object, which is their uploaded resume. The client can use this URL to download the object.","operationId":"get-download-resume-url","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume Download URL","tags":["Application"]},"put":{"description":"Replaces the resume of an already-submitted application without modifying any question responses.","operationId":"replace-resume","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"resume":{"contentType":"application/pdf"}},"schema":{"properties":{"resume":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["resume"],"type":"object"}}}},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Replace Resume","tags":["Application"]}},"/application/review/assign":{"post":{"description":"Assigns applications to reviewers for the application review process.","operationId":"assign-application-reviewers","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ReviewerAssignment"},"type":["array","null"]}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Application Reviewers","tags":["Application"]}},"/application/review/reset":{"post":{"description":"Resets all application reviews, clearing any existing reviewer assignments.","operationId":"reset-application-reviews","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reset Application Reviews","tags":["Application"]}},"/application/review/{applicantId}":{"post":{"description":"Handles ratings submissions from staff during the application review process","operationId":"submit-application-review","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRatings"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application Review","tags":["Application"]}},"/application/review/{applicantId}/resume":{"get":{"description":"Returns a presigned S3 URL with GET permission for a specific user's resume as an object. The client can use this URL to download the object temporarily for application review.","operationId":"get-resume","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"applicantId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Resume URL (for review process)","tags":["Application"]}},"/application/save":{"post":{"description":"Save user's progress on the application. File/Upload fields are not saved (eg. resumes).","operationId":"save-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}}},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Save Application","tags":["Application"]}},"/application/stats":{"get":{"description":"Aggregates applications by race, gender, age, majors, and schools","operationId":"get-application-statistics","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationStatistics"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Application Statistics","tags":["Application"]}},"/application/submit":{"post":{"description":"Submit the application","operationId":"submit-application","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResult"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Application","tags":["Application"]}},"/application/transition-waitlisted-applications":{"patch":{"description":"Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected.","operationId":"transition-waitlist","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Transition Waitlisted Applications","tags":["Application"]}},"/application/withdraw-acceptance":{"patch":{"description":"Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected.","operationId":"withdraw-acceptance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Acceptance","tags":["Application"]}},"/application/withdraw-attendance":{"patch":{"description":"Withdraw attendance after accepting to go to the hackathon. Sets application status from accepted to withdrawn. Sets event role from attendee, back to applicant.","operationId":"withdraw-attendance","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Withdraw Attendance","tags":["Application"]}},"/auth/callback":{"get":{"description":"Handles the OAuth provider callback, validates state and nonce, and sets the session cookie.","operationId":"oauth-callback","parameters":[{"description":"OAuth authorization code","explode":false,"in":"query","name":"code","required":true,"schema":{"description":"OAuth authorization code","type":"string"}},{"description":"Base64 encoded OAuth state","explode":false,"in":"query","name":"state","required":true,"schema":{"description":"Base64 encoded OAuth state","type":"string"}},{"description":"Auth nonce cookie for CSRF protection","in":"cookie","name":"sh_auth_nonce","required":true,"schema":{"description":"Auth nonce cookie for CSRF protection","type":"string"}},{"description":"Client user agent","in":"header","name":"User-Agent","schema":{"description":"Client user agent","type":"string"}}],"responses":{"204":{"description":"No Content","headers":{"Location":{"schema":{"type":"string"}},"Set-Cookie":{"schema":{"type":"string"}}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"},"501":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Implemented"}},"summary":"OAuth Callback","tags":["Auth"]}},"/auth/logout":{"post":{"description":"Logs out the authenticated user by invalidating their session","operationId":"logout","responses":{"204":{"description":"No Content","headers":{"Set-Cookie":{"schema":{"type":"string"}}}},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Logout","tags":["Auth"]}},"/email/queue-confirmation-email":{"post":{"description":"Pushes a confirmation email request to the task queue","operationId":"queue-confirmation-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueConfirmationEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Confirmation Email","tags":["Email"]}},"/email/queue-text-email":{"post":{"description":"Pushes a text email request to the task queue","operationId":"queue-text-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueTextEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Text Email","tags":["Email"]}},"/email/queue-welcome-email":{"post":{"description":"Pushes a welcome email request to the task queue","operationId":"queue-welcome-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueWelcomeEmailRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Queue Welcome Email","tags":["Email"]}},"/email/send-welcome-emails":{"post":{"description":"Send welcome emails to all attendees","operationId":"send-welcome-emails","responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Send Welcome Emails","tags":["Email"]}},"/hackathon":{"get":{"description":"Returns public information of the hackathon","operationId":"get-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon","tags":["Hackathon"]},"patch":{"description":"Updates the information of the hackathon","operationId":"update-hackathon","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateHackathonRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Hackathon","tags":["Hackathon"]}},"/hackathon/attendees/count":{"get":{"description":"Returns the number of users who is attending the hackathon","operationId":"get-hackathon-attendees-count","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"format":"int64","type":"integer"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees Count","tags":["Hackathon"]}},"/hackathon/attendees/discord":{"get":{"description":"Returns all users with a discord account that is also attending the hackathon","operationId":"get-hackathon-attendees-with-discord","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetAttendeesWithDiscordRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees with Discord","tags":["Hackathon"]}},"/hackathon/attendees/userids":{"get":{"description":"Returns all users ids of users who are attending the hackathon","operationId":"get-hackathon-attendees-userids","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"type":"string"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Attendees User Ids","tags":["Hackathon"]}},"/hackathon/banner":{"delete":{"description":"Deletes the banner","operationId":"delete-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Banner","tags":["Hackathon"]},"post":{"description":"Uploads an image to be used as the banner for the hackathon","operationId":"upload-banner","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"image":{"contentType":"image/png, image/jpeg, image/jpg"}},"schema":{"properties":{"image":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["image"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":["string","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Upload Banner","tags":["Hackathon"]}},"/hackathon/checkin":{"post":{"description":"Staff route for checking a user to an event. The user to check in must be an attendee and have never been checked in yet.","operationId":"check-in","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Check In User","tags":["Hackathon"]}},"/hackathon/detailed":{"get":{"description":"Returns all information of the hackathon","operationId":"get-hackathon-for-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Hackathon"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Detailed Hackathon","tags":["Hackathon"]}},"/hackathon/interest":{"post":{"description":"Submits an email to interest/mailing list for the hackathon","operationId":"submit-interest-email","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitInterestEmailRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Submit Interest Email","tags":["Hackathon"]}},"/hackathon/staff":{"get":{"description":"Returns the users who are part of the current staff of the hackathon","operationId":"get-hackathon-staff","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Hackathon Staff","tags":["Hackathon"]}},"/ping":{"get":{"description":"Health Check","operationId":"ping","responses":{"200":{"content":{"application/json":{"schema":{"type":"string"}}},"description":"OK"},"default":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Error"}},"summary":"Ping","tags":["Misc"]}},"/redeemables":{"get":{"description":"Returns a list of all redeemable items","operationId":"get-redeemables","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/GetRedeemablesRow"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Redeemables","tags":["Redeemables"]},"post":{"description":"Creates a new redeemable item","operationId":"create-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRedeemableRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Redeemable"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}":{"delete":{"description":"Deletes a redeemable by id","operationId":"delete-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete Redeemable","tags":["Redeemables"]},"patch":{"description":"Update specific fields (name, stock, max per user) of a redeemable","operationId":"update-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedeemableRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redeemable","tags":["Redeemables"]}},"/redeemables/{redeemableId}/users/{userID}":{"patch":{"description":"Updates a redemption created by the user.","operationId":"update-redemption","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRedemptionRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Redemption","tags":["Redeemables"]},"post":{"description":"Redeems a redeemable by id. Creates a redemption record linking a specific user to a redeemable item","operationId":"redeem-redeemable","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"redeemableId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Redeem Redeemable","tags":["Redeemables"]}},"/teams":{"post":{"description":"Creates a new team and assigns the user as the owner. Returns the team.","operationId":"create-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Team"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create Team","tags":["Team"]}},"/teams/me":{"get":{"description":"Returns the team information and the full list of team members for the currently authenticated user","operationId":"get-my-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get My Team","tags":["Team"]}},"/teams/me/pending-joins":{"get":{"description":"Returns the current user's pending requests for teams.","operationId":"get-my-pending-join-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TeamJoinRequest"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User's Pending Join Requests","tags":["Team"]}},"/teams/{requestId}/accept":{"post":{"description":"Accepts a pending team join request. Only the team owner can perform this action.","operationId":"accept-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Accept Team Join Request","tags":["Team"]}},"/teams/{requestId}/reject":{"post":{"description":"Rejects a pending team join request. Only the team owner can perform this action.","operationId":"reject-team-join-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"requestId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Reject Team Join Request","tags":["Team"]}},"/teams/{teamId}":{"get":{"description":"Returns the team information and the full list of team members by team id","operationId":"get-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamWithMembers"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Team","tags":["Team"]}},"/teams/{teamId}/join":{"post":{"description":"Requests to join a team or fails if user is already on a team.","operationId":"create-join-team-request","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJoinRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamJoinRequest"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Request to Join Team","tags":["Team"]}},"/teams/{teamId}/kick/{memberId}":{"post":{"description":"Kicks a member from a team. Only the team owner can perform this action.","operationId":"kick-member-from-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"memberId","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Kick Team Member","tags":["Team"]}},"/teams/{teamId}/leave":{"post":{"description":"Leaves a team if the user is on the team.","operationId":"leave-team","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Leave Team","tags":["Team"]}},"/teams/{teamId}/pending-joins":{"get":{"description":"Returns a team's pending join requests. This is only allowed for the team's owner.","operationId":"get-pending-join-team-requests","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"teamId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ListJoinRequestsByTeamAndStatusWithUserRow"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Forbidden"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Pending Join Requests for Team","tags":["Team"]}},"/users":{"get":{"description":"Get or search for users by name or email. If no search term is provided, returns all users with pagination.","operationId":"get-users","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"explode":false,"in":"query","name":"search","schema":{"type":"string"}},{"explode":false,"in":"query","name":"limit","schema":{"default":50,"format":"int64","type":"integer"}},{"explode":false,"in":"query","name":"offset","schema":{"default":0,"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":["array","null"]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Users","tags":["Users"]}},"/users/email/{email}":{"get":{"description":"Returns the user associated with the email","operationId":"get-user-by-email","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Email","tags":["Users"]}},"/users/me":{"get":{"description":"Returns the authenticated user's profile","operationId":"get-me","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserContext"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get Me","tags":["Users"]},"patch":{"description":"Updates information of the authenticated user","operationId":"update-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update User","tags":["Users"]}},"/users/me/email-consent":{"patch":{"description":"Updates the user's email consent setting","operationId":"update-email-consent","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailConsentRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update Email Consent","tags":["Users"]}},"/users/me/onboarding":{"patch":{"description":"Allows the user to submit information such as name and preferred email, and complete the onboarding process","operationId":"onboard-user","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Onboard User","tags":["Users"]}},"/users/rfid/{rfid}":{"get":{"description":"Returns the user associated with the RFID","operationId":"get-user-by-rfid","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"rfid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By RFID","tags":["Users"]}},"/users/roles/assign":{"post":{"description":"Assigns/modify a user's role","operationId":"assign-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Assign Role","tags":["Users"]}},"/users/roles/batch-assign":{"post":{"description":"Batch assign/modify multiple users' roles","operationId":"batch-assign-roles","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoleBatchRequest"}}},"required":true},"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Batch Assign Roles","tags":["Users"]}},"/users/roles/revoke/{userID}":{"post":{"description":"Remove a user's role","operationId":"revoke-role","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Revoke Role","tags":["Users"]}},"/users/userid/{userID}":{"get":{"description":"Returns the user associated with the user id","operationId":"get-user-by-id","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"userID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get User By Id","tags":["Users"]}},"/workshops":{"get":{"description":"Returns a list of all workshops.","operationId":"get-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get all UPCOMING workshops","tags":["Workshops"]},"post":{"description":"Creates a workshop based on the provided body.","operationId":"create-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Create a workshop","tags":["Workshops"]}},"/workshops/delete-all":{"delete":{"description":"Deletes all the workshops","operationId":"delete-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete all workshops","tags":["Workshops"]}},"/workshops/view-all":{"get":{"description":"Returns a list of all workshops, including past workshops.","operationId":"view-all-workshops","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Workshop"},"type":["array","null"]}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"View all workshops ever made","tags":["Workshops"]}},"/workshops/{workshopId}":{"delete":{"description":"Deletes a workshop based on the provided id.","operationId":"delete-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Delete a workshop","tags":["Workshops"]},"get":{"description":"Returns a workshop based on the provided id.","operationId":"get-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Get a workshop off of workshopID","tags":["Workshops"]},"patch":{"description":"Updates a workshop based on the provided id and body. Only the fields provided in the body will be updated.","operationId":"update-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkshopInput"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Update a workshop","tags":["Workshops"]}},"/workshops/{workshopId}/register":{"delete":{"description":"Lets a user unregister for a workshop.","operationId":"unregister-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Unregister for a workshop","tags":["Workshops"]},"post":{"description":"Lets a user register for a workshop.","operationId":"register-for-workshop","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"workshopId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenWorkshop"}}},"description":"OK"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Not Found"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Register for a workshop","tags":["Workshops"]}},"/users/me/acknowledge-new-application-status":{"post":{"description":"Mark that the user has seen their new application status","operationId":"update-has-seen-new-application-status","parameters":[{"description":"Session cookie used to authenticate the user","in":"cookie","name":"sh_session_id","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Unauthorized"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}},"description":"Internal Server Error"}},"summary":"Acknowledge New Application Status","tags":["Users"]}}}} \ No newline at end of file diff --git a/apps/api/internal/api/api.go b/apps/api/internal/api/api.go index ad68834c..2dc339d7 100644 --- a/apps/api/internal/api/api.go +++ b/apps/api/internal/api/api.go @@ -19,7 +19,6 @@ import ( "github.com/swamphacks/core/apps/api/internal/database/repository" "github.com/swamphacks/core/apps/api/internal/domains/application" "github.com/swamphacks/core/apps/api/internal/domains/auth" - "github.com/swamphacks/core/apps/api/internal/domains/bat" "github.com/swamphacks/core/apps/api/internal/domains/email" "github.com/swamphacks/core/apps/api/internal/domains/hackathon" "github.com/swamphacks/core/apps/api/internal/domains/redeemables" @@ -80,7 +79,7 @@ func Run() { })) humaConfig := huma.DefaultConfig("SwampHacks API", "1.0.0") - humaConfig.DocsRenderer = huma.DocsRendererScalar + humaConfig.DocsRenderer = huma.DocsRendererSwaggerUI humaConfig.CreateHooks = nil // TODO: figure out a way to override the default schema name @@ -111,12 +110,10 @@ func Run() { accountRepo := repository.NewAccountRespository(db) sessionRepo := repository.NewSessionRepository(db) hackathonRepo := repository.NewHackathonRepository(db) - applicationRepo := repository.NewApplicationRepository(db) teamRepo := repository.NewTeamRespository(db) teamMemberRepo := repository.NewTeamMemberRespository(db) teamJoinRequestRepo := repository.NewTeamJoinRequestRepository(db) redeemablesRepo := repository.NewRedeemablesRepository(db) - batRunsRepo := repository.NewBatRunsRepository(db) eventInterestsRepo := repository.NewEventInterestsRepository(db) workshopRepo := repository.NewWorkshopsRepository(db) emailCampaignRepo := repository.NewEmailCampaignRepository(db) @@ -144,9 +141,9 @@ func Run() { emailCampaignHandler := email.NewCampaignHandler(emailCampaignService, logger) email.RegisterCampaignRoutes(emailCampaignHandler, huma.NewGroup(api, "/email"), mw) - batService := bat.NewBatService(applicationRepo, hackathonRepo, userRepo, batRunsRepo, emailService, txm, taskQueueClient, nil, config, logger) - applicationService := application.NewService(applicationRepo, userRepo, hackathonRepo, txm, r2Client, &config.CoreBuckets, nil, emailService, batService, config, logger) - applicationHandler := application.NewHandler(applicationService, batService, config, logger) + // batService := bat.NewBatService(applicationRepo, hackathonRepo, userRepo, batRunsRepo, emailService, txm, taskQueueClient, nil, config, logger) + applicationService := application.NewService(db, txm, r2Client, &config.CoreBuckets, nil, emailService, config, logger) + applicationHandler := application.NewHandler(applicationService, config, logger) application.RegisterRoutes(applicationHandler, huma.NewGroup(api, "/application"), mw) teamService := teams.NewService(teamRepo, teamMemberRepo, teamJoinRequestRepo, hackathonRepo, userRepo, txm, logger) diff --git a/apps/api/internal/database/database.go b/apps/api/internal/database/database.go index aa2e9ac1..95db3625 100644 --- a/apps/api/internal/database/database.go +++ b/apps/api/internal/database/database.go @@ -41,6 +41,15 @@ func NewDB(connStr string) *DB { return &db } +func (d *DB) NewTX(tx pgx.Tx) *DB { + txDB := DB{ + Pool: d.Pool, + Query: sqlc.New(tx), + } + + return &txDB +} + func (d *DB) Close() { d.Pool.Close() } diff --git a/apps/api/internal/database/migrations/20260618145942_applications_add_id_column.sql b/apps/api/internal/database/migrations/20260618145942_applications_add_id_column.sql new file mode 100644 index 00000000..98999f79 --- /dev/null +++ b/apps/api/internal/database/migrations/20260618145942_applications_add_id_column.sql @@ -0,0 +1,21 @@ +-- +goose Up +alter table applications drop column if exists waitlist_join_time; + +alter table applications add id uuid not null default gen_random_uuid(); + +alter table applications drop constraint applications_pkey; + +alter table applications add primary key (id); + +alter table applications add constraint one_application_per_user unique (user_id, hackathon_id); + +-- +goose Down +alter table applications add waitlist_join_time timestamptz; + +alter table applications drop constraint one_application_per_user; + +alter table applications drop constraint applications_pkey; + +alter table applications drop column if exists id; + +alter table applications add primary key (user_id); \ No newline at end of file diff --git a/apps/api/internal/database/migrations/20260618162831_application_reviews_and_decision_requests.sql b/apps/api/internal/database/migrations/20260618162831_application_reviews_and_decision_requests.sql new file mode 100644 index 00000000..e62c1b3f --- /dev/null +++ b/apps/api/internal/database/migrations/20260618162831_application_reviews_and_decision_requests.sql @@ -0,0 +1,66 @@ +-- +goose Up +alter table applications drop column if exists experience_rating; +alter table applications drop column if exists passion_rating; +alter table applications drop column if exists assigned_reviewer_id; + +create table application_reviews ( + id uuid default gen_random_uuid() not null primary key, + + application_id uuid not null references applications(id) on delete cascade, + reviewer_id uuid not null references users(id) on delete cascade, + + experience_rating integer, + passion_rating integer, + notes text, + + updated_by uuid references users(id) on delete set null, + + created_at timestamptz not null default now(), + updated_at timestamptz not null default now(), + + UNIQUE(application_id, reviewer_id) +); + +create type application_auto_decision_type as enum ( + 'auto_accept', + 'auto_reject' +); + +create table application_auto_decision_requests ( + id uuid default gen_random_uuid() not null primary key, + + application_id uuid not null references applications(id) on delete cascade, + reviewer_id uuid not null references users(id) on delete cascade, + + requested_decision application_auto_decision_type not null, + justification text, + approved boolean, + decided_by uuid references users(id) on delete set null, + + updated_at timestamptz not null default now(), + created_at timestamptz not null default now(), + + UNIQUE(application_id, reviewer_id) +); + +create trigger application_auto_decision_requests_updated_at +before update on application_auto_decision_requests +for each row +execute function update_modified_column(); + +-- +goose Down +drop table application_auto_decision_requests; +drop type application_auto_decision_type; +drop trigger if exists application_auto_decision_requests_updated_at + on application_auto_decision_requests; + +drop table application_reviews; + +alter table applications + add column experience_rating integer; + +alter table applications + add column passion_rating integer; + +alter table applications + add column assigned_reviewer_id uuid references users on delete set null; \ No newline at end of file diff --git a/apps/api/internal/database/queries/application_reviews.sql b/apps/api/internal/database/queries/application_reviews.sql new file mode 100644 index 00000000..dfaead51 --- /dev/null +++ b/apps/api/internal/database/queries/application_reviews.sql @@ -0,0 +1,147 @@ +-- name: AssignReviewerToApplications :exec +INSERT INTO application_reviews ( + application_id, + reviewer_id +) +SELECT applications.id, @reviewer_id::uuid FROM applications +WHERE applications.id = ANY(@application_ids::uuid[]) +ON CONFLICT DO NOTHING; + +-- name: ListReviewsByReviewerId :many +SELECT + ar.*, + applications.user_id +FROM application_reviews ar +JOIN applications ON applications.id = ar.application_id +WHERE reviewer_id = @reviewer_id +ORDER BY application_id ASC; + +-- name: ListApplicationReviewersById :many +SELECT reviewer_id FROM application_reviews +WHERE application_id = @application_id; + +-- name: ListReviewersAndProgress :many +SELECT + reviewer.id, + reviewer.name, + reviewer.image, + COUNT(*) AS total_assigned, + COUNT(*) FILTER ( + WHERE ar.experience_rating IS NOT NULL AND ar.passion_rating IS NOT NULL + ) AS completed_count +FROM application_reviews AS ar +LEFT JOIN users AS reviewer + ON reviewer.id = ar.reviewer_id +GROUP BY + reviewer.id; + +-- name: GetReviewById :one +SELECT + ar.*, + aadr.requested_decision, + aadr.id AS decision_request_id, + aadr.justification AS decision_justification, + aadr.approved AS decision_approved, + aadr.decided_by AS decision_decided_by, + aadr.created_at AS decision_request_created_at, + applications.user_id, + applications.application +FROM application_reviews AS ar +JOIN applications ON applications.id = ar.application_id +LEFT JOIN application_auto_decision_requests AS aadr ON aadr.application_id = ar.application_id +WHERE ar.id = @review_id; + +-- name: UpdateApplicationReview :exec +UPDATE application_reviews +SET + experience_rating = CASE WHEN @experience_rating_do_update::boolean THEN @experience_rating ELSE experience_rating END, + passion_rating = CASE WHEN @passion_rating_do_update::boolean THEN @passion_rating ELSE passion_rating END, + notes = CASE WHEN @notes_do_update::boolean THEN @notes ELSE notes END, + updated_by = CASE WHEN @updated_by_do_update::boolean THEN @updated_by ELSE updated_by END, + updated_at = NOW() +WHERE + id = @id AND + reviewer_id = @reviewer_id; + +-- name: DeleteAllApplicationReviews :exec +DELETE FROM application_reviews; + +-- name: RequestAutoDecision :one +INSERT INTO application_auto_decision_requests (application_id, reviewer_id, requested_decision, justification, approved, decided_by) +VALUES (@application_id, @reviewer_id, @requested_decision, @justification, @approved, @decided_by) RETURNING *; + +-- name: GetAutoDecisionRequestsCount :one +SELECT COUNT(*) FROM application_auto_decision_requests; + +-- name: SearchAutoDecisionRequests :many +SELECT + aadr.*, + reviewer.name AS reviewer_name, + reviewer.image AS reviewer_image, + approver.id AS approver_id, + approver.name AS approver_name, + approver.image AS approver_image, + applicant.id AS user_id, + applicant.name AS user_name, + applicant.image AS user_image +FROM application_auto_decision_requests AS aadr +JOIN users AS reviewer + ON reviewer.id = aadr.reviewer_id +JOIN applications + ON applications.id = aadr.application_id +JOIN users AS applicant + ON applicant.id = applications.user_id +LEFT JOIN users AS approver + ON approver.id = aadr.decided_by +WHERE (LOWER(reviewer.name) LIKE LOWER('%' || COALESCE(sqlc.arg('search'), '') || '%') + OR LOWER(applicant.name) LIKE LOWER('%' || COALESCE(sqlc.arg('search'), '') || '%')) + AND ( + sqlc.arg('approved')::text = 'all' + OR (sqlc.arg('approved')::text = 'pending' AND aadr.approved IS NULL) + OR (sqlc.arg('approved')::text = 'approved' AND aadr.approved = true) + OR (sqlc.arg('approved')::text = 'denied' AND aadr.approved = false) + ) + AND ( + sqlc.narg('decision')::application_auto_decision_type IS NULL + OR aadr.requested_decision = sqlc.narg('decision')::application_auto_decision_type + ) +ORDER BY aadr.created_at DESC +LIMIT sqlc.arg('limit') OFFSET sqlc.arg('offset'); + +-- name: ListAutoDecisionRequests :many +SELECT + aadr.*, + reviewer.name AS reviewer_name, + reviewer.image AS reviewer_image, + approver.id AS approver_id, + approver.name AS approver_name, + approver.image AS approver_image, + applicant.id AS user_id, + applicant.name AS user_name, + applicant.image AS user_image +FROM application_auto_decision_requests AS aadr +JOIN users AS reviewer + ON reviewer.id = aadr.reviewer_id +JOIN applications + ON applications.id = aadr.application_id +JOIN users AS applicant + ON applicant.id = applications.user_id +LEFT JOIN users AS approver + ON approver.id = aadr.decided_by +ORDER BY aadr.created_at DESC; + +-- name: DeleteAutoDecisionRequest :exec +DELETE FROM application_auto_decision_requests +WHERE id = @id AND reviewer_id = @reviewer_id; + +-- name: UpdateAutoDecisionRequest :exec +UPDATE application_auto_decision_requests +SET + requested_decision = CASE WHEN @requested_decision_do_update::boolean AND @requested_decision <> '' THEN @requested_decision::application_auto_decision_type ELSE requested_decision END, + justification = CASE WHEN @justification_do_update::boolean THEN @justification ELSE justification END, + approved = CASE WHEN @approved_do_update::boolean THEN @approved ELSE approved END, + decided_by = CASE WHEN @approved_by_do_update::boolean THEN @decided_by ELSE decided_by END +WHERE id = @id AND reviewer_id = @reviewer_id; + +-- name: DeleteAllAutoDecisionRequests :exec +DELETE FROM application_auto_decision_requests; \ No newline at end of file diff --git a/apps/api/internal/database/queries/stats.sql b/apps/api/internal/database/queries/application_stats.sql similarity index 91% rename from apps/api/internal/database/queries/stats.sql rename to apps/api/internal/database/queries/application_stats.sql index 8f1475ec..c6977a2f 100644 --- a/apps/api/internal/database/queries/stats.sql +++ b/apps/api/internal/database/queries/application_stats.sql @@ -1,6 +1,6 @@ -- Queries used for statistics, mainly used by overview dashboards etc --- name: GetApplicationGenderSplit :one +-- name: GetSubmittedApplicationGenders :one SELECT COUNT(*) FILTER (WHERE application->>'gender' = 'man') AS male, COUNT(*) FILTER (WHERE application->>'gender' = 'woman') AS female, @@ -9,7 +9,7 @@ SELECT FROM applications WHERE status <> 'started' AND status IS NOT NULL; --- name: GetApplicationAgeSplit :one +-- name: GetSubmittedApplicationAges :one SELECT COUNT(*) FILTER (WHERE (application->>'age')::int < 18) AS underage, COUNT(*) FILTER (WHERE (application->>'age')::int = 18) AS age_18, @@ -21,7 +21,7 @@ SELECT FROM applications WHERE status <> 'started' AND status IS NOT NULL; --- name: GetApplicationRaceSplit :many +-- name: GetSubmittedApplicationRaces :many SELECT CASE WHEN application->>'race' IS NOT NULL AND application->>'race' <> '' THEN application->>'race' @@ -39,7 +39,7 @@ GROUP BY END ORDER BY count DESC; --- name: GetApplicationSchoolSplit :many +-- name: GetSubmittedApplicationSchools :many SELECT (application->>'school')::text AS school, COUNT(*) AS count @@ -48,7 +48,7 @@ WHERE status <> 'started' AND status IS NOT NULL GROUP BY (application->>'school')::text ORDER BY count DESC; --- name: GetApplicationMajorSplit :many +-- name: GetSubmittedApplicationMajors :many SELECT trim(major) AS major, COUNT(*) AS count @@ -58,7 +58,7 @@ WHERE status <> 'started' AND status IS NOT NULL GROUP BY trim(major) ORDER BY count DESC; --- name: GetApplicationStatusSplit :one +-- name: GetApplicationStatuses :one SELECT COUNT(*) FILTER (WHERE status = 'started') AS started, COUNT(*) FILTER (WHERE status = 'submitted') AS submitted, diff --git a/apps/api/internal/database/queries/applications.sql b/apps/api/internal/database/queries/applications.sql index 717cc9f5..a5f9f3ec 100644 --- a/apps/api/internal/database/queries/applications.sql +++ b/apps/api/internal/database/queries/applications.sql @@ -1,41 +1,96 @@ -- name: CreateApplication :one -INSERT INTO applications (user_id, hackathon_id, is_early) VALUES ($1, $2, $3) RETURNING *; +INSERT INTO applications (user_id, hackathon_id, is_early) VALUES (@user_id, @hackathon_id, @is_early) RETURNING *; + +-- name: GetApplicationById :one +SELECT * FROM applications WHERE id = @id; -- name: GetApplicationByUserId :one -SELECT * FROM applications WHERE user_id = $1; +SELECT * FROM applications WHERE user_id = @user_id; + +-- name: UpdateApplicationById :exec +UPDATE applications +SET + status = CASE WHEN @status_do_update::boolean THEN @status::application_status ELSE status END, + application = CASE WHEN @application_do_update::boolean THEN @application::JSONB ELSE application END, + submitted_at = CASE WHEN @submitted_at_do_update::boolean THEN @submitted_at::timestamptz ELSE submitted_at END, + saved_at = CASE WHEN @saved_at_do_update::boolean THEN @saved_at::timestamptz ELSE saved_at END, + is_early = CASE WHEN @is_early_do_update::boolean THEN @is_early::boolean ELSE is_early END +WHERE + id = @id; --- name: UpdateApplication :exec +-- name: UpdateApplicationByUserId :exec UPDATE applications SET status = CASE WHEN @status_do_update::boolean THEN @status::application_status ELSE status END, application = CASE WHEN @application_do_update::boolean THEN @application::JSONB ELSE application END, submitted_at = CASE WHEN @submitted_at_do_update::boolean THEN @submitted_at::timestamptz ELSE submitted_at END, saved_at = CASE WHEN @saved_at_do_update::boolean THEN @saved_at::timestamptz ELSE saved_at END, - assigned_reviewer_id = CASE WHEN @assigned_reviewer_id_do_update::boolean THEN @assigned_reviewer_id::UUID ELSE assigned_reviewer_id END, - experience_rating = CASE WHEN @experience_rating_do_update::boolean THEN @experience_rating::INT ELSE experience_rating END, - passion_rating = CASE WHEN @passion_rating_do_update::boolean THEN @passion_rating::INT ELSE passion_rating END, is_early = CASE WHEN @is_early_do_update::boolean THEN @is_early::boolean ELSE is_early END WHERE user_id = @user_id; --- name: DeleteApplication :exec -DELETE FROM applications WHERE user_id = $1; +-- name: DeleteApplicationById :exec +DELETE FROM applications WHERE id = @id; --- An application is considered "available" if the application has a status of submitted and has not been reviewed yet. --- For optimization purposes, we only select the application IDs. +-- name: SearchApplicationsWithUserInfo :many +SELECT + a.id, + a.user_id, + a.status, + a.created_at, + a.submitted_at, + a.application, + a.is_early, + u.name, + u.image, + u.email +FROM applications a +JOIN users u ON u.id = a.user_id +WHERE (LOWER(u.name) LIKE LOWER('%' || COALESCE(sqlc.arg('search'), '') || '%') + OR LOWER(u.email) LIKE LOWER('%' || COALESCE(sqlc.arg('search'), '') || '%')) + AND a.hackathon_id = @hackathon_id +ORDER BY a.created_at DESC +LIMIT sqlc.arg('limit') OFFSET sqlc.arg('offset'); + +-- name: GetExtendedApplicationById :one +SELECT + a.*, + ar.id AS review_id, + ar.experience_rating, + ar.passion_rating, + ar.notes, + ar.updated_at AS review_updated_at, + ar.updated_by AS review_updated_by, + reviewer.id AS reviewer_id, + reviewer.name AS reviewer_name, + reviewer.image AS reviewer_image, + applicant.name AS user_name, + applicant.image AS user_image, + applicant.email AS user_email, + aadr.requested_decision, + aadr.id AS auto_decision_request_id, + aadr.justification AS decision_justification, + aadr.approved AS decision_approved, + aadr.decided_by, + aadr.created_at AS decision_request_created_at +FROM applications a +JOIN users AS applicant ON applicant.id = a.user_id +LEFT JOIN application_reviews AS ar ON ar.application_id = a.id +LEFT JOIN users AS reviewer ON reviewer.id = ar.reviewer_id +LEFT JOIN application_auto_decision_requests as aadr ON aadr.application_id = a.id +WHERE a.id = @id; --- name: ListAvailableApplications :many -SELECT user_id FROM applications -WHERE status = 'submitted' - AND experience_rating IS NULL - AND passion_rating IS NULL -ORDER BY - user_id ASC; +-- name: GetApplicationsCount :one +SELECT COUNT(*) FROM applications WHERE hackathon_id = @hackathon_id; --- name: ListAdmissionCandidates :many -SELECT a.user_id, - a.passion_rating, - a.experience_rating, +-- name: ListUnderReviewApplicationIds :many +SELECT id FROM applications +WHERE status = 'under_review' AND hackathon_id = @hackathon_id +ORDER BY id ASC; + +-- name: ListApplicationsUnderReviewWithTeamIds :many +SELECT + a.user_id, a.application, t.id as team_id FROM applications a @@ -43,48 +98,25 @@ LEFT JOIN team_members tm ON tm.user_id = a.user_id LEFT JOIN teams t ON t.id = tm.team_id -WHERE a.status = 'under_review' - AND a.passion_rating IS NOT NULL - AND a.experience_rating IS NOT NULL; +WHERE a.status = 'under_review'; --- name: AssignApplicationsToReviewer :exec -UPDATE applications -SET assigned_reviewer_id = @reviewer_id::uuid, - status = 'under_review' -WHERE user_id = ANY(@application_ids::uuid[]); - --- name: ResetApplicationReviews :exec -UPDATE applications -SET assigned_reviewer_id = NULL, - status = 'submitted', - experience_rating = NULL, - passion_rating = NULL -WHERE status NOT IN ('submitted', 'started'); - --- name: ListApplicationByReviewer :many -SELECT user_id, passion_rating, experience_rating FROM applications -WHERE assigned_reviewer_id = $1 - AND status IN ('under_review') -ORDER BY user_id ASC; - --- name: ListNonReviewedApplications :many -SELECT user_id -FROM applications -WHERE status = 'under_review' - AND (passion_rating IS NULL OR experience_rating IS NULL); - --- name: JoinWaitlist :exec +-- name: WaitlistApplicationById :exec UPDATE applications SET waitlist_join_time = COALESCE(waitlist_join_time, NOW()), status = 'waitlisted' -WHERE user_id = $1; +WHERE id = @id; --- name: UpdateApplicationStatus :exec +-- name: UpdateApplicationsStatusByIds :exec UPDATE applications SET status = @status::application_status -WHERE user_id = ANY(@user_ids::uuid[]); +WHERE id = ANY(@ids::uuid[]); --- name: TransitionAcceptedApplicationsToWaitlist :exec +-- name: MarkSubmittedApplicationsAsUnderReview :exec +UPDATE applications +SET status = 'under_review' +WHERE status = 'submitted'; + +-- name: WaitlistAcceptedApplications :exec UPDATE applications SET waitlist_join_time = COALESCE(waitlist_join_time, NOW()), status = 'waitlisted' @@ -94,7 +126,7 @@ WHERE status = 'accepted' WHERE role = 'applicant' ); --- name: TransitionWaitlistedApplicationsToAccepted :many +-- name: AcceptWaitlistedApplications :many UPDATE applications SET waitlist_join_time = NULL, status = 'accepted' @@ -105,3 +137,8 @@ WHERE user_id IN ( LIMIT @acceptanceCount::int ) RETURNING user_id; + +-- name: ResetApplicationsToSubmitted :exec +UPDATE applications +SET status = 'submitted' +WHERE status = 'under_review'; \ No newline at end of file diff --git a/apps/api/internal/database/queries/hackathons.sql b/apps/api/internal/database/queries/hackathons.sql index fdb115dd..f1409221 100644 --- a/apps/api/internal/database/queries/hackathons.sql +++ b/apps/api/internal/database/queries/hackathons.sql @@ -39,7 +39,8 @@ SET start_time = CASE WHEN @start_time_do_update::boolean THEN @start_time ELSE start_time END, end_time = CASE WHEN @end_time_do_update::boolean THEN @end_time ELSE end_time END, banner = CASE WHEN @banner_do_update::boolean THEN @banner ELSE banner END, - application_review_started = CASE WHEN @application_review_started_do_update::boolean THEN @application_review_started ELSE application_review_started END + application_review_started = CASE WHEN @application_review_started_do_update::boolean THEN @application_review_started ELSE application_review_started END, + updated_at = NOW() WHERE is_active = true RETURNING *; diff --git a/apps/api/internal/database/repository/application.go b/apps/api/internal/database/repository/application.go deleted file mode 100644 index 472c7942..00000000 --- a/apps/api/internal/database/repository/application.go +++ /dev/null @@ -1,137 +0,0 @@ -package repository - -import ( - "context" - "errors" - - "github.com/google/uuid" - "github.com/jackc/pgx/v5" - "github.com/swamphacks/core/apps/api/internal/database" - "github.com/swamphacks/core/apps/api/internal/database/sqlc" -) - -type ApplicationRepository struct { - db *database.DB -} - -func NewApplicationRepository(db *database.DB) *ApplicationRepository { - return &ApplicationRepository{ - db: db, - } -} - -func (r *ApplicationRepository) NewTx(tx pgx.Tx) *ApplicationRepository { - txDB := &database.DB{ - Pool: r.db.Pool, - Query: sqlc.New(tx), - } - - return &ApplicationRepository{ - db: txDB, - } -} - -func (r *ApplicationRepository) CreateApplication(ctx context.Context, params sqlc.CreateApplicationParams) (*sqlc.Application, error) { - application, err := r.db.Query.CreateApplication(ctx, params) - - if err != nil { - return nil, err - } - - return &application, nil -} - -func (r *ApplicationRepository) UpdateApplication(ctx context.Context, params sqlc.UpdateApplicationParams) error { - return r.db.Query.UpdateApplication(ctx, params) -} - -func (r *ApplicationRepository) GetApplicationByUserId(ctx context.Context, userID uuid.UUID) (*sqlc.Application, error) { - application, err := r.db.Query.GetApplicationByUserId(ctx, userID) - - if err != nil { - if errors.Is(err, pgx.ErrNoRows) { - return nil, database.ErrApplicationNotFound - } - - return nil, err - } - - return &application, nil -} - -func (r *ApplicationRepository) UpdateApplicationsStatuses(ctx context.Context, params sqlc.UpdateApplicationStatusParams) error { - return r.db.Query.UpdateApplicationStatus(ctx, params) -} - -// List all candidates considered for admission. -// This queries for all applications who are 'under_review' and have their rating fields filled out. -// It also LEFT JOINs in their team id (if they have one) for further grouping based on teams. -func (r *ApplicationRepository) ListAdmissionCandidates(ctx context.Context) ([]sqlc.ListAdmissionCandidatesRow, error) { - return r.db.Query.ListAdmissionCandidates(ctx) -} - -func (r *ApplicationRepository) ListAvailableApplications(ctx context.Context) ([]uuid.UUID, error) { - return r.db.Query.ListAvailableApplications(ctx) -} - -func (r *ApplicationRepository) AssignApplicationToReview(ctx context.Context, params sqlc.AssignApplicationsToReviewerParams) error { - return r.db.Query.AssignApplicationsToReviewer(ctx, params) -} - -func (r *ApplicationRepository) ListApplicationByReviewer(ctx context.Context, reviewerID uuid.UUID) ([]sqlc.ListApplicationByReviewerRow, error) { - return r.db.Query.ListApplicationByReviewer(ctx, &reviewerID) -} - -func (r *ApplicationRepository) ResetApplicationReviews(ctx context.Context) error { - return r.db.Query.ResetApplicationReviews(ctx) -} - -func (r *ApplicationRepository) GetSubmittedApplicationGenders(ctx context.Context) (sqlc.GetApplicationGenderSplitRow, error) { - return r.db.Query.GetApplicationGenderSplit(ctx) -} - -func (r *ApplicationRepository) GetSubmittedApplicationRaces(ctx context.Context) ([]sqlc.GetApplicationRaceSplitRow, error) { - return r.db.Query.GetApplicationRaceSplit(ctx) -} - -func (r *ApplicationRepository) GetSubmittedApplicationAges(ctx context.Context) (sqlc.GetApplicationAgeSplitRow, error) { - return r.db.Query.GetApplicationAgeSplit(ctx) -} - -func (r *ApplicationRepository) GetSubmittedApplicationMajors(ctx context.Context) ([]sqlc.GetApplicationMajorSplitRow, error) { - return r.db.Query.GetApplicationMajorSplit(ctx) -} - -func (r *ApplicationRepository) GetSubmittedApplicationSchools(ctx context.Context) ([]sqlc.GetApplicationSchoolSplitRow, error) { - return r.db.Query.GetApplicationSchoolSplit(ctx) -} - -func (r *ApplicationRepository) GetApplicationStatuses(ctx context.Context) (sqlc.GetApplicationStatusSplitRow, error) { - return r.db.Query.GetApplicationStatusSplit(ctx) -} - -func (r *ApplicationRepository) GetNonReviewedApplications(ctx context.Context) ([]uuid.UUID, error) { - return r.db.Query.ListNonReviewedApplications(ctx) -} - -func (r *ApplicationRepository) GetSubmissionTimes(ctx context.Context) ([]sqlc.GetSubmissionTimesRow, error) { - return r.db.Query.GetSubmissionTimes(ctx) -} - -func (r *ApplicationRepository) JoinWaitlist(ctx context.Context, userID uuid.UUID) error { - return r.db.Query.JoinWaitlist(ctx, userID) -} - -func (r *ApplicationRepository) TransitionAcceptedApplicationsToWaitlist(ctx context.Context) error { - return r.db.Query.TransitionAcceptedApplicationsToWaitlist(ctx) -} - -func (r *ApplicationRepository) TransitionWaitlistedApplicationsToAccepted(ctx context.Context, acceptanceCount int32) ([]uuid.UUID, error) { - return r.db.Query.TransitionWaitlistedApplicationsToAccepted(ctx, acceptanceCount) -} - -func (r *ApplicationRepository) GetAttendeeCount(ctx context.Context) (uint32, error) { - amount, err := r.db.Query.GetAttendeeCount(ctx) - - return uint32(amount), err -} diff --git a/apps/api/internal/database/sqlc/application_reviews.sql.go b/apps/api/internal/database/sqlc/application_reviews.sql.go new file mode 100644 index 00000000..25bd032d --- /dev/null +++ b/apps/api/internal/database/sqlc/application_reviews.sql.go @@ -0,0 +1,576 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.30.0 +// source: application_reviews.sql + +package sqlc + +import ( + "context" + "time" + + "github.com/google/uuid" +) + +const assignReviewerToApplications = `-- name: AssignReviewerToApplications :exec +INSERT INTO application_reviews ( + application_id, + reviewer_id +) +SELECT applications.id, $1::uuid FROM applications +WHERE applications.id = ANY($2::uuid[]) +ON CONFLICT DO NOTHING +` + +type AssignReviewerToApplicationsParams struct { + ReviewerID uuid.UUID `json:"reviewer_id"` + ApplicationIds []uuid.UUID `json:"application_ids"` +} + +func (q *Queries) AssignReviewerToApplications(ctx context.Context, arg AssignReviewerToApplicationsParams) error { + _, err := q.db.Exec(ctx, assignReviewerToApplications, arg.ReviewerID, arg.ApplicationIds) + return err +} + +const deleteAllApplicationReviews = `-- name: DeleteAllApplicationReviews :exec +DELETE FROM application_reviews +` + +func (q *Queries) DeleteAllApplicationReviews(ctx context.Context) error { + _, err := q.db.Exec(ctx, deleteAllApplicationReviews) + return err +} + +const deleteAllAutoDecisionRequests = `-- name: DeleteAllAutoDecisionRequests :exec +DELETE FROM application_auto_decision_requests +` + +func (q *Queries) DeleteAllAutoDecisionRequests(ctx context.Context) error { + _, err := q.db.Exec(ctx, deleteAllAutoDecisionRequests) + return err +} + +const deleteAutoDecisionRequest = `-- name: DeleteAutoDecisionRequest :exec +DELETE FROM application_auto_decision_requests +WHERE id = $1 AND reviewer_id = $2 +` + +type DeleteAutoDecisionRequestParams struct { + ID uuid.UUID `json:"id"` + ReviewerID uuid.UUID `json:"reviewer_id"` +} + +func (q *Queries) DeleteAutoDecisionRequest(ctx context.Context, arg DeleteAutoDecisionRequestParams) error { + _, err := q.db.Exec(ctx, deleteAutoDecisionRequest, arg.ID, arg.ReviewerID) + return err +} + +const getAutoDecisionRequestsCount = `-- name: GetAutoDecisionRequestsCount :one +SELECT COUNT(*) FROM application_auto_decision_requests +` + +func (q *Queries) GetAutoDecisionRequestsCount(ctx context.Context) (int64, error) { + row := q.db.QueryRow(ctx, getAutoDecisionRequestsCount) + var count int64 + err := row.Scan(&count) + return count, err +} + +const getReviewById = `-- name: GetReviewById :one +SELECT + ar.id, ar.application_id, ar.reviewer_id, ar.experience_rating, ar.passion_rating, ar.notes, ar.updated_by, ar.created_at, ar.updated_at, + aadr.requested_decision, + aadr.id AS decision_request_id, + aadr.justification AS decision_justification, + aadr.approved AS decision_approved, + aadr.decided_by AS decision_decided_by, + aadr.created_at AS decision_request_created_at, + applications.user_id, + applications.application +FROM application_reviews AS ar +JOIN applications ON applications.id = ar.application_id +LEFT JOIN application_auto_decision_requests AS aadr ON aadr.application_id = ar.application_id +WHERE ar.id = $1 +` + +type GetReviewByIdRow struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"application_id"` + ReviewerID uuid.UUID `json:"reviewer_id"` + ExperienceRating *int32 `json:"experience_rating"` + PassionRating *int32 `json:"passion_rating"` + Notes *string `json:"notes"` + UpdatedBy *uuid.UUID `json:"updated_by"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + RequestedDecision NullApplicationAutoDecisionType `json:"requested_decision"` + DecisionRequestID *uuid.UUID `json:"decision_request_id"` + DecisionJustification *string `json:"decision_justification"` + DecisionApproved *bool `json:"decision_approved"` + DecisionDecidedBy *uuid.UUID `json:"decision_decided_by"` + DecisionRequestCreatedAt *time.Time `json:"decision_request_created_at"` + UserID uuid.UUID `json:"user_id"` + Application []byte `json:"application"` +} + +func (q *Queries) GetReviewById(ctx context.Context, reviewID uuid.UUID) (GetReviewByIdRow, error) { + row := q.db.QueryRow(ctx, getReviewById, reviewID) + var i GetReviewByIdRow + err := row.Scan( + &i.ID, + &i.ApplicationID, + &i.ReviewerID, + &i.ExperienceRating, + &i.PassionRating, + &i.Notes, + &i.UpdatedBy, + &i.CreatedAt, + &i.UpdatedAt, + &i.RequestedDecision, + &i.DecisionRequestID, + &i.DecisionJustification, + &i.DecisionApproved, + &i.DecisionDecidedBy, + &i.DecisionRequestCreatedAt, + &i.UserID, + &i.Application, + ) + return i, err +} + +const listApplicationReviewersById = `-- name: ListApplicationReviewersById :many +SELECT reviewer_id FROM application_reviews +WHERE application_id = $1 +` + +func (q *Queries) ListApplicationReviewersById(ctx context.Context, applicationID uuid.UUID) ([]uuid.UUID, error) { + rows, err := q.db.Query(ctx, listApplicationReviewersById, applicationID) + if err != nil { + return nil, err + } + defer rows.Close() + items := []uuid.UUID{} + for rows.Next() { + var reviewer_id uuid.UUID + if err := rows.Scan(&reviewer_id); err != nil { + return nil, err + } + items = append(items, reviewer_id) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listAutoDecisionRequests = `-- name: ListAutoDecisionRequests :many +SELECT + aadr.id, aadr.application_id, aadr.reviewer_id, aadr.requested_decision, aadr.justification, aadr.approved, aadr.decided_by, aadr.updated_at, aadr.created_at, + reviewer.name AS reviewer_name, + reviewer.image AS reviewer_image, + approver.id AS approver_id, + approver.name AS approver_name, + approver.image AS approver_image, + applicant.id AS user_id, + applicant.name AS user_name, + applicant.image AS user_image +FROM application_auto_decision_requests AS aadr +JOIN users AS reviewer + ON reviewer.id = aadr.reviewer_id +JOIN applications + ON applications.id = aadr.application_id +JOIN users AS applicant + ON applicant.id = applications.user_id +LEFT JOIN users AS approver + ON approver.id = aadr.decided_by +ORDER BY aadr.created_at DESC +` + +type ListAutoDecisionRequestsRow struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"application_id"` + ReviewerID uuid.UUID `json:"reviewer_id"` + RequestedDecision ApplicationAutoDecisionType `json:"requested_decision"` + Justification *string `json:"justification"` + Approved *bool `json:"approved"` + DecidedBy *uuid.UUID `json:"decided_by"` + UpdatedAt time.Time `json:"updated_at"` + CreatedAt time.Time `json:"created_at"` + ReviewerName string `json:"reviewer_name"` + ReviewerImage *string `json:"reviewer_image"` + ApproverID *uuid.UUID `json:"approver_id"` + ApproverName *string `json:"approver_name"` + ApproverImage *string `json:"approver_image"` + UserID uuid.UUID `json:"user_id"` + UserName string `json:"user_name"` + UserImage *string `json:"user_image"` +} + +func (q *Queries) ListAutoDecisionRequests(ctx context.Context) ([]ListAutoDecisionRequestsRow, error) { + rows, err := q.db.Query(ctx, listAutoDecisionRequests) + if err != nil { + return nil, err + } + defer rows.Close() + items := []ListAutoDecisionRequestsRow{} + for rows.Next() { + var i ListAutoDecisionRequestsRow + if err := rows.Scan( + &i.ID, + &i.ApplicationID, + &i.ReviewerID, + &i.RequestedDecision, + &i.Justification, + &i.Approved, + &i.DecidedBy, + &i.UpdatedAt, + &i.CreatedAt, + &i.ReviewerName, + &i.ReviewerImage, + &i.ApproverID, + &i.ApproverName, + &i.ApproverImage, + &i.UserID, + &i.UserName, + &i.UserImage, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listReviewersAndProgress = `-- name: ListReviewersAndProgress :many +SELECT + reviewer.id, + reviewer.name, + reviewer.image, + COUNT(*) AS total_assigned, + COUNT(*) FILTER ( + WHERE ar.experience_rating IS NOT NULL AND ar.passion_rating IS NOT NULL + ) AS completed_count +FROM application_reviews AS ar +LEFT JOIN users AS reviewer + ON reviewer.id = ar.reviewer_id +GROUP BY + reviewer.id +` + +type ListReviewersAndProgressRow struct { + ID *uuid.UUID `json:"id"` + Name *string `json:"name"` + Image *string `json:"image"` + TotalAssigned int64 `json:"total_assigned"` + CompletedCount int64 `json:"completed_count"` +} + +func (q *Queries) ListReviewersAndProgress(ctx context.Context) ([]ListReviewersAndProgressRow, error) { + rows, err := q.db.Query(ctx, listReviewersAndProgress) + if err != nil { + return nil, err + } + defer rows.Close() + items := []ListReviewersAndProgressRow{} + for rows.Next() { + var i ListReviewersAndProgressRow + if err := rows.Scan( + &i.ID, + &i.Name, + &i.Image, + &i.TotalAssigned, + &i.CompletedCount, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const listReviewsByReviewerId = `-- name: ListReviewsByReviewerId :many +SELECT + ar.id, ar.application_id, ar.reviewer_id, ar.experience_rating, ar.passion_rating, ar.notes, ar.updated_by, ar.created_at, ar.updated_at, + applications.user_id +FROM application_reviews ar +JOIN applications ON applications.id = ar.application_id +WHERE reviewer_id = $1 +ORDER BY application_id ASC +` + +type ListReviewsByReviewerIdRow struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"application_id"` + ReviewerID uuid.UUID `json:"reviewer_id"` + ExperienceRating *int32 `json:"experience_rating"` + PassionRating *int32 `json:"passion_rating"` + Notes *string `json:"notes"` + UpdatedBy *uuid.UUID `json:"updated_by"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + UserID uuid.UUID `json:"user_id"` +} + +func (q *Queries) ListReviewsByReviewerId(ctx context.Context, reviewerID uuid.UUID) ([]ListReviewsByReviewerIdRow, error) { + rows, err := q.db.Query(ctx, listReviewsByReviewerId, reviewerID) + if err != nil { + return nil, err + } + defer rows.Close() + items := []ListReviewsByReviewerIdRow{} + for rows.Next() { + var i ListReviewsByReviewerIdRow + if err := rows.Scan( + &i.ID, + &i.ApplicationID, + &i.ReviewerID, + &i.ExperienceRating, + &i.PassionRating, + &i.Notes, + &i.UpdatedBy, + &i.CreatedAt, + &i.UpdatedAt, + &i.UserID, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const requestAutoDecision = `-- name: RequestAutoDecision :one +INSERT INTO application_auto_decision_requests (application_id, reviewer_id, requested_decision, justification, approved, decided_by) +VALUES ($1, $2, $3, $4, $5, $6) RETURNING id, application_id, reviewer_id, requested_decision, justification, approved, decided_by, updated_at, created_at +` + +type RequestAutoDecisionParams struct { + ApplicationID uuid.UUID `json:"application_id"` + ReviewerID uuid.UUID `json:"reviewer_id"` + RequestedDecision ApplicationAutoDecisionType `json:"requested_decision"` + Justification *string `json:"justification"` + Approved *bool `json:"approved"` + DecidedBy *uuid.UUID `json:"decided_by"` +} + +func (q *Queries) RequestAutoDecision(ctx context.Context, arg RequestAutoDecisionParams) (ApplicationAutoDecisionRequest, error) { + row := q.db.QueryRow(ctx, requestAutoDecision, + arg.ApplicationID, + arg.ReviewerID, + arg.RequestedDecision, + arg.Justification, + arg.Approved, + arg.DecidedBy, + ) + var i ApplicationAutoDecisionRequest + err := row.Scan( + &i.ID, + &i.ApplicationID, + &i.ReviewerID, + &i.RequestedDecision, + &i.Justification, + &i.Approved, + &i.DecidedBy, + &i.UpdatedAt, + &i.CreatedAt, + ) + return i, err +} + +const searchAutoDecisionRequests = `-- name: SearchAutoDecisionRequests :many +SELECT + aadr.id, aadr.application_id, aadr.reviewer_id, aadr.requested_decision, aadr.justification, aadr.approved, aadr.decided_by, aadr.updated_at, aadr.created_at, + reviewer.name AS reviewer_name, + reviewer.image AS reviewer_image, + approver.id AS approver_id, + approver.name AS approver_name, + approver.image AS approver_image, + applicant.id AS user_id, + applicant.name AS user_name, + applicant.image AS user_image +FROM application_auto_decision_requests AS aadr +JOIN users AS reviewer + ON reviewer.id = aadr.reviewer_id +JOIN applications + ON applications.id = aadr.application_id +JOIN users AS applicant + ON applicant.id = applications.user_id +LEFT JOIN users AS approver + ON approver.id = aadr.decided_by +WHERE (LOWER(reviewer.name) LIKE LOWER('%' || COALESCE($1, '') || '%') + OR LOWER(applicant.name) LIKE LOWER('%' || COALESCE($1, '') || '%')) + AND ( + $2::text = 'all' + OR ($2::text = 'pending' AND aadr.approved IS NULL) + OR ($2::text = 'approved' AND aadr.approved = true) + OR ($2::text = 'denied' AND aadr.approved = false) + ) + AND ( + $3::application_auto_decision_type IS NULL + OR aadr.requested_decision = $3::application_auto_decision_type + ) +ORDER BY aadr.created_at DESC +LIMIT $5 OFFSET $4 +` + +type SearchAutoDecisionRequestsParams struct { + Search *string `json:"search"` + Approved string `json:"approved"` + Decision NullApplicationAutoDecisionType `json:"decision"` + Offset int32 `json:"offset"` + Limit int32 `json:"limit"` +} + +type SearchAutoDecisionRequestsRow struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"application_id"` + ReviewerID uuid.UUID `json:"reviewer_id"` + RequestedDecision ApplicationAutoDecisionType `json:"requested_decision"` + Justification *string `json:"justification"` + Approved *bool `json:"approved"` + DecidedBy *uuid.UUID `json:"decided_by"` + UpdatedAt time.Time `json:"updated_at"` + CreatedAt time.Time `json:"created_at"` + ReviewerName string `json:"reviewer_name"` + ReviewerImage *string `json:"reviewer_image"` + ApproverID *uuid.UUID `json:"approver_id"` + ApproverName *string `json:"approver_name"` + ApproverImage *string `json:"approver_image"` + UserID uuid.UUID `json:"user_id"` + UserName string `json:"user_name"` + UserImage *string `json:"user_image"` +} + +func (q *Queries) SearchAutoDecisionRequests(ctx context.Context, arg SearchAutoDecisionRequestsParams) ([]SearchAutoDecisionRequestsRow, error) { + rows, err := q.db.Query(ctx, searchAutoDecisionRequests, + arg.Search, + arg.Approved, + arg.Decision, + arg.Offset, + arg.Limit, + ) + if err != nil { + return nil, err + } + defer rows.Close() + items := []SearchAutoDecisionRequestsRow{} + for rows.Next() { + var i SearchAutoDecisionRequestsRow + if err := rows.Scan( + &i.ID, + &i.ApplicationID, + &i.ReviewerID, + &i.RequestedDecision, + &i.Justification, + &i.Approved, + &i.DecidedBy, + &i.UpdatedAt, + &i.CreatedAt, + &i.ReviewerName, + &i.ReviewerImage, + &i.ApproverID, + &i.ApproverName, + &i.ApproverImage, + &i.UserID, + &i.UserName, + &i.UserImage, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const updateApplicationReview = `-- name: UpdateApplicationReview :exec +UPDATE application_reviews +SET + experience_rating = CASE WHEN $1::boolean THEN $2 ELSE experience_rating END, + passion_rating = CASE WHEN $3::boolean THEN $4 ELSE passion_rating END, + notes = CASE WHEN $5::boolean THEN $6 ELSE notes END, + updated_by = CASE WHEN $7::boolean THEN $8 ELSE updated_by END, + updated_at = NOW() +WHERE + id = $9 AND + reviewer_id = $10 +` + +type UpdateApplicationReviewParams struct { + ExperienceRatingDoUpdate bool `json:"experience_rating_do_update"` + ExperienceRating *int32 `json:"experience_rating"` + PassionRatingDoUpdate bool `json:"passion_rating_do_update"` + PassionRating *int32 `json:"passion_rating"` + NotesDoUpdate bool `json:"notes_do_update"` + Notes *string `json:"notes"` + UpdatedByDoUpdate bool `json:"updated_by_do_update"` + UpdatedBy *uuid.UUID `json:"updated_by"` + ID uuid.UUID `json:"id"` + ReviewerID uuid.UUID `json:"reviewer_id"` +} + +func (q *Queries) UpdateApplicationReview(ctx context.Context, arg UpdateApplicationReviewParams) error { + _, err := q.db.Exec(ctx, updateApplicationReview, + arg.ExperienceRatingDoUpdate, + arg.ExperienceRating, + arg.PassionRatingDoUpdate, + arg.PassionRating, + arg.NotesDoUpdate, + arg.Notes, + arg.UpdatedByDoUpdate, + arg.UpdatedBy, + arg.ID, + arg.ReviewerID, + ) + return err +} + +const updateAutoDecisionRequest = `-- name: UpdateAutoDecisionRequest :exec +UPDATE application_auto_decision_requests +SET + requested_decision = CASE WHEN $1::boolean AND $2 <> '' THEN $2::application_auto_decision_type ELSE requested_decision END, + justification = CASE WHEN $3::boolean THEN $4 ELSE justification END, + approved = CASE WHEN $5::boolean THEN $6 ELSE approved END, + decided_by = CASE WHEN $7::boolean THEN $8 ELSE decided_by END +WHERE id = $9 AND reviewer_id = $10 +` + +type UpdateAutoDecisionRequestParams struct { + RequestedDecisionDoUpdate bool `json:"requested_decision_do_update"` + RequestedDecision interface{} `json:"requested_decision"` + JustificationDoUpdate bool `json:"justification_do_update"` + Justification *string `json:"justification"` + ApprovedDoUpdate bool `json:"approved_do_update"` + Approved *bool `json:"approved"` + ApprovedByDoUpdate bool `json:"approved_by_do_update"` + DecidedBy *uuid.UUID `json:"decided_by"` + ID uuid.UUID `json:"id"` + ReviewerID uuid.UUID `json:"reviewer_id"` +} + +func (q *Queries) UpdateAutoDecisionRequest(ctx context.Context, arg UpdateAutoDecisionRequestParams) error { + _, err := q.db.Exec(ctx, updateAutoDecisionRequest, + arg.RequestedDecisionDoUpdate, + arg.RequestedDecision, + arg.JustificationDoUpdate, + arg.Justification, + arg.ApprovedDoUpdate, + arg.Approved, + arg.ApprovedByDoUpdate, + arg.DecidedBy, + arg.ID, + arg.ReviewerID, + ) + return err +} diff --git a/apps/api/internal/database/sqlc/stats.sql.go b/apps/api/internal/database/sqlc/application_stats.sql.go similarity index 72% rename from apps/api/internal/database/sqlc/stats.sql.go rename to apps/api/internal/database/sqlc/application_stats.sql.go index 2703cbfb..fea3aa2b 100644 --- a/apps/api/internal/database/sqlc/stats.sql.go +++ b/apps/api/internal/database/sqlc/application_stats.sql.go @@ -1,7 +1,7 @@ // Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.30.0 -// source: stats.sql +// source: application_stats.sql package sqlc @@ -11,7 +11,79 @@ import ( "github.com/jackc/pgx/v5/pgtype" ) -const getApplicationAgeSplit = `-- name: GetApplicationAgeSplit :one +const getApplicationStatuses = `-- name: GetApplicationStatuses :one +SELECT + COUNT(*) FILTER (WHERE status = 'started') AS started, + COUNT(*) FILTER (WHERE status = 'submitted') AS submitted, + COUNT(*) FILTER (WHERE status = 'under_review') AS under_review, + COUNT(*) FILTER (WHERE status = 'accepted') AS accepted, + COUNT(*) FILTER (WHERE status = 'rejected') AS rejected, + COUNT(*) FILTER (WHERE status = 'waitlisted') AS waitlisted, + COUNT(*) FILTER (WHERE status = 'withdrawn') AS withdrawn +FROM applications +` + +type GetApplicationStatusesRow struct { + Started int64 `json:"started"` + Submitted int64 `json:"submitted"` + UnderReview int64 `json:"under_review"` + Accepted int64 `json:"accepted"` + Rejected int64 `json:"rejected"` + Waitlisted int64 `json:"waitlisted"` + Withdrawn int64 `json:"withdrawn"` +} + +func (q *Queries) GetApplicationStatuses(ctx context.Context) (GetApplicationStatusesRow, error) { + row := q.db.QueryRow(ctx, getApplicationStatuses) + var i GetApplicationStatusesRow + err := row.Scan( + &i.Started, + &i.Submitted, + &i.UnderReview, + &i.Accepted, + &i.Rejected, + &i.Waitlisted, + &i.Withdrawn, + ) + return i, err +} + +const getSubmissionTimes = `-- name: GetSubmissionTimes :many +SELECT + date_trunc('day', submitted_at AT TIME ZONE 'US/Eastern')::date AS day, + COUNT(*) AS count +FROM applications +WHERE submitted_at IS NOT NULL +GROUP BY day +ORDER By day +` + +type GetSubmissionTimesRow struct { + Day pgtype.Date `json:"day"` + Count int64 `json:"count"` +} + +func (q *Queries) GetSubmissionTimes(ctx context.Context) ([]GetSubmissionTimesRow, error) { + rows, err := q.db.Query(ctx, getSubmissionTimes) + if err != nil { + return nil, err + } + defer rows.Close() + items := []GetSubmissionTimesRow{} + for rows.Next() { + var i GetSubmissionTimesRow + if err := rows.Scan(&i.Day, &i.Count); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + +const getSubmittedApplicationAges = `-- name: GetSubmittedApplicationAges :one SELECT COUNT(*) FILTER (WHERE (application->>'age')::int < 18) AS underage, COUNT(*) FILTER (WHERE (application->>'age')::int = 18) AS age_18, @@ -24,7 +96,7 @@ FROM applications WHERE status <> 'started' AND status IS NOT NULL ` -type GetApplicationAgeSplitRow struct { +type GetSubmittedApplicationAgesRow struct { Underage int64 `json:"underage"` Age18 int64 `json:"age_18"` Age19 int64 `json:"age_19"` @@ -34,9 +106,9 @@ type GetApplicationAgeSplitRow struct { Age23Plus int64 `json:"age_23_plus"` } -func (q *Queries) GetApplicationAgeSplit(ctx context.Context) (GetApplicationAgeSplitRow, error) { - row := q.db.QueryRow(ctx, getApplicationAgeSplit) - var i GetApplicationAgeSplitRow +func (q *Queries) GetSubmittedApplicationAges(ctx context.Context) (GetSubmittedApplicationAgesRow, error) { + row := q.db.QueryRow(ctx, getSubmittedApplicationAges) + var i GetSubmittedApplicationAgesRow err := row.Scan( &i.Underage, &i.Age18, @@ -49,7 +121,7 @@ func (q *Queries) GetApplicationAgeSplit(ctx context.Context) (GetApplicationAge return i, err } -const getApplicationGenderSplit = `-- name: GetApplicationGenderSplit :one +const getSubmittedApplicationGenders = `-- name: GetSubmittedApplicationGenders :one SELECT COUNT(*) FILTER (WHERE application->>'gender' = 'man') AS male, @@ -60,7 +132,7 @@ FROM applications WHERE status <> 'started' AND status IS NOT NULL ` -type GetApplicationGenderSplitRow struct { +type GetSubmittedApplicationGendersRow struct { Male int64 `json:"male"` Female int64 `json:"female"` NonBinary int64 `json:"non_binary"` @@ -68,9 +140,9 @@ type GetApplicationGenderSplitRow struct { } // Queries used for statistics, mainly used by overview dashboards etc -func (q *Queries) GetApplicationGenderSplit(ctx context.Context) (GetApplicationGenderSplitRow, error) { - row := q.db.QueryRow(ctx, getApplicationGenderSplit) - var i GetApplicationGenderSplitRow +func (q *Queries) GetSubmittedApplicationGenders(ctx context.Context) (GetSubmittedApplicationGendersRow, error) { + row := q.db.QueryRow(ctx, getSubmittedApplicationGenders) + var i GetSubmittedApplicationGendersRow err := row.Scan( &i.Male, &i.Female, @@ -80,7 +152,7 @@ func (q *Queries) GetApplicationGenderSplit(ctx context.Context) (GetApplication return i, err } -const getApplicationMajorSplit = `-- name: GetApplicationMajorSplit :many +const getSubmittedApplicationMajors = `-- name: GetSubmittedApplicationMajors :many SELECT trim(major) AS major, COUNT(*) AS count @@ -91,20 +163,20 @@ GROUP BY trim(major) ORDER BY count DESC ` -type GetApplicationMajorSplitRow struct { +type GetSubmittedApplicationMajorsRow struct { Major string `json:"major"` Count int64 `json:"count"` } -func (q *Queries) GetApplicationMajorSplit(ctx context.Context) ([]GetApplicationMajorSplitRow, error) { - rows, err := q.db.Query(ctx, getApplicationMajorSplit) +func (q *Queries) GetSubmittedApplicationMajors(ctx context.Context) ([]GetSubmittedApplicationMajorsRow, error) { + rows, err := q.db.Query(ctx, getSubmittedApplicationMajors) if err != nil { return nil, err } defer rows.Close() - items := []GetApplicationMajorSplitRow{} + items := []GetSubmittedApplicationMajorsRow{} for rows.Next() { - var i GetApplicationMajorSplitRow + var i GetSubmittedApplicationMajorsRow if err := rows.Scan(&i.Major, &i.Count); err != nil { return nil, err } @@ -116,7 +188,7 @@ func (q *Queries) GetApplicationMajorSplit(ctx context.Context) ([]GetApplicatio return items, nil } -const getApplicationRaceSplit = `-- name: GetApplicationRaceSplit :many +const getSubmittedApplicationRaces = `-- name: GetSubmittedApplicationRaces :many SELECT CASE WHEN application->>'race' IS NOT NULL AND application->>'race' <> '' THEN application->>'race' @@ -135,20 +207,20 @@ GROUP BY ORDER BY count DESC ` -type GetApplicationRaceSplitRow struct { +type GetSubmittedApplicationRacesRow struct { RaceGroup string `json:"race_group"` Count int64 `json:"count"` } -func (q *Queries) GetApplicationRaceSplit(ctx context.Context) ([]GetApplicationRaceSplitRow, error) { - rows, err := q.db.Query(ctx, getApplicationRaceSplit) +func (q *Queries) GetSubmittedApplicationRaces(ctx context.Context) ([]GetSubmittedApplicationRacesRow, error) { + rows, err := q.db.Query(ctx, getSubmittedApplicationRaces) if err != nil { return nil, err } defer rows.Close() - items := []GetApplicationRaceSplitRow{} + items := []GetSubmittedApplicationRacesRow{} for rows.Next() { - var i GetApplicationRaceSplitRow + var i GetSubmittedApplicationRacesRow if err := rows.Scan(&i.RaceGroup, &i.Count); err != nil { return nil, err } @@ -160,7 +232,7 @@ func (q *Queries) GetApplicationRaceSplit(ctx context.Context) ([]GetApplication return items, nil } -const getApplicationSchoolSplit = `-- name: GetApplicationSchoolSplit :many +const getSubmittedApplicationSchools = `-- name: GetSubmittedApplicationSchools :many SELECT (application->>'school')::text AS school, COUNT(*) AS count @@ -170,20 +242,20 @@ GROUP BY (application->>'school')::text ORDER BY count DESC ` -type GetApplicationSchoolSplitRow struct { +type GetSubmittedApplicationSchoolsRow struct { School string `json:"school"` Count int64 `json:"count"` } -func (q *Queries) GetApplicationSchoolSplit(ctx context.Context) ([]GetApplicationSchoolSplitRow, error) { - rows, err := q.db.Query(ctx, getApplicationSchoolSplit) +func (q *Queries) GetSubmittedApplicationSchools(ctx context.Context) ([]GetSubmittedApplicationSchoolsRow, error) { + rows, err := q.db.Query(ctx, getSubmittedApplicationSchools) if err != nil { return nil, err } defer rows.Close() - items := []GetApplicationSchoolSplitRow{} + items := []GetSubmittedApplicationSchoolsRow{} for rows.Next() { - var i GetApplicationSchoolSplitRow + var i GetSubmittedApplicationSchoolsRow if err := rows.Scan(&i.School, &i.Count); err != nil { return nil, err } @@ -194,75 +266,3 @@ func (q *Queries) GetApplicationSchoolSplit(ctx context.Context) ([]GetApplicati } return items, nil } - -const getApplicationStatusSplit = `-- name: GetApplicationStatusSplit :one -SELECT - COUNT(*) FILTER (WHERE status = 'started') AS started, - COUNT(*) FILTER (WHERE status = 'submitted') AS submitted, - COUNT(*) FILTER (WHERE status = 'under_review') AS under_review, - COUNT(*) FILTER (WHERE status = 'accepted') AS accepted, - COUNT(*) FILTER (WHERE status = 'rejected') AS rejected, - COUNT(*) FILTER (WHERE status = 'waitlisted') AS waitlisted, - COUNT(*) FILTER (WHERE status = 'withdrawn') AS withdrawn -FROM applications -` - -type GetApplicationStatusSplitRow struct { - Started int64 `json:"started"` - Submitted int64 `json:"submitted"` - UnderReview int64 `json:"under_review"` - Accepted int64 `json:"accepted"` - Rejected int64 `json:"rejected"` - Waitlisted int64 `json:"waitlisted"` - Withdrawn int64 `json:"withdrawn"` -} - -func (q *Queries) GetApplicationStatusSplit(ctx context.Context) (GetApplicationStatusSplitRow, error) { - row := q.db.QueryRow(ctx, getApplicationStatusSplit) - var i GetApplicationStatusSplitRow - err := row.Scan( - &i.Started, - &i.Submitted, - &i.UnderReview, - &i.Accepted, - &i.Rejected, - &i.Waitlisted, - &i.Withdrawn, - ) - return i, err -} - -const getSubmissionTimes = `-- name: GetSubmissionTimes :many -SELECT - date_trunc('day', submitted_at AT TIME ZONE 'US/Eastern')::date AS day, - COUNT(*) AS count -FROM applications -WHERE submitted_at IS NOT NULL -GROUP BY day -ORDER By day -` - -type GetSubmissionTimesRow struct { - Day pgtype.Date `json:"day"` - Count int64 `json:"count"` -} - -func (q *Queries) GetSubmissionTimes(ctx context.Context) ([]GetSubmissionTimesRow, error) { - rows, err := q.db.Query(ctx, getSubmissionTimes) - if err != nil { - return nil, err - } - defer rows.Close() - items := []GetSubmissionTimesRow{} - for rows.Next() { - var i GetSubmissionTimesRow - if err := rows.Scan(&i.Day, &i.Count); err != nil { - return nil, err - } - items = append(items, i) - } - if err := rows.Err(); err != nil { - return nil, err - } - return items, nil -} diff --git a/apps/api/internal/database/sqlc/applications.sql.go b/apps/api/internal/database/sqlc/applications.sql.go index 7e48b27a..5553ba00 100644 --- a/apps/api/internal/database/sqlc/applications.sql.go +++ b/apps/api/internal/database/sqlc/applications.sql.go @@ -12,25 +12,41 @@ import ( "github.com/google/uuid" ) -const assignApplicationsToReviewer = `-- name: AssignApplicationsToReviewer :exec +const acceptWaitlistedApplications = `-- name: AcceptWaitlistedApplications :many UPDATE applications -SET assigned_reviewer_id = $1::uuid, - status = 'under_review' -WHERE user_id = ANY($2::uuid[]) +SET waitlist_join_time = NULL, + status = 'accepted' +WHERE user_id IN ( + SELECT user_id FROM applications + WHERE status = 'waitlisted' + ORDER BY waitlist_join_time ASC + LIMIT $1::int +) +RETURNING user_id ` -type AssignApplicationsToReviewerParams struct { - ReviewerID uuid.UUID `json:"reviewer_id"` - ApplicationIds []uuid.UUID `json:"application_ids"` -} - -func (q *Queries) AssignApplicationsToReviewer(ctx context.Context, arg AssignApplicationsToReviewerParams) error { - _, err := q.db.Exec(ctx, assignApplicationsToReviewer, arg.ReviewerID, arg.ApplicationIds) - return err +func (q *Queries) AcceptWaitlistedApplications(ctx context.Context, acceptancecount int32) ([]uuid.UUID, error) { + rows, err := q.db.Query(ctx, acceptWaitlistedApplications, acceptancecount) + if err != nil { + return nil, err + } + defer rows.Close() + items := []uuid.UUID{} + for rows.Next() { + var user_id uuid.UUID + if err := rows.Scan(&user_id); err != nil { + return nil, err + } + items = append(items, user_id) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil } const createApplication = `-- name: CreateApplication :one -INSERT INTO applications (user_id, hackathon_id, is_early) VALUES ($1, $2, $3) RETURNING user_id, status, application, created_at, saved_at, updated_at, submitted_at, experience_rating, passion_rating, assigned_reviewer_id, waitlist_join_time, hackathon_id, is_early +INSERT INTO applications (user_id, hackathon_id, is_early) VALUES ($1, $2, $3) RETURNING user_id, status, application, created_at, saved_at, updated_at, submitted_at, hackathon_id, is_early, id ` type CreateApplicationParams struct { @@ -50,27 +66,46 @@ func (q *Queries) CreateApplication(ctx context.Context, arg CreateApplicationPa &i.SavedAt, &i.UpdatedAt, &i.SubmittedAt, - &i.ExperienceRating, - &i.PassionRating, - &i.AssignedReviewerID, - &i.WaitlistJoinTime, &i.HackathonID, &i.IsEarly, + &i.ID, ) return i, err } -const deleteApplication = `-- name: DeleteApplication :exec -DELETE FROM applications WHERE user_id = $1 +const deleteApplicationById = `-- name: DeleteApplicationById :exec +DELETE FROM applications WHERE id = $1 ` -func (q *Queries) DeleteApplication(ctx context.Context, userID uuid.UUID) error { - _, err := q.db.Exec(ctx, deleteApplication, userID) +func (q *Queries) DeleteApplicationById(ctx context.Context, id uuid.UUID) error { + _, err := q.db.Exec(ctx, deleteApplicationById, id) return err } +const getApplicationById = `-- name: GetApplicationById :one +SELECT user_id, status, application, created_at, saved_at, updated_at, submitted_at, hackathon_id, is_early, id FROM applications WHERE id = $1 +` + +func (q *Queries) GetApplicationById(ctx context.Context, id uuid.UUID) (Application, error) { + row := q.db.QueryRow(ctx, getApplicationById, id) + var i Application + err := row.Scan( + &i.UserID, + &i.Status, + &i.Application, + &i.CreatedAt, + &i.SavedAt, + &i.UpdatedAt, + &i.SubmittedAt, + &i.HackathonID, + &i.IsEarly, + &i.ID, + ) + return i, err +} + const getApplicationByUserId = `-- name: GetApplicationByUserId :one -SELECT user_id, status, application, created_at, saved_at, updated_at, submitted_at, experience_rating, passion_rating, assigned_reviewer_id, waitlist_join_time, hackathon_id, is_early FROM applications WHERE user_id = $1 +SELECT user_id, status, application, created_at, saved_at, updated_at, submitted_at, hackathon_id, is_early, id FROM applications WHERE user_id = $1 ` func (q *Queries) GetApplicationByUserId(ctx context.Context, userID uuid.UUID) (Application, error) { @@ -84,32 +119,123 @@ func (q *Queries) GetApplicationByUserId(ctx context.Context, userID uuid.UUID) &i.SavedAt, &i.UpdatedAt, &i.SubmittedAt, - &i.ExperienceRating, - &i.PassionRating, - &i.AssignedReviewerID, - &i.WaitlistJoinTime, &i.HackathonID, &i.IsEarly, + &i.ID, ) return i, err } -const joinWaitlist = `-- name: JoinWaitlist :exec -UPDATE applications -SET waitlist_join_time = COALESCE(waitlist_join_time, NOW()), - status = 'waitlisted' -WHERE user_id = $1 +const getApplicationsCount = `-- name: GetApplicationsCount :one +SELECT COUNT(*) FROM applications WHERE hackathon_id = $1 ` -func (q *Queries) JoinWaitlist(ctx context.Context, userID uuid.UUID) error { - _, err := q.db.Exec(ctx, joinWaitlist, userID) - return err +func (q *Queries) GetApplicationsCount(ctx context.Context, hackathonID string) (int64, error) { + row := q.db.QueryRow(ctx, getApplicationsCount, hackathonID) + var count int64 + err := row.Scan(&count) + return count, err } -const listAdmissionCandidates = `-- name: ListAdmissionCandidates :many -SELECT a.user_id, - a.passion_rating, - a.experience_rating, +const getExtendedApplicationById = `-- name: GetExtendedApplicationById :one +SELECT + a.user_id, a.status, a.application, a.created_at, a.saved_at, a.updated_at, a.submitted_at, a.hackathon_id, a.is_early, a.id, + ar.id AS review_id, + ar.experience_rating, + ar.passion_rating, + ar.notes, + ar.updated_at AS review_updated_at, + ar.updated_by AS review_updated_by, + reviewer.id AS reviewer_id, + reviewer.name AS reviewer_name, + reviewer.image AS reviewer_image, + applicant.name AS user_name, + applicant.image AS user_image, + applicant.email AS user_email, + aadr.requested_decision, + aadr.id AS auto_decision_request_id, + aadr.justification AS decision_justification, + aadr.approved AS decision_approved, + aadr.decided_by, + aadr.created_at AS decision_request_created_at +FROM applications a +JOIN users AS applicant ON applicant.id = a.user_id +LEFT JOIN application_reviews AS ar ON ar.application_id = a.id +LEFT JOIN users AS reviewer ON reviewer.id = ar.reviewer_id +LEFT JOIN application_auto_decision_requests as aadr ON aadr.application_id = a.id +WHERE a.id = $1 +` + +type GetExtendedApplicationByIdRow struct { + UserID uuid.UUID `json:"user_id"` + Status ApplicationStatus `json:"status"` + Application []byte `json:"application"` + CreatedAt time.Time `json:"created_at"` + SavedAt time.Time `json:"saved_at"` + UpdatedAt time.Time `json:"updated_at"` + SubmittedAt *time.Time `json:"submitted_at"` + HackathonID string `json:"hackathon_id"` + IsEarly bool `json:"is_early"` + ID uuid.UUID `json:"id"` + ReviewID *uuid.UUID `json:"review_id"` + ExperienceRating *int32 `json:"experience_rating"` + PassionRating *int32 `json:"passion_rating"` + Notes *string `json:"notes"` + ReviewUpdatedAt *time.Time `json:"review_updated_at"` + ReviewUpdatedBy *uuid.UUID `json:"review_updated_by"` + ReviewerID *uuid.UUID `json:"reviewer_id"` + ReviewerName *string `json:"reviewer_name"` + ReviewerImage *string `json:"reviewer_image"` + UserName string `json:"user_name"` + UserImage *string `json:"user_image"` + UserEmail *string `json:"user_email"` + RequestedDecision NullApplicationAutoDecisionType `json:"requested_decision"` + AutoDecisionRequestID *uuid.UUID `json:"auto_decision_request_id"` + DecisionJustification *string `json:"decision_justification"` + DecisionApproved *bool `json:"decision_approved"` + DecidedBy *uuid.UUID `json:"decided_by"` + DecisionRequestCreatedAt *time.Time `json:"decision_request_created_at"` +} + +func (q *Queries) GetExtendedApplicationById(ctx context.Context, id uuid.UUID) (GetExtendedApplicationByIdRow, error) { + row := q.db.QueryRow(ctx, getExtendedApplicationById, id) + var i GetExtendedApplicationByIdRow + err := row.Scan( + &i.UserID, + &i.Status, + &i.Application, + &i.CreatedAt, + &i.SavedAt, + &i.UpdatedAt, + &i.SubmittedAt, + &i.HackathonID, + &i.IsEarly, + &i.ID, + &i.ReviewID, + &i.ExperienceRating, + &i.PassionRating, + &i.Notes, + &i.ReviewUpdatedAt, + &i.ReviewUpdatedBy, + &i.ReviewerID, + &i.ReviewerName, + &i.ReviewerImage, + &i.UserName, + &i.UserImage, + &i.UserEmail, + &i.RequestedDecision, + &i.AutoDecisionRequestID, + &i.DecisionJustification, + &i.DecisionApproved, + &i.DecidedBy, + &i.DecisionRequestCreatedAt, + ) + return i, err +} + +const listApplicationsUnderReviewWithTeamIds = `-- name: ListApplicationsUnderReviewWithTeamIds :many +SELECT + a.user_id, a.application, t.id as team_id FROM applications a @@ -118,34 +244,24 @@ LEFT JOIN team_members tm LEFT JOIN teams t ON t.id = tm.team_id WHERE a.status = 'under_review' - AND a.passion_rating IS NOT NULL - AND a.experience_rating IS NOT NULL ` -type ListAdmissionCandidatesRow struct { - UserID uuid.UUID `json:"user_id"` - PassionRating *int32 `json:"passion_rating"` - ExperienceRating *int32 `json:"experience_rating"` - Application []byte `json:"application"` - TeamID *uuid.UUID `json:"team_id"` +type ListApplicationsUnderReviewWithTeamIdsRow struct { + UserID uuid.UUID `json:"user_id"` + Application []byte `json:"application"` + TeamID *uuid.UUID `json:"team_id"` } -func (q *Queries) ListAdmissionCandidates(ctx context.Context) ([]ListAdmissionCandidatesRow, error) { - rows, err := q.db.Query(ctx, listAdmissionCandidates) +func (q *Queries) ListApplicationsUnderReviewWithTeamIds(ctx context.Context) ([]ListApplicationsUnderReviewWithTeamIdsRow, error) { + rows, err := q.db.Query(ctx, listApplicationsUnderReviewWithTeamIds) if err != nil { return nil, err } defer rows.Close() - items := []ListAdmissionCandidatesRow{} + items := []ListApplicationsUnderReviewWithTeamIdsRow{} for rows.Next() { - var i ListAdmissionCandidatesRow - if err := rows.Scan( - &i.UserID, - &i.PassionRating, - &i.ExperienceRating, - &i.Application, - &i.TeamID, - ); err != nil { + var i ListApplicationsUnderReviewWithTeamIdsRow + if err := rows.Scan(&i.UserID, &i.Application, &i.TeamID); err != nil { return nil, err } items = append(items, i) @@ -156,32 +272,25 @@ func (q *Queries) ListAdmissionCandidates(ctx context.Context) ([]ListAdmissionC return items, nil } -const listApplicationByReviewer = `-- name: ListApplicationByReviewer :many -SELECT user_id, passion_rating, experience_rating FROM applications -WHERE assigned_reviewer_id = $1 - AND status IN ('under_review') -ORDER BY user_id ASC +const listUnderReviewApplicationIds = `-- name: ListUnderReviewApplicationIds :many +SELECT id FROM applications +WHERE status = 'under_review' AND hackathon_id = $1 +ORDER BY id ASC ` -type ListApplicationByReviewerRow struct { - UserID uuid.UUID `json:"user_id"` - PassionRating *int32 `json:"passion_rating"` - ExperienceRating *int32 `json:"experience_rating"` -} - -func (q *Queries) ListApplicationByReviewer(ctx context.Context, assignedReviewerID *uuid.UUID) ([]ListApplicationByReviewerRow, error) { - rows, err := q.db.Query(ctx, listApplicationByReviewer, assignedReviewerID) +func (q *Queries) ListUnderReviewApplicationIds(ctx context.Context, hackathonID string) ([]uuid.UUID, error) { + rows, err := q.db.Query(ctx, listUnderReviewApplicationIds, hackathonID) if err != nil { return nil, err } defer rows.Close() - items := []ListApplicationByReviewerRow{} + items := []uuid.UUID{} for rows.Next() { - var i ListApplicationByReviewerRow - if err := rows.Scan(&i.UserID, &i.PassionRating, &i.ExperienceRating); err != nil { + var id uuid.UUID + if err := rows.Scan(&id); err != nil { return nil, err } - items = append(items, i) + items = append(items, id) } if err := rows.Err(); err != nil { return nil, err @@ -189,121 +298,98 @@ func (q *Queries) ListApplicationByReviewer(ctx context.Context, assignedReviewe return items, nil } -const listAvailableApplications = `-- name: ListAvailableApplications :many - -SELECT user_id FROM applications +const markSubmittedApplicationsAsUnderReview = `-- name: MarkSubmittedApplicationsAsUnderReview :exec +UPDATE applications +SET status = 'under_review' WHERE status = 'submitted' - AND experience_rating IS NULL - AND passion_rating IS NULL -ORDER BY - user_id ASC ` -// An application is considered "available" if the application has a status of submitted and has not been reviewed yet. -// For optimization purposes, we only select the application IDs. -func (q *Queries) ListAvailableApplications(ctx context.Context) ([]uuid.UUID, error) { - rows, err := q.db.Query(ctx, listAvailableApplications) - if err != nil { - return nil, err - } - defer rows.Close() - items := []uuid.UUID{} - for rows.Next() { - var user_id uuid.UUID - if err := rows.Scan(&user_id); err != nil { - return nil, err - } - items = append(items, user_id) - } - if err := rows.Err(); err != nil { - return nil, err - } - return items, nil +func (q *Queries) MarkSubmittedApplicationsAsUnderReview(ctx context.Context) error { + _, err := q.db.Exec(ctx, markSubmittedApplicationsAsUnderReview) + return err } -const listNonReviewedApplications = `-- name: ListNonReviewedApplications :many -SELECT user_id -FROM applications +const resetApplicationsToSubmitted = `-- name: ResetApplicationsToSubmitted :exec +UPDATE applications +SET status = 'submitted' WHERE status = 'under_review' - AND (passion_rating IS NULL OR experience_rating IS NULL) ` -func (q *Queries) ListNonReviewedApplications(ctx context.Context) ([]uuid.UUID, error) { - rows, err := q.db.Query(ctx, listNonReviewedApplications) - if err != nil { - return nil, err - } - defer rows.Close() - items := []uuid.UUID{} - for rows.Next() { - var user_id uuid.UUID - if err := rows.Scan(&user_id); err != nil { - return nil, err - } - items = append(items, user_id) - } - if err := rows.Err(); err != nil { - return nil, err - } - return items, nil -} - -const resetApplicationReviews = `-- name: ResetApplicationReviews :exec -UPDATE applications -SET assigned_reviewer_id = NULL, - status = 'submitted', - experience_rating = NULL, - passion_rating = NULL -WHERE status NOT IN ('submitted', 'started') -` - -func (q *Queries) ResetApplicationReviews(ctx context.Context) error { - _, err := q.db.Exec(ctx, resetApplicationReviews) +func (q *Queries) ResetApplicationsToSubmitted(ctx context.Context) error { + _, err := q.db.Exec(ctx, resetApplicationsToSubmitted) return err } -const transitionAcceptedApplicationsToWaitlist = `-- name: TransitionAcceptedApplicationsToWaitlist :exec -UPDATE applications -SET waitlist_join_time = COALESCE(waitlist_join_time, NOW()), - status = 'waitlisted' -WHERE status = 'accepted' - AND user_id IN ( - SELECT id from users - WHERE role = 'applicant' -) +const searchApplicationsWithUserInfo = `-- name: SearchApplicationsWithUserInfo :many +SELECT + a.id, + a.user_id, + a.status, + a.created_at, + a.submitted_at, + a.application, + a.is_early, + u.name, + u.image, + u.email +FROM applications a +JOIN users u ON u.id = a.user_id +WHERE (LOWER(u.name) LIKE LOWER('%' || COALESCE($1, '') || '%') + OR LOWER(u.email) LIKE LOWER('%' || COALESCE($1, '') || '%')) + AND a.hackathon_id = $2 +ORDER BY a.created_at DESC +LIMIT $4 OFFSET $3 ` -func (q *Queries) TransitionAcceptedApplicationsToWaitlist(ctx context.Context) error { - _, err := q.db.Exec(ctx, transitionAcceptedApplicationsToWaitlist) - return err +type SearchApplicationsWithUserInfoParams struct { + Search *string `json:"search"` + HackathonID string `json:"hackathon_id"` + Offset int32 `json:"offset"` + Limit int32 `json:"limit"` } -const transitionWaitlistedApplicationsToAccepted = `-- name: TransitionWaitlistedApplicationsToAccepted :many -UPDATE applications -SET waitlist_join_time = NULL, - status = 'accepted' -WHERE user_id IN ( - SELECT user_id FROM applications - WHERE status = 'waitlisted' - ORDER BY waitlist_join_time ASC - LIMIT $1::int -) -RETURNING user_id -` +type SearchApplicationsWithUserInfoRow struct { + ID uuid.UUID `json:"id"` + UserID uuid.UUID `json:"user_id"` + Status ApplicationStatus `json:"status"` + CreatedAt time.Time `json:"created_at"` + SubmittedAt *time.Time `json:"submitted_at"` + Application []byte `json:"application"` + IsEarly bool `json:"is_early"` + Name string `json:"name"` + Image *string `json:"image"` + Email *string `json:"email"` +} -func (q *Queries) TransitionWaitlistedApplicationsToAccepted(ctx context.Context, acceptancecount int32) ([]uuid.UUID, error) { - rows, err := q.db.Query(ctx, transitionWaitlistedApplicationsToAccepted, acceptancecount) +func (q *Queries) SearchApplicationsWithUserInfo(ctx context.Context, arg SearchApplicationsWithUserInfoParams) ([]SearchApplicationsWithUserInfoRow, error) { + rows, err := q.db.Query(ctx, searchApplicationsWithUserInfo, + arg.Search, + arg.HackathonID, + arg.Offset, + arg.Limit, + ) if err != nil { return nil, err } defer rows.Close() - items := []uuid.UUID{} + items := []SearchApplicationsWithUserInfoRow{} for rows.Next() { - var user_id uuid.UUID - if err := rows.Scan(&user_id); err != nil { + var i SearchApplicationsWithUserInfoRow + if err := rows.Scan( + &i.ID, + &i.UserID, + &i.Status, + &i.CreatedAt, + &i.SubmittedAt, + &i.Application, + &i.IsEarly, + &i.Name, + &i.Image, + &i.Email, + ); err != nil { return nil, err } - items = append(items, user_id) + items = append(items, i) } if err := rows.Err(); err != nil { return nil, err @@ -311,43 +397,77 @@ func (q *Queries) TransitionWaitlistedApplicationsToAccepted(ctx context.Context return items, nil } -const updateApplication = `-- name: UpdateApplication :exec +const updateApplicationById = `-- name: UpdateApplicationById :exec UPDATE applications SET status = CASE WHEN $1::boolean THEN $2::application_status ELSE status END, application = CASE WHEN $3::boolean THEN $4::JSONB ELSE application END, submitted_at = CASE WHEN $5::boolean THEN $6::timestamptz ELSE submitted_at END, saved_at = CASE WHEN $7::boolean THEN $8::timestamptz ELSE saved_at END, - assigned_reviewer_id = CASE WHEN $9::boolean THEN $10::UUID ELSE assigned_reviewer_id END, - experience_rating = CASE WHEN $11::boolean THEN $12::INT ELSE experience_rating END, - passion_rating = CASE WHEN $13::boolean THEN $14::INT ELSE passion_rating END, - is_early = CASE WHEN $15::boolean THEN $16::boolean ELSE is_early END + is_early = CASE WHEN $9::boolean THEN $10::boolean ELSE is_early END WHERE - user_id = $17 + id = $11 ` -type UpdateApplicationParams struct { - StatusDoUpdate bool `json:"status_do_update"` - Status ApplicationStatus `json:"status"` - ApplicationDoUpdate bool `json:"application_do_update"` - Application []byte `json:"application"` - SubmittedAtDoUpdate bool `json:"submitted_at_do_update"` - SubmittedAt time.Time `json:"submitted_at"` - SavedAtDoUpdate bool `json:"saved_at_do_update"` - SavedAt time.Time `json:"saved_at"` - AssignedReviewerIDDoUpdate bool `json:"assigned_reviewer_id_do_update"` - AssignedReviewerID uuid.UUID `json:"assigned_reviewer_id"` - ExperienceRatingDoUpdate bool `json:"experience_rating_do_update"` - ExperienceRating int32 `json:"experience_rating"` - PassionRatingDoUpdate bool `json:"passion_rating_do_update"` - PassionRating int32 `json:"passion_rating"` - IsEarlyDoUpdate bool `json:"is_early_do_update"` - IsEarly bool `json:"is_early"` - UserID uuid.UUID `json:"user_id"` +type UpdateApplicationByIdParams struct { + StatusDoUpdate bool `json:"status_do_update"` + Status ApplicationStatus `json:"status"` + ApplicationDoUpdate bool `json:"application_do_update"` + Application []byte `json:"application"` + SubmittedAtDoUpdate bool `json:"submitted_at_do_update"` + SubmittedAt time.Time `json:"submitted_at"` + SavedAtDoUpdate bool `json:"saved_at_do_update"` + SavedAt time.Time `json:"saved_at"` + IsEarlyDoUpdate bool `json:"is_early_do_update"` + IsEarly bool `json:"is_early"` + ID uuid.UUID `json:"id"` } -func (q *Queries) UpdateApplication(ctx context.Context, arg UpdateApplicationParams) error { - _, err := q.db.Exec(ctx, updateApplication, +func (q *Queries) UpdateApplicationById(ctx context.Context, arg UpdateApplicationByIdParams) error { + _, err := q.db.Exec(ctx, updateApplicationById, + arg.StatusDoUpdate, + arg.Status, + arg.ApplicationDoUpdate, + arg.Application, + arg.SubmittedAtDoUpdate, + arg.SubmittedAt, + arg.SavedAtDoUpdate, + arg.SavedAt, + arg.IsEarlyDoUpdate, + arg.IsEarly, + arg.ID, + ) + return err +} + +const updateApplicationByUserId = `-- name: UpdateApplicationByUserId :exec +UPDATE applications +SET + status = CASE WHEN $1::boolean THEN $2::application_status ELSE status END, + application = CASE WHEN $3::boolean THEN $4::JSONB ELSE application END, + submitted_at = CASE WHEN $5::boolean THEN $6::timestamptz ELSE submitted_at END, + saved_at = CASE WHEN $7::boolean THEN $8::timestamptz ELSE saved_at END, + is_early = CASE WHEN $9::boolean THEN $10::boolean ELSE is_early END +WHERE + user_id = $11 +` + +type UpdateApplicationByUserIdParams struct { + StatusDoUpdate bool `json:"status_do_update"` + Status ApplicationStatus `json:"status"` + ApplicationDoUpdate bool `json:"application_do_update"` + Application []byte `json:"application"` + SubmittedAtDoUpdate bool `json:"submitted_at_do_update"` + SubmittedAt time.Time `json:"submitted_at"` + SavedAtDoUpdate bool `json:"saved_at_do_update"` + SavedAt time.Time `json:"saved_at"` + IsEarlyDoUpdate bool `json:"is_early_do_update"` + IsEarly bool `json:"is_early"` + UserID uuid.UUID `json:"user_id"` +} + +func (q *Queries) UpdateApplicationByUserId(ctx context.Context, arg UpdateApplicationByUserIdParams) error { + _, err := q.db.Exec(ctx, updateApplicationByUserId, arg.StatusDoUpdate, arg.Status, arg.ApplicationDoUpdate, @@ -356,12 +476,6 @@ func (q *Queries) UpdateApplication(ctx context.Context, arg UpdateApplicationPa arg.SubmittedAt, arg.SavedAtDoUpdate, arg.SavedAt, - arg.AssignedReviewerIDDoUpdate, - arg.AssignedReviewerID, - arg.ExperienceRatingDoUpdate, - arg.ExperienceRating, - arg.PassionRatingDoUpdate, - arg.PassionRating, arg.IsEarlyDoUpdate, arg.IsEarly, arg.UserID, @@ -369,18 +483,46 @@ func (q *Queries) UpdateApplication(ctx context.Context, arg UpdateApplicationPa return err } -const updateApplicationStatus = `-- name: UpdateApplicationStatus :exec +const updateApplicationsStatusByIds = `-- name: UpdateApplicationsStatusByIds :exec UPDATE applications SET status = $1::application_status -WHERE user_id = ANY($2::uuid[]) +WHERE id = ANY($2::uuid[]) +` + +type UpdateApplicationsStatusByIdsParams struct { + Status ApplicationStatus `json:"status"` + Ids []uuid.UUID `json:"ids"` +} + +func (q *Queries) UpdateApplicationsStatusByIds(ctx context.Context, arg UpdateApplicationsStatusByIdsParams) error { + _, err := q.db.Exec(ctx, updateApplicationsStatusByIds, arg.Status, arg.Ids) + return err +} + +const waitlistAcceptedApplications = `-- name: WaitlistAcceptedApplications :exec +UPDATE applications +SET waitlist_join_time = COALESCE(waitlist_join_time, NOW()), + status = 'waitlisted' +WHERE status = 'accepted' + AND user_id IN ( + SELECT id from users + WHERE role = 'applicant' +) ` -type UpdateApplicationStatusParams struct { - Status ApplicationStatus `json:"status"` - UserIds []uuid.UUID `json:"user_ids"` +func (q *Queries) WaitlistAcceptedApplications(ctx context.Context) error { + _, err := q.db.Exec(ctx, waitlistAcceptedApplications) + return err } -func (q *Queries) UpdateApplicationStatus(ctx context.Context, arg UpdateApplicationStatusParams) error { - _, err := q.db.Exec(ctx, updateApplicationStatus, arg.Status, arg.UserIds) +const waitlistApplicationById = `-- name: WaitlistApplicationById :exec +UPDATE applications +SET waitlist_join_time = COALESCE(waitlist_join_time, NOW()), + status = 'waitlisted' +WHERE id = $1 +` + +func (q *Queries) WaitlistApplicationById(ctx context.Context, id uuid.UUID) error { + _, err := q.db.Exec(ctx, waitlistApplicationById, id) return err } diff --git a/apps/api/internal/database/sqlc/hackathons.sql.go b/apps/api/internal/database/sqlc/hackathons.sql.go index f5183626..f079a977 100644 --- a/apps/api/internal/database/sqlc/hackathons.sql.go +++ b/apps/api/internal/database/sqlc/hackathons.sql.go @@ -272,7 +272,8 @@ SET start_time = CASE WHEN $19::boolean THEN $20 ELSE start_time END, end_time = CASE WHEN $21::boolean THEN $22 ELSE end_time END, banner = CASE WHEN $23::boolean THEN $24 ELSE banner END, - application_review_started = CASE WHEN $25::boolean THEN $26 ELSE application_review_started END + application_review_started = CASE WHEN $25::boolean THEN $26 ELSE application_review_started END, + updated_at = NOW() WHERE is_active = true RETURNING id, name, description, location, location_url, max_attendees, application_open, application_close, rsvp_deadline, decision_release, start_time, end_time, is_active, created_at, updated_at, banner, application_review_started, accept_early_applications, early_application_open, early_application_close ` diff --git a/apps/api/internal/database/sqlc/models.go b/apps/api/internal/database/sqlc/models.go index bd49efef..159390ca 100644 --- a/apps/api/internal/database/sqlc/models.go +++ b/apps/api/internal/database/sqlc/models.go @@ -12,6 +12,48 @@ import ( "github.com/google/uuid" ) +type ApplicationAutoDecisionType string + +const ( + ApplicationAutoDecisionTypeAutoAccept ApplicationAutoDecisionType = "auto_accept" + ApplicationAutoDecisionTypeAutoReject ApplicationAutoDecisionType = "auto_reject" +) + +func (e *ApplicationAutoDecisionType) Scan(src interface{}) error { + switch s := src.(type) { + case []byte: + *e = ApplicationAutoDecisionType(s) + case string: + *e = ApplicationAutoDecisionType(s) + default: + return fmt.Errorf("unsupported scan type for ApplicationAutoDecisionType: %T", src) + } + return nil +} + +type NullApplicationAutoDecisionType struct { + ApplicationAutoDecisionType ApplicationAutoDecisionType `json:"application_auto_decision_type"` + Valid bool `json:"valid"` // Valid is true if ApplicationAutoDecisionType is not NULL +} + +// Scan implements the Scanner interface. +func (ns *NullApplicationAutoDecisionType) Scan(value interface{}) error { + if value == nil { + ns.ApplicationAutoDecisionType, ns.Valid = "", false + return nil + } + ns.Valid = true + return ns.ApplicationAutoDecisionType.Scan(value) +} + +// Value implements the driver Valuer interface. +func (ns NullApplicationAutoDecisionType) Value() (driver.Value, error) { + if !ns.Valid { + return nil, nil + } + return string(ns.ApplicationAutoDecisionType), nil +} + type ApplicationStatus string const ( @@ -386,19 +428,40 @@ type Account struct { } type Application struct { - UserID uuid.UUID `json:"user_id"` - Status ApplicationStatus `json:"status"` - Application []byte `json:"application"` - CreatedAt time.Time `json:"created_at"` - SavedAt time.Time `json:"saved_at"` - UpdatedAt time.Time `json:"updated_at"` - SubmittedAt *time.Time `json:"submitted_at"` - ExperienceRating *int32 `json:"experience_rating"` - PassionRating *int32 `json:"passion_rating"` - AssignedReviewerID *uuid.UUID `json:"assigned_reviewer_id"` - WaitlistJoinTime *time.Time `json:"waitlist_join_time"` - HackathonID string `json:"hackathon_id"` - IsEarly bool `json:"is_early"` + UserID uuid.UUID `json:"user_id"` + Status ApplicationStatus `json:"status"` + Application []byte `json:"application"` + CreatedAt time.Time `json:"created_at"` + SavedAt time.Time `json:"saved_at"` + UpdatedAt time.Time `json:"updated_at"` + SubmittedAt *time.Time `json:"submitted_at"` + HackathonID string `json:"hackathon_id"` + IsEarly bool `json:"is_early"` + ID uuid.UUID `json:"id"` +} + +type ApplicationAutoDecisionRequest struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"application_id"` + ReviewerID uuid.UUID `json:"reviewer_id"` + RequestedDecision ApplicationAutoDecisionType `json:"requested_decision"` + Justification *string `json:"justification"` + Approved *bool `json:"approved"` + DecidedBy *uuid.UUID `json:"decided_by"` + UpdatedAt time.Time `json:"updated_at"` + CreatedAt time.Time `json:"created_at"` +} + +type ApplicationReview struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"application_id"` + ReviewerID uuid.UUID `json:"reviewer_id"` + ExperienceRating *int32 `json:"experience_rating"` + PassionRating *int32 `json:"passion_rating"` + Notes *string `json:"notes"` + UpdatedBy *uuid.UUID `json:"updated_by"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` } type BatRun struct { diff --git a/apps/api/internal/domains/application/handlers.go b/apps/api/internal/domains/application/handlers.go new file mode 100644 index 00000000..785d9a4f --- /dev/null +++ b/apps/api/internal/domains/application/handlers.go @@ -0,0 +1,1002 @@ +package application + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "strconv" + + "github.com/danielgtaylor/huma/v2" + "github.com/go-playground/validator/v10" + "github.com/google/uuid" + "github.com/swamphacks/core/apps/api/internal/api/middleware" + "github.com/swamphacks/core/apps/api/internal/ctxutils" + "github.com/swamphacks/core/apps/api/internal/database" + "github.com/swamphacks/core/apps/api/internal/database/sqlc" +) + +type GetMyApplicationOutput struct { + Body MyApplicationResponseDto +} + +func (h *handler) handleGetMyApplication(ctx context.Context, input *struct{}) (*GetMyApplicationOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + application, err := h.applicationService.GetApplicationByUserId(ctx, userCtx.UserID) + + if err != nil { + if errors.Is(err, database.ErrApplicationNotFound) { + newApplication, err := h.applicationService.CreateApplication(ctx, userCtx.UserID) + + if err != nil || newApplication == nil { + return nil, huma.Error500InternalServerError(err.Error()) + } + + return &GetMyApplicationOutput{Body: MyApplicationResponseDto{ + ID: newApplication.ID, + UserID: newApplication.UserID, + Status: string(newApplication.Status), + Application: newApplication.Application, + CreatedAt: newApplication.CreatedAt, + SavedAt: newApplication.SavedAt, + UpdatedAt: newApplication.UpdatedAt, + SubmittedAt: newApplication.SubmittedAt, + HackathonID: newApplication.HackathonID, + }}, nil + } + + if errors.Is(err, ErrApplicationNotOpened) { + return nil, huma.Error400BadRequest(err.Error()) + } + + return nil, huma.Error500InternalServerError("error retrieving application") + } + + if application == nil { + return nil, huma.Error500InternalServerError("Application is null") + } + + return &GetMyApplicationOutput{Body: MyApplicationResponseDto{ + ID: application.ID, + UserID: application.UserID, + Status: string(application.Status), + Application: application.Application, + CreatedAt: application.CreatedAt, + SavedAt: application.SavedAt, + UpdatedAt: application.UpdatedAt, + SubmittedAt: application.SubmittedAt, + HackathonID: application.HackathonID, + }}, nil +} + +type UpdateApplicationByIdOutput struct { + Status int +} + +func (h *handler) handleUpdateApplicationById(ctx context.Context, input *struct { + Body UpdateApplicationRequestDto +}) (*UpdateApplicationByIdOutput, error) { + err := h.applicationService.UpdateApplicationById(ctx, input.Body) + + if err != nil { + return nil, huma.Error500InternalServerError("error updating application") + } + + return &UpdateApplicationByIdOutput{Status: http.StatusNoContent}, nil +} + +type GetExtendedApplicationOutput struct { + Body ExtendedApplicationResponseDto +} + +func (h *handler) handleGetExtendedApplicationById(ctx context.Context, input *struct { + ID uuid.UUID `path:"applicationId"` +}) (*GetExtendedApplicationOutput, error) { + application, err := h.applicationService.GetExtendedApplicationById(ctx, input.ID) + + if err != nil { + return nil, huma.Error500InternalServerError("error retrieving extended application") + } + + resumeRequest, err := h.applicationService.GetApplicationResumeURL(ctx, application.UserID, 600) + + if err != nil { + h.logger.Err(err).Str("ApplicationId", input.ID.String()).Msg(err.Error()) + return nil, huma.Error500InternalServerError("unable to get application resume") + } + + var review *ReviewDto + if application.ReviewID != nil { + review = &ReviewDto{ + ID: *application.ReviewID, + ExperienceRating: application.ExperienceRating, + PassionRating: application.PassionRating, + Notes: application.Notes, + ReviewUpdatedAt: *application.ReviewUpdatedAt, + ReviewUpdatedBy: application.ReviewUpdatedBy, + Reviewer: AppUser{ + ID: *application.ReviewerID, + UserName: *application.ReviewerName, + Image: application.ReviewerImage, + }, + } + } + + var autoDecisionRequest *AutoDecisionRequestDto + if application.AutoDecisionRequestID != nil && application.RequestedDecision.Valid { + autoDecisionRequest = &AutoDecisionRequestDto{ + ID: *application.AutoDecisionRequestID, + ApplicationID: application.ID, + RequestedDecision: string(application.RequestedDecision.ApplicationAutoDecisionType), + Justification: application.DecisionJustification, + AutoDecisionApproved: *application.DecisionApproved, + CreatedAt: *application.DecisionRequestCreatedAt, + DecidedBy: application.DecidedBy, + } + } + + return &GetExtendedApplicationOutput{Body: ExtendedApplicationResponseDto{ + ID: application.ID, + User: AppUser{ + ID: application.UserID, + UserName: application.UserName, + Image: application.UserImage, + Email: application.UserEmail, + }, + Status: string(application.Status), + Application: application.Application, + CreatedAt: application.CreatedAt, + UpdatedAt: application.UpdatedAt, + SubmittedAt: application.SubmittedAt, + IsEarly: application.IsEarly, + Review: review, + AutoDecisionRequest: autoDecisionRequest, + ResumeURL: resumeRequest.URL, + }}, nil +} + +type SearchApplicationsOutput struct { + Body SearchApplicationsResponseDto +} + +func (h *handler) handleSearchApplications(ctx context.Context, input *struct { + Limit int32 `query:"limit"` + Offset int32 `query:"offset"` + Search string `query:"search"` +}) (*SearchApplicationsOutput, error) { + count, applications, err := h.applicationService.SearchApplications(ctx, input.Limit, input.Offset, input.Search) + + if err != nil { + return nil, huma.Error500InternalServerError("error retrieving applications") + } + + searchApplicationResponses := make([]ApplicationWithUserInfoDto, len(applications)) + + for i, val := range applications { + searchApplicationResponses[i] = ApplicationWithUserInfoDto{ + ID: val.ID, + User: AppUser{ + ID: val.UserID, + UserName: val.Name, + Image: val.Image, + Email: val.Email, + }, + Status: string(val.Status), + Application: val.Application, + CreatedAt: val.CreatedAt, + SubmittedAt: val.SubmittedAt, + UpdatedAt: val.CreatedAt, + IsEarly: val.IsEarly, + } + } + + return &SearchApplicationsOutput{Body: SearchApplicationsResponseDto{ + Count: *count, + Applications: searchApplicationResponses, + }}, nil +} + +type SaveApplicationOutput struct { + Status int +} + +func (h *handler) handleSaveApplication(ctx context.Context, input *struct { + Body any +}) (*SaveApplicationOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + // TODO: validate input.Body, make sure that the data is the application + err := h.applicationService.SaveApplication(ctx, input.Body, userCtx.UserID) + + if err != nil { + return nil, huma.Error500InternalServerError(err.Error()) + } + + return &SaveApplicationOutput{Status: http.StatusOK}, nil +} + +type SubmitApplicationOutput struct { + Body SubmitApplicationResponseDto +} + +func (h *handler) handleSubmitApplication(ctx context.Context, input *struct{}) (*SubmitApplicationOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + // TODO: refactor this to using Huma's request API instead of using the raw http package + + r := ctx.Value(middleware.RawRequestKey{}).(*http.Request) + + // Parse multipart form (10 MB max memory) + err := r.ParseMultipartForm(10 << 20) + if err != nil { + return nil, huma.Error400BadRequest("Failed to parse form") + } + + var submission ApplicationSubmissionFields + + // Map form values + submission.FirstName = r.FormValue("firstName") + submission.LastName = r.FormValue("lastName") + + if ageStr := r.FormValue("age"); ageStr != "" { + if age, err := strconv.Atoi(ageStr); err == nil { + submission.Age = age + } + } + + submission.Phone = r.FormValue("phone") + submission.PreferredEmail = r.FormValue("preferredEmail") + submission.UniversityEmail = r.FormValue("universityEmail") + + submission.Country = r.FormValue("country") + submission.Gender = r.FormValue("gender") + submission.GenderOther = r.FormValue("gender-other") + submission.Pronouns = r.FormValue("pronouns") + submission.Race = r.FormValue("race") + submission.RaceOther = r.FormValue("race-other") + submission.Orientation = r.FormValue("orientation") + + submission.Linkedin = r.FormValue("linkedin") + submission.Github = r.FormValue("github") + + if ageCertStr := r.FormValue("ageCertification"); ageCertStr != "" { + submission.AgeCertification = (ageCertStr == "true" || ageCertStr == "1") + } + + submission.School = r.FormValue("school") + submission.Level = r.FormValue("level") + submission.LevelOther = r.FormValue("level-other") + submission.Year = r.FormValue("year") + submission.YearOther = r.FormValue("year-other") + submission.GraduationYear = r.FormValue("graduationYear") + submission.Majors = r.FormValue("majors") + submission.Minors = r.FormValue("minors") + submission.Experience = r.FormValue("experience") + submission.UfHackathonExp = r.FormValue("ufHackathonExp") + submission.ProjectExperience = r.FormValue("projectExperience") + submission.ShirtSize = r.FormValue("shirtSize") + submission.Diet = r.FormValue("diet") + submission.Essay1 = r.FormValue("essay1") + submission.Essay2 = r.FormValue("essay2") + submission.Referral = r.FormValue("referral") + submission.PictureConsent = r.FormValue("pictureConsent") + submission.InPersonAcknowledgement = r.FormValue("inpersonAcknowledgement") + submission.AgreeToConduct = r.FormValue("agreeToConduct") + submission.InfoShareAuthorization = r.FormValue("infoShareAuthorization") + submission.AgreeToMLHEmails = r.FormValue("agreeToMLHEmails") + + resumeFile, _, err := r.FormFile("resume[]") + if err != nil { + return nil, huma.Error400BadRequest("Invalid resume file") + } + + defer resumeFile.Close() + + resumeFileBuffer := bytes.NewBuffer(nil) + + if _, err := io.Copy(resumeFileBuffer, resumeFile); err != nil { + return nil, huma.Error500InternalServerError("Error while parsing resume") + } + + validate := validator.New() + if err := validate.Struct(submission); err != nil { + return nil, huma.Error400BadRequest("Unable to parse application submission") + } + + submittedAt, err := h.applicationService.SubmitApplication(r.Context(), submission, resumeFileBuffer.Bytes(), userCtx.UserID) + + if err != nil { + if errors.Is(err, ErrApplicationNotOpened) { + return nil, huma.Error400BadRequest("Application is not opened") + } + + return nil, huma.Error500InternalServerError("Fail to submit application") + } + + return &SubmitApplicationOutput{ + Body: SubmitApplicationResponseDto{ + SubmittedAt: submittedAt, + }, + }, nil +} + +type GetDownloadResumeOutput struct { + Body string +} + +func (h *handler) handleGetApplicationResumeURL(ctx context.Context, input *struct{}) (*GetDownloadResumeOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + request, err := h.applicationService.GetApplicationResumeURL(ctx, userCtx.UserID, 60) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to get url to download resume") + } + + return &GetDownloadResumeOutput{Body: request.URL}, nil +} + +type ReplaceResumeOutput struct { + Status int +} + +func (h *handler) handleReplaceResume(ctx context.Context, input *struct { + RawBody huma.MultipartFormFiles[struct { + Resume huma.FormFile `form:"resume" contentType:"application/pdf" required:"true"` + }] +}) (*ReplaceResumeOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + fileHeaders := input.RawBody.Form.File["resume"] + if len(fileHeaders) == 0 { + return nil, huma.Error400BadRequest("Invalid resume file") + } + fileHeader := fileHeaders[0] + + if fileHeader.Size > 10*1024*1024 { // 10 MiB + return nil, huma.Error400BadRequest("File too large") + } + + file, err := fileHeader.Open() + if err != nil { + return nil, huma.Error400BadRequest("Failed to parse uploaded resume") + } + defer file.Close() + + resumeBuffer := bytes.NewBuffer(nil) + if _, err := io.Copy(resumeBuffer, file); err != nil { + return nil, huma.Error500InternalServerError("Error while parsing resume") + } + + if err := h.applicationService.ReplaceResume(ctx, userCtx.UserID, resumeBuffer.Bytes()); err != nil { + if errors.Is(err, database.ErrApplicationNotFound) { + return nil, huma.Error400BadRequest("No application found to replace resume for") + } + if errors.Is(err, ErrCannotReplaceResume) { + return nil, huma.Error400BadRequest(err.Error()) + } + return nil, huma.Error500InternalServerError("Unable to replace resume") + } + + return &ReplaceResumeOutput{Status: http.StatusNoContent}, nil +} + +type GetApplicationStatisticsOutput struct { + Body ApplicationStatisticsDto +} + +func (h *handler) handleGetApplicationStatistics(ctx context.Context, input *struct{}) (*GetApplicationStatisticsOutput, error) { + stats, err := h.applicationService.GetApplicationStatistics(ctx) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to get application statistics") + } + + return &GetApplicationStatisticsOutput{Body: *stats}, nil +} + +type UpdateApplicationReviewStatusForHackathonOutput struct { + Status int +} + +func (h *handler) handleUpdateApplicationReviewStatusForHackathon(ctx context.Context, input *struct { + Body struct { + Started bool `json:"started" required:"true"` + } +}) (*UpdateApplicationReviewStatusForHackathonOutput, error) { + err := h.applicationService.UpdateApplicationReviewStatusForHackathon(ctx, input.Body.Started) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to update review status for hackathon") + } + + return &UpdateApplicationReviewStatusForHackathonOutput{Status: http.StatusOK}, nil +} + +type GetApplicationReviewDetailsOutput struct { + Body ApplicationReviewResponseDto +} + +func (h *handler) handleGetReviewById(ctx context.Context, input *struct { + ID uuid.UUID `path:"reviewId"` +}) (*GetApplicationReviewDetailsOutput, error) { + review, resume, err := h.applicationService.GetReviewById(ctx, input.ID) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to get application review details") + } + + var autoDecisionRequest *AutoDecisionRequestDto + if review.DecisionRequestID != nil && review.RequestedDecision.Valid { + autoDecisionRequest = &AutoDecisionRequestDto{ + ID: *review.DecisionRequestID, + ApplicationID: review.ID, + RequestedDecision: string(review.RequestedDecision.ApplicationAutoDecisionType), + Justification: review.DecisionJustification, + AutoDecisionApproved: *review.DecisionApproved, + CreatedAt: *review.DecisionRequestCreatedAt, + DecidedBy: review.DecisionDecidedBy, + } + } + + return &GetApplicationReviewDetailsOutput{Body: ApplicationReviewResponseDto{ + ID: review.ID, + PassionRating: review.PassionRating, + ExperienceRating: review.ExperienceRating, + Notes: review.Notes, + Application: review.Application, + ResumeURL: resume.URL, + AutoDecisionRequest: autoDecisionRequest, + }}, nil +} + +type SubmitApplicationReviewOutput struct { + Status int +} + +func (h *handler) handleSubmitApplicationReview(ctx context.Context, input *struct { + Body SaveReviewRequestDto +}) (*SubmitApplicationReviewOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + err := h.applicationService.SaveApplicationReview(ctx, input.Body, userCtx.UserID, userCtx.Role) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to save review") + } + + return &SubmitApplicationReviewOutput{Status: http.StatusCreated}, nil +} + +type UpdateApplicationReviewOutput struct { + Status int +} + +func (h *handler) handleUpdateApplicationReview(ctx context.Context, input *struct { + Body UpdateReviewRequestDto +}) (*UpdateApplicationReviewOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + err := h.applicationService.UpdateApplicationReview(ctx, input.Body, userCtx.UserID) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to update review") + } + + return &UpdateApplicationReviewOutput{Status: http.StatusOK}, nil +} + +type GetReviewAssignmentsOutput struct { + Body []ReviewAssignmentDto `json:"body" nullable:"false"` +} + +func (h *handler) handleGetReviewAssignments(ctx context.Context, input *struct{}) (*GetReviewAssignmentsOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + reviews, err := h.applicationService.GetReviewsForReviewer(ctx, userCtx.UserID) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to get assigned applications") + } + + var assignments []ReviewAssignmentDto + for _, review := range reviews { + status := ApplicationReviewStatusInProgress + if review.ExperienceRating != nil && review.PassionRating != nil { + status = ApplicationReviewStatusCompleted + } + + assignments = append(assignments, ReviewAssignmentDto{ + ReviewID: review.ID, + UserID: review.UserID, + ApplicationID: review.ApplicationID, + Status: status, + }) + } + + return &GetReviewAssignmentsOutput{Body: assignments}, nil +} + +type AssignApplicationReviewersOutput struct { + Status int +} + +func (h *handler) handleAssignApplicationReviewers(ctx context.Context, input *struct { + Body []ReviewerAssignmentRequestDto +}) (*AssignApplicationReviewersOutput, error) { + err := h.applicationService.AssignReviewersToApplications(ctx, input.Body) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to assign reviewers") + } + + return &AssignApplicationReviewersOutput{Status: http.StatusOK}, nil +} + +type GetAllReviewersAndProgressOutput struct { + Body []ReviewerProgressResponseDto +} + +func (h *handler) handleGetAllReviewersAndProgress(ctx context.Context, input *struct{}) (*GetAllReviewersAndProgressOutput, error) { + results, err := h.applicationService.GetAllReviewersAndProgress(ctx) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to get all reviewers and their progress") + } + + reviewersProgress := make([]ReviewerProgressResponseDto, len(results)) + + for i, val := range results { + reviewersProgress[i] = ReviewerProgressResponseDto{ + ID: val.ID, + Name: val.Name, + Image: val.Image, + TotalAssigned: val.TotalAssigned, + CompletedCount: val.CompletedCount, + } + } + + return &GetAllReviewersAndProgressOutput{ + Body: reviewersProgress, + }, nil +} + +type SearchAutoDecisionRequestsOutput struct { + Body SearchAutoDecisionRequestsResponseDto +} + +func (h *handler) handleSearchAutoDecisionRequests(ctx context.Context, input *SearchAutoDecisionRequestsDto) (*SearchAutoDecisionRequestsOutput, error) { + count, requests, err := h.applicationService.SearchAutoDecisionRequests(ctx, *input) + + if err != nil { + return nil, huma.Error500InternalServerError("error retrieving requests") + } + + searchAutoDecisionRequestsResponses := make([]ExtendedAutoDecisionRequestDto, len(requests)) + + for i, val := range requests { + var decidedBy *AppUser + if val.DecidedBy != nil { + decidedBy = &AppUser{ + ID: *val.DecidedBy, + UserName: *val.ApproverName, + Image: val.ApproverImage, + } + } + + searchAutoDecisionRequestsResponses[i] = ExtendedAutoDecisionRequestDto{ + ID: val.ID, + User: AppUser{ + ID: val.UserID, + UserName: val.UserName, + Image: val.UserImage, + }, + ApplicationID: val.ApplicationID, + Reviewer: AppUser{ + ID: val.ReviewerID, + UserName: val.ReviewerName, + Image: val.ReviewerImage, + }, + DecidedBy: decidedBy, + RequestedDecision: string(val.RequestedDecision), + Justification: val.Justification, + Approved: val.Approved, + UpdatedAt: val.UpdatedAt, + CreatedAt: val.CreatedAt, + } + } + + return &SearchAutoDecisionRequestsOutput{Body: SearchAutoDecisionRequestsResponseDto{ + Count: *count, + Requests: searchAutoDecisionRequestsResponses, + }}, nil +} + +type GetAutoDecisionRequestsOutput struct { + Body []ExtendedAutoDecisionRequestDto `json:"body" nullable:"false"` +} + +func (h *handler) handleGetAutoDecisionRequests(ctx context.Context, input *struct{}) (*GetAutoDecisionRequestsOutput, error) { + requests, err := h.applicationService.GetAllAutoDecisionRequests(ctx) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to get auto decision requests") + } + + extendedRequests := make([]ExtendedAutoDecisionRequestDto, len(requests)) + + for i, val := range requests { + var decidedBy *AppUser + if val.DecidedBy != nil { + decidedBy = &AppUser{ + ID: *val.DecidedBy, + UserName: *val.ApproverName, + Image: val.ApproverImage, + } + } + + extendedRequests[i] = ExtendedAutoDecisionRequestDto{ + ID: val.ID, + ApplicationID: val.ApplicationID, + User: AppUser{ + ID: val.UserID, + UserName: val.UserName, + Image: val.UserImage, + }, + Reviewer: AppUser{ + ID: val.ReviewerID, + UserName: val.ReviewerName, + Image: val.ReviewerImage, + }, + DecidedBy: decidedBy, + RequestedDecision: string(val.RequestedDecision), + Justification: val.Justification, + Approved: val.Approved, + UpdatedAt: val.UpdatedAt, + CreatedAt: val.CreatedAt, + } + } + + return &GetAutoDecisionRequestsOutput{Body: extendedRequests}, nil +} + +type RequestAutoDecisionOutput struct { + Body AutoDecisionRequestDto +} + +func (h *handler) handleRequestAutoDecision(ctx context.Context, input *struct { + Body CreateAutoDecisionRequestDto +}) (*RequestAutoDecisionOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + req, err := h.applicationService.RequestAutoDecision(ctx, input.Body, userCtx.UserID, userCtx.Role) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to request decision") + } + + return &RequestAutoDecisionOutput{Body: AutoDecisionRequestDto{ + ID: req.ID, + ApplicationID: req.ApplicationID, + RequestedDecision: string(req.RequestedDecision), + Justification: req.Justification, + AutoDecisionApproved: *req.Approved, + CreatedAt: req.CreatedAt, + DecidedBy: req.DecidedBy, + }}, nil +} + +type DeleteAutoDecisionRequest struct { + RequestId uuid.UUID `json:"requestId"` +} + +type DeleteAutoDecisionOutput struct { + Status int +} + +func (h *handler) handleDeleteAutoDecision(ctx context.Context, input *struct { + Body DeleteAutoDecisionRequest +}) (*DeleteAutoDecisionOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + err := h.applicationService.DeleteAutoDecisionRequest(ctx, input.Body.RequestId, userCtx.UserID) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to delete auto decision request") + } + + return &DeleteAutoDecisionOutput{Status: http.StatusOK}, nil +} + +type UpdateAutoDecisionOutput struct { + Status int +} + +func (h *handler) handleUpdateAutoDecision(ctx context.Context, input *struct { + Body UpdateAutoDecisionRequestDto +}) (*UpdateAutoDecisionOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + err := h.applicationService.UpdateAutoDecisionRequest( + ctx, + input.Body, + userCtx.UserID, + ) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to update auto decision request") + } + + return &UpdateAutoDecisionOutput{Status: http.StatusOK}, nil +} + +type ResetApplicationReviewsOutput struct { + Status int +} + +func (h *handler) handleResetApplicationReviews(ctx context.Context, input *struct{}) (*ResetApplicationReviewsOutput, error) { + err := h.applicationService.DeleteAllApplicationReviews(ctx) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to reset application reviews") + } + + return &ResetApplicationReviewsOutput{Status: http.StatusOK}, nil +} + +type WithdrawApplicationOutput struct { + Status int +} + +func (h *handler) handleWithdrawApplication(ctx context.Context, input *struct{}) (*WithdrawApplicationOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + if userCtx.Role != sqlc.UserRoleApplicant { + return nil, huma.Error400BadRequest("Not an applicant") + } + + err := h.applicationService.WithdrawApplication(ctx, userCtx.UserID) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to withdraw attendance") + } + + return &WithdrawApplicationOutput{Status: http.StatusOK}, nil +} + +type ConfirmAttendanceOutput struct { + Status int +} + +func (h *handler) handleConfirmAttendance(ctx context.Context, input *struct{}) (*ConfirmAttendanceOutput, error) { + userCtx := ctxutils.GetUserFromCtx(ctx) + + if userCtx == nil { + return nil, huma.Error400BadRequest("Failed to get current user info") + } + + if userCtx.Role != sqlc.UserRoleApplicant { + return nil, huma.Error400BadRequest("Not an applicant") + } + + err := h.applicationService.ConfirmAttendance(ctx, userCtx.UserID) + + if err != nil { + return nil, huma.Error500InternalServerError("Unable to withdraw attendance") + } + + return &ConfirmAttendanceOutput{Status: http.StatusOK}, nil +} + +// type GetApplicationByUserIdOutput struct { +// Body Application +// } + +// // TODO: Return StaffApplicationResponse instead +// func (h *handler) handleGetApplicationByUserId(ctx context.Context, input *struct { +// UserID string `path:"userId"` +// }) (*GetApplicationByUserIdOutput, error) { +// userID, err := uuid.Parse(input.UserID) + +// if err != nil { +// return nil, huma.Error400BadRequest("Invalid user id") +// } + +// application, err := h.applicationService.GetApplicationByUserId(ctx, userID) + +// if err != nil { +// if errors.Is(err, database.ErrApplicationNotFound) { +// return nil, huma.Error404NotFound("Application not found for user") +// } + +// return nil, huma.Error500InternalServerError("error retrieving application") +// } + +// return &GetApplicationByUserIdOutput{Body: Application{ +// ID: application.ID, +// UserID: application.UserID, +// Status: string(application.Status), +// Application: application.Application, +// CreatedAt: application.CreatedAt, +// SavedAt: application.SavedAt, +// UpdatedAt: application.UpdatedAt, +// SubmittedAt: application.SubmittedAt, +// HackathonID: application.HackathonID, +// }}, nil +// } + +// type GetResumePresignedUrlOutput struct { +// Body string +// } + +// func (h *handler) handleGetResumePresignedUrlByApplicationId(ctx context.Context, input *struct { +// ApplicationId string `path:"applicationId"` +// }) (*GetResumePresignedUrlOutput, error) { +// userCtx := ctxutils.GetUserFromCtx(ctx) + +// if userCtx == nil { +// return nil, huma.Error400BadRequest("Failed to get current user info") +// } + +// applicationId, err := uuid.Parse(input.ApplicationId) + +// if err != nil { +// return nil, huma.Error400BadRequest("Invalid applicationId") +// } + +// if userCtx.Role != sqlc.UserRoleStaff && userCtx.Role != sqlc.UserRoleAdmin && userCtx.UserID != applicationId { +// return nil, huma.Error400BadRequest("You are not allowed to see other ppls resumes :(") +// } + +// request, err := h.applicationService.GetApplicationResumeURL(ctx, applicationId, 600) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Unable to retrieve download url") +// } + +// return &GetResumePresignedUrlOutput{Body: request.URL}, nil +// } + +// type JoinWaitlistOutput struct { +// Status int +// } + +// func (h *handler) handleJoinWaitlist(ctx context.Context, input *struct{}) (*JoinWaitlistOutput, error) { +// userCtx := ctxutils.GetUserFromCtx(ctx) + +// if userCtx == nil { +// return nil, huma.Error400BadRequest("Failed to get current user info") +// } + +// err := h.applicationService.JoinWaitlist(ctx, userCtx.UserID) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Unable to join waitlist") +// } + +// return &JoinWaitlistOutput{Status: http.StatusOK}, nil +// } + +// type WithdrawAcceptanceOutput struct { +// Status int +// } + +// func (h *handler) handleWithdrawAcceptance(ctx context.Context, input *struct{}) (*WithdrawAcceptanceOutput, error) { +// userCtx := ctxutils.GetUserFromCtx(ctx) + +// if userCtx == nil { +// return nil, huma.Error400BadRequest("Failed to get current user info") +// } + +// err := h.applicationService.WithdrawAcceptance(ctx, userCtx.UserID) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Unable to withdraw acceptance") +// } + +// return &WithdrawAcceptanceOutput{Status: http.StatusOK}, nil +// } + +// type TransitionWaitlistedApplicationsOutput struct { +// Status int +// } + +// func (h *handler) handleTransitionWaitlistedApplications(ctx context.Context, input *struct{}) (*TransitionWaitlistedApplicationsOutput, error) { +// // TODO: move these numbers elsewhere to a config file or something +// var acceptanceCount uint32 = 50 +// var acceptanceQuota uint32 = 500 +// err := h.applicationService.TransitionWaitlistedApplications(ctx, acceptanceCount, acceptanceQuota) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Fail to transition waitlisted applications") +// } + +// return &TransitionWaitlistedApplicationsOutput{Status: http.StatusOK}, nil +// } + +// type CalculateAdmissionsRequestOutput struct { +// Status int +// } + +// func (h *handler) handleCalculateAdmissionsRequest(ctx context.Context, input *struct{}) (*CalculateAdmissionsRequestOutput, error) { +// _, err := h.batService.QueueCalculateAdmissionsTask(ctx) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Failed to handle admissions calculation request") +// } + +// return &CalculateAdmissionsRequestOutput{Status: http.StatusOK}, nil +// } + +// type ReleaseDecisionsOutput struct { +// Status int +// } + +// func (h *handler) handleReleaseDecisions(ctx context.Context, input *struct { +// RunId string `path:"runId"` +// }) (*ReleaseDecisionsOutput, error) { +// runId, err := uuid.Parse(input.RunId) + +// if err != nil { +// return nil, huma.Error400BadRequest("Invalid Run Id") +// } + +// err = h.applicationService.ReleaseDecisions(ctx, runId) + +// if err != nil { +// return nil, err +// } + +// return &ReleaseDecisionsOutput{Status: http.StatusOK}, nil + +// } diff --git a/apps/api/internal/domains/application/http.go b/apps/api/internal/domains/application/http.go index b9c43c3c..23176c5d 100644 --- a/apps/api/internal/domains/application/http.go +++ b/apps/api/internal/domains/application/http.go @@ -1,32 +1,20 @@ package application import ( - "bytes" - "context" - "errors" - "io" "net/http" - "strconv" - "time" "github.com/danielgtaylor/huma/v2" - "github.com/go-playground/validator/v10" - "github.com/google/uuid" "github.com/rs/zerolog" "github.com/swamphacks/core/apps/api/internal/api/cookie" "github.com/swamphacks/core/apps/api/internal/api/middleware" "github.com/swamphacks/core/apps/api/internal/config" - "github.com/swamphacks/core/apps/api/internal/ctxutils" - "github.com/swamphacks/core/apps/api/internal/database" - "github.com/swamphacks/core/apps/api/internal/database/sqlc" - "github.com/swamphacks/core/apps/api/internal/domains/bat" ) func RegisterRoutes(applicationHandler *handler, group huma.API, mw *middleware.Middleware) { huma.Register(group, huma.Operation{ - OperationID: "get-application", + OperationID: "get-my-application", Method: http.MethodGet, - Summary: "Get Application", + Summary: "Get My Application", Description: "Get the application of the current user", Tags: []string{"Application"}, Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, @@ -34,33 +22,59 @@ func RegisterRoutes(applicationHandler *handler, group huma.API, mw *middleware. Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleGetApplication) + }, applicationHandler.handleGetMyApplication) + + // huma.Register(group, huma.Operation{ + // OperationID: "get-application-by-user-id", + // Method: http.MethodGet, + // Summary: "Get Application By User ID", + // Description: "Get the application of the specified user", + // Tags: []string{"Application"}, + // Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, + // Path: "/{userId}", + // Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + // Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + // DefaultStatus: http.StatusOK, + // }, applicationHandler.handleGetApplicationByUserId) huma.Register(group, huma.Operation{ - OperationID: "save-application", - Method: http.MethodPost, - Summary: "Save Application", - Description: "Save user's progress on the application. File/Upload fields are not saved (eg. resumes).", + OperationID: "get-extended-application-by-id", + Method: http.MethodGet, + Summary: "Get Extended Application By ID", + Description: "Get the full details of an application, including reviews, applicant and other information", Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/save", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/extended/{applicationId}", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleSaveApplication) + }, applicationHandler.handleGetExtendedApplicationById) huma.Register(group, huma.Operation{ - OperationID: "submit-application", - Method: http.MethodPost, - Summary: "Submit Application", - Description: "Submit the application", + OperationID: "update-application-by-id", + Method: http.MethodPatch, + Summary: "Update Application By ID", + Description: "Update an application", Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RawHTTPMiddlewareHuma, mw.Auth.RequireAuthHuma}, - Path: "/submit", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleSubmitApplication) + }, applicationHandler.handleUpdateApplicationById) + + huma.Register(group, huma.Operation{ + OperationID: "search-applications", + Method: http.MethodGet, + Summary: "Search Applications", + Description: "Search applications for the current hackthaton.", + Tags: []string{"Application"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/search", + Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, applicationHandler.handleSearchApplications) huma.Register(group, huma.Operation{ OperationID: "get-download-resume-url", @@ -73,11 +87,11 @@ func RegisterRoutes(applicationHandler *handler, group huma.API, mw *middleware. Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleGetDownloadResumeURL) + }, applicationHandler.handleGetApplicationResumeURL) huma.Register(group, huma.Operation{ OperationID: "replace-resume", - Method: http.MethodPut, + Method: http.MethodPatch, Summary: "Replace Resume", Description: "Replaces the resume of an already-submitted application without modifying any question responses.", Tags: []string{"Application"}, @@ -101,716 +115,307 @@ func RegisterRoutes(applicationHandler *handler, group huma.API, mw *middleware. }, applicationHandler.handleGetApplicationStatistics) huma.Register(group, huma.Operation{ - OperationID: "submit-application-review", + OperationID: "save-application", Method: http.MethodPost, - Summary: "Submit Application Review", - Description: "Handles ratings submissions from staff during the application review process", + Summary: "Save Application", + Description: "Save user's progress on the application. File/Upload fields are not saved (eg. resumes).", Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, - Path: "/review/{applicantId}", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + Path: "/save", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleSubmitApplicationReview) + }, applicationHandler.handleSaveApplication) huma.Register(group, huma.Operation{ - OperationID: "get-assigned-applications", - Method: http.MethodGet, - Summary: "Get Assigned Applications", - Description: "Returns assigned applications and their review progress for the authenticated reviewer", + OperationID: "submit-application", + Method: http.MethodPost, + Summary: "Submit Application", + Description: "Submit the application", Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, - Path: "/assigned", + Middlewares: huma.Middlewares{mw.Auth.RawHTTPMiddlewareHuma, mw.Auth.RequireAuthHuma}, + Path: "/submit", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleGetAssignedApplications) + }, applicationHandler.handleSubmitApplication) huma.Register(group, huma.Operation{ - OperationID: "assign-application-reviewers", - Method: http.MethodPost, - Summary: "Assign Application Reviewers", - Description: "Assigns applications to reviewers for the application review process.", + OperationID: "withdraw-application", + Method: http.MethodPatch, + Summary: "Withdraw Application", + Description: "Withdraw application after being accepted to the hackthon. Sets application status from accepted to withdrawn.", Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Path: "/review/assign", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + Path: "/withdraw", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleAssignApplicationReviewers) + }, applicationHandler.handleWithdrawApplication) huma.Register(group, huma.Operation{ - OperationID: "reset-application-reviews", - Method: http.MethodPost, - Summary: "Reset Application Reviews", - Description: "Resets all application reviews, clearing any existing reviewer assignments.", + OperationID: "confirm-attendance", + Method: http.MethodPatch, + Summary: "Confirm Attendance", + Description: "Confirm attendance after being accepted. Sets event role to attendee from applicant.", Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Path: "/review/reset", + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + Path: "/confirm", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleResetApplicationReviews) + }, applicationHandler.handleConfirmAttendance) + + // REVIEWS huma.Register(group, huma.Operation{ - OperationID: "get-resume", + OperationID: "get-review-assignments", Method: http.MethodGet, - Summary: "Get Resume URL (for review process)", - Description: "Returns a presigned S3 URL with GET permission for a specific user's resume as an object. The client can use this URL to download the object temporarily for application review.", - Tags: []string{"Application"}, + Summary: "Get Review Assignments", + Description: "Get review assignments for the reviewer and review status for each", + Tags: []string{"Application Review"}, Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, - Path: "/review/{applicantId}/resume", + Path: "/review/assignments", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleGetResumePresignedUrl) + }, applicationHandler.handleGetReviewAssignments) huma.Register(group, huma.Operation{ - OperationID: "join-waitlist", - Method: http.MethodPatch, - Summary: "Join Waitlist", - Description: "Adds a waitlist join time to application. Sets status to waitlisted", - Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/join-waitlist", + OperationID: "get-review-by-id", + Method: http.MethodGet, + Summary: "Get Review By Id", + Description: "Get an application review detail including ratings, the application json, and resume", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, + Path: "/review/{reviewId}", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleJoinWaitlist) + }, applicationHandler.handleGetReviewById) huma.Register(group, huma.Operation{ - OperationID: "withdraw-acceptance", - Method: http.MethodPatch, - Summary: "Withdraw Acceptance", - Description: "Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected.", - Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/withdraw-acceptance", + OperationID: "get-reviewers-and-progress", + Method: http.MethodGet, + Summary: "Get All Reviewers and Progress", + Description: "Get all reviewers and their progress", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/review/progress", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleWithdrawAcceptance) + }, applicationHandler.handleGetAllReviewersAndProgress) huma.Register(group, huma.Operation{ - OperationID: "withdraw-application", - Method: http.MethodPatch, - Summary: "Withdraw Application", - Description: "Withdraw application after being accepted to the hackthon. Sets application status from accepted to withdrawn.", - Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/withdraw-application", + OperationID: "submit-application-review", + Method: http.MethodPost, + Summary: "Submit Application Review", + Description: "Handles ratings submissions from staff during the application review process", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, + Path: "/review", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleWithdrawApplication) + }, applicationHandler.handleSubmitApplicationReview) huma.Register(group, huma.Operation{ - OperationID: "confirm-attendance", + OperationID: "update-application-review", Method: http.MethodPatch, - Summary: "Confirm Attendance", - Description: "Confirm attendance after being accepted. Sets event role to attendee from applicant.", - Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/confirm-attendance", + Summary: "Update Application Review", + Description: "Update application review", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/review", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleConfirmAttendance) + }, applicationHandler.handleUpdateApplicationReview) huma.Register(group, huma.Operation{ - OperationID: "transition-waitlist", - Method: http.MethodPatch, - Summary: "Transition Waitlisted Applications", - Description: "Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected.", - Tags: []string{"Application"}, - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, - Path: "/transition-waitlisted-applications", + OperationID: "update-application-review-status", + Method: http.MethodPost, + Summary: "Update Application Review Status", + Description: "Update the application review status for the current hackathon", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/review/update-status", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleTransitionWaitlistedApplications) + }, applicationHandler.handleUpdateApplicationReviewStatusForHackathon) huma.Register(group, huma.Operation{ - OperationID: "calculate-admissions-request", + OperationID: "assign-application-reviewers", Method: http.MethodPost, - Summary: "Submit Admissions Calculation Request", - Description: "Queues an admission calculation task to the BAT worker", - Tags: []string{"Application"}, + Summary: "Assign Application Reviewers", + Description: "Assigns applications to reviewers for the application review process.", + Tags: []string{"Application Review"}, Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Path: "/calculate-admissions", + Path: "/review/assign", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleCalculateAdmissionsRequest) + }, applicationHandler.handleAssignApplicationReviewers) huma.Register(group, huma.Operation{ - OperationID: "release-decisions", + OperationID: "reset-application-reviews", Method: http.MethodPost, - Summary: "Release Decisions", - Description: "Releases decisions that were calculated by the worker from a specific run id", - Tags: []string{"Application"}, + Summary: "Reset Application Reviews", + Description: "Resets all application reviews, clearing any existing reviewer assignments.", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/review/reset", + Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, applicationHandler.handleResetApplicationReviews) + + huma.Register(group, huma.Operation{ + OperationID: "search-auto-decision-requests", + Method: http.MethodGet, + Summary: "Search Auto Decision Requests", + Description: "Search auto deicision requests", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/review/search-auto-decision-requests", + Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, applicationHandler.handleSearchAutoDecisionRequests) + + huma.Register(group, huma.Operation{ + OperationID: "get-auto-decision-requests", + Method: http.MethodGet, + Summary: "Get Auto Decision Requests", + Description: "Get all auto deicision requests created by staff", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + Path: "/review/all-auto-decision-requests", + Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, applicationHandler.handleGetAutoDecisionRequests) + + huma.Register(group, huma.Operation{ + OperationID: "request-auto-decision", + Method: http.MethodPost, + Summary: "Request Auto Decision", + Description: "Create a request to auto accept or auto reject applications.", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, + Path: "/review/auto-decision", + Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, applicationHandler.handleRequestAutoDecision) + + huma.Register(group, huma.Operation{ + OperationID: "delete-auto-decision", + Method: http.MethodDelete, + Summary: "Delete Auto Decision", + Description: "Delete an existing auto decision made by current reviewer", + Tags: []string{"Application Review"}, + Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireStaffHuma}, + Path: "/review/auto-decision", + Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + DefaultStatus: http.StatusOK, + }, applicationHandler.handleDeleteAutoDecision) + + huma.Register(group, huma.Operation{ + OperationID: "update-auto-decision-request", + Method: http.MethodPatch, + Summary: "Update Auto Decision Request", + Description: "Update an auto decision request", + Tags: []string{"Application Review"}, Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Path: "/release-decisions/{runId}", + Path: "/review/auto-decision", Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, DefaultStatus: http.StatusOK, - }, applicationHandler.handleReleaseDecisions) + }, applicationHandler.handleUpdateAutoDecision) + + // huma.Register(group, huma.Operation{ + // OperationID: "join-waitlist", + // Method: http.MethodPatch, + // Summary: "Join Waitlist", + // Description: "Adds a waitlist join time to application. Sets status to waitlisted", + // Tags: []string{"Application"}, + // Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + // Path: "/join-waitlist", + // Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + // Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + // DefaultStatus: http.StatusOK, + // }, applicationHandler.handleJoinWaitlist) + + // huma.Register(group, huma.Operation{ + // OperationID: "withdraw-acceptance", + // Method: http.MethodPatch, + // Summary: "Withdraw Acceptance", + // Description: "Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected.", + // Tags: []string{"Application"}, + // Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + // Path: "/withdraw-acceptance", + // Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + // Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + // DefaultStatus: http.StatusOK, + // }, applicationHandler.handleWithdrawAcceptance) + + // huma.Register(group, huma.Operation{ + // OperationID: "transition-waitlist", + // Method: http.MethodPatch, + // Summary: "Transition Waitlisted Applications", + // Description: "Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected.", + // Tags: []string{"Application"}, + // Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma}, + // Path: "/transition-waitlisted-applications", + // Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + // Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + // DefaultStatus: http.StatusOK, + // }, applicationHandler.handleTransitionWaitlistedApplications) + + // huma.Register(group, huma.Operation{ + // OperationID: "calculate-admissions-request", + // Method: http.MethodPost, + // Summary: "Submit Admissions Calculation Request", + // Description: "Queues an admission calculation task to the BAT worker", + // Tags: []string{"Application"}, + // Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + // Path: "/calculate-admissions", + // Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + // Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + // DefaultStatus: http.StatusOK, + // }, applicationHandler.handleCalculateAdmissionsRequest) + + // huma.Register(group, huma.Operation{ + // OperationID: "release-decisions", + // Method: http.MethodPost, + // Summary: "Release Decisions", + // Description: "Releases decisions that were calculated by the worker from a specific run id", + // Tags: []string{"Application"}, + // Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, + // Path: "/release-decisions/{runId}", + // Errors: []int{http.StatusUnauthorized, http.StatusInternalServerError}, + // Parameters: []*huma.Param{cookie.SessionCookieHumaParam}, + // DefaultStatus: http.StatusOK, + // }, applicationHandler.handleReleaseDecisions) } type handler struct { applicationService *ApplicationService - batService *bat.BatService config *config.Config logger zerolog.Logger } func NewHandler( - applicationService *ApplicationService, batService *bat.BatService, + applicationService *ApplicationService, config *config.Config, logger zerolog.Logger, ) *handler { return &handler{ applicationService: applicationService, - batService: batService, config: config, logger: logger, } } - -type HackerApplication struct { - UserID uuid.UUID `json:"userId"` - Status sqlc.ApplicationStatus `json:"status"` - Application []byte `json:"application"` - CreatedAt time.Time `json:"createdAt"` - SavedAt time.Time `json:"savedAt"` - UpdatedAt time.Time `json:"updatedAt"` - SubmittedAt *time.Time `json:"submittedAt"` - HackathonID string `json:"hackathonId"` -} - -type GetApplicationOutput struct { - Body HackerApplication -} - -func (h *handler) handleGetApplication(ctx context.Context, input *struct{}) (*GetApplicationOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - application, err := h.applicationService.GetApplicationByUserId(ctx, userCtx.UserID) - if err != nil { - if errors.Is(err, database.ErrApplicationNotFound) { - newApplication, err := h.applicationService.CreateApplication(ctx, userCtx.UserID) - - if err != nil || newApplication == nil { - return nil, huma.Error500InternalServerError(err.Error()) - } - - return &GetApplicationOutput{Body: HackerApplication{ - UserID: newApplication.UserID, - Status: newApplication.Status, - Application: newApplication.Application, - CreatedAt: newApplication.CreatedAt, - SavedAt: newApplication.SavedAt, - UpdatedAt: newApplication.UpdatedAt, - SubmittedAt: newApplication.SubmittedAt, - HackathonID: newApplication.HackathonID, - }}, nil - } - - if errors.Is(err, ErrApplicationNotOpened) { - return nil, huma.Error400BadRequest(err.Error()) - } - - return nil, huma.Error500InternalServerError("error retrieving application") - } - - return &GetApplicationOutput{Body: HackerApplication{ - UserID: application.UserID, - Status: application.Status, - Application: application.Application, - CreatedAt: application.CreatedAt, - SavedAt: application.SavedAt, - UpdatedAt: application.UpdatedAt, - SubmittedAt: application.SubmittedAt, - HackathonID: application.HackathonID, - }}, nil -} - -type SaveApplicationOutput struct { - Status int -} - -func (h *handler) handleSaveApplication(ctx context.Context, input *struct { - Body any -}) (*SaveApplicationOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - // TODO: validate input.Body, make sure that the data is the application - err := h.applicationService.SaveApplication(ctx, input.Body, userCtx.UserID) - - if err != nil { - return nil, huma.Error500InternalServerError(err.Error()) - } - - return &SaveApplicationOutput{Status: http.StatusOK}, nil -} - -type SubmissionResult struct { - SubmittedAt *time.Time `json:"submittedAt"` -} - -type SubmitApplicationOutput struct { - Body SubmissionResult -} - -func (h *handler) handleSubmitApplication(ctx context.Context, input *struct{}) (*SubmitApplicationOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - // TODO: refactor this to using Huma's request API instead of using the raw http package - - r := ctx.Value(middleware.RawRequestKey{}).(*http.Request) - - // Parse multipart form (10 MB max memory) - err := r.ParseMultipartForm(10 << 20) - if err != nil { - return nil, huma.Error400BadRequest("Failed to parse form") - } - - var submission ApplicationSubmissionFields - - // Map form values - submission.FirstName = r.FormValue("firstName") - submission.LastName = r.FormValue("lastName") - - if ageStr := r.FormValue("age"); ageStr != "" { - if age, err := strconv.Atoi(ageStr); err == nil { - submission.Age = age - } - } - - submission.Phone = r.FormValue("phone") - submission.PreferredEmail = r.FormValue("preferredEmail") - submission.UniversityEmail = r.FormValue("universityEmail") - - submission.Country = r.FormValue("country") - submission.Gender = r.FormValue("gender") - submission.GenderOther = r.FormValue("gender-other") - submission.Pronouns = r.FormValue("pronouns") - submission.Race = r.FormValue("race") - submission.RaceOther = r.FormValue("race-other") - submission.Orientation = r.FormValue("orientation") - - submission.Linkedin = r.FormValue("linkedin") - submission.Github = r.FormValue("github") - - if ageCertStr := r.FormValue("ageCertification"); ageCertStr != "" { - submission.AgeCertification = (ageCertStr == "true" || ageCertStr == "1") - } - - submission.School = r.FormValue("school") - submission.Level = r.FormValue("level") - submission.LevelOther = r.FormValue("level-other") - submission.Year = r.FormValue("year") - submission.YearOther = r.FormValue("year-other") - submission.GraduationYear = r.FormValue("graduationYear") - submission.Majors = r.FormValue("majors") - submission.Minors = r.FormValue("minors") - submission.Experience = r.FormValue("experience") - submission.UfHackathonExp = r.FormValue("ufHackathonExp") - submission.ProjectExperience = r.FormValue("projectExperience") - submission.ShirtSize = r.FormValue("shirtSize") - submission.Diet = r.FormValue("diet") - submission.Essay1 = r.FormValue("essay1") - submission.Essay2 = r.FormValue("essay2") - submission.Referral = r.FormValue("referral") - submission.PictureConsent = r.FormValue("pictureConsent") - submission.InPersonAcknowledgement = r.FormValue("inpersonAcknowledgement") - submission.AgreeToConduct = r.FormValue("agreeToConduct") - submission.InfoShareAuthorization = r.FormValue("infoShareAuthorization") - submission.AgreeToMLHEmails = r.FormValue("agreeToMLHEmails") - - resumeFile, _, err := r.FormFile("resume[]") - if err != nil { - return nil, huma.Error400BadRequest("Invalid resume file") - } - - defer resumeFile.Close() - - resumeFileBuffer := bytes.NewBuffer(nil) - - if _, err := io.Copy(resumeFileBuffer, resumeFile); err != nil { - return nil, huma.Error500InternalServerError("Error while parsing resume") - } - - validate := validator.New() - if err := validate.Struct(submission); err != nil { - return nil, huma.Error400BadRequest("Unable to parse application submission") - } - - submittedAt, err := h.applicationService.SubmitApplication(r.Context(), submission, resumeFileBuffer.Bytes(), userCtx.UserID) - - if err != nil { - if errors.Is(err, ErrApplicationNotOpened) { - return nil, huma.Error400BadRequest("Application is not opened") - } - - return nil, huma.Error500InternalServerError("Fail to submit application") - } - - return &SubmitApplicationOutput{ - Body: SubmissionResult{ - SubmittedAt: submittedAt, - }, - }, nil -} - -type GetDownloadResumeOutput struct { - Body string -} - -func (h *handler) handleGetDownloadResumeURL(ctx context.Context, input *struct{}) (*GetDownloadResumeOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - request, err := h.applicationService.GetDownloadResumeURL(ctx, userCtx.UserID, 60) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to get url to download resume") - } - - return &GetDownloadResumeOutput{Body: request.URL}, nil -} - -type ReplaceResumeOutput struct { - Status int -} - -func (h *handler) handleReplaceResume(ctx context.Context, input *struct { - RawBody huma.MultipartFormFiles[struct { - Resume huma.FormFile `form:"resume" contentType:"application/pdf" required:"true"` - }] -}) (*ReplaceResumeOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - fileHeaders := input.RawBody.Form.File["resume"] - if len(fileHeaders) == 0 { - return nil, huma.Error400BadRequest("Invalid resume file") - } - fileHeader := fileHeaders[0] - - if fileHeader.Size > 10*1024*1024 { // 10 MiB - return nil, huma.Error400BadRequest("File too large") - } - - file, err := fileHeader.Open() - if err != nil { - return nil, huma.Error400BadRequest("Failed to parse uploaded resume") - } - defer file.Close() - - resumeBuffer := bytes.NewBuffer(nil) - if _, err := io.Copy(resumeBuffer, file); err != nil { - return nil, huma.Error500InternalServerError("Error while parsing resume") - } - - if err := h.applicationService.ReplaceResume(ctx, userCtx.UserID, resumeBuffer.Bytes()); err != nil { - if errors.Is(err, database.ErrApplicationNotFound) { - return nil, huma.Error400BadRequest("No application found to replace resume for") - } - if errors.Is(err, ErrCannotReplaceResume) { - return nil, huma.Error400BadRequest(err.Error()) - } - return nil, huma.Error500InternalServerError("Unable to replace resume") - } - - return &ReplaceResumeOutput{Status: http.StatusNoContent}, nil -} - -type GetApplicationStatisticsOutput struct { - Body *ApplicationStatistics -} - -func (h *handler) handleGetApplicationStatistics(ctx context.Context, input *struct{}) (*GetApplicationStatisticsOutput, error) { - stats, err := h.applicationService.GetApplicationStatistics(ctx) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to get application statistics") - } - - return &GetApplicationStatisticsOutput{Body: stats}, nil -} - -type ReviewRatings struct { - PassionRating int `json:"passionRating" minLength:"1" maxLength:"5" required:"true"` - ExperienceRating int `json:"experienceRating" minLength:"1" maxLength:"5" required:"true"` -} - -type SubmitApplicationReviewOutput struct { - Status int -} - -func (h *handler) handleSubmitApplicationReview(ctx context.Context, input *struct { - ApplicantId string `path:"applicantId"` - Body ReviewRatings -}) (*SubmitApplicationReviewOutput, error) { - applicantId, err := uuid.Parse(input.ApplicantId) - - if err != nil { - return nil, huma.Error400BadRequest("Invalid applicant id") - } - - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - err = h.applicationService.SaveApplicationReview(ctx, userCtx.UserID, applicantId, input.Body.ExperienceRating, input.Body.PassionRating) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to save review") - } - - return &SubmitApplicationReviewOutput{Status: http.StatusCreated}, nil -} - -type GetAssignedApplicationsOutput struct { - Body []AssignedApplication -} - -func (h *handler) handleGetAssignedApplications(ctx context.Context, input *struct{}) (*GetAssignedApplicationsOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - applications, err := h.applicationService.GetAssignedApplicationsAndProgress(ctx, userCtx.UserID) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to get assigned applications") - } - - return &GetAssignedApplicationsOutput{Body: applications}, nil -} - -type AssignApplicationReviewersOutput struct { - Status int -} - -func (h *handler) handleAssignApplicationReviewers(ctx context.Context, input *struct { - Body []ReviewerAssignment -}) (*AssignApplicationReviewersOutput, error) { - err := h.applicationService.AssignReviewers(ctx, input.Body) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to assign reviewers") - } - - return &AssignApplicationReviewersOutput{Status: http.StatusOK}, nil -} - -type ResetApplicationReviewsOutput struct { - Status int -} - -func (h *handler) handleResetApplicationReviews(ctx context.Context, input *struct{}) (*ResetApplicationReviewsOutput, error) { - err := h.applicationService.ResetApplicationReviews(ctx) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to reset application reviews") - } - - return &ResetApplicationReviewsOutput{Status: http.StatusOK}, nil -} - -type GetResumePresignedUrlOutput struct { - Body string -} - -func (h *handler) handleGetResumePresignedUrl(ctx context.Context, input *struct { - ApplicantId string `path:"applicantId"` -}) (*GetResumePresignedUrlOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - applicantId, err := uuid.Parse(input.ApplicantId) - - if err != nil { - return nil, huma.Error400BadRequest("Invalid applicant id") - } - - if userCtx.Role != sqlc.UserRoleStaff && userCtx.Role != sqlc.UserRoleAdmin && userCtx.UserID != applicantId { - return nil, huma.Error400BadRequest("You are not allowed to see other ppls resumes :(") - } - - request, err := h.applicationService.GetDownloadResumeURL(ctx, applicantId, 600) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to retrieve download url") - } - - return &GetResumePresignedUrlOutput{Body: request.URL}, nil -} - -type JoinWaitlistOutput struct { - Status int -} - -func (h *handler) handleJoinWaitlist(ctx context.Context, input *struct{}) (*JoinWaitlistOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - err := h.applicationService.JoinWaitlist(ctx, userCtx.UserID) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to join waitlist") - } - - return &JoinWaitlistOutput{Status: http.StatusOK}, nil -} - -type WithdrawAcceptanceOutput struct { - Status int -} - -func (h *handler) handleWithdrawAcceptance(ctx context.Context, input *struct{}) (*WithdrawAcceptanceOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - err := h.applicationService.WithdrawAcceptance(ctx, userCtx.UserID) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to withdraw acceptance") - } - - return &WithdrawAcceptanceOutput{Status: http.StatusOK}, nil -} - -type WithdrawApplicationOutput struct { - Status int -} - -func (h *handler) handleWithdrawApplication(ctx context.Context, input *struct{}) (*WithdrawApplicationOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - if userCtx.Role != sqlc.UserRoleApplicant { - return nil, huma.Error400BadRequest("Not an applicant") - } - - err := h.applicationService.WithdrawApplication(ctx, userCtx.UserID) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to withdraw attendance") - } - - return &WithdrawApplicationOutput{Status: http.StatusOK}, nil -} - -type ConfirmAttendanceOutput struct { - Status int -} - -func (h *handler) handleConfirmAttendance(ctx context.Context, input *struct{}) (*ConfirmAttendanceOutput, error) { - userCtx := ctxutils.GetUserFromCtx(ctx) - - if userCtx == nil { - return nil, huma.Error400BadRequest("Failed to get current user info") - } - - if userCtx.Role != sqlc.UserRoleApplicant { - return nil, huma.Error400BadRequest("Not an applicant") - } - - err := h.applicationService.ConfirmAttendance(ctx, userCtx.UserID) - - if err != nil { - return nil, huma.Error500InternalServerError("Unable to withdraw attendance") - } - - return &ConfirmAttendanceOutput{Status: http.StatusOK}, nil -} - -type TransitionWaitlistedApplicationsOutput struct { - Status int -} - -func (h *handler) handleTransitionWaitlistedApplications(ctx context.Context, input *struct{}) (*TransitionWaitlistedApplicationsOutput, error) { - // TODO: move these numbers elsewhere to a config file or something - var acceptanceCount uint32 = 50 - var acceptanceQuota uint32 = 500 - err := h.applicationService.TransitionWaitlistedApplications(ctx, acceptanceCount, acceptanceQuota) - - if err != nil { - return nil, huma.Error500InternalServerError("Fail to transition waitlisted applications") - } - - return &TransitionWaitlistedApplicationsOutput{Status: http.StatusOK}, nil -} - -type CalculateAdmissionsRequestOutput struct { - Status int -} - -func (h *handler) handleCalculateAdmissionsRequest(ctx context.Context, input *struct{}) (*CalculateAdmissionsRequestOutput, error) { - _, err := h.batService.QueueCalculateAdmissionsTask(ctx) - - if err != nil { - return nil, huma.Error500InternalServerError("Failed to handle admissions calculation request") - } - - return &CalculateAdmissionsRequestOutput{Status: http.StatusOK}, nil -} - -type ReleaseDecisionsOutput struct { - Status int -} - -func (h *handler) handleReleaseDecisions(ctx context.Context, input *struct { - RunId string `path:"runId"` -}) (*ReleaseDecisionsOutput, error) { - runId, err := uuid.Parse(input.RunId) - - if err != nil { - return nil, huma.Error400BadRequest("Invalid Run Id") - } - - err = h.applicationService.ReleaseDecisions(ctx, runId) - - if err != nil { - return nil, err - } - - return &ReleaseDecisionsOutput{Status: http.StatusOK}, nil - -} diff --git a/apps/api/internal/domains/application/service.go b/apps/api/internal/domains/application/service.go index 5e6da0fd..c61774a4 100644 --- a/apps/api/internal/domains/application/service.go +++ b/apps/api/internal/domains/application/service.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "slices" "time" "github.com/google/uuid" @@ -13,57 +14,41 @@ import ( "github.com/rs/zerolog" "github.com/swamphacks/core/apps/api/internal/config" "github.com/swamphacks/core/apps/api/internal/database" - "github.com/swamphacks/core/apps/api/internal/database/repository" "github.com/swamphacks/core/apps/api/internal/database/sqlc" - "github.com/swamphacks/core/apps/api/internal/domains/bat" "github.com/swamphacks/core/apps/api/internal/domains/email" "github.com/swamphacks/core/apps/api/internal/storage" "golang.org/x/sync/errgroup" ) -var ( - ErrApplicationNotOpened = errors.New("Application not opened") - ErrFailedToCreateApplication = errors.New("Failed to create application") - ErrFailedToGetHackathon = errors.New("Failed to get hackathon information") - ErrCannotReplaceResume = errors.New("cannot replace resume before the application has been submitted") -) - type ApplicationService struct { - userRepo *repository.UserRepository - applicationRepo *repository.ApplicationRepository - hackathonRepo *repository.HackathonRepository - storage storage.Storage - buckets *config.CoreBuckets - txm *database.TransactionManager - scheduler *asynq.Scheduler - emailService *email.EmailService - batService *bat.BatService - config *config.Config - logger zerolog.Logger + db *database.DB + storage storage.Storage + buckets *config.CoreBuckets + txm *database.TransactionManager + scheduler *asynq.Scheduler + emailService *email.EmailService + config *config.Config + logger zerolog.Logger } func NewService( - applicationRepo *repository.ApplicationRepository, userRepo *repository.UserRepository, - hackathonRepo *repository.HackathonRepository, txm *database.TransactionManager, storage storage.Storage, buckets *config.CoreBuckets, - scheduler *asynq.Scheduler, emailService *email.EmailService, batService *bat.BatService, config *config.Config, logger zerolog.Logger, + db *database.DB, txm *database.TransactionManager, storage storage.Storage, buckets *config.CoreBuckets, + scheduler *asynq.Scheduler, emailService *email.EmailService, config *config.Config, logger zerolog.Logger, ) *ApplicationService { return &ApplicationService{ - applicationRepo: applicationRepo, - userRepo: userRepo, - hackathonRepo: hackathonRepo, - emailService: emailService, // TODO: is there anyway to structure this? I don't know if it's a good idea to depend on another service - batService: batService, - storage: storage, - buckets: buckets, - txm: txm, - scheduler: scheduler, - config: config, - logger: logger.With().Str("service", "ApplicationService").Str("domain", "application").Logger(), + db: db, + emailService: emailService, + storage: storage, + buckets: buckets, + txm: txm, + scheduler: scheduler, + config: config, + logger: logger.With().Str("service", "ApplicationService").Str("domain", "application").Logger(), } } func (s *ApplicationService) CreateApplication(ctx context.Context, userID uuid.UUID) (*sqlc.Application, error) { - hackathon, err := s.hackathonRepo.GetHackathon(ctx) + hackathon, err := s.db.Query.GetHackathon(ctx) if err != nil { s.logger.Err(err).Msg("Create application fail because can't retrieve hackathon") @@ -81,10 +66,9 @@ func (s *ApplicationService) CreateApplication(ctx context.Context, userID uuid. return nil, ErrApplicationNotOpened } - // TODO: don't hardcode the hackathonId - application, err := s.applicationRepo.CreateApplication(ctx, sqlc.CreateApplicationParams{ + application, err := s.db.Query.CreateApplication(ctx, sqlc.CreateApplicationParams{ UserID: userID, - HackathonID: "xii", + HackathonID: hackathon.ID, IsEarly: isEarly, }) @@ -93,14 +77,29 @@ func (s *ApplicationService) CreateApplication(ctx context.Context, userID uuid. return nil, ErrFailedToCreateApplication } - return application, nil + return &application, nil +} + +func (s *ApplicationService) GetApplicationById(ctx context.Context, id uuid.UUID) (*sqlc.Application, error) { + application, err := s.db.Query.GetApplicationById(ctx, id) + + if err != nil { + if errors.Is(err, pgx.ErrNoRows) { + return nil, database.ErrApplicationNotFound + } else { + s.logger.Err(err).Msg("Failed to get application by id") + return nil, err + } + } + + return &application, nil } func (s *ApplicationService) GetApplicationByUserId(ctx context.Context, userID uuid.UUID) (*sqlc.Application, error) { - application, err := s.applicationRepo.GetApplicationByUserId(ctx, userID) + application, err := s.db.Query.GetApplicationByUserId(ctx, userID) if err != nil { - if errors.Is(err, database.ErrApplicationNotFound) { + if errors.Is(err, pgx.ErrNoRows) { return nil, database.ErrApplicationNotFound } else { s.logger.Err(err).Msg("Failed to get application by user id") @@ -108,53 +107,75 @@ func (s *ApplicationService) GetApplicationByUserId(ctx context.Context, userID } } - return application, nil + return &application, nil } -// TODO: figure out a way to create the submission fields dynamically using the json form files with proper validation. -// these fields are only applicable to swamphacks xi, not other events -type ApplicationSubmissionFields struct { - FirstName string `json:"firstName" validate:"required,max=50"` - LastName string `json:"lastName" validate:"required,max=50"` - Age int `json:"age" validate:"required,min=0,max=99"` - Phone string `json:"phone" validate:"required,len=10"` - PreferredEmail string `json:"preferredEmail" validate:"required,email"` - UniversityEmail string `json:"universityEmail" validate:"required,email"` - Country string `json:"country" validate:"required"` - Gender string `json:"gender"` - GenderOther string `json:"gender-other"` - Pronouns string `json:"pronouns"` - Race string `json:"race"` - RaceOther string `json:"race-other"` - Orientation string `json:"orientation"` - Linkedin string `json:"linkedin" validate:"required,url"` - Github string `json:"github" validate:"required,url"` - AgeCertification bool `json:"ageCertification" validate:"required,boolean"` - School string `json:"school" validate:"required"` - Level string `json:"level" validate:"required"` - LevelOther string `json:"level-other"` - Year string `json:"year" validate:"required"` - YearOther string `json:"year-other"` - GraduationYear string `json:"graduationYear" validate:"required"` - Majors string `json:"majors" validate:"required"` - Minors string `json:"minors"` - Experience string `json:"experience" validate:"required"` - UfHackathonExp string `json:"ufHackathonExp" validate:"required"` - ProjectExperience string `json:"projectExperience" validate:"required"` - ShirtSize string `json:"shirtSize" validate:"required"` - Diet string `json:"diet"` - Essay1 string `json:"essay1" validate:"required"` - Essay2 string `json:"essay2" validate:"required"` - Referral string `json:"referral" validate:"required"` - PictureConsent string `json:"pictureConsent" validate:"required"` - InPersonAcknowledgement string `json:"inpersonAcknowledgement" validate:"required"` - AgreeToConduct string `json:"agreeToConduct" validate:"required"` - InfoShareAuthorization string `json:"infoShareAuthorization" validate:"required"` - AgreeToMLHEmails string `json:"agreeToMLHEmails"` +func (s *ApplicationService) UpdateApplicationById(ctx context.Context, req UpdateApplicationRequestDto) error { + params := sqlc.UpdateApplicationByIdParams{ + ID: req.ApplicationID, + } + + if req.Status != nil { + params.StatusDoUpdate = true + params.Status = *req.Status + } + + return s.db.Query.UpdateApplicationById(ctx, params) +} + +func (s *ApplicationService) GetExtendedApplicationById(ctx context.Context, id uuid.UUID) (*sqlc.GetExtendedApplicationByIdRow, error) { + extendedApplication, err := s.db.Query.GetExtendedApplicationById(ctx, id) + + if err != nil { + s.logger.Err(err). + Str("ApplicationId", id.String()). + Msg("GetExtendedApplicationById fail, unable to get extended application") + return nil, err + } + + return &extendedApplication, nil +} + +func (s *ApplicationService) SearchApplications(ctx context.Context, limit, offset int32, search string) (*int64, []sqlc.SearchApplicationsWithUserInfoRow, error) { + hackathon, err := s.db.Query.GetHackathon(ctx) + + if err != nil { + s.logger.Err(err).Msg("SearchApplications fail because can't retrieve hackathon") + return nil, nil, ErrFailedToGetHackathon + } + + g, ctx := errgroup.WithContext(ctx) + + var applicationsCount int64 + var applications []sqlc.SearchApplicationsWithUserInfoRow + + g.Go(func() error { + var err error + applicationsCount, err = s.db.Query.GetApplicationsCount(ctx, hackathon.ID) + return err + }) + + g.Go(func() error { + var err error + applications, err = s.db.Query.SearchApplicationsWithUserInfo(ctx, sqlc.SearchApplicationsWithUserInfoParams{ + HackathonID: hackathon.ID, + Offset: int32(offset * limit), + Limit: int32(limit), + Search: &search, + }) + return err + }) + + if err := g.Wait(); err != nil { + s.logger.Err(err).Msg("SearchApplications fail") + return nil, nil, err + } + + return &applicationsCount, applications, nil } func (s *ApplicationService) SubmitApplication(ctx context.Context, data ApplicationSubmissionFields, resume []byte, userID uuid.UUID) (*time.Time, error) { - hackathon, err := s.hackathonRepo.GetHackathon(ctx) + hackathon, err := s.db.Query.GetHackathon(ctx) if err != nil { s.logger.Err(err).Msg("Submit application fail because can't retrieve hackathon") @@ -180,9 +201,9 @@ func (s *ApplicationService) SubmitApplication(ctx context.Context, data Applica // Submitting application is an atomic operation err = s.txm.WithTx(ctx, func(tx pgx.Tx) error { - txAppRepo := s.applicationRepo.NewTx(tx) + txDB := s.db.NewTX(tx) - err := txAppRepo.UpdateApplication(ctx, sqlc.UpdateApplicationParams{ + err := txDB.Query.UpdateApplicationByUserId(ctx, sqlc.UpdateApplicationByUserIdParams{ UserID: userID, StatusDoUpdate: true, Status: sqlc.ApplicationStatusSubmitted, @@ -209,7 +230,7 @@ func (s *ApplicationService) SubmitApplication(ctx context.Context, data Applica return err } - err = s.userRepo.UpdateRole(ctx, sqlc.UpdateRoleParams{ + err = s.db.Query.UpdateRole(ctx, sqlc.UpdateRoleParams{ UserID: userID, Role: sqlc.UserRoleApplicant, }) @@ -259,12 +280,12 @@ func (s *ApplicationService) SaveApplication(ctx context.Context, data any, user return errors.New("Failed to parse application data") } - err = s.applicationRepo.UpdateApplication(ctx, sqlc.UpdateApplicationParams{ + err = s.db.Query.UpdateApplicationByUserId(ctx, sqlc.UpdateApplicationByUserIdParams{ + UserID: userID, StatusDoUpdate: true, Status: sqlc.ApplicationStatusStarted, ApplicationDoUpdate: true, Application: dataJSON, - UserID: userID, SavedAtDoUpdate: true, SavedAt: time.Now(), }) @@ -277,22 +298,37 @@ func (s *ApplicationService) SaveApplication(ctx context.Context, data any, user return nil } -func (s *ApplicationService) SubmitApplicationReview(ctx context.Context) (*sqlc.Application, error) { - // application, err := s.appRepo.GetAssignedApplicationByUserAndEventID(ctx, params) +func (s *ApplicationService) GetApplicationResumeURL(ctx context.Context, userID uuid.UUID, lifetimeSecs int64) (*storage.PresignedRequest, error) { + hackathon, err := s.db.Query.GetHackathon(ctx) + + presignableStorage, ok := s.storage.(storage.PresignableStorage) + + if !ok { + err := errors.New("unable to type cast `Storage` to `PresignableStorage`") + s.logger.Err(err).Msg("download resume fail storage setup") + return nil, err + } + + if lifetimeSecs <= 0 { + err := errors.New("invalid number of lifetime seconds") + return nil, err + } + + request, err := presignableStorage.PresignGetObject(ctx, s.buckets.ApplicationResumes, hackathon.ID+"/"+userID.String(), lifetimeSecs) - // if err != nil { - // s.logger.Err(err).Msg(err.Error()) - // return nil, err - // } + if err != nil { + s.logger.Err(err).Msg("fail presign get object") + return nil, err + } - return nil, nil + return request, nil } // ReplaceResume overwrites the resume of an already-submitted application without // touching any of the question responses. Hackers sometimes submit the wrong resume // and need to swap it out after the fact. func (s *ApplicationService) ReplaceResume(ctx context.Context, userID uuid.UUID, resume []byte) error { - hackathon, err := s.hackathonRepo.GetHackathon(ctx) + hackathon, err := s.db.Query.GetHackathon(ctx) if err != nil { s.logger.Err(err).Msg("Replace resume fail because can't retrieve hackathon") return ErrFailedToGetHackathon @@ -332,7 +368,7 @@ func (s *ApplicationService) GetDownloadResumeURL(ctx context.Context, userID uu return nil, err } - hackathon, err := s.hackathonRepo.GetHackathon(ctx) + hackathon, err := s.db.Query.GetHackathon(ctx) if err != nil { s.logger.Err(err).Msg("download resume fail because can't retrieve hackathon") return nil, ErrFailedToGetHackathon @@ -350,58 +386,49 @@ func (s *ApplicationService) GetDownloadResumeURL(ctx context.Context, userID uu return request, nil } -type ApplicationStatistics struct { - GenderStatistics sqlc.GetApplicationGenderSplitRow `json:"genderStats"` - AgeStatistics sqlc.GetApplicationAgeSplitRow `json:"ageStats"` - RaceStatistics []sqlc.GetApplicationRaceSplitRow `json:"raceStats"` - MajorStatistics []sqlc.GetApplicationMajorSplitRow `json:"majorStats"` - SchoolStatistics []sqlc.GetApplicationSchoolSplitRow `json:"schoolStats"` - StatusStatistics sqlc.GetApplicationStatusSplitRow `json:"statusStats"` -} - -func (s *ApplicationService) GetApplicationStatistics(ctx context.Context) (*ApplicationStatistics, error) { +func (s *ApplicationService) GetApplicationStatistics(ctx context.Context) (*ApplicationStatisticsDto, error) { g, ctx := errgroup.WithContext(ctx) - var genderStats sqlc.GetApplicationGenderSplitRow - var ageStats sqlc.GetApplicationAgeSplitRow - var raceStats []sqlc.GetApplicationRaceSplitRow - var majorStats []sqlc.GetApplicationMajorSplitRow - var schoolStats []sqlc.GetApplicationSchoolSplitRow - var statusStats sqlc.GetApplicationStatusSplitRow + var genderStats sqlc.GetSubmittedApplicationGendersRow + var ageStats sqlc.GetSubmittedApplicationAgesRow + var raceStats []sqlc.GetSubmittedApplicationRacesRow + var majorStats []sqlc.GetSubmittedApplicationMajorsRow + var schoolStats []sqlc.GetSubmittedApplicationSchoolsRow + var statusStats sqlc.GetApplicationStatusesRow g.Go(func() error { var err error - genderStats, err = s.applicationRepo.GetSubmittedApplicationGenders(ctx) + genderStats, err = s.db.Query.GetSubmittedApplicationGenders(ctx) return err }) g.Go(func() error { var err error - ageStats, err = s.applicationRepo.GetSubmittedApplicationAges(ctx) + ageStats, err = s.db.Query.GetSubmittedApplicationAges(ctx) return err }) g.Go(func() error { var err error - majorStats, err = s.applicationRepo.GetSubmittedApplicationMajors(ctx) + majorStats, err = s.db.Query.GetSubmittedApplicationMajors(ctx) return err }) g.Go(func() error { var err error - raceStats, err = s.applicationRepo.GetSubmittedApplicationRaces(ctx) + raceStats, err = s.db.Query.GetSubmittedApplicationRaces(ctx) return err }) g.Go(func() error { var err error - schoolStats, err = s.applicationRepo.GetSubmittedApplicationSchools(ctx) + schoolStats, err = s.db.Query.GetSubmittedApplicationSchools(ctx) return err }) g.Go(func() error { var err error - statusStats, err = s.applicationRepo.GetApplicationStatuses(ctx) + statusStats, err = s.db.Query.GetApplicationStatuses(ctx) return err }) @@ -410,7 +437,7 @@ func (s *ApplicationService) GetApplicationStatistics(ctx context.Context) (*App return nil, errors.New("Get application stats error") } - return &ApplicationStatistics{ + return &ApplicationStatisticsDto{ GenderStatistics: genderStats, AgeStatistics: ageStats, RaceStatistics: raceStats, @@ -421,83 +448,246 @@ func (s *ApplicationService) GetApplicationStatistics(ctx context.Context) (*App } -type ReviewerAssignment struct { - ID uuid.UUID `json:"userID"` // User/Reviewer ID - Amount *int `json:"amount"` // Number of applications assigned (nil if autoassign) +// func (s *ApplicationService) JoinWaitlist(ctx context.Context, userID uuid.UUID) error { +// err := s.db.Query.WaitlistApplicationByUserId(ctx, userID) +// if err != nil { +// s.logger.Err(err).Msg("Join waitlist fail") +// return err +// } +// return nil +// } + +func (s *ApplicationService) WithdrawApplication(ctx context.Context, userID uuid.UUID) error { + // Make atomic + err := s.txm.WithTx(ctx, func(tx pgx.Tx) error { + txDB := s.db.NewTX(tx) + + if err := txDB.Query.UpdateApplicationByUserId(ctx, sqlc.UpdateApplicationByUserIdParams{ + UserID: userID, + StatusDoUpdate: true, + Status: sqlc.ApplicationStatusWithdrawn, + }); err != nil { + return err + } + + return txDB.Query.UpdateRole(ctx, + sqlc.UpdateRoleParams{ + UserID: userID, + Role: sqlc.UserRoleApplicant, + }, + ) + }) + if err != nil { + s.logger.Err(err).Str("userID", userID.String()).Msg("WithdrawAttendance fail") + return err + } + return nil } -type ReviewerAllocation struct { - ReviewerID uuid.UUID `json:"reviewerIdd"` - AssignedApplicationIDs []uuid.UUID `json:"assignedApplicationIds"` +func (s *ApplicationService) ConfirmAttendance(ctx context.Context, userID uuid.UUID) error { + // Atomic + err := s.txm.WithTx(ctx, func(tx pgx.Tx) error { + txDB := s.db.NewTX(tx) + + application, err := s.db.Query.GetApplicationByUserId(ctx, userID) + + if err != nil { + s.logger.Err(err).Msg("ConfirmAttendance fail, unable to retrieve user application") + return err + } + + if application.Status != sqlc.ApplicationStatusAccepted { + err = errors.New("User is not accepted to hack") + s.logger.Err(err).Msg(fmt.Sprintf("ConfirmAttendance fail, application is not accepted, status: %s", application.Status)) + return err + } + + if err := txDB.Query.UpdateApplicationByUserId(ctx, sqlc.UpdateApplicationByUserIdParams{ + UserID: userID, + StatusDoUpdate: true, + Status: sqlc.ApplicationStatusConfirmed, + }); err != nil { + return err + } + + return txDB.Query.UpdateRole(ctx, + sqlc.UpdateRoleParams{ + UserID: userID, + Role: sqlc.UserRoleAttendee, + }, + ) + }) + + if err != nil { + s.logger.Err(err).Str("userID", userID.String()).Msg("ConfirmAttendance fail") + return err + } + return nil } -func (s *ApplicationService) AssignReviewers(ctx context.Context, reviewers []ReviewerAssignment) error { +// ============================== APPLICATION REVIEW FUNCTIONS ============================== + +func (s *ApplicationService) UpdateApplicationReviewStatusForHackathon(ctx context.Context, started bool) error { + err := s.txm.WithTx(ctx, func(tx pgx.Tx) error { + txDB := s.db.NewTX(tx) - //TODO: Must check if applications are closed, if we havent released decisions, and more. + err := txDB.Query.UpdateHackathon(ctx, sqlc.UpdateHackathonParams{ + ApplicationReviewStartedDoUpdate: true, + ApplicationReviewStarted: started, + }) + + if err != nil { + s.logger.Err(err).Msg("UpdateApplicationReviewStatusForHackathon fail because can't update hackathon") + return err + } + + if started { + err = txDB.Query.MarkSubmittedApplicationsAsUnderReview(ctx) + } else { + err = txDB.Query.ResetApplicationsToSubmitted(ctx) + } + + if err != nil { + s.logger.Err(err).Msg("UpdateApplicationReviewStatusForHackathon fail because can't update applications status") + return err + } - var fixedReviewers []ReviewerAssignment - var autoReviewers []ReviewerAssignment + return nil + }) + + if err != nil { + s.logger.Err(err).Msg("StartApplicationReview fail") + return err + } + + return nil +} + +func (s *ApplicationService) AssignReviewersToApplications(ctx context.Context, assignments []ReviewerAssignmentRequestDto) error { + // TODO: Must check if applications are closed, if we havent released decisions, and more. + type ReviewerAllocation struct { + ReviewerID uuid.UUID `json:"reviewerIdd"` + AssignedApplicationIDs []uuid.UUID `json:"assignedApplicationIds"` + } + + hackathon, err := s.db.Query.GetHackathon(ctx) + + if err != nil { + s.logger.Err(err).Msg("AssignReviewerToApplications fail because can't retrieve hackathon") + return err + } + + if !hackathon.ApplicationReviewStarted { + return errors.New("Application Review has not started") + } + + var fixedAssignments []ReviewerAssignmentRequestDto + var autoAssignments []ReviewerAssignmentRequestDto var totalFixedAmount int - for _, assignee := range reviewers { - if assignee.Amount != nil { - fixedReviewers = append(fixedReviewers, assignee) - totalFixedAmount += *assignee.Amount + for _, assignment := range assignments { + if assignment.Amount != nil { + // Guard negative/zero amounts + if *assignment.Amount <= 0 { + return errors.New("assignment amount must be positive") + } + fixedAssignments = append(fixedAssignments, assignment) + totalFixedAmount += *assignment.Amount } else { - autoReviewers = append(autoReviewers, assignee) + autoAssignments = append(autoAssignments, assignment) } } - availableApplications, err := s.applicationRepo.ListAvailableApplications(ctx) + availableApplications, err := s.db.Query.ListUnderReviewApplicationIds(ctx, hackathon.ID) if err != nil { return err } totalAvailable := len(availableApplications) if totalAvailable == 0 { + s.logger.Info().Msg("no available applications to assign") return nil } if totalFixedAmount > totalAvailable { - return errors.New("the total number of applications does not match the total number of assigned reviews") + return errors.New("total fixed assignment amount exceeds available applications") } - if totalAvailable > totalFixedAmount && len(autoReviewers) == 0 { - return errors.New("the total number of applications does not match the total number of assigned reviews") + if totalAvailable > totalFixedAmount && len(autoAssignments) == 0 { + return errors.New("not enough assignment slots: some applications would remain unassigned and no auto assignments provided") + } + + // helper to take a slice safely + take := func(start, count int) ([]uuid.UUID, error) { + if count == 0 { + return []uuid.UUID{}, nil + } + if start < 0 || count < 0 || start+count > totalAvailable { + return nil, errors.New("allocation out of bounds") + } + // copy to avoid referencing the backing array + out := make([]uuid.UUID, count) + copy(out, availableApplications[start:start+count]) + return out, nil } - var appIndex int = 0 + var appIndex int var finalAllocations []ReviewerAllocation - // Assign fixed - for _, assignee := range fixedReviewers { - amountToAssign := *assignee.Amount + // Assign fixed amounts + for _, assignment := range fixedAssignments { + amountToAssign := *assignment.Amount + if appIndex+amountToAssign > totalAvailable { + return errors.New("not enough available applications to satisfy fixed assignments") + } + + assignedSlice, err := take(appIndex, amountToAssign) + if err != nil { + return err + } - assignedSlice := availableApplications[appIndex : appIndex+amountToAssign] finalAllocations = append(finalAllocations, ReviewerAllocation{ - ReviewerID: assignee.ID, + ReviewerID: assignment.ID, AssignedApplicationIDs: assignedSlice, }) - appIndex += amountToAssign } + // Auto-assign remaining applications evenly remainingApps := totalAvailable - appIndex - if remainingApps > 0 && len(autoReviewers) > 0 { - baseShare := remainingApps / len(autoReviewers) - remainder := remainingApps % len(autoReviewers) + if remainingApps > 0 && len(autoAssignments) > 0 { + baseShare := remainingApps / len(autoAssignments) + remainder := remainingApps % len(autoAssignments) - for index, assignee := range autoReviewers { + for i, assignment := range autoAssignments { assignCount := baseShare - if index < remainder { + if i < remainder { assignCount++ } - assignedSlice := availableApplications[appIndex : appIndex+assignCount] + if assignCount == 0 { + // nothing to assign to this reviewer + finalAllocations = append(finalAllocations, ReviewerAllocation{ + ReviewerID: assignment.ID, + AssignedApplicationIDs: []uuid.UUID{}, + }) + continue + } + + if appIndex+assignCount > totalAvailable { + return errors.New("auto assignment would exceed available applications") + } + + assignedSlice, err := take(appIndex, assignCount) + if err != nil { + return err + } + finalAllocations = append(finalAllocations, ReviewerAllocation{ - ReviewerID: assignee.ID, + ReviewerID: assignment.ID, AssignedApplicationIDs: assignedSlice, }) + appIndex += assignCount } } @@ -507,45 +697,54 @@ func (s *ApplicationService) AssignReviewers(ctx context.Context, reviewers []Re } return s.txm.WithTx(ctx, func(tx pgx.Tx) error { - txAppRepo := s.applicationRepo.NewTx(tx) - txHackathonRepo := s.hackathonRepo.NewTx(tx) + txDB := s.db.NewTX(tx) + + err = txDB.Query.DeleteAllApplicationReviews(ctx) + + if err != nil { + s.logger.Err(err).Msg("unable to reset all application reviews before assigning") + return err + } + + err = txDB.Query.DeleteAllAutoDecisionRequests(ctx) + + if err != nil { + s.logger.Err(err).Msg("unable to delete all decision requests before assigning") + return err + } for _, allocation := range finalAllocations { - err := txAppRepo.AssignApplicationToReview(ctx, sqlc.AssignApplicationsToReviewerParams{ + if len(allocation.AssignedApplicationIDs) == 0 { + continue + } + + err := txDB.Query.AssignReviewerToApplications(ctx, sqlc.AssignReviewerToApplicationsParams{ ReviewerID: allocation.ReviewerID, ApplicationIds: allocation.AssignedApplicationIDs, }) if err != nil { - s.logger.Err(err).Msg("assign applicattion to review fail while allocating") + s.logger.Err(err).Msg("assign application to reviewer failed while allocating") return err } } - return txHackathonRepo.UpdateHackathon(ctx, sqlc.UpdateHackathonParams{ - ApplicationReviewStartedDoUpdate: true, - ApplicationReviewStarted: true, - }) + return nil }) } -func (s *ApplicationService) ResetApplicationReviews(ctx context.Context) error { +func (s *ApplicationService) DeleteAllApplicationReviews(ctx context.Context) error { return s.txm.WithTx(ctx, func(tx pgx.Tx) error { - txAppRepo := s.applicationRepo.NewTx(tx) - txHackathonRepo := s.hackathonRepo.NewTx(tx) + txDB := s.db.NewTX(tx) - err := txAppRepo.ResetApplicationReviews(ctx) + err := txDB.Query.DeleteAllApplicationReviews(ctx) if err != nil { s.logger.Err(err).Msg(err.Error()) return err } - return txHackathonRepo.UpdateHackathon(ctx, sqlc.UpdateHackathonParams{ - ApplicationReviewStartedDoUpdate: true, - ApplicationReviewStarted: false, - }) + return nil }) - } type ApplicationReviewStatus string @@ -555,259 +754,260 @@ const ( ApplicationReviewStatusCompleted ApplicationReviewStatus = "completed" ) -type AssignedApplication struct { - UserID uuid.UUID `json:"applicantId"` - Status ApplicationReviewStatus `json:"status"` -} +func (s *ApplicationService) GetReviewsForReviewer(ctx context.Context, reviewerId uuid.UUID) ([]sqlc.ListReviewsByReviewerIdRow, error) { + reviews, err := s.db.Query.ListReviewsByReviewerId(ctx, reviewerId) -func (s *ApplicationService) GetAssignedApplicationsAndProgress(ctx context.Context, reviewerId uuid.UUID) ([]AssignedApplication, error) { - applications, err := s.applicationRepo.ListApplicationByReviewer(ctx, reviewerId) if err != nil { - s.logger.Err(err).Msg("get assigned applications and progress fail because list application by reviewer failed") + s.logger.Err(err).Msg("get assigned applications and progress fail because get applications by reviewer failed") return nil, err } - var assignedApps []AssignedApplication - for _, app := range applications { - status := ApplicationReviewStatusInProgress - if app.ExperienceRating != nil && app.PassionRating != nil { - status = ApplicationReviewStatusCompleted - } + return reviews, nil +} - assignedApps = append(assignedApps, AssignedApplication{ - UserID: app.UserID, - Status: status, - }) +func (s *ApplicationService) GetAllReviewersAndProgress(ctx context.Context) ([]sqlc.ListReviewersAndProgressRow, error) { + results, err := s.db.Query.ListReviewersAndProgress(ctx) + + if err != nil { + s.logger.Err(err).Msg("GetAllReviewersAndProgress fail") + return nil, err } - return assignedApps, nil + return results, nil } -func (s *ApplicationService) SaveApplicationReview(ctx context.Context, reviewerId, applicantId uuid.UUID, experienceRating, passionRating int) error { - // Log everything for debug - s.logger.Debug().Str("ReviewerId", reviewerId.String()).Str("ApplicantId", applicantId.String()).Int32("Passion Rating", int32(passionRating)).Int32("Experiene Rating", int32(experienceRating)).Msg("Saving app review.") +func (s *ApplicationService) GetReviewById(ctx context.Context, reviewId uuid.UUID) (*sqlc.GetReviewByIdRow, *storage.PresignedRequest, error) { + review, err := s.db.Query.GetReviewById(ctx, reviewId) - // Get the assigned application - application, err := s.applicationRepo.GetApplicationByUserId(ctx, applicantId) if err != nil { - s.logger.Err(err).Msg("SaveApplicationReview fail, unable to get application for user") - return err + s.logger.Err(err).Msg("GetReviewById fail, unable to get review") + return nil, nil, err } - // Ensure the application is assigned to the reviewer - if application.AssignedReviewerID == nil || *application.AssignedReviewerID != reviewerId { - s.logger. - Warn(). - Str("AssignedReviewID", application.AssignedReviewerID.String()). - Str("ReviewID", reviewerId.String()). - Msg("Cannot review this application. either the assigned review is different or is nil.") - return errors.New("an application has been assigned to a reviewer who is not authorized to review it") + resumeRequest, err := s.GetApplicationResumeURL(ctx, review.UserID, 600) + + if err != nil { + s.logger.Err(err).Msg("GetReviewById fail, unable to get resume") + return nil, nil, err } - if err = s.applicationRepo.UpdateApplication(ctx, sqlc.UpdateApplicationParams{ - UserID: applicantId, + return &review, resumeRequest, nil +} + +func (s *ApplicationService) SaveApplicationReview(ctx context.Context, req SaveReviewRequestDto, reviewerId uuid.UUID, reviewerRole sqlc.UserRole) error { + // Log everything for debug + s.logger.Debug().Str("ReviewerId", reviewerId.String()). + Str("ApplicantId", req.ApplicationId.String()). + Int32("Passion Rating", int32(req.PassionRating)). + Int32("Experiene Rating", int32(req.ExperienceRating)).Msg("Saving app review.") + + if reviewerRole == sqlc.UserRoleStaff { + reviewerIds, err := s.db.Query.ListApplicationReviewersById(ctx, req.ApplicationId) + if err != nil { + s.logger.Err(err). + Str("ApplicationId", req.ApplicationId.String()). + Msg("SaveApplicationReview fail, unable to get reviewers for application") + return err + } + + if !slices.Contains(reviewerIds, reviewerId) { + s.logger. + Warn(). + Str("ReviewID", reviewerId.String()). + Msg("Cannot review this application. either the assigned review is different") + return errors.New("An application has been assigned to a reviewer who is not authorized to review it") + } + } + + newExperienceRating := int32(req.ExperienceRating) + newPassionRating := int32(req.PassionRating) + + if err := s.db.Query.UpdateApplicationReview(ctx, sqlc.UpdateApplicationReviewParams{ + ID: req.ReviewId, + ReviewerID: reviewerId, ExperienceRatingDoUpdate: true, - ExperienceRating: int32(experienceRating), + ExperienceRating: &newExperienceRating, PassionRatingDoUpdate: true, - PassionRating: int32(passionRating), - - //TODO: Make it so I don't have to set this! - StatusDoUpdate: false, - Status: sqlc.ApplicationStatusUnderReview, + PassionRating: &newPassionRating, + NotesDoUpdate: true, + Notes: &req.Notes, + UpdatedByDoUpdate: true, + UpdatedBy: &reviewerId, }); err != nil { - s.logger.Err(err).Msg("Something went wrong Updating the application") + s.logger.Err(err).Msg("Something went wrong updating the application review") } return nil } -func (s *ApplicationService) CheckApplicationReviewsComplete(ctx context.Context) (bool, error) { - nonReviewedApplicantUUIDs, err := s.applicationRepo.GetNonReviewedApplications(ctx) - if err != nil { - return false, errors.New("Failed to check application reviews status") +func (s *ApplicationService) UpdateApplicationReview(ctx context.Context, req UpdateReviewRequestDto, reviewerId uuid.UUID) error { + params := sqlc.UpdateApplicationReviewParams{ + ID: req.ReviewId, + ReviewerID: reviewerId, } - return len(nonReviewedApplicantUUIDs) == 0, nil -} - -func (s *ApplicationService) JoinWaitlist(ctx context.Context, userID uuid.UUID) error { - err := s.applicationRepo.JoinWaitlist(ctx, userID) - if err != nil { - s.logger.Err(err).Msg("Join waitlist fail") - return err + if req.ExperienceRating != nil { + newExperienceRating := int32(*req.ExperienceRating) + params.ExperienceRatingDoUpdate = true + params.ExperienceRating = &newExperienceRating } - return nil -} -func (s *ApplicationService) WithdrawAcceptance(ctx context.Context, userID uuid.UUID) error { - err := s.applicationRepo.UpdateApplication(ctx, sqlc.UpdateApplicationParams{ - UserID: userID, - StatusDoUpdate: true, - Status: sqlc.ApplicationStatusWithdrawn, - }) - if err != nil { - s.logger.Err(err).Msg("WithdrawAcceptance fail, unable to update application") - return err + if req.PassionRating != nil { + newPassionRating := int32(*req.PassionRating) + params.PassionRatingDoUpdate = true + params.PassionRating = &newPassionRating } - return nil -} -func (s *ApplicationService) WithdrawApplication(ctx context.Context, userID uuid.UUID) error { - // Make atomic - err := s.txm.WithTx(ctx, func(tx pgx.Tx) error { - txAppRepo := s.applicationRepo.NewTx(tx) - txUserRepo := s.userRepo.NewTx(tx) + if req.Notes != nil { + params.NotesDoUpdate = true + params.Notes = req.Notes + } - if err := txAppRepo.UpdateApplication(ctx, sqlc.UpdateApplicationParams{ - UserID: userID, - StatusDoUpdate: true, - Status: sqlc.ApplicationStatusWithdrawn, - }); err != nil { - return err - } + params.UpdatedByDoUpdate = true + params.UpdatedBy = &reviewerId - return txUserRepo.UpdateRole(ctx, - sqlc.UpdateRoleParams{ - UserID: userID, - Role: sqlc.UserRoleApplicant, - }, - ) - }) - if err != nil { - s.logger.Err(err).Msg("WithdrawAttendance fail") - return err - } - return nil + return s.db.Query.UpdateApplicationReview(ctx, params) } -func (s *ApplicationService) ConfirmAttendance(ctx context.Context, userID uuid.UUID) error { - // Atomic - err := s.txm.WithTx(ctx, func(tx pgx.Tx) error { - txAppRepo := s.applicationRepo.NewTx(tx) - txUserRepo := s.userRepo.NewTx(tx) +func (s *ApplicationService) SearchAutoDecisionRequests(ctx context.Context, req SearchAutoDecisionRequestsDto) (*int64, []sqlc.SearchAutoDecisionRequestsRow, error) { + g, ctx := errgroup.WithContext(ctx) - application, err := s.applicationRepo.GetApplicationByUserId(ctx, userID) + var requestsCount int64 + var requests []sqlc.SearchAutoDecisionRequestsRow - if err != nil { - s.logger.Err(err).Msg("ConfirmAttendance fail, unable to retrieve user application") - return err - } + g.Go(func() error { + var err error + requestsCount, err = s.db.Query.GetAutoDecisionRequestsCount(ctx) + return err + }) - if application.Status != sqlc.ApplicationStatusAccepted { - err = errors.New("User is not accepted to hack") - s.logger.Err(err).Msg(fmt.Sprintf("ConfirmAttendance fail, application is not accepted, status: %s", application.Status)) - return err - } + g.Go(func() error { + var err error + var decision sqlc.NullApplicationAutoDecisionType - if err := txAppRepo.UpdateApplication(ctx, sqlc.UpdateApplicationParams{ - UserID: userID, - StatusDoUpdate: true, - Status: sqlc.ApplicationStatusConfirmed, - }); err != nil { - return err + if req.Decision == "all" { + decision.Valid = false + } else { + decision.Valid = true + decision.ApplicationAutoDecisionType = sqlc.ApplicationAutoDecisionType(req.Decision) } - return txUserRepo.UpdateRole(ctx, - sqlc.UpdateRoleParams{ - UserID: userID, - Role: sqlc.UserRoleAttendee, - }, - ) + requests, err = s.db.Query.SearchAutoDecisionRequests(ctx, sqlc.SearchAutoDecisionRequestsParams{ + Offset: int32(req.Offset * req.Limit), + Limit: int32(req.Limit), + Search: &req.Search, + Approved: req.Approved, + Decision: decision, + }) + return err }) - if err != nil { - s.logger.Err(err).Msg("ConfirmAttendance fail") - return err + if err := g.Wait(); err != nil { + s.logger.Err(err).Msg("SearchAutoDecisionRequests fail") + return nil, nil, err } - return nil + + return &requestsCount, requests, nil } -func (s *ApplicationService) TransitionWaitlistedApplications(ctx context.Context, acceptanceCount uint32, acceptanceQuota uint32) error { - var acceptedUserIds []uuid.UUID +func (s *ApplicationService) GetAllAutoDecisionRequests(ctx context.Context) ([]sqlc.ListAutoDecisionRequestsRow, error) { + requests, err := s.db.Query.ListAutoDecisionRequests(ctx) + + if err != nil { + s.logger.Err(err).Msg("GetAllAutoDecisionRequests fail") + return nil, err + } + + return requests, nil +} - ErrEventAlreadyStarted := errors.New("the event has already started") - ErrFailedToGetContactEmail := errors.New("Failed to get contact email") +func (s *ApplicationService) RequestAutoDecision(ctx context.Context, request CreateAutoDecisionRequestDto, reviewerId uuid.UUID, reviewerRole sqlc.UserRole) (*sqlc.ApplicationAutoDecisionRequest, error) { + hackathon, err := s.db.Query.GetHackathon(ctx) - hackathon, err := s.hackathonRepo.GetHackathon(ctx) if err != nil { - s.logger.Err(err).Msg("TransitionWaitlistedApplications fail, unable to get hackathon") - return err + s.logger.Err(err).Msg("RequestAutoDecision fail because can't retrieve hackathon") + return nil, err } - currentTime := time.Now() - if currentTime.After(hackathon.StartTime) { - s.logger.Err(ErrEventAlreadyStarted).Msg("Could not transition waitlisted applications: the event has already started.") - return ErrEventAlreadyStarted + + if !hackathon.ApplicationReviewStarted { + return nil, errors.New("Application Review has not started") } - err = s.txm.WithTx(ctx, func(tx pgx.Tx) error { - txAppRepo := s.applicationRepo.NewTx(tx) + params := sqlc.RequestAutoDecisionParams{ + ApplicationID: request.ApplicationID, + ReviewerID: reviewerId, + RequestedDecision: (sqlc.ApplicationAutoDecisionType)(request.RequestedDecision), + Justification: request.Justification, + } - err := txAppRepo.TransitionAcceptedApplicationsToWaitlist(ctx) - if err != nil { - s.logger.Err(err).Msg(err.Error()) - return err - } + if reviewerRole == sqlc.UserRoleAdmin { + approved := true + params.Approved = &approved + params.DecidedBy = &reviewerId + } - attendeeCount, err := s.applicationRepo.GetAttendeeCount(ctx) - if err != nil { - s.logger.Err(err).Msg("Failed to get total accepted application amount.") - } - if (acceptanceQuota - attendeeCount) <= acceptanceCount { - s.logger.Info().Msgf("Acceptance quota is close, shutting down waitlist transition scheduler. Remaining acceptances: %v - %v <= %v", acceptanceQuota, attendeeCount, acceptanceCount) - if s.scheduler != nil { - // The API also uses this file, and this function can be run from an endpoint so we have to check that the scheduler exists. - // Technically the task should be removed from the scheduler via an scheduler ENTRY_ID. However the scheduler is only running for this task. - s.scheduler.Shutdown() - } - acceptanceCount = acceptanceQuota - attendeeCount - } + req, err := s.db.Query.RequestAutoDecision(ctx, params) - s.logger.Info().Msgf("Acceptance count: %v", acceptanceCount) - acceptedUserIds, err = txAppRepo.TransitionWaitlistedApplicationsToAccepted(ctx, int32(acceptanceCount)) - if err != nil { - s.logger.Err(err).Msg(err.Error()) - return err - } + if err != nil { + s.logger.Err(err).Msg("RequestAutoDecision fail") + return nil, err + } - s.logger.Debug().Msgf("Statuses transitioned: %s", acceptedUserIds) - return nil + return &req, nil +} + +func (s *ApplicationService) DeleteAutoDecisionRequest(ctx context.Context, requestId, reviewerId uuid.UUID) error { + err := s.db.Query.DeleteAutoDecisionRequest(ctx, sqlc.DeleteAutoDecisionRequestParams{ + ID: requestId, + ReviewerID: reviewerId, }) if err != nil { - s.logger.Err(err).Msg(err.Error()) + s.logger.Err(err).Msg("DeleteAutoDecisionRequest fail") return err } - for _, userID := range acceptedUserIds { - userContactInfo, err := s.userRepo.GetUserEmailInfoById(ctx, userID) - if err != nil { - s.logger.Err(err).Msg(err.Error()) - return err - } + return nil +} - contactEmail, ok := userContactInfo.ContactEmail.(string) - if !ok { - return ErrFailedToGetContactEmail - } +func (s *ApplicationService) UpdateAutoDecisionRequest(ctx context.Context, req UpdateAutoDecisionRequestDto, approverId uuid.UUID) error { + err := s.db.Query.UpdateAutoDecisionRequest(ctx, sqlc.UpdateAutoDecisionRequestParams{ + ID: req.RequestID, + ApprovedDoUpdate: true, + Approved: &req.Approved, + ApprovedByDoUpdate: true, + DecidedBy: &approverId, + }) - err = s.emailService.QueueWaitlistAcceptanceEmail(contactEmail, userContactInfo.Name) - if err != nil { - s.logger.Err(err).Msg(err.Error()) - return err - } + if err != nil { + s.logger.Err(err).Msg("UpdateAutoDecisionRequest fail") + return err } return nil } -// Checks if application is opened -// -// Returns nil if yes, otherwise returns error +func (s *ApplicationService) CheckApplicationReviewsComplete(ctx context.Context) (bool, error) { + hackathon, err := s.db.Query.GetHackathon(ctx) + + if err != nil { + s.logger.Err(err).Msg("CheckApplicationReviewsComplete fail because can't retrieve hackathon") + return false, err + } + + underReviewApplicationIds, err := s.db.Query.ListUnderReviewApplicationIds(ctx, hackathon.ID) + if err != nil { + return false, errors.New("Failed to check application reviews status") + } + + return len(underReviewApplicationIds) == 0, nil +} + func (s *ApplicationService) isApplicationOpen(ctx context.Context) error { - hackathon, err := s.hackathonRepo.GetHackathon(ctx) + hackathon, err := s.db.Query.GetHackathon(ctx) if err != nil { - s.logger.Err(err).Msg("Submit application fail because can't retrieve hackathon") + s.logger.Err(err).Msg("IsApplicationsOpen fail because can't retrieve hackathon") return err } @@ -825,40 +1025,118 @@ func (s *ApplicationService) isApplicationOpen(ctx context.Context) error { return nil } -func (s *ApplicationService) ReleaseDecisions(ctx context.Context, batRunId uuid.UUID) error { - batRun, err := s.batService.GetRunById(ctx, batRunId) - - if batRun.Status != sqlc.BatRunStatusCompleted { - return errors.New("This run status is not valid for this action.") - } - - if len(batRun.AcceptedApplicants) == 0 { - return errors.New("No applicants marked as accepted.") - } - - err = s.txm.WithTx(ctx, func(tx pgx.Tx) error { - txAppRepo := s.applicationRepo.NewTx(tx) - - err := txAppRepo.UpdateApplicationsStatuses(ctx, sqlc.UpdateApplicationStatusParams{ - Status: sqlc.ApplicationStatusAccepted, - UserIds: batRun.AcceptedApplicants, - }) - if err != nil { - return err - } - return txAppRepo.UpdateApplicationsStatuses(ctx, sqlc.UpdateApplicationStatusParams{ - Status: sqlc.ApplicationStatusRejected, - UserIds: batRun.RejectedApplicants, - }) - }) - if err != nil { - return err - } - - err = s.emailService.SendDecisionEmails(ctx, batRun) - if err != nil { - return errors.New("Failed to send decision emails") - } - - return nil -} +// func (s *ApplicationService) TransitionWaitlistedApplications(ctx context.Context, acceptanceCount uint32, acceptanceQuota uint32) error { +// var acceptedUserIds []uuid.UUID + +// ErrEventAlreadyStarted := errors.New("the event has already started") +// ErrFailedToGetContactEmail := errors.New("Failed to get contact email") + +// hackathon, err := s.db.Query.GetHackathon(ctx) +// if err != nil { +// s.logger.Err(err).Msg("TransitionWaitlistedApplications fail, unable to get hackathon") +// return err +// } +// currentTime := time.Now() +// if currentTime.After(hackathon.StartTime) { +// s.logger.Err(ErrEventAlreadyStarted).Msg("Could not transition waitlisted applications: the event has already started.") +// return ErrEventAlreadyStarted +// } + +// err = s.txm.WithTx(ctx, func(tx pgx.Tx) error { +// txDB := s.db.NewTX(tx) + +// err := txDB.Query.TransitionAcceptedApplicationsToWaitlist(ctx) +// if err != nil { +// s.logger.Err(err).Msg(err.Error()) +// return err +// } + +// attendeeCount, err := s.db.Query.GetAttendeeCount(ctx) +// if err != nil { +// s.logger.Err(err).Msg("Failed to get total accepted application amount.") +// } +// if (acceptanceQuota - attendeeCount) <= acceptanceCount { +// s.logger.Info().Msgf("Acceptance quota is close, shutting down waitlist transition scheduler. Remaining acceptances: %v - %v <= %v", acceptanceQuota, attendeeCount, acceptanceCount) +// if s.scheduler != nil { +// // The API also uses this file, and this function can be run from an endpoint so we have to check that the scheduler exists. +// // Technically the task should be removed from the scheduler via an scheduler ENTRY_ID. However the scheduler is only running for this task. +// s.scheduler.Shutdown() +// } +// acceptanceCount = acceptanceQuota - attendeeCount +// } + +// s.logger.Info().Msgf("Acceptance count: %v", acceptanceCount) +// acceptedUserIds, err = txDB.Query.TransitionWaitlistedApplicationsToAccepted(ctx, int32(acceptanceCount)) +// if err != nil { +// s.logger.Err(err).Msg(err.Error()) +// return err +// } + +// s.logger.Debug().Msgf("Statuses transitioned: %s", acceptedUserIds) +// return nil +// }) + +// if err != nil { +// s.logger.Err(err).Msg(err.Error()) +// return err +// } + +// for _, userID := range acceptedUserIds { +// userContactInfo, err := s.db.Query.GetUserEmailInfoById(ctx, userID) +// if err != nil { +// s.logger.Err(err).Msg(err.Error()) +// return err +// } + +// contactEmail, ok := userContactInfo.ContactEmail.(string) +// if !ok { +// return ErrFailedToGetContactEmail +// } + +// err = s.emailService.QueueWaitlistAcceptanceEmail(contactEmail, userContactInfo.Name) +// if err != nil { +// s.logger.Err(err).Msg(err.Error()) +// return err +// } +// } + +// return nil +// } + +// func (s *ApplicationService) ReleaseDecisions(ctx context.Context, batRunId uuid.UUID) error { +// batRun, err := s.batService.GetRunById(ctx, batRunId) + +// if batRun.Status != sqlc.BatRunStatusCompleted { +// return errors.New("This run status is not valid for this action.") +// } + +// if len(batRun.AcceptedApplicants) == 0 { +// return errors.New("No applicants marked as accepted.") +// } + +// err = s.txm.WithTx(ctx, func(tx pgx.Tx) error { +// txDB := s.db.NewTX(tx) + +// err := txDB.Query.UpdateApplicationStatusForMultipleUserIds(ctx, sqlc.UpdateApplicationStatusForMultipleUserIdsParams{ +// Status: sqlc.ApplicationStatusAccepted, +// UserIds: batRun.AcceptedApplicants, +// }) +// if err != nil { +// return err +// } +// return txDB.Query.UpdateApplicationStatusForMultipleUserIds(ctx, sqlc.UpdateApplicationStatusForMultipleUserIdsParams{ +// Status: sqlc.ApplicationStatusRejected, +// UserIds: batRun.RejectedApplicants, +// }) +// }) +// if err != nil { +// return err +// } + +// err = s.emailService.SendDecisionEmails(ctx, batRun) +// if err != nil { +// return errors.New("Failed to send decision emails") +// } + +// return nil +// } diff --git a/apps/api/internal/domains/application/types.go b/apps/api/internal/domains/application/types.go new file mode 100644 index 00000000..634e0925 --- /dev/null +++ b/apps/api/internal/domains/application/types.go @@ -0,0 +1,229 @@ +package application + +import ( + "errors" + "time" + + "github.com/google/uuid" + "github.com/swamphacks/core/apps/api/internal/database/sqlc" +) + +var ( + ErrApplicationNotOpened = errors.New("Application not opened") + ErrFailedToCreateApplication = errors.New("Failed to create application") + ErrFailedToGetHackathon = errors.New("Failed to get hackathon information") + ErrCannotReplaceResume = errors.New("cannot replace resume before the application has been submitted") +) + +type AppUser struct { + ID uuid.UUID `json:"id"` + UserName string `json:"name"` + Image *string `json:"image"` + Email *string `json:"email"` +} + +type MyApplicationResponseDto struct { + ID uuid.UUID `json:"id"` + Status string `json:"status"` + Application []byte `json:"application"` + CreatedAt time.Time `json:"createdAt"` + SubmittedAt *time.Time `json:"submittedAt" required:"false"` + UserID uuid.UUID `json:"userId"` + UpdatedAt time.Time `json:"updatedAt"` + SavedAt time.Time `json:"savedAt"` + HackathonID string `json:"hackathonId"` +} + +type ExtendedApplicationResponseDto struct { + ID uuid.UUID `json:"id"` + Status string `json:"status"` + Application []byte `json:"application"` + CreatedAt time.Time `json:"createdAt"` + SubmittedAt *time.Time `json:"submittedAt" required:"false"` + UpdatedAt time.Time `json:"updatedAt"` + User AppUser `json:"user"` + IsEarly bool `json:"isEarly"` + Review *ReviewDto `json:"review" required:"false"` + AutoDecisionRequest *AutoDecisionRequestDto `json:"autoDecisionRequest" required:"false"` + ResumeURL string `json:"resumeUrl"` +} + +type SearchApplicationsResponseDto struct { + Applications []ApplicationWithUserInfoDto `json:"applications"` + Count int64 `json:"count"` +} + +type SubmitApplicationResponseDto struct { + SubmittedAt *time.Time `json:"submittedAt"` +} + +type UpdateApplicationRequestDto struct { + ApplicationID uuid.UUID `json:"applicationId"` + Status *sqlc.ApplicationStatus `json:"status"` +} + +type ApplicationWithUserInfoDto struct { + ID uuid.UUID `json:"id"` + Status string `json:"status"` + Application []byte `json:"application"` + CreatedAt time.Time `json:"createdAt"` + SubmittedAt *time.Time `json:"submittedAt" required:"false"` + UpdatedAt time.Time `json:"updatedAt"` + User AppUser `json:"user"` + IsEarly bool `json:"isEarly"` +} + +type ApplicationReviewResponseDto struct { + ID uuid.UUID `json:"id"` + ExperienceRating *int32 `json:"experienceRating"` + PassionRating *int32 `json:"passionRating"` + Notes *string `json:"notes"` + ReviewUpdatedAt time.Time `json:"reviewUpdatedAt"` + ReviewUpdatedBy *uuid.UUID `json:"reviewUpdatedBy"` + Application []byte `json:"application"` + ResumeURL string `json:"resumeUrl"` + AutoDecisionRequest *AutoDecisionRequestDto `json:"autoDecisionRequest" required:"false"` +} + +type ReviewAssignmentDto struct { + ReviewID uuid.UUID `json:"reviewId"` + ApplicationID uuid.UUID `json:"applicationId"` + UserID uuid.UUID `json:"userId"` + Status ApplicationReviewStatus `json:"status"` +} + +type ReviewDto struct { + ID uuid.UUID `json:"id"` + ExperienceRating *int32 `json:"experienceRating"` + PassionRating *int32 `json:"passionRating"` + Notes *string `json:"notes"` + ReviewUpdatedAt time.Time `json:"reviewUpdatedAt"` + ReviewUpdatedBy *uuid.UUID `json:"reviewUpdatedBy"` + Reviewer AppUser `json:"reviewer"` +} + +type ReviewerAssignmentRequestDto struct { + ID uuid.UUID `json:"userId"` // User/Reviewer ID + Amount *int `json:"amount"` // Number of applications assigned (nil if autoassign) +} + +type ReviewerProgressResponseDto struct { + ID *uuid.UUID `json:"id"` + Name *string `json:"name"` + Image *string `json:"image"` + TotalAssigned int64 `json:"totalAssigned"` + CompletedCount int64 `json:"completedCount"` +} + +type SaveReviewRequestDto struct { + ReviewId uuid.UUID `json:"id"` + ApplicationId uuid.UUID `json:"applicationId"` + ExperienceRating int `json:"experienceRating"` + PassionRating int `json:"passionRating"` + Notes string `json:"notes"` +} + +type UpdateReviewRequestDto struct { + ReviewId uuid.UUID `json:"id"` + PassionRating *int `json:"passionRating"` + ExperienceRating *int `json:"experienceRating"` + Notes *string `json:"notes"` +} + +type CreateAutoDecisionRequestDto struct { + ApplicationID uuid.UUID `json:"applicationId"` + RequestedDecision string `json:"decision"` + Justification *string `json:"justification"` +} + +type UpdateAutoDecisionRequestDto struct { + RequestID uuid.UUID `json:"requestId"` + Approved bool `json:"approved"` +} + +type AutoDecisionRequestDto struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"applicationId"` + Justification *string `json:"justification" required:"false"` + CreatedAt time.Time `json:"createdAt"` + RequestedDecision string `json:"decision"` + AutoDecisionApproved bool `json:"approved"` + DecidedBy *uuid.UUID `json:"decidedBy" required:"false"` +} + +type ExtendedAutoDecisionRequestDto struct { + ID uuid.UUID `json:"id"` + ApplicationID uuid.UUID `json:"applicationId"` + Justification *string `json:"justification" required:"false"` + CreatedAt time.Time `json:"createdAt"` + RequestedDecision string `json:"requestedDecision"` + Approved *bool `json:"approved" required:"false"` + UpdatedAt time.Time `json:"updatedAt"` + Reviewer AppUser `json:"reviewer"` + DecidedBy *AppUser `json:"decidedBy" required:"false"` + User AppUser `json:"user"` +} + +type SearchAutoDecisionRequestsDto struct { + Search string `query:"search"` + Approved string `query:"approved"` + Decision string `query:"decision"` + Offset int32 `query:"offset"` + Limit int32 `query:"limit"` +} + +type SearchAutoDecisionRequestsResponseDto struct { + Requests []ExtendedAutoDecisionRequestDto `json:"autoDecisionRequests" nullable:"false"` + Count int64 `json:"count"` +} + +// TODO: figure out a way to create the submission fields dynamically using the json form files with proper validation. +// these fields are only applicable to swamphacks xi, not other events +type ApplicationSubmissionFields struct { + FirstName string `json:"firstName" validate:"required,max=50"` + LastName string `json:"lastName" validate:"required,max=50"` + Age int `json:"age" validate:"required,min=0,max=99"` + Phone string `json:"phone" validate:"required,len=10"` + PreferredEmail string `json:"preferredEmail" validate:"required,email"` + UniversityEmail string `json:"universityEmail" validate:"required,email"` + Country string `json:"country" validate:"required"` + Gender string `json:"gender"` + GenderOther string `json:"gender-other"` + Pronouns string `json:"pronouns"` + Race string `json:"race"` + RaceOther string `json:"race-other"` + Orientation string `json:"orientation"` + Linkedin string `json:"linkedin" validate:"required,url"` + Github string `json:"github" validate:"required,url"` + AgeCertification bool `json:"ageCertification" validate:"required,boolean"` + School string `json:"school" validate:"required"` + Level string `json:"level" validate:"required"` + LevelOther string `json:"level-other"` + Year string `json:"year" validate:"required"` + YearOther string `json:"year-other"` + GraduationYear string `json:"graduationYear" validate:"required"` + Majors string `json:"majors" validate:"required"` + Minors string `json:"minors"` + Experience string `json:"experience" validate:"required"` + UfHackathonExp string `json:"ufHackathonExp" validate:"required"` + ProjectExperience string `json:"projectExperience" validate:"required"` + ShirtSize string `json:"shirtSize" validate:"required"` + Diet string `json:"diet"` + Essay1 string `json:"essay1" validate:"required"` + Essay2 string `json:"essay2" validate:"required"` + Referral string `json:"referral" validate:"required"` + PictureConsent string `json:"pictureConsent" validate:"required"` + InPersonAcknowledgement string `json:"inpersonAcknowledgement" validate:"required"` + AgreeToConduct string `json:"agreeToConduct" validate:"required"` + InfoShareAuthorization string `json:"infoShareAuthorization" validate:"required"` + AgreeToMLHEmails string `json:"agreeToMLHEmails"` +} + +type ApplicationStatisticsDto struct { + GenderStatistics sqlc.GetSubmittedApplicationGendersRow `json:"genderStats"` + AgeStatistics sqlc.GetSubmittedApplicationAgesRow `json:"ageStats"` + RaceStatistics []sqlc.GetSubmittedApplicationRacesRow `json:"raceStats"` + MajorStatistics []sqlc.GetSubmittedApplicationMajorsRow `json:"majorStats"` + SchoolStatistics []sqlc.GetSubmittedApplicationSchoolsRow `json:"schoolStats"` + StatusStatistics sqlc.GetApplicationStatusesRow `json:"statusStats"` +} diff --git a/apps/api/internal/domains/bat/http.go b/apps/api/internal/domains/bat/http.go index aedd5394..f3088d59 100644 --- a/apps/api/internal/domains/bat/http.go +++ b/apps/api/internal/domains/bat/http.go @@ -1,134 +1,134 @@ package bat -import ( - "context" - "net/http" - - "github.com/danielgtaylor/huma/v2" - "github.com/google/uuid" - "github.com/rs/zerolog" - "github.com/swamphacks/core/apps/api/internal/api/middleware" - "github.com/swamphacks/core/apps/api/internal/database/sqlc" -) - -func RegisterRoutes(batHandler *handler, group huma.API, mw *middleware.Middleware) { - huma.Register(group, huma.Operation{ - OperationID: "get-bat-runs", - Method: http.MethodGet, - Summary: "Get Bat Runs", - Description: "Returns all bat runs", - Tags: []string{"Bat"}, - Path: "/runs", - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Errors: []int{http.StatusInternalServerError, http.StatusUnauthorized}, - }, batHandler.handleGetRuns) - - huma.Register(group, huma.Operation{ - OperationID: "delete-bat-run", - Method: http.MethodDelete, - Summary: "Delete Bat Run", - Description: "Delete a bat run by id", - Tags: []string{"Bat"}, - Path: "/runs/{runId}", - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Errors: []int{http.StatusInternalServerError, http.StatusBadRequest, http.StatusUnauthorized}, - }, batHandler.handleDeleteRun) - - huma.Register(group, huma.Operation{ - OperationID: "queue-schedule-waitlist-transition-task", - Method: http.MethodPost, - Summary: "Queue Waitlist Transition Task", - Description: "Queues an asynq task that transitions waitlisted applications, running every 3 days.", - Tags: []string{"Bat"}, - Path: "/begin-waitlist-transition", - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Errors: []int{http.StatusInternalServerError, http.StatusUnauthorized}, - }, batHandler.handleQueueScheduleWaitlistTransitionTask) - - huma.Register(group, huma.Operation{ - OperationID: "queue-shutdown-waitlist-scheduler-task", - Method: http.MethodPost, - Summary: "Queue Shutdown Waitlist Scheduler", - Description: "Shutsdown the scheduler used for the waitlist transition task. Error returned through logs if a scheduler is not active.", - Tags: []string{"Bat"}, - Path: "/shutdown-waitlist-scheduler", - Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, - Errors: []int{http.StatusInternalServerError, http.StatusUnauthorized}, - }, batHandler.handleQueueShutdownWaitlistSchedulerTask) -} - -type handler struct { - BatService *BatService - logger zerolog.Logger -} - -func NewHandler(BatService *BatService, logger zerolog.Logger) *handler { - return &handler{ - BatService: BatService, - logger: logger.With().Str("handler", "BatHandler").Str("domain", "bat").Logger(), - } -} - -type GetRunsOutput struct { - Body *[]sqlc.BatRun -} - -func (h *handler) handleGetRuns(ctx context.Context, input *struct{}) (*GetRunsOutput, error) { - runs, err := h.BatService.GetRuns(ctx) - - if err != nil { - return nil, huma.Error500InternalServerError("Failed to get bat runs") - } - - return &GetRunsOutput{Body: runs}, nil -} - -type DeleteRunOutput struct { - Status int -} - -func (h *handler) handleDeleteRun(ctx context.Context, input *struct { - RunId string `path:"runId"` -}) (*DeleteRunOutput, error) { - runId, err := uuid.Parse(input.RunId) - - if err != nil { - return nil, huma.Error400BadRequest("Invalid run id") - } - - err = h.BatService.DeleteRunById(ctx, runId) - - if err != nil { - return nil, huma.Error500InternalServerError("Failed to delete run by id") - } - - return &DeleteRunOutput{Status: http.StatusOK}, nil -} - -type QueueScheduleWaitlistTransitionTaskOutput struct { - Status int -} - -func (h *handler) handleQueueScheduleWaitlistTransitionTask(ctx context.Context, input *struct{}) (*QueueScheduleWaitlistTransitionTaskOutput, error) { - err := h.BatService.QueueScheduleWaitlistTransitionTask(ctx) - - if err != nil { - return nil, huma.Error500InternalServerError("Failed to queue schedule waitlist transition task") - } - - return &QueueScheduleWaitlistTransitionTaskOutput{Status: http.StatusOK}, nil -} - -type QueueShutdownWaitlistSchedulerTaskOutput struct { - Status int -} - -func (h *handler) handleQueueShutdownWaitlistSchedulerTask(ctx context.Context, input *struct{}) (*QueueShutdownWaitlistSchedulerTaskOutput, error) { - err := h.BatService.QueueShutdownWaitlistScheduler() - - if err != nil { - return nil, huma.Error500InternalServerError("Failed to queue shutdown waitlist scheduler task") - } - - return &QueueShutdownWaitlistSchedulerTaskOutput{Status: http.StatusOK}, nil -} +// import ( +// "context" +// "net/http" + +// "github.com/danielgtaylor/huma/v2" +// "github.com/google/uuid" +// "github.com/rs/zerolog" +// "github.com/swamphacks/core/apps/api/internal/api/middleware" +// "github.com/swamphacks/core/apps/api/internal/database/sqlc" +// ) + +// func RegisterRoutes(batHandler *handler, group huma.API, mw *middleware.Middleware) { +// huma.Register(group, huma.Operation{ +// OperationID: "get-bat-runs", +// Method: http.MethodGet, +// Summary: "Get Bat Runs", +// Description: "Returns all bat runs", +// Tags: []string{"Bat"}, +// Path: "/runs", +// Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, +// Errors: []int{http.StatusInternalServerError, http.StatusUnauthorized}, +// }, batHandler.handleGetRuns) + +// huma.Register(group, huma.Operation{ +// OperationID: "delete-bat-run", +// Method: http.MethodDelete, +// Summary: "Delete Bat Run", +// Description: "Delete a bat run by id", +// Tags: []string{"Bat"}, +// Path: "/runs/{runId}", +// Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, +// Errors: []int{http.StatusInternalServerError, http.StatusBadRequest, http.StatusUnauthorized}, +// }, batHandler.handleDeleteRun) + +// huma.Register(group, huma.Operation{ +// OperationID: "queue-schedule-waitlist-transition-task", +// Method: http.MethodPost, +// Summary: "Queue Waitlist Transition Task", +// Description: "Queues an asynq task that transitions waitlisted applications, running every 3 days.", +// Tags: []string{"Bat"}, +// Path: "/begin-waitlist-transition", +// Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, +// Errors: []int{http.StatusInternalServerError, http.StatusUnauthorized}, +// }, batHandler.handleQueueScheduleWaitlistTransitionTask) + +// huma.Register(group, huma.Operation{ +// OperationID: "queue-shutdown-waitlist-scheduler-task", +// Method: http.MethodPost, +// Summary: "Queue Shutdown Waitlist Scheduler", +// Description: "Shutsdown the scheduler used for the waitlist transition task. Error returned through logs if a scheduler is not active.", +// Tags: []string{"Bat"}, +// Path: "/shutdown-waitlist-scheduler", +// Middlewares: huma.Middlewares{mw.Auth.RequireAuthHuma, mw.Auth.RequireAdminHuma}, +// Errors: []int{http.StatusInternalServerError, http.StatusUnauthorized}, +// }, batHandler.handleQueueShutdownWaitlistSchedulerTask) +// } + +// type handler struct { +// BatService *BatService +// logger zerolog.Logger +// } + +// func NewHandler(BatService *BatService, logger zerolog.Logger) *handler { +// return &handler{ +// BatService: BatService, +// logger: logger.With().Str("handler", "BatHandler").Str("domain", "bat").Logger(), +// } +// } + +// type GetRunsOutput struct { +// Body *[]sqlc.BatRun +// } + +// func (h *handler) handleGetRuns(ctx context.Context, input *struct{}) (*GetRunsOutput, error) { +// runs, err := h.BatService.GetRuns(ctx) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Failed to get bat runs") +// } + +// return &GetRunsOutput{Body: runs}, nil +// } + +// type DeleteRunOutput struct { +// Status int +// } + +// func (h *handler) handleDeleteRun(ctx context.Context, input *struct { +// RunId string `path:"runId"` +// }) (*DeleteRunOutput, error) { +// runId, err := uuid.Parse(input.RunId) + +// if err != nil { +// return nil, huma.Error400BadRequest("Invalid run id") +// } + +// err = h.BatService.DeleteRunById(ctx, runId) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Failed to delete run by id") +// } + +// return &DeleteRunOutput{Status: http.StatusOK}, nil +// } + +// type QueueScheduleWaitlistTransitionTaskOutput struct { +// Status int +// } + +// func (h *handler) handleQueueScheduleWaitlistTransitionTask(ctx context.Context, input *struct{}) (*QueueScheduleWaitlistTransitionTaskOutput, error) { +// err := h.BatService.QueueScheduleWaitlistTransitionTask(ctx) + +// if err != nil { +// return nil, huma.Error500InternalServerError("Failed to queue schedule waitlist transition task") +// } + +// return &QueueScheduleWaitlistTransitionTaskOutput{Status: http.StatusOK}, nil +// } + +// type QueueShutdownWaitlistSchedulerTaskOutput struct { +// Status int +// } + +// func (h *handler) handleQueueShutdownWaitlistSchedulerTask(ctx context.Context, input *struct{}) (*QueueShutdownWaitlistSchedulerTaskOutput, error) { +// err := h.BatService.QueueShutdownWaitlistScheduler() + +// if err != nil { +// return nil, huma.Error500InternalServerError("Failed to queue shutdown waitlist scheduler task") +// } + +// return &QueueShutdownWaitlistSchedulerTaskOutput{Status: http.StatusOK}, nil +// } diff --git a/apps/api/internal/domains/bat/service.go b/apps/api/internal/domains/bat/service.go index 935457f5..b3efb330 100644 --- a/apps/api/internal/domains/bat/service.go +++ b/apps/api/internal/domains/bat/service.go @@ -1,266 +1,266 @@ package bat -import ( - "context" - "encoding/json" - "errors" - - "github.com/google/uuid" - "github.com/hibiken/asynq" - "github.com/rs/zerolog" - "github.com/swamphacks/core/apps/api/internal/config" - "github.com/swamphacks/core/apps/api/internal/database" - "github.com/swamphacks/core/apps/api/internal/database/repository" - "github.com/swamphacks/core/apps/api/internal/database/sqlc" - "github.com/swamphacks/core/apps/api/internal/domains/email" - "github.com/swamphacks/core/apps/api/internal/tasks" -) - -type BatService struct { - applicationRepo *repository.ApplicationRepository - hackathonRepo *repository.HackathonRepository - userRepo *repository.UserRepository - batRunsRepo *repository.BatRunsRepository - emailService *email.EmailService - txm *database.TransactionManager - taskQueue *asynq.Client - scheduler *asynq.Scheduler - config *config.Config - logger zerolog.Logger -} - -func NewBatService( - applicationRepo *repository.ApplicationRepository, hackathonRepo *repository.HackathonRepository, userRepo *repository.UserRepository, - batRunsRepo *repository.BatRunsRepository, emailService *email.EmailService, txm *database.TransactionManager, - taskQueue *asynq.Client, scheduler *asynq.Scheduler, config *config.Config, logger zerolog.Logger) *BatService { - return &BatService{ - taskQueue: taskQueue, - scheduler: scheduler, - applicationRepo: applicationRepo, - hackathonRepo: hackathonRepo, - userRepo: userRepo, - batRunsRepo: batRunsRepo, - emailService: emailService, - txm: txm, - config: config, - logger: logger.With().Str("service", "Bat Service").Logger(), - } -} - -var ( - ErrRunConflict = errors.New("Run already exists for this event") - ErrFailedToAddRun = errors.New("Failed to add run") -) - -func (s *BatService) AddRun(ctx context.Context) (*sqlc.BatRun, error) { - - // TODO: don't hardcode the hackathonId - run, err := s.batRunsRepo.AddRun(ctx, "xii") - if err != nil && errors.Is(err, database.ErrDuplicateRun) { - s.logger.Err(err).Msg("Could not insert result as it already exists.") - return nil, ErrRunConflict - } else if err != nil { - s.logger.Err(err).Msg("An unknown error was caught!") - return nil, ErrFailedToAddRun - } - - return run, nil -} - -func (s *BatService) GetRuns(ctx context.Context) (*[]sqlc.BatRun, error) { - return s.batRunsRepo.GetRuns(ctx) -} - -func (s *BatService) GetRunById(ctx context.Context, batId uuid.UUID) (sqlc.BatRun, error) { - return s.batRunsRepo.GetRunById(ctx, batId) -} - -func (s *BatService) UpdateRunById(ctx context.Context, params sqlc.UpdateBatRunByIdParams) (*sqlc.BatRun, error) { - err := s.batRunsRepo.UpdateRunById(ctx, params) - if err != nil { - s.logger.Err(err).Msg("update run by id failed") - return nil, err - } - - run, err := s.batRunsRepo.GetRunById(ctx, params.ID) - - return &run, err -} - -func (s *BatService) DeleteRunById(ctx context.Context, id uuid.UUID) error { - err := s.batRunsRepo.DeleteRunById(ctx, id) - if err != nil { - s.logger.Err(err).Msg("delete run by id failed") - return errors.New("Failed to delete run") - } - - return err -} - -func (s *BatService) QueueCalculateAdmissionsTask(ctx context.Context) (*asynq.TaskInfo, error) { - newRun, err := s.AddRun(ctx) - if err != nil { - return nil, ErrFailedToAddRun - } - - task, err := tasks.NewTaskCalculateAdmissions(tasks.CalculateAdmissionsPayload{ - BatRunID: newRun.ID, - }) - if err != nil { - s.logger.Err(err).Msg("Failed to create CalculateAdmissions task") - return nil, err - } - - info, err := s.taskQueue.Enqueue(task, asynq.Queue("bat")) - if err != nil { - s.logger.Err(err).Msg("Failed to queue CalculateAdmissions task") - return nil, err - } - - return info, nil -} - -func (s *BatService) CalculateAdmissions(ctx context.Context, batRunId uuid.UUID) error { - s.logger.Debug().Str("RunID", batRunId.String()).Msg("") - - // check to make sure reviews are done, update state if true, return error if not - nonReviewedApplicantUUIDs, err := s.applicationRepo.GetNonReviewedApplications(ctx) - if err != nil { - return errors.New("Could not get determine if application reviews have finished.") - } - - areReviewsComplete := len(nonReviewedApplicantUUIDs) == 0 - - if !areReviewsComplete { - return errors.New("Please make sure reviews are finished before calculating application decisions.") - } - - engine, err := NewBatEngine(0.6, 0.4) - if err != nil { - return err - } - - // Aggregate data necessary - applications, err := s.applicationRepo.ListAdmissionCandidates(ctx) - if err != nil || len(applications) == 0 { - return errors.New("Failed to retrieve applications") - } - - admissionCandidates, err := s.mapToCandidates(engine, applications) - if err != nil { - return err - } - - teams, idvs := engine.GroupCandidates(admissionCandidates) - acceptedTeamMembers, remainder := engine.AcceptTeams(teams) - - idvs = append(idvs, remainder...) - acceptedIdvs, rejected := engine.AcceptIndividuals(idvs) - - accepted := append(acceptedTeamMembers, acceptedIdvs...) - - acceptedIDs := make([]uuid.UUID, 0, len(accepted)) - rejectedIDs := make([]uuid.UUID, 0, len(rejected)) - - for _, applicant := range accepted { - acceptedIDs = append(acceptedIDs, applicant.UserID) - } - for _, applicant := range rejected { - rejectedIDs = append(rejectedIDs, applicant.UserID) - } - - params := sqlc.UpdateBatRunByIdParams{ - // TODO: add UF/other/early/late info? - AcceptedApplicantsDoUpdate: true, - RejectedApplicantsDoUpdate: true, - StatusDoUpdate: true, - AcceptedApplicants: acceptedIDs, - RejectedApplicants: rejectedIDs, - Status: sqlc.BatRunStatusCompleted, - ID: batRunId, - } - - err = s.batRunsRepo.UpdateRunById(ctx, params) - if err != nil { - return errors.New("Failed to update run") - } - - s.logger.Info().Int("Teams Members Accepted", int(len(acceptedTeamMembers))).Int("Accepted", int(engine.Quota.TotalAccepted)).Int("Rejected", len(rejected)).Msg("Finished Algo") - - return nil -} - -// This could be moved into the engine instead, or some mapping function within the bat package. -func (s *BatService) mapToCandidates(engine *BatEngine, applications []sqlc.ListAdmissionCandidatesRow) ([]AdmissionCandidate, error) { - var appAdmissionsData []AdmissionCandidate - for _, app := range applications { - if app.ExperienceRating == nil || app.PassionRating == nil { - return []AdmissionCandidate{}, errors.New("Some applications are missing their review ratings") - } - - var admissionContext AdmissionContext - if err := json.Unmarshal(app.Application, &admissionContext); err != nil { - s.logger.Debug().Bytes("App", app.Application).Msg("Application data") - return []AdmissionCandidate{}, err - } - - var teamId uuid.UUID - if app.TeamID != nil { - teamId = *app.TeamID - } - - wScore, err := engine.CalculateWeightedScore(*app.PassionRating, *app.ExperienceRating) - if err != nil { - return []AdmissionCandidate{}, err - } - appAdmissionsData = append(appAdmissionsData, AdmissionCandidate{ - UserID: app.UserID, - TeamID: uuid.NullUUID{ - UUID: teamId, - Valid: app.TeamID != nil, - }, - WeightedScore: wScore, - SortKey: 0.0, - IsUFStudent: admissionContext.School == "University of Florida", - IsEarlyCareer: admissionContext.Year == "first_year" || admissionContext.Year == "second_year", - }) - } - - return appAdmissionsData, nil -} - -func (s *BatService) QueueScheduleWaitlistTransitionTask(ctx context.Context) error { - task, err := tasks.NewTaskScheduleTransitionWaitlist(tasks.ScheduleTransitionWaitlistPayload{ - Period: s.config.AcceptFromWaitlistPeriod, - }) - if err != nil { - s.logger.Err(err).Msg("Failed to create ScheduleTransitionWaitlist task") - return err - } - - _, err = s.taskQueue.Enqueue(task, asynq.Queue("bat")) - if err != nil { - s.logger.Err(err).Msg("Failed to queue ScheduleTransitionWaitlist task") - return err - } - s.logger.Info().Msg("Queued TransitionWaitlist task") - - return nil -} - -func (s *BatService) QueueShutdownWaitlistScheduler() error { - task, err := tasks.NewTaskShutdownScheduler() - if err != nil { - s.logger.Err(err).Msg("Failed to create ShutdownWaitlistScheduler task") - return err - } - - _, err = s.taskQueue.Enqueue(task, asynq.Queue("bat")) - if err != nil { - s.logger.Err(err).Msg("Failed to queue ShutdownWaitlistScheduler task") - return err - } - s.logger.Info().Msg("Queued ShutdownWaitlistScheduler task") - - return nil -} +// import ( +// "context" +// "encoding/json" +// "errors" + +// "github.com/google/uuid" +// "github.com/hibiken/asynq" +// "github.com/rs/zerolog" +// "github.com/swamphacks/core/apps/api/internal/config" +// "github.com/swamphacks/core/apps/api/internal/database" +// "github.com/swamphacks/core/apps/api/internal/database/repository" +// "github.com/swamphacks/core/apps/api/internal/database/sqlc" +// "github.com/swamphacks/core/apps/api/internal/domains/email" +// "github.com/swamphacks/core/apps/api/internal/tasks" +// ) + +// type BatService struct { +// applicationRepo *repository.ApplicationRepository +// hackathonRepo *repository.HackathonRepository +// userRepo *repository.UserRepository +// batRunsRepo *repository.BatRunsRepository +// emailService *email.EmailService +// txm *database.TransactionManager +// taskQueue *asynq.Client +// scheduler *asynq.Scheduler +// config *config.Config +// logger zerolog.Logger +// } + +// func NewBatService( +// applicationRepo *repository.ApplicationRepository, hackathonRepo *repository.HackathonRepository, userRepo *repository.UserRepository, +// batRunsRepo *repository.BatRunsRepository, emailService *email.EmailService, txm *database.TransactionManager, +// taskQueue *asynq.Client, scheduler *asynq.Scheduler, config *config.Config, logger zerolog.Logger) *BatService { +// return &BatService{ +// taskQueue: taskQueue, +// scheduler: scheduler, +// applicationRepo: applicationRepo, +// hackathonRepo: hackathonRepo, +// userRepo: userRepo, +// batRunsRepo: batRunsRepo, +// emailService: emailService, +// txm: txm, +// config: config, +// logger: logger.With().Str("service", "Bat Service").Logger(), +// } +// } + +// var ( +// ErrRunConflict = errors.New("Run already exists for this event") +// ErrFailedToAddRun = errors.New("Failed to add run") +// ) + +// func (s *BatService) AddRun(ctx context.Context) (*sqlc.BatRun, error) { + +// // TODO: don't hardcode the hackathonId +// run, err := s.batRunsRepo.AddRun(ctx, "xii") +// if err != nil && errors.Is(err, database.ErrDuplicateRun) { +// s.logger.Err(err).Msg("Could not insert result as it already exists.") +// return nil, ErrRunConflict +// } else if err != nil { +// s.logger.Err(err).Msg("An unknown error was caught!") +// return nil, ErrFailedToAddRun +// } + +// return run, nil +// } + +// func (s *BatService) GetRuns(ctx context.Context) (*[]sqlc.BatRun, error) { +// return s.batRunsRepo.GetRuns(ctx) +// } + +// func (s *BatService) GetRunById(ctx context.Context, batId uuid.UUID) (sqlc.BatRun, error) { +// return s.batRunsRepo.GetRunById(ctx, batId) +// } + +// func (s *BatService) UpdateRunById(ctx context.Context, params sqlc.UpdateBatRunByIdParams) (*sqlc.BatRun, error) { +// err := s.batRunsRepo.UpdateRunById(ctx, params) +// if err != nil { +// s.logger.Err(err).Msg("update run by id failed") +// return nil, err +// } + +// run, err := s.batRunsRepo.GetRunById(ctx, params.ID) + +// return &run, err +// } + +// func (s *BatService) DeleteRunById(ctx context.Context, id uuid.UUID) error { +// err := s.batRunsRepo.DeleteRunById(ctx, id) +// if err != nil { +// s.logger.Err(err).Msg("delete run by id failed") +// return errors.New("Failed to delete run") +// } + +// return err +// } + +// func (s *BatService) QueueCalculateAdmissionsTask(ctx context.Context) (*asynq.TaskInfo, error) { +// newRun, err := s.AddRun(ctx) +// if err != nil { +// return nil, ErrFailedToAddRun +// } + +// task, err := tasks.NewTaskCalculateAdmissions(tasks.CalculateAdmissionsPayload{ +// BatRunID: newRun.ID, +// }) +// if err != nil { +// s.logger.Err(err).Msg("Failed to create CalculateAdmissions task") +// return nil, err +// } + +// info, err := s.taskQueue.Enqueue(task, asynq.Queue("bat")) +// if err != nil { +// s.logger.Err(err).Msg("Failed to queue CalculateAdmissions task") +// return nil, err +// } + +// return info, nil +// } + +// func (s *BatService) CalculateAdmissions(ctx context.Context, batRunId uuid.UUID) error { +// s.logger.Debug().Str("RunID", batRunId.String()).Msg("") + +// // check to make sure reviews are done, update state if true, return error if not +// nonReviewedApplicantUUIDs, err := s.applicationRepo.GetNonReviewedApplications(ctx) +// if err != nil { +// return errors.New("Could not get determine if application reviews have finished.") +// } + +// areReviewsComplete := len(nonReviewedApplicantUUIDs) == 0 + +// if !areReviewsComplete { +// return errors.New("Please make sure reviews are finished before calculating application decisions.") +// } + +// engine, err := NewBatEngine(0.6, 0.4) +// if err != nil { +// return err +// } + +// // Aggregate data necessary +// applications, err := s.applicationRepo.ListAdmissionCandidates(ctx) +// if err != nil || len(applications) == 0 { +// return errors.New("Failed to retrieve applications") +// } + +// admissionCandidates, err := s.mapToCandidates(engine, applications) +// if err != nil { +// return err +// } + +// teams, idvs := engine.GroupCandidates(admissionCandidates) +// acceptedTeamMembers, remainder := engine.AcceptTeams(teams) + +// idvs = append(idvs, remainder...) +// acceptedIdvs, rejected := engine.AcceptIndividuals(idvs) + +// accepted := append(acceptedTeamMembers, acceptedIdvs...) + +// acceptedIDs := make([]uuid.UUID, 0, len(accepted)) +// rejectedIDs := make([]uuid.UUID, 0, len(rejected)) + +// for _, applicant := range accepted { +// acceptedIDs = append(acceptedIDs, applicant.UserID) +// } +// for _, applicant := range rejected { +// rejectedIDs = append(rejectedIDs, applicant.UserID) +// } + +// params := sqlc.UpdateBatRunByIdParams{ +// // TODO: add UF/other/early/late info? +// AcceptedApplicantsDoUpdate: true, +// RejectedApplicantsDoUpdate: true, +// StatusDoUpdate: true, +// AcceptedApplicants: acceptedIDs, +// RejectedApplicants: rejectedIDs, +// Status: sqlc.BatRunStatusCompleted, +// ID: batRunId, +// } + +// err = s.batRunsRepo.UpdateRunById(ctx, params) +// if err != nil { +// return errors.New("Failed to update run") +// } + +// s.logger.Info().Int("Teams Members Accepted", int(len(acceptedTeamMembers))).Int("Accepted", int(engine.Quota.TotalAccepted)).Int("Rejected", len(rejected)).Msg("Finished Algo") + +// return nil +// } + +// // This could be moved into the engine instead, or some mapping function within the bat package. +// func (s *BatService) mapToCandidates(engine *BatEngine, applications []sqlc.ListAdmissionCandidatesRow) ([]AdmissionCandidate, error) { +// var appAdmissionsData []AdmissionCandidate +// for _, app := range applications { +// if app.ExperienceRating == nil || app.PassionRating == nil { +// return []AdmissionCandidate{}, errors.New("Some applications are missing their review ratings") +// } + +// var admissionContext AdmissionContext +// if err := json.Unmarshal(app.Application, &admissionContext); err != nil { +// s.logger.Debug().Bytes("App", app.Application).Msg("Application data") +// return []AdmissionCandidate{}, err +// } + +// var teamId uuid.UUID +// if app.TeamID != nil { +// teamId = *app.TeamID +// } + +// wScore, err := engine.CalculateWeightedScore(*app.PassionRating, *app.ExperienceRating) +// if err != nil { +// return []AdmissionCandidate{}, err +// } +// appAdmissionsData = append(appAdmissionsData, AdmissionCandidate{ +// UserID: app.UserID, +// TeamID: uuid.NullUUID{ +// UUID: teamId, +// Valid: app.TeamID != nil, +// }, +// WeightedScore: wScore, +// SortKey: 0.0, +// IsUFStudent: admissionContext.School == "University of Florida", +// IsEarlyCareer: admissionContext.Year == "first_year" || admissionContext.Year == "second_year", +// }) +// } + +// return appAdmissionsData, nil +// } + +// func (s *BatService) QueueScheduleWaitlistTransitionTask(ctx context.Context) error { +// task, err := tasks.NewTaskScheduleTransitionWaitlist(tasks.ScheduleTransitionWaitlistPayload{ +// Period: s.config.AcceptFromWaitlistPeriod, +// }) +// if err != nil { +// s.logger.Err(err).Msg("Failed to create ScheduleTransitionWaitlist task") +// return err +// } + +// _, err = s.taskQueue.Enqueue(task, asynq.Queue("bat")) +// if err != nil { +// s.logger.Err(err).Msg("Failed to queue ScheduleTransitionWaitlist task") +// return err +// } +// s.logger.Info().Msg("Queued TransitionWaitlist task") + +// return nil +// } + +// func (s *BatService) QueueShutdownWaitlistScheduler() error { +// task, err := tasks.NewTaskShutdownScheduler() +// if err != nil { +// s.logger.Err(err).Msg("Failed to create ShutdownWaitlistScheduler task") +// return err +// } + +// _, err = s.taskQueue.Enqueue(task, asynq.Queue("bat")) +// if err != nil { +// s.logger.Err(err).Msg("Failed to queue ShutdownWaitlistScheduler task") +// return err +// } +// s.logger.Info().Msg("Queued ShutdownWaitlistScheduler task") + +// return nil +// } diff --git a/apps/api/internal/domains/hackathon/http.go b/apps/api/internal/domains/hackathon/http.go index 3ad87ef3..613e47f7 100644 --- a/apps/api/internal/domains/hackathon/http.go +++ b/apps/api/internal/domains/hackathon/http.go @@ -305,7 +305,7 @@ func (h *handler) handleUpdateHackathon(ctx context.Context, input *struct { } type GetStaffOutput struct { - Body []sqlc.User + Body []sqlc.User `json:"body" nullable:"false"` } func (h *handler) handleGetStaff(ctx context.Context, input *struct{}) (*GetStaffOutput, error) { diff --git a/apps/api/internal/workers/bat.go b/apps/api/internal/workers/bat.go index d84ac8a6..f8a747a4 100644 --- a/apps/api/internal/workers/bat.go +++ b/apps/api/internal/workers/bat.go @@ -1,138 +1,138 @@ package workers -import ( - "context" - "encoding/json" - "errors" - "time" - - "github.com/hibiken/asynq" - "github.com/rs/zerolog" - "github.com/swamphacks/core/apps/api/internal/config" - "github.com/swamphacks/core/apps/api/internal/database/sqlc" - "github.com/swamphacks/core/apps/api/internal/domains/application" - "github.com/swamphacks/core/apps/api/internal/domains/bat" - "github.com/swamphacks/core/apps/api/internal/domains/hackathon" - "github.com/swamphacks/core/apps/api/internal/tasks" -) - -var ( - ErrEventAlreadyStarted = errors.New("the event has already started") -) - -// BAT Worker -// The BAT worker runs the background execution pipeline for our -// Balanced Admissions Thresher (BAT). This worker processes -// applicant-selection tasks using a combination of review data, -// randomized selection mechanisms, team-formation logic, and -// other decision heuristics. It operates asynchronously to ensure -// fair, consistent, and scalable admissions handling. -type BATWorker struct { - batService *bat.BatService - applicationService *application.ApplicationService - hackathonService *hackathon.HackathonService - scheduler *asynq.Scheduler - taskQueue *asynq.Client - config *config.Config - logger zerolog.Logger -} - -func NewBATWorker( - batService *bat.BatService, applicationService *application.ApplicationService, - hackathonService *hackathon.HackathonService, scheduler *asynq.Scheduler, - taskQueue *asynq.Client, config *config.Config, logger zerolog.Logger, -) *BATWorker { - return &BATWorker{ - batService: batService, - applicationService: applicationService, - hackathonService: hackathonService, - logger: logger.With().Str("worker", "BATWorker").Logger(), - scheduler: scheduler, - config: config, - taskQueue: taskQueue, - } -} - -func (w *BATWorker) HandleCalculateAdmissionsTask(ctx context.Context, t *asynq.Task) error { - var p tasks.CalculateAdmissionsPayload - if err := json.Unmarshal(t.Payload(), &p); err != nil { - w.logger.Err(err).Msg("Failed to unmarshal payload.") - return err - } - - err := w.batService.CalculateAdmissions(ctx, p.BatRunID) - - // On error, mark run as failed. - // To be fair, this should be handled more granulary. Like for example, - // what if the original run was never created? Just food for thought for now. - if err != nil { - w.logger.Err(err).Msg("Something went wrong calculating admissions.") - _, _ = w.batService.UpdateRunById(ctx, sqlc.UpdateBatRunByIdParams{ - ID: p.BatRunID, - StatusDoUpdate: true, - Status: sqlc.BatRunStatusFailed, - }) - - return err - } - - return nil -} -func (w *BATWorker) HandleScheduleTransitionWaitlistTask(ctx context.Context, t *asynq.Task) error { - var payload tasks.ScheduleTransitionWaitlistPayload - if err := json.Unmarshal(t.Payload(), &payload); err != nil { - w.logger.Err(err).Msg("Failed to unmarshal payload.") - return err - } - - hackathon, err := w.hackathonService.GetHackathon(ctx) - if err != nil { - w.logger.Err(err).Msg("Failed to get hackathon in HandleScheduleTransitionWaitlistTask") - return err - } - currentTime := time.Now() - if currentTime.After(hackathon.StartTime) { - w.logger.Err(ErrEventAlreadyStarted).Msg("Could not transition waitlisted applications: the event has already started.") - return ErrEventAlreadyStarted - } - - task, err := tasks.NewTaskTransitionWaitlist(tasks.TransitionWaitlistPayload{ - AcceptFromWaitlistCount: w.config.AcceptFromWaitlistCount, - MaxAcceptedApplications: w.config.MaxAcceptedApplications, - }) - - // The scheduler will make its first run after the period cycles once. So we queue our task immediately as well. - _, err = w.taskQueue.Enqueue(task, asynq.Queue("bat")) - - w.scheduler.Start() - _, err = w.scheduler.Register(payload.Period, task, asynq.Queue("bat")) - if err != nil { - w.logger.Err(err) - return nil - } - - return nil -} - -func (w *BATWorker) HandleTransitionWaitlistTask(ctx context.Context, t *asynq.Task) error { - var payload tasks.TransitionWaitlistPayload - if err := json.Unmarshal(t.Payload(), &payload); err != nil { - w.logger.Err(err).Msg("Failed to unmarshal payload.") - return err - } - - err := w.applicationService.TransitionWaitlistedApplications(ctx, payload.AcceptFromWaitlistCount, payload.MaxAcceptedApplications) - if err != nil { - w.logger.Err(err) - return nil - } - - return nil -} - -func (w *BATWorker) HandleShutdownScheduler(ctx context.Context, t *asynq.Task) error { - w.scheduler.Shutdown() - // Error returned by logging. - - return nil -} +// import ( +// "context" +// "encoding/json" +// "errors" +// "time" + +// "github.com/hibiken/asynq" +// "github.com/rs/zerolog" +// "github.com/swamphacks/core/apps/api/internal/config" +// "github.com/swamphacks/core/apps/api/internal/database/sqlc" +// "github.com/swamphacks/core/apps/api/internal/domains/application" +// "github.com/swamphacks/core/apps/api/internal/domains/bat" +// "github.com/swamphacks/core/apps/api/internal/domains/hackathon" +// "github.com/swamphacks/core/apps/api/internal/tasks" +// ) + +// var ( +// ErrEventAlreadyStarted = errors.New("the event has already started") +// ) + +// // BAT Worker +// // The BAT worker runs the background execution pipeline for our +// // Balanced Admissions Thresher (BAT). This worker processes +// // applicant-selection tasks using a combination of review data, +// // randomized selection mechanisms, team-formation logic, and +// // other decision heuristics. It operates asynchronously to ensure +// // fair, consistent, and scalable admissions handling. +// type BATWorker struct { +// batService *bat.BatService +// applicationService *application.ApplicationService +// hackathonService *hackathon.HackathonService +// scheduler *asynq.Scheduler +// taskQueue *asynq.Client +// config *config.Config +// logger zerolog.Logger +// } + +// func NewBATWorker( +// batService *bat.BatService, applicationService *application.ApplicationService, +// hackathonService *hackathon.HackathonService, scheduler *asynq.Scheduler, +// taskQueue *asynq.Client, config *config.Config, logger zerolog.Logger, +// ) *BATWorker { +// return &BATWorker{ +// batService: batService, +// applicationService: applicationService, +// hackathonService: hackathonService, +// logger: logger.With().Str("worker", "BATWorker").Logger(), +// scheduler: scheduler, +// config: config, +// taskQueue: taskQueue, +// } +// } + +// func (w *BATWorker) HandleCalculateAdmissionsTask(ctx context.Context, t *asynq.Task) error { +// var p tasks.CalculateAdmissionsPayload +// if err := json.Unmarshal(t.Payload(), &p); err != nil { +// w.logger.Err(err).Msg("Failed to unmarshal payload.") +// return err +// } + +// err := w.batService.CalculateAdmissions(ctx, p.BatRunID) + +// // On error, mark run as failed. +// // To be fair, this should be handled more granulary. Like for example, +// // what if the original run was never created? Just food for thought for now. +// if err != nil { +// w.logger.Err(err).Msg("Something went wrong calculating admissions.") +// _, _ = w.batService.UpdateRunById(ctx, sqlc.UpdateBatRunByIdParams{ +// ID: p.BatRunID, +// StatusDoUpdate: true, +// Status: sqlc.BatRunStatusFailed, +// }) + +// return err +// } + +// return nil +// } +// func (w *BATWorker) HandleScheduleTransitionWaitlistTask(ctx context.Context, t *asynq.Task) error { +// var payload tasks.ScheduleTransitionWaitlistPayload +// if err := json.Unmarshal(t.Payload(), &payload); err != nil { +// w.logger.Err(err).Msg("Failed to unmarshal payload.") +// return err +// } + +// hackathon, err := w.hackathonService.GetHackathon(ctx) +// if err != nil { +// w.logger.Err(err).Msg("Failed to get hackathon in HandleScheduleTransitionWaitlistTask") +// return err +// } +// currentTime := time.Now() +// if currentTime.After(hackathon.StartTime) { +// w.logger.Err(ErrEventAlreadyStarted).Msg("Could not transition waitlisted applications: the event has already started.") +// return ErrEventAlreadyStarted +// } + +// task, err := tasks.NewTaskTransitionWaitlist(tasks.TransitionWaitlistPayload{ +// AcceptFromWaitlistCount: w.config.AcceptFromWaitlistCount, +// MaxAcceptedApplications: w.config.MaxAcceptedApplications, +// }) + +// // The scheduler will make its first run after the period cycles once. So we queue our task immediately as well. +// _, err = w.taskQueue.Enqueue(task, asynq.Queue("bat")) + +// w.scheduler.Start() +// _, err = w.scheduler.Register(payload.Period, task, asynq.Queue("bat")) +// if err != nil { +// w.logger.Err(err) +// return nil +// } + +// return nil +// } + +// func (w *BATWorker) HandleTransitionWaitlistTask(ctx context.Context, t *asynq.Task) error { +// var payload tasks.TransitionWaitlistPayload +// if err := json.Unmarshal(t.Payload(), &payload); err != nil { +// w.logger.Err(err).Msg("Failed to unmarshal payload.") +// return err +// } + +// err := w.applicationService.TransitionWaitlistedApplications(ctx, payload.AcceptFromWaitlistCount, payload.MaxAcceptedApplications) +// if err != nil { +// w.logger.Err(err) +// return nil +// } + +// return nil +// } + +// func (w *BATWorker) HandleShutdownScheduler(ctx context.Context, t *asynq.Task) error { +// w.scheduler.Shutdown() +// // Error returned by logging. + +// return nil +// } diff --git a/apps/web/.gitignore b/apps/web/.gitignore index 12f184a1..c2e780af 100644 --- a/apps/web/.gitignore +++ b/apps/web/.gitignore @@ -27,3 +27,5 @@ dist-ssr routeTree.gen.ts *storybook.log .tanstack + +schema.d.ts \ No newline at end of file diff --git a/apps/web/package.json b/apps/web/package.json index 7043385c..6c4008bd 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -26,9 +26,9 @@ ] }, "dependencies": { - "@internationalized/date": "^3.8.2", - "@react-aria/form": "^3.1.0", - "@react-stately/form": "^3.2.0", + "@internationalized/date": "^3.12.2", + "@react-aria/form": "^3.2.1", + "@react-stately/form": "^3.3.1", "@smastrom/react-rating": "^1.5.0", "@tailwindcss/vite": "^4.1.5", "@tanstack/react-form": "^1.14.1", @@ -46,8 +46,8 @@ "lodash.debounce": "^4.0.8", "nanoid": "^5.1.5", "react": "^19.1.0", - "react-aria": "^3.41.1", - "react-aria-components": "^1.10.1", + "react-aria": "^3.49.0", + "react-aria-components": "^1.18.0", "react-dom": "^19.1.0", "react-error-boundary": "^6.0.0", "react-pdf": "^10.2.0", diff --git a/apps/web/pnpm-lock.yaml b/apps/web/pnpm-lock.yaml index 30430856..5ec14c9d 100644 --- a/apps/web/pnpm-lock.yaml +++ b/apps/web/pnpm-lock.yaml @@ -9,20 +9,20 @@ importers: .: dependencies: '@internationalized/date': - specifier: ^3.8.2 - version: 3.8.2 + specifier: ^3.12.2 + version: 3.12.2 '@react-aria/form': - specifier: ^3.1.0 - version: 3.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^3.2.1 + version: 3.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/form': - specifier: ^3.2.0 - version: 3.2.0(react@19.1.0) + specifier: ^3.3.1 + version: 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@smastrom/react-rating': specifier: ^1.5.0 version: 1.5.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tailwindcss/vite': specifier: ^4.1.5 - version: 4.1.11(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 4.1.11(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) '@tanstack/react-form': specifier: ^1.14.1 version: 1.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -69,11 +69,11 @@ importers: specifier: ^19.1.0 version: 19.1.0 react-aria: - specifier: ^3.41.1 - version: 3.41.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^3.49.0 + version: 3.49.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-aria-components: - specifier: ^1.10.1 - version: 1.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.18.0 + version: 1.18.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-dom: specifier: ^19.1.0 version: 19.1.0(react@19.1.0) @@ -91,7 +91,7 @@ importers: version: 5.10.2(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-stately: specifier: ^3.39.0 - version: 3.39.0(react@19.1.0) + version: 3.39.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-toastify: specifier: ^11.0.5 version: 11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -109,7 +109,7 @@ importers: version: 2.0.0(tailwindcss@4.1.11) vite-plugin-svgr: specifier: ^4.5.0 - version: 4.5.0(rollup@4.44.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 4.5.0(rollup@4.44.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) zod: specifier: ^4.0.5 version: 4.0.5 @@ -134,7 +134,7 @@ importers: version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) '@storybook/addon-styling-webpack': specifier: ^1.0.1 - version: 1.0.1(storybook@8.6.14(prettier@3.5.3))(webpack@5.99.9(esbuild@0.25.5)) + version: 1.0.1(storybook@8.6.14(prettier@3.5.3))(webpack@5.99.9(esbuild@0.25.5)(lightningcss@1.30.1)) '@storybook/blocks': specifier: ^8.6.12 version: 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(prettier@3.5.3)) @@ -146,7 +146,7 @@ importers: version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) '@storybook/react-vite': specifier: ^8.6.12 - version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) '@storybook/test': specifier: ^8.6.12 version: 8.6.14(storybook@8.6.14(prettier@3.5.3)) @@ -161,7 +161,7 @@ importers: version: 8.1.0(@svgr/core@8.1.0(typescript@5.8.3)) '@tanstack/router-plugin': specifier: ^1.120.2 - version: 1.123.2(@tanstack/react-router@1.131.47(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.9(esbuild@0.25.5)) + version: 1.123.2(@tanstack/react-router@1.131.47(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.9(esbuild@0.25.5)(lightningcss@1.30.1)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 @@ -185,10 +185,10 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.4.1 - version: 4.6.0(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + version: 4.6.0(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) '@vitest/browser': specifier: ^3.1.3 - version: 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) + version: 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) '@vitest/coverage-v8': specifier: ^3.1.3 version: 3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4) @@ -245,10 +245,10 @@ importers: version: 22.1.0(@svgr/core@8.1.0(typescript@5.8.3)) vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + version: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) vitest: specifier: ^3.1.3 - version: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + version: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) packages: @@ -689,21 +689,6 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@formatjs/ecma402-abstract@2.3.4': - resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} - - '@formatjs/fast-memoize@2.2.7': - resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} - - '@formatjs/icu-messageformat-parser@2.11.2': - resolution: {integrity: sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==} - - '@formatjs/icu-skeleton-parser@1.8.14': - resolution: {integrity: sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==} - - '@formatjs/intl-localematcher@0.6.1': - resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} - '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -736,17 +721,14 @@ packages: '@iconify/utils@2.3.0': resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - '@internationalized/date@3.8.2': - resolution: {integrity: sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==} + '@internationalized/date@3.12.2': + resolution: {integrity: sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw==} - '@internationalized/message@3.1.8': - resolution: {integrity: sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==} + '@internationalized/number@3.6.7': + resolution: {integrity: sha512-3ji1fcrT+FPAK86UqEhB/psHixYo6niWPJtt7+qRaYFynt/BaJG8GhAPimtWUpEiVSTq8ZM8L5psMxGquiB/Vg==} - '@internationalized/number@3.6.3': - resolution: {integrity: sha512-p+Zh1sb6EfrfVaS86jlHGQ9HA66fJhV9x5LiE5vCbZtXEHAuhcmUZUdZ4WrFpUBfNalr2OkAJI5AcKEQF+Lebw==} - - '@internationalized/string@3.2.7': - resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} + '@internationalized/string@3.2.9': + resolution: {integrity: sha512-kzP/M/mbQxODlmOt4bIQZ2SBVUWUSqMLXooXixnX7noche8WHaQcA+nwFN1K2KCF/cp+LDUhcJsCicwkvhD1pg==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -829,30 +811,35 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@napi-rs/canvas-linux-arm64-musl@0.1.82': resolution: {integrity: sha512-moZWuqepAwWBffdF4JDadt8TgBD02iMhG6I1FHZf8xO20AsIp9rB+p0B8Zma2h2vAF/YMjeFCDmW5un6+zZz9g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@napi-rs/canvas-linux-riscv64-gnu@0.1.82': resolution: {integrity: sha512-w9++2df2kG9eC9LWYIHIlMLuhIrKGQYfUxs97CwgxYjITeFakIRazI9LYWgVzEc98QZ9x9GQvlicFsrROV59MQ==} engines: {node: '>= 10'} cpu: [riscv64] os: [linux] + libc: [glibc] '@napi-rs/canvas-linux-x64-gnu@0.1.82': resolution: {integrity: sha512-lZulOPwrRi6hEg/17CaqdwWEUfOlIJuhXxincx1aVzsVOCmyHf+xFq4i6liJl1P+x2v6Iz2Z/H5zHvXJCC7Bwg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@napi-rs/canvas-linux-x64-musl@0.1.82': resolution: {integrity: sha512-Be9Wf5RTv1w6GXlTph55K3PH3vsAh1Ax4T1FQY1UYM0QfD0yrwGdnJ8/fhqw7dEgMjd59zIbjJQC8C3msbGn5g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@napi-rs/canvas-win32-x64-msvc@0.1.82': resolution: {integrity: sha512-LN/i8VrvxTDmEEK1c10z2cdOTkWT76LlTGtyZe5Kr1sqoSomKeExAjbilnu1+oee5lZUgS5yfZ2LNlVhCeARuw==} @@ -883,320 +870,12 @@ packages: '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@react-aria/autocomplete@3.0.0-beta.5': - resolution: {integrity: sha512-zYiVeKGYHStpBXS0mf51k14xkVunU/dFqxumfYXDiiyknxIDE4L1kN7XKo16nus3TkTmJtqBHJrWmzCfNkRd9g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/breadcrumbs@3.5.26': - resolution: {integrity: sha512-jybk2jy3m9KNmTpzJu87C0nkcMcGbZIyotgK1s8st8aUE2aJlxPZrvGuJTO8GUFZn9TKnCg3JjBC8qS9sizKQg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/button@3.13.3': - resolution: {integrity: sha512-Xn7eTssaefNPUydogI1qDf7qQWPmb+hGoS1QiCNBodPlRpVDXxlZSIhOqQFnLWHv5+z5UL+vu+joqlSPYHqOFw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/calendar@3.8.3': - resolution: {integrity: sha512-1TAZADcWbfznXzo4oJEqFgX4IE1chZjWsTSJDWr03UEx3XqIJI8GXm+ylOQUiN4j8xqZ7tl4yNuuslKkzoSjMQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/checkbox@3.15.7': - resolution: {integrity: sha512-L64van+K2ZEmCpx/KeZGHoxdxQvVHgfusFRFYZbh3e7YEtDcShvUrTDVKmZkINqnmuhGTDolFDQq+E8fWEpcRg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/collections@3.0.0-rc.3': - resolution: {integrity: sha512-TX6aAzK/FMTvT78LNdSSacKYDnfBWyW5WzxfoQiu/K/kbZVrYSrQaXFrGjkwGEhgmU0O1S4mupANMEgmgI3wlQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/color@3.0.9': - resolution: {integrity: sha512-dWyK8a3kNii8Yuj1/CQivnVVxsgkV8em+sb0oA29w04t+CFRQywpE2OVV3wZTDzOIVaz3pXx7/X012WoF6d/eQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/combobox@3.12.5': - resolution: {integrity: sha512-mg9RrOTjxQFPy0BQrlqdp5uUC2pLevIqhZit6OfndmOr7khQ32qepDjXoSwYeeSag/jrokc2cGfXfzOwrgAFaQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/datepicker@3.14.5': - resolution: {integrity: sha512-TeV/yXEOQ2QOYMxvetWcWUcZN83evmnmG/uSruTdk93e2nZzs227Gg/M95tzgCYRRACCzSzrGujJhNs12Nh7mg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/dialog@3.5.27': - resolution: {integrity: sha512-Sp8LWQQYNxkLk2+L0bdWmAd9fz1YIrzvxbHXmAn9Tn6+/4SPnQhkOo+qQwtHFbjqe9fyS7cJZxegXd1RegIFew==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/disclosure@3.0.6': - resolution: {integrity: sha512-swO7U2G1Qhelj08RUiPQ8OEwDWDGj7DgWBmMyU2HjVEihR9wlvwsJTvzmxNQvJJT0l1bxQ/tM4RWxdUycUYy7A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/dnd@3.10.1': - resolution: {integrity: sha512-EWiFbRoWs0zBlBbdPvd7gPyA3B8TPUtMfSUnLBCjwc+N0YaUoizZxW2VYgpAkZYAlVrPYV6n2Gs+98PHKZ8rsg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/focus@3.20.5': - resolution: {integrity: sha512-JpFtXmWQ0Oca7FcvkqgjSyo6xEP7v3oQOLUId6o0xTvm4AD5W0mU2r3lYrbhsJ+XxdUUX4AVR5473sZZ85kU4A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/form@3.1.0': - resolution: {integrity: sha512-aDAOZafrn0V8e09mDAtCvc+JnpnkFM9X8cbI5+fdXsXAA+JxO+3uRRfnJHBlIL0iLc4C4OVWxBxWToV95pg1KA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/grid@3.14.2': - resolution: {integrity: sha512-5oS6sLq0DishBvPVsWnxGcUdBRXyFXCj8/n02yJvjbID5Mpjn9JIHUSL4ZCZAO7QGCXpvO3PI40vB2F6QUs2VA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/gridlist@3.13.2': - resolution: {integrity: sha512-mPGhW2+Jke66LJIPrYoAdL5BBiC8iZ9orjoan7TBTCX9Xk87EK1XLm1cTxAylRqGNjnLzy+vp05Zt2fHY4QduA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/i18n@3.12.10': - resolution: {integrity: sha512-1j00soQ2W0nTgzaaIsGFdMF/5aN60AEdCJPhmXGZiuWdWzMxObN9LQ9vdzYPTjTqyqMdSaSp9DZKs5I26Xovpw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/interactions@3.25.3': - resolution: {integrity: sha512-J1bhlrNtjPS/fe5uJQ+0c7/jiXniwa4RQlP+Emjfc/iuqpW2RhbF9ou5vROcLzWIyaW8tVMZ468J68rAs/aZ5A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/interactions@3.25.4': - resolution: {integrity: sha512-HBQMxgUPHrW8V63u9uGgBymkMfj6vdWbB0GgUJY49K9mBKMsypcHeWkWM6+bF7kxRO728/IK8bWDV6whDbqjHg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/label@3.7.19': - resolution: {integrity: sha512-ZJIj/BKf66q52idy24ErzX77vDGuyQn4neWtu51RRSk4npI3pJqEPsdkPCdo2dlBCo/Uc1pfuLGg2hY3N/ni9Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/landmark@3.0.4': - resolution: {integrity: sha512-1U5ce6cqg1qGbK4M4R6vwrhUrKXuUzReZwHaTrXxEY22IMxKDXIZL8G7pFpcKix2XKqjLZWf+g8ngGuNhtQ2QQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/link@3.8.3': - resolution: {integrity: sha512-83gS9Bb+FMa4Tae2VQrOxWixqYhqj4MDt4Bn0i3gzsP/sPWr1bwo5DJmXfw16UAXMaccl1rUKSqqHdigqaealw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/listbox@3.14.6': - resolution: {integrity: sha512-ZaYpBXiS+nUzxAmeCmXyvDcZECuZi1ZLn5y8uJ4ZFRVqSxqplVHodsQKwKqklmAM3+IVDyQx2WB4/HIKTGg2Bw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/live-announcer@3.4.3': - resolution: {integrity: sha512-nbBmx30tW53Vlbq3BbMxHGbHa7vGE9ItacI+1XAdH2UZDLtdZA5J6U9YC6lokKQCv+aEVO6Zl9YG4yp57YwnGw==} - - '@react-aria/menu@3.18.5': - resolution: {integrity: sha512-mOQb4PcNvDdFhyqF7nxREwc1YUg+pPTiMNcSHlz/MKFkkUteIQBYfuJJa8i72ooiE55xfYEQhPLjmrLHAOIJ+g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/meter@3.4.24': - resolution: {integrity: sha512-IYI0Z2pwMvIe8r/3G3PHhM4G/KRiW1ssFCBZdCjBbSpl6/EkmrHiyeaBYG0j8Ux8tmRmXiMVjxLdDlCJQDH7mQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/numberfield@3.11.16': - resolution: {integrity: sha512-AGk0BMdHXPP3gSy39UVropyvpNMxAElPGIcicjXXyD/tZdemsgLXUFT2zI4DwE0csFZS8BGgunLWT9VluMF4FQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/overlays@3.27.3': - resolution: {integrity: sha512-1hawsRI+QiM0TkPNwApNJ2+N49NQTP+48xq0JG8hdEUPChQLDoJ39cvT1sxdg0mnLDzLaAYkZrgfokq9sX6FLA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/progress@3.4.24': - resolution: {integrity: sha512-lpMVrZlSo1Dulo67COCNrcRkJ+lRrC2PI3iRoOIlqw1Ljz4KFoSGyRudg/MLJ/YrQ+6zmNdz5ytdeThrZwHpPQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/radio@3.11.5': - resolution: {integrity: sha512-6BjpeTupQnxetfvC2bqIxWUt6USMqNZoKOoOO7mUL7ESF6/Gp8ocutvQn0VnTxU+7OhdrZX5AACPg/qIQYumVw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/searchfield@3.8.6': - resolution: {integrity: sha512-fEhNOtOV5yRZ8hkWmFO5Mh8nq63/ePun2dUMLAiW1sCQXTUpN9Oo+T4vsEUabuZ25mHvqgVoCVhAFdMbvZ+W+A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/select@3.15.7': - resolution: {integrity: sha512-b1PpanLblnXgrvIeYPkL9ELdeE3GQXwoRJLNv9DSKSAyBVx+pm6+4BtzngOBdBidRCcOGEBEYxuUW8hMXjFB8w==} + '@react-aria/form@3.2.1': + resolution: {integrity: sha512-uSNi8/lSFTMPGHzCeAPmFVQ8h8rRulInSVdstRL3hFmyjEOd2gGeKHwssCcLHmujy3T+K/AGeOQiKFpz2hjZEw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/selection@3.24.3': - resolution: {integrity: sha512-QznlHCUcjFgVALUIVBK4SWJd6osaU9lVaZgU4M8uemoIfOHqnBY3zThkQvEhcw/EJ2RpuYYLPOBYZBnk1knD5A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/separator@3.4.10': - resolution: {integrity: sha512-T9hJpO6lfg6zHRbs5CZD0eZrWIIjN6LY+EC6X5pQJbJeq6HqviVSQx25q98K430S/EGwHRltY5Bwy+XwlMZfdA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/slider@3.7.21': - resolution: {integrity: sha512-eWu69KnQ7qCmpYBEkgGLjIuKfFqoHu2W6r9d7ys0ZmX81HPj9DhatGpEgHlnjRfCeSl9wL5h2FY9wnIio82cbg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/spinbutton@3.6.16': - resolution: {integrity: sha512-Ko1e9GeQiiEXeR3IyPT8STS1Pw4k/1OBs9LqI3WKlHFwH5M8q3DbbaMOgekD41/CPVBKmCcqFM7K7Wu9kFrT2A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/ssr@3.9.10': - resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} - engines: {node: '>= 12'} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/ssr@3.9.9': - resolution: {integrity: sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==} - engines: {node: '>= 12'} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/switch@3.7.5': - resolution: {integrity: sha512-GV9rFYf4wRHAh9tkhptvm3uOflKcQHdgZh+eGpSAHyq2iTq0j2nEhlmtFordpcJgC4XWro7TXLNltfqUqVHtkw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/table@3.17.5': - resolution: {integrity: sha512-Q9HDr2EAhoah7HFIT6XxOOOv2fiAs0agwQQd3d1w6jqgyu9m20lM/jxcSwcCFj2O7FPKHfapSAijHDZZoc4Shg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/tabs@3.10.5': - resolution: {integrity: sha512-ddmGPikXW+27W2Rx0VuEwwGJVLTo68QkNbSl8R+TEM0EUIAJo3nwHzAlQhuo5Tcb1PdK7biTjO1dyI4pno2/0Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/tag@3.6.2': - resolution: {integrity: sha512-xO33FU0bZSpZ3Bw7bnJz7+Me0daVLJrn5dAllf18Mmf9T2cEr63Gg4AL4nR+rj6NLSq0aH8QyDtRGNqXJjo5SQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/textfield@3.17.5': - resolution: {integrity: sha512-HFdvqd3Mdp6WP7uYAWD64gRrL1D4Khi+Fm3dIHBhm1ANV0QjYkphJm4DYNDq/MXCZF46+CZNiOWEbL/aeviykA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/toast@3.0.5': - resolution: {integrity: sha512-uhwiZqPy6hqucBUL7z6uUZjAJ/ou3bNdTjZlXS+zbcm+T0dsjKDfzNkaebyZY7AX3cYkFCaRjc3N6omXwoAviw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/toggle@3.11.5': - resolution: {integrity: sha512-8+Evk/JVMQ25PNhbnHUvsAK99DAjnCWMdSBNswJ1sWseKCYQzBXsNkkF6Dl/FlSkfDBFAaRHkX9JUz02wehb9A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/toolbar@3.0.0-beta.18': - resolution: {integrity: sha512-P1fXhmTRBK4YvPQDzCY3XoZl+HiBADgvQ89jszxJ2jD4Qzs/E096ttCc+otZnbvRcoU27IxC2vWFInqK/bP31g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/tooltip@3.8.5': - resolution: {integrity: sha512-spGAuHHNkiqAfyOl4JWzKEK642KC1oQylioYg+LKCq2avUyaDqFlRx2JrC4a6nt3BV6E5/cJUMV9K7gMRApd5Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/tree@3.1.1': - resolution: {integrity: sha512-9LIe9unStA/9HHX6idHdbxMJLjebFP9mngIjoBgbWSNaYx3oH1X3Ei2Q9qHmimebtBagEZgSjxy7M+RcEqFhlw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/utils@3.29.1': - resolution: {integrity: sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/utils@3.30.0': - resolution: {integrity: sha512-ydA6y5G1+gbem3Va2nczj/0G0W7/jUVo/cbN10WA5IizzWIwMP5qhFr7macgbKfHMkZ+YZC3oXnt2NNre5odKw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/virtualizer@4.1.7': - resolution: {integrity: sha512-mUJAWuLANVd6mXd7SKbGl9+LqrHxgkH/bo9qQTKaRKDWR3PVqU4m/xdY/u2EDGcWPiiTMHLJaPdMQA5OZ8LtMg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/visually-hidden@3.8.25': - resolution: {integrity: sha512-9tRRFV1YMLuDId9E8PeUf0xy0KmQBoP8y/bm0PKWzXOqLOVmp/+kop9rwsjC7J6ppbBnlak7XCXTc7GoSFOCRA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-stately/autocomplete@3.0.0-beta.2': - resolution: {integrity: sha512-6I9vFwRmoxnx5MWA5FCflH6PNjY4+bjE7+sUrFHuDf8BhkwGYtQkRGA45P3KR2gK1dECskG1qqw36lqop4zcaw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/calendar@3.8.2': resolution: {integrity: sha512-IGSbTgCMiGYisQ+CwH31wek10UWvNZ1LVwhr0ZNkhDIRtj+p+FuLNtBnmT1CxTFe2Y4empAxyxNA0QSjQrOtvQ==} peerDependencies: @@ -1245,22 +924,17 @@ packages: '@react-stately/flags@3.1.2': resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} - '@react-stately/form@3.2.0': - resolution: {integrity: sha512-PfefxvT7/BIhAGpD4oQpdcxnL8cfN0ZTQxQq+Wmb9z3YzK1oM8GFxb8eGdDRG71JeF8WUNMAQVZFhgl00Z/YKg==} + '@react-stately/form@3.3.1': + resolution: {integrity: sha512-Wz5CK6X4bUo+VBUZLTrRDMXVdlTUVvQbaWTBzINf1zDeiNvGRsnv43L4OSQu/y9xfbtzJz/m2SH2ZTu1//aQXg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-stately/grid@3.11.3': resolution: {integrity: sha512-/YurYfPARtgsgS5f8rklB7ZQu6MWLdpfTHuwOELEUZ4L52S2gGA5VfLxDnAsHHnu5XHFI3ScuYLAvjWN0rgs/Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/layout@4.3.1': - resolution: {integrity: sha512-W2aa60I3qCI24HzZaFsS/eV1aCL0YI3IOlYm9PgsbELP82y3n7YRnwVreUv30KVdpn0VviLZn2xdWSeZlyqi9A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/list@3.12.3': resolution: {integrity: sha512-RiqYyxPYAF3YRBEin8/WHC8/hvpZ/fG1Tx3h1W4aXU5zTIBuy0DrjRKePwP90oCiDpztgRXePLlzhgWeKvJEow==} peerDependencies: @@ -1341,32 +1015,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/utils@3.10.8': - resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-stately/virtualizer@4.4.1': - resolution: {integrity: sha512-ZjhsmsNqKY4HrTuT9ySh8lNmYHGgFX24CVVQ3hMr8dTzO9DRR89BMrmenoVtMj7NkonWF8lUFyYlVlsijs2p4w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-types/autocomplete@3.0.0-alpha.32': - resolution: {integrity: sha512-eRi5n+QMMI3IUMX8z2+dnbQXaTgEgsmp2Qg1a/6HobJzq3IviIjkrG1B4jwp+kZHca7OuVa2ouiWvBu9sW9o4A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-types/breadcrumbs@3.7.14': - resolution: {integrity: sha512-SbLjrKKupzCLbqHZIQYtQvtsXN53NPxOYyug6QfC4d7DcW1Q9wJ546fxb10Y83ftAJMMUHTatI6SenJVoqyUdA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-types/button@3.12.2': - resolution: {integrity: sha512-QLoSCX8E7NFIdkVMa65TPieve0rKeltfcIxiMtrphjfNn+83L0IHMcbhjf4r4W19c/zqGbw3E53Hx8mNukoTUw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/calendar@3.7.2': resolution: {integrity: sha512-Bp6fZo52fZdUjYbtJXcaLQ0jWEOeSoyZVwNyN5G6BmPyLP5nHxMPF+R1MPFR0fdpSI4/Sk78gWzoTuU5eOVQLw==} peerDependencies: @@ -1392,41 +1040,16 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/dialog@3.5.19': - resolution: {integrity: sha512-+FIyFnoKIGNL20zG8Sye7rrRxmt5HoeaCaHhDCTtNtv8CZEhm3Z+kNd4gylgWAxZRhDtBRWko+ADqfN5gQrgKg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-types/form@3.7.13': - resolution: {integrity: sha512-Ryw9QDLpHi0xsNe+eucgpADeaRSmsd7+SBsL15soEXJ50K/EoPtQOkm6fE4lhfqAX8or12UF9FBcBLULmfCVNQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/grid@3.3.3': resolution: {integrity: sha512-VZAKO3XISc/3+a+DZ+hUx2NB/buOe2Ui2nISutv25foeXX4+YpWj5lXS74lJUCuVsSz6D6yoWvEajeUCYrNOxg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/link@3.6.2': - resolution: {integrity: sha512-CtCexoupcaFHJdVPRUpJ83uxK1U0bd9x9DhwRFMqqfPHufICkQkETIw2KIeZXRvMUMi2CSG/81XXy6K0K1MtNw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-types/listbox@3.7.1': - resolution: {integrity: sha512-WiCihJJpVWVEUxxZjhTbnG3Zq3q38XylKnvNelkVHbF+Y3+SXWN0Yyhk43J642G/d87lw1t60Tor0k96eaz4vw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/menu@3.10.2': resolution: {integrity: sha512-TVQFGttaNCcIvy1MKavb9ZihJmng46uUtVF9oTG/VI/C4YEdzekteI6iSsXbjv5ZAvOKQR+S25IWCbK2W0YCjQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/meter@3.4.10': - resolution: {integrity: sha512-soimx+MAngG5MjQplJNB9erPh+P3Er764PqGA75L6FFmf2KhgzMniSVAqyVOpZu7G3qK4O+ihMAYXf6pQMBkSg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/numberfield@3.8.12': resolution: {integrity: sha512-cI0Grj+iW5840gV80t7aXt7FZPbxMZufjuAop5taHe6RlHuLuODfz5n3kyu/NPHabruF26mVEu0BfIrwZyy+VQ==} peerDependencies: @@ -1437,11 +1060,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/progress@3.5.13': - resolution: {integrity: sha512-+4v++AP2xxYxjrTkIXlWWGUhPPIEBzyg76EW0SHKnD4pXxKigcIXEzRbxy62SMidTVdi7jh3tuicIP8OQxJ4cA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/radio@3.8.10': resolution: {integrity: sha512-hLOu2CXxzxQqkEkXSM71jEJMnU5HvSzwQ+DbJISDjgfgAKvZZHMQX94Fht2Vj+402OdI77esl3pJ1tlSLyV5VQ==} peerDependencies: @@ -1462,18 +1080,18 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/shared@3.31.0': - resolution: {integrity: sha512-ua5U6V66gDcbLZe4P2QeyNgPp4YWD1ymGA6j3n+s8CGExtrCPe64v+g4mvpT8Bnb985R96e4zFT61+m0YCwqMg==} + '@react-types/shared@3.35.0': + resolution: {integrity: sha512-iNWvuzEwANttpQpdlu8nPBtdHb0mcCMj1ZTH//iRB5E/14IAnyRlR25rxH7pNLyzHINsPGEKnWvpwDMCT6vziQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/slider@3.7.12': - resolution: {integrity: sha512-kOQLrENLpQzmu6TfavdW1yfEc8VPitT4ZNMKOK0h7x3LskEWjptxcZ4IBowEpqHwk0eMbI9lRE/3tsShGUoLwQ==} + '@react-types/shared@3.36.0': + resolution: {integrity: sha512-DkP/H0C2YjjS7gZWKNqOmU8a16qHPjQNdzMwmTq9SzplM6Iw0kVMTZ0OIoe6FOgGqa+FwMsE2QbPjh/n3g/jXQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/switch@3.5.12': - resolution: {integrity: sha512-6Zz7i+L9k8zw2c3nO8XErxuIy7JVDptz1NTZMiUeyDtLmQnvEKnKPKNjo2j+C/OngtJqAPowC3xRvMXbSAcYqA==} + '@react-types/slider@3.7.12': + resolution: {integrity: sha512-kOQLrENLpQzmu6TfavdW1yfEc8VPitT4ZNMKOK0h7x3LskEWjptxcZ4IBowEpqHwk0eMbI9lRE/3tsShGUoLwQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -1553,56 +1171,67 @@ packages: resolution: {integrity: sha512-n0edDmSHlXFhrlmTK7XBuwKlG5MbS7yleS1cQ9nn4kIeW+dJH+ExqNgQ0RrFRew8Y+0V/x6C5IjsHrJmiHtkxQ==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.44.1': resolution: {integrity: sha512-8WVUPy3FtAsKSpyk21kV52HCxB+me6YkbkFHATzC2Yd3yuqHwy2lbFL4alJOLXKljoRw08Zk8/xEj89cLQ/4Nw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.44.1': resolution: {integrity: sha512-yuktAOaeOgorWDeFJggjuCkMGeITfqvPgkIXhDqsfKX8J3jGyxdDZgBV/2kj/2DyPaLiX6bPdjJDTu9RB8lUPQ==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.44.1': resolution: {integrity: sha512-W+GBM4ifET1Plw8pdVaecwUgxmiH23CfAUj32u8knq0JPFyK4weRy6H7ooxYFD19YxBulL0Ktsflg5XS7+7u9g==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.44.1': resolution: {integrity: sha512-1zqnUEMWp9WrGVuVak6jWTl4fEtrVKfZY7CvcBmUUpxAJ7WcSowPSAWIKa/0o5mBL/Ij50SIf9tuirGx63Ovew==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.44.1': resolution: {integrity: sha512-Rl3JKaRu0LHIx7ExBAAnf0JcOQetQffaw34T8vLlg9b1IhzcBgaIdnvEbbsZq9uZp3uAH+JkHd20Nwn0h9zPjA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.44.1': resolution: {integrity: sha512-j5akelU3snyL6K3N/iX7otLBIl347fGwmd95U5gS/7z6T4ftK288jKq3A5lcFKcx7wwzb5rgNvAg3ZbV4BqUSw==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.44.1': resolution: {integrity: sha512-ppn5llVGgrZw7yxbIm8TTvtj1EoPgYUAbfw0uDjIOzzoqlZlZrLJ/KuiE7uf5EpTpCTrNt1EdtzF0naMm0wGYg==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.44.1': resolution: {integrity: sha512-Hu6hEdix0oxtUma99jSP7xbvjkUM/ycke/AQQ4EC5g7jNRLLIwjcNwaUy95ZKBJJwg1ZowsclNnjYqzN4zwkAw==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.44.1': resolution: {integrity: sha512-EtnsrmZGomz9WxK1bR5079zee3+7a+AdFlghyd6VbAjgRJDbTANJ9dcPIPAi76uG05micpEL+gPGmAKYTschQw==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.44.1': resolution: {integrity: sha512-iAS4p+J1az6Usn0f8xhgL4PaU878KEtutP4hqw52I4IO6AGoyOkHCxcc4bqufv1tQLdDWFx8lR9YlwxKuv3/3g==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.44.1': resolution: {integrity: sha512-NtSJVKcXwcqozOl+FwI41OH3OApDyLk3kqTJgx8+gp6On9ZEt5mYhIsKNPGuaZr3p9T6NWPKGU/03Vw4CNU9qg==} @@ -1882,8 +1511,8 @@ packages: peerDependencies: '@svgr/core': '*' - '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@swc/helpers@0.5.23': + resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} '@tailwindcss/node@4.1.11': resolution: {integrity: sha512-yzhzuGRmv5QyU9qLNg4GTlYI6STedBWRE7NjxP45CsFYYq9taI0zJXZBMqIC/c8fViNLhmrbpSFS57EoxUmD6Q==} @@ -1923,24 +1552,28 @@ packages: engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.1.11': resolution: {integrity: sha512-m/NVRFNGlEHJrNVk3O6I9ggVuNjXHIPoD6bqay/pubtYC9QIdAMpS+cswZQPBLvVvEF6GtSNONbDkZrjWZXYNQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.1.11': resolution: {integrity: sha512-YW6sblI7xukSD2TdbbaeQVDysIm/UPJtObHJHKxDEcW2exAtY47j52f8jZXkqE1krdnkhCMGqP3dbniu1Te2Fg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.1.11': resolution: {integrity: sha512-e3C/RRhGunWYNC3aSF7exsQkdXzQ/M+aYuZHKnw4U7KQwTJotnWsGOIVih0s2qQzmEzOFIJ3+xt7iq67K/p56Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + libc: [musl] '@tailwindcss/oxide-wasm32-wasi@4.1.11': resolution: {integrity: sha512-Xo1+/GU0JEN/C/dvcammKHzeM6NqKovG+6921MR6oadee5XPBaKOumrJCXvopJ/Qb5TH7LX/UAywbqrP4lax0g==} @@ -2161,6 +1794,9 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/js-cookie@3.0.6': resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==} @@ -2179,8 +1815,8 @@ packages: '@types/node@22.15.34': resolution: {integrity: sha512-8Y6E5WUupYy1Dd0II32BsWAx5MWdcnRd8L84Oys3veg1YrYtNtzgO4CFhiBg6MDSjk7Ay36HYOnU7/tuOzIzcw==} - '@types/node@22.19.1': - resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==} + '@types/node@22.19.21': + resolution: {integrity: sha512-VMeFBSCKQKmm2swI2kW51SFusDqekC6q9trBCvJ/JliDchFSuoYYKN7yVNjPthP1HKZcx3U1gI/wTcEBjEFKTA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -2414,6 +2050,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -2434,8 +2075,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -2476,6 +2117,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -2511,8 +2156,9 @@ packages: barcode-detector@3.0.8: resolution: {integrity: sha512-Z9jzzE8ngEDyN9EU7lWdGgV07mcnEQnrX8W9WecXDqD2v+5CcVjt9+a134a5zb+kICvpsrDx6NYA6ay4LGFs8A==} - baseline-browser-mapping@2.8.31: - resolution: {integrity: sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==} + baseline-browser-mapping@2.10.38: + resolution: {integrity: sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==} + engines: {node: '>=6.0.0'} hasBin: true better-opn@3.0.2: @@ -2544,8 +2190,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.28.0: - resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2579,8 +2225,8 @@ packages: caniuse-lite@1.0.30001726: resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==} - caniuse-lite@1.0.30001757: - resolution: {integrity: sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==} + caniuse-lite@1.0.30001799: + resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} chai@5.2.0: resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} @@ -2733,9 +2379,6 @@ packages: decimal.js@10.5.0: resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} - decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} - decode-formdata@0.9.0: resolution: {integrity: sha512-q5uwOjR3Um5YD+ZWPOF/1sGHVW9A5rCrRwITQChRXlmPkxDFBqCm4jNTIVdGHNH9OnR+V9MoZVgRhsFb+ARbUw==} @@ -2798,8 +2441,8 @@ packages: electron-to-chromium@1.5.178: resolution: {integrity: sha512-wObbz/ar3Bc6e4X5vf0iO8xTN8YAjN/tgiAOJLr7yjYFtP9wAjq8Mb5h0yn6kResir+VYx2DXBj9NNobs0ETSA==} - electron-to-chromium@1.5.259: - resolution: {integrity: sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==} + electron-to-chromium@1.5.375: + resolution: {integrity: sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==} emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -2814,8 +2457,8 @@ packages: resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==} engines: {node: '>=10.13.0'} - enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + enhanced-resolve@5.24.0: + resolution: {integrity: sha512-SkE2t82KlkkxQRVMVLAGKxLfORGQfrkx5dkj+vlgXRVNEdPc4eZcR+J/Fvj8C+yKSFH5L0q3NFlyufOVQnCcYQ==} engines: {node: '>=10.13.0'} entities@4.5.0: @@ -2975,8 +2618,8 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.1.0: - resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fast-uri@3.1.2: + resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -3072,6 +2715,7 @@ packages: glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true globals@11.12.0: @@ -3177,9 +2821,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - intl-messageformat@10.7.16: - resolution: {integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==} - is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -3391,24 +3032,28 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.30.1: resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.30.1: resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.30.1: resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.30.1: resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} @@ -3442,8 +3087,8 @@ packages: resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} engines: {node: '>=18.0.0'} - loader-runner@4.3.1: - resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + loader-runner@4.3.2: + resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} engines: {node: '>=6.11.5'} local-pkg@1.1.1: @@ -3618,8 +3263,9 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + node-releases@2.0.48: + resolution: {integrity: sha512-1uz8041X6LoI6ZSdZacM9lVY28vuzDlSKitnpbSNK0RfKoIJkX29NBPVEFXhnuSuEOA9Ww0xnPJ+ILWbGAv8DA==} + engines: {node: '>=18'} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -3806,17 +3452,14 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - - react-aria-components@1.10.1: - resolution: {integrity: sha512-Mllbk2pQax2EwlOJsXG4oTp6P7P33m82/47M9Os+zaGhSCqo2EilFvThxCFxhLa7ncjLV0ka6wFIYLmZiOcWxw==} + react-aria-components@1.18.0: + resolution: {integrity: sha512-FhRQjuDkH4WhgFv+O2sYTzK3JzdZTGpBeaqfRlfTo+DcSZzD8elJEkytHe7SDpcexVKeire8NVd7OruZHfCVoA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-aria@3.41.1: - resolution: {integrity: sha512-5mujwnW6/NHvONDecb7DiWkzI27dzBO1auKt4KkgNuW+Awud1LCaK/NOlHp4xZl3fSfh1ROpdAKERHCh7nvAAQ==} + react-aria@3.49.0: + resolution: {integrity: sha512-4+oK9FwJQWYhyA5zLfj/feOGY0zZbkE1muoF4gyxMroHVypjcYaRSTlJwvxph2zIlxt757KX6xIK2wJ5Aw1Kog==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -3882,6 +3525,16 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-stately@3.47.0: + resolution: {integrity: sha512-H3ar+SOWP920EbVg7qWfP3fZjZiwhlEJAEJQqjt+w8oKijCwFgr0+R4941PIHscOXRNRvEOjvWilitImC0DdBg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + react-stately@3.48.0: + resolution: {integrity: sha512-ImicSAG+lTotAe5izcs1fz49Zk48w7pDusqYg04WaPhCoej8BJ24soMu3iLXIrsi273s4P1gZrYGrqReMfgEEA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-toastify@11.0.5: resolution: {integrity: sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==} peerDependencies: @@ -3948,9 +3601,6 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} @@ -3981,9 +3631,6 @@ packages: engines: {node: '>=10'} hasBin: true - serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - seroval-plugins@1.3.3: resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} engines: {node: '>=10'} @@ -4170,32 +3817,60 @@ packages: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} tar@7.4.3: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - terser-webpack-plugin@5.3.14: - resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + terser-webpack-plugin@5.6.1: + resolution: {integrity: sha512-201R5j+sJpK8nFWwKVyNfZot8FaJbLZDq5evriVzbV1wDtSXDjRUDRfJzHpAaxFDMEhsZL1QkeqM61wgsS3KaQ==} engines: {node: '>= 10.13.0'} peerDependencies: + '@minify-html/node': '*' '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' uglify-js: '*' webpack: ^5.1.0 peerDependenciesMeta: + '@minify-html/node': + optional: true '@swc/core': optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true esbuild: optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true uglify-js: optional: true - terser@5.44.1: - resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + terser@5.48.0: + resolution: {integrity: sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==} engines: {node: '>=10'} hasBin: true @@ -4368,8 +4043,8 @@ packages: peerDependencies: browserslist: '>= 4.21.0' - update-browserslist-db@1.1.4: - resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -4394,11 +4069,17 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uzip@0.20201231.0: @@ -4489,16 +4170,16 @@ packages: warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} - watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + watchpack@2.5.2: + resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} engines: {node: '>=10.13.0'} webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} - webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + webpack-sources@3.5.0: + resolution: {integrity: sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==} engines: {node: '>=10.13.0'} webpack-virtual-modules@0.6.2: @@ -4521,6 +4202,7 @@ packages: whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} @@ -5073,32 +4755,6 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@formatjs/ecma402-abstract@2.3.4': - dependencies: - '@formatjs/fast-memoize': 2.2.7 - '@formatjs/intl-localematcher': 0.6.1 - decimal.js: 10.6.0 - tslib: 2.8.1 - - '@formatjs/fast-memoize@2.2.7': - dependencies: - tslib: 2.8.1 - - '@formatjs/icu-messageformat-parser@2.11.2': - dependencies: - '@formatjs/ecma402-abstract': 2.3.4 - '@formatjs/icu-skeleton-parser': 1.8.14 - tslib: 2.8.1 - - '@formatjs/icu-skeleton-parser@1.8.14': - dependencies: - '@formatjs/ecma402-abstract': 2.3.4 - tslib: 2.8.1 - - '@formatjs/intl-localematcher@0.6.1': - dependencies: - tslib: 2.8.1 - '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -5135,22 +4791,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@internationalized/date@3.8.2': - dependencies: - '@swc/helpers': 0.5.17 - - '@internationalized/message@3.1.8': + '@internationalized/date@3.12.2': dependencies: - '@swc/helpers': 0.5.17 - intl-messageformat: 10.7.16 + '@swc/helpers': 0.5.23 - '@internationalized/number@3.6.3': + '@internationalized/number@3.6.7': dependencies: - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 - '@internationalized/string@3.2.7': + '@internationalized/string@3.2.9': dependencies: - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 '@isaacs/cliui@8.0.2': dependencies: @@ -5167,12 +4818,12 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.4.0(typescript@5.8.3) - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) optionalDependencies: typescript: 5.8.3 @@ -5193,843 +4844,194 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/sourcemap-codec@1.5.3': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.28': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.3 - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@mdx-js/react@3.1.0(@types/react@19.1.8)(react@19.1.0)': - dependencies: - '@types/mdx': 2.0.13 - '@types/react': 19.1.8 - react: 19.1.0 - - '@napi-rs/canvas-android-arm64@0.1.82': - optional: true - - '@napi-rs/canvas-darwin-arm64@0.1.82': - optional: true - - '@napi-rs/canvas-darwin-x64@0.1.82': - optional: true - - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.82': - optional: true - - '@napi-rs/canvas-linux-arm64-gnu@0.1.82': - optional: true - - '@napi-rs/canvas-linux-arm64-musl@0.1.82': - optional: true - - '@napi-rs/canvas-linux-riscv64-gnu@0.1.82': - optional: true - - '@napi-rs/canvas-linux-x64-gnu@0.1.82': - optional: true - - '@napi-rs/canvas-linux-x64-musl@0.1.82': - optional: true - - '@napi-rs/canvas-win32-x64-msvc@0.1.82': - optional: true - - '@napi-rs/canvas@0.1.82': - optionalDependencies: - '@napi-rs/canvas-android-arm64': 0.1.82 - '@napi-rs/canvas-darwin-arm64': 0.1.82 - '@napi-rs/canvas-darwin-x64': 0.1.82 - '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.82 - '@napi-rs/canvas-linux-arm64-gnu': 0.1.82 - '@napi-rs/canvas-linux-arm64-musl': 0.1.82 - '@napi-rs/canvas-linux-riscv64-gnu': 0.1.82 - '@napi-rs/canvas-linux-x64-gnu': 0.1.82 - '@napi-rs/canvas-linux-x64-musl': 0.1.82 - '@napi-rs/canvas-win32-x64-msvc': 0.1.82 - optional: true - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@polka/url@1.0.0-next.29': {} - - '@react-aria/autocomplete@3.0.0-beta.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/combobox': 3.12.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/listbox': 3.14.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/searchfield': 3.8.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/textfield': 3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/autocomplete': 3.0.0-beta.2(react@19.1.0) - '@react-stately/combobox': 3.10.6(react@19.1.0) - '@react-types/autocomplete': 3.0.0-alpha.32(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/breadcrumbs@3.5.26(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/link': 3.8.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/breadcrumbs': 3.7.14(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/button@3.13.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/toolbar': 3.0.0-beta.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/toggle': 3.8.5(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/calendar@3.8.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@internationalized/date': 3.8.2 - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/live-announcer': 3.4.3 - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/calendar': 3.8.2(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/calendar': 3.7.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/checkbox@3.15.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/toggle': 3.11.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/checkbox': 3.6.15(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-stately/toggle': 3.8.5(react@19.1.0) - '@react-types/checkbox': 3.9.5(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/collections@3.0.0-rc.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - use-sync-external-store: 1.5.0(react@19.1.0) - - '@react-aria/color@3.0.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/numberfield': 3.11.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/slider': 3.7.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/spinbutton': 3.6.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/textfield': 3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/visually-hidden': 3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/color': 3.8.6(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-types/color': 3.0.6(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/combobox@3.12.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/listbox': 3.14.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/live-announcer': 3.4.3 - '@react-aria/menu': 3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/textfield': 3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/combobox': 3.10.6(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/combobox': 3.13.6(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/datepicker@3.14.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/number': 3.6.3 - '@internationalized/string': 3.2.7 - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/form': 3.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/spinbutton': 3.6.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/datepicker': 3.14.2(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/calendar': 3.7.2(react@19.1.0) - '@react-types/datepicker': 3.12.2(react@19.1.0) - '@react-types/dialog': 3.5.19(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/dialog@3.5.27(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/dialog': 3.5.19(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/disclosure@3.0.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/disclosure': 3.0.5(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/dnd@3.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@internationalized/string': 3.2.7 - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/live-announcer': 3.4.3 - '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/dnd': 3.6.0(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/focus@3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/form@3.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-types/shared': 3.31.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/grid@3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/live-announcer': 3.4.3 - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/grid': 3.11.3(react@19.1.0) - '@react-stately/selection': 3.20.3(react@19.1.0) - '@react-types/checkbox': 3.9.5(react@19.1.0) - '@react-types/grid': 3.3.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/gridlist@3.13.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/grid': 3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/list': 3.12.3(react@19.1.0) - '@react-stately/tree': 3.9.0(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/i18n@3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/message': 3.1.8 - '@internationalized/number': 3.6.3 - '@internationalized/string': 3.2.7 - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/interactions@3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/flags': 3.1.2 - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/interactions@3.25.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.0) - '@react-aria/utils': 3.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/flags': 3.1.2 - '@react-types/shared': 3.31.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/label@3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/landmark@3.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - use-sync-external-store: 1.5.0(react@19.1.0) - - '@react-aria/link@3.8.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/link': 3.6.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/listbox@3.14.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/list': 3.12.3(react@19.1.0) - '@react-types/listbox': 3.7.1(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/live-announcer@3.4.3': - dependencies: - '@swc/helpers': 0.5.17 - - '@react-aria/menu@3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/menu': 3.9.5(react@19.1.0) - '@react-stately/selection': 3.20.3(react@19.1.0) - '@react-stately/tree': 3.9.0(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/menu': 3.10.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/meter@3.4.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/progress': 3.4.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/meter': 3.4.10(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/numberfield@3.11.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/spinbutton': 3.6.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/textfield': 3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-stately/numberfield': 3.9.13(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/numberfield': 3.8.12(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/overlays@3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/visually-hidden': 3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/overlays': 3.6.17(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/overlays': 3.8.16(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/progress@3.4.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/progress': 3.5.13(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/radio@3.11.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/form': 3.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/radio': 3.10.14(react@19.1.0) - '@react-types/radio': 3.8.10(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/searchfield@3.8.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/textfield': 3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/searchfield': 3.5.13(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/searchfield': 3.6.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/select@3.15.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/listbox': 3.14.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/menu': 3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/visually-hidden': 3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/select': 3.6.14(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/select': 3.9.13(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/selection@3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/selection': 3.20.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/separator@3.4.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-aria/slider@3.7.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/slider': 3.6.5(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/slider': 3.7.12(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@jridgewell/sourcemap-codec@1.5.3': {} - '@react-aria/spinbutton@3.6.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/live-announcer': 3.4.3 - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@jridgewell/sourcemap-codec@1.5.5': {} - '@react-aria/ssr@3.9.10(react@19.1.0)': + '@jridgewell/trace-mapping@0.3.28': dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.0 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.3 - '@react-aria/ssr@3.9.9(react@19.1.0)': + '@jridgewell/trace-mapping@0.3.31': dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.0 + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@react-aria/switch@3.7.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@react-aria/toggle': 3.11.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/toggle': 3.8.5(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/switch': 3.5.12(react@19.1.0) - '@swc/helpers': 0.5.17 + '@types/mdx': 2.0.13 + '@types/react': 19.1.8 react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - '@react-aria/table@3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/grid': 3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/live-announcer': 3.4.3 - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/visually-hidden': 3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/flags': 3.1.2 - '@react-stately/table': 3.14.3(react@19.1.0) - '@react-types/checkbox': 3.9.5(react@19.1.0) - '@react-types/grid': 3.3.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/table': 3.13.1(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-android-arm64@0.1.82': + optional: true - '@react-aria/tabs@3.10.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/tabs': 3.8.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/tabs': 3.3.16(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-darwin-arm64@0.1.82': + optional: true - '@react-aria/tag@3.6.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/gridlist': 3.13.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/list': 3.12.3(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-darwin-x64@0.1.82': + optional: true - '@react-aria/textfield@3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/form': 3.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-stately/utils': 3.10.7(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/textfield': 3.12.3(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.82': + optional: true - '@react-aria/toast@3.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/landmark': 3.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/toast': 3.1.1(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-linux-arm64-gnu@0.1.82': + optional: true - '@react-aria/toggle@3.11.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/toggle': 3.8.5(react@19.1.0) - '@react-types/checkbox': 3.9.5(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-linux-arm64-musl@0.1.82': + optional: true - '@react-aria/toolbar@3.0.0-beta.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-linux-riscv64-gnu@0.1.82': + optional: true - '@react-aria/tooltip@3.8.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/tooltip': 3.5.5(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/tooltip': 3.4.18(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-linux-x64-gnu@0.1.82': + optional: true - '@react-aria/tree@3.1.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/gridlist': 3.13.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/tree': 3.9.0(react@19.1.0) - '@react-types/button': 3.12.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-linux-x64-musl@0.1.82': + optional: true - '@react-aria/utils@3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-stately/flags': 3.1.2 - '@react-stately/utils': 3.10.7(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas-win32-x64-msvc@0.1.82': + optional: true - '@react-aria/utils@3.30.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/ssr': 3.9.10(react@19.1.0) - '@react-stately/flags': 3.1.2 - '@react-stately/utils': 3.10.8(react@19.1.0) - '@react-types/shared': 3.31.0(react@19.1.0) - '@swc/helpers': 0.5.17 - clsx: 2.1.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@napi-rs/canvas@0.1.82': + optionalDependencies: + '@napi-rs/canvas-android-arm64': 0.1.82 + '@napi-rs/canvas-darwin-arm64': 0.1.82 + '@napi-rs/canvas-darwin-x64': 0.1.82 + '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.82 + '@napi-rs/canvas-linux-arm64-gnu': 0.1.82 + '@napi-rs/canvas-linux-arm64-musl': 0.1.82 + '@napi-rs/canvas-linux-riscv64-gnu': 0.1.82 + '@napi-rs/canvas-linux-x64-gnu': 0.1.82 + '@napi-rs/canvas-linux-x64-musl': 0.1.82 + '@napi-rs/canvas-win32-x64-msvc': 0.1.82 + optional: true - '@react-aria/virtualizer@4.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@nodelib/fs.scandir@2.1.5': dependencies: - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/virtualizer': 4.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 - '@react-aria/visually-hidden@3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': dependencies: - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@polka/url@1.0.0-next.29': {} - '@react-stately/autocomplete@3.0.0-beta.2(react@19.1.0)': + '@react-aria/form@3.2.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@react-stately/utils': 3.10.7(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + react-aria: 3.49.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-dom: 19.1.0(react@19.1.0) '@react-stately/calendar@3.8.2(react@19.1.0)': dependencies: - '@internationalized/date': 3.8.2 + '@internationalized/date': 3.12.2 '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/calendar': 3.7.2(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - '@react-stately/checkbox@3.6.15(react@19.1.0)': + '@react-stately/checkbox@3.6.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@react-stately/form': 3.2.0(react@19.1.0) + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/checkbox': 3.9.5(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + transitivePeerDependencies: + - react-dom '@react-stately/collections@3.12.5(react@19.1.0)': dependencies: '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - '@react-stately/color@3.8.6(react@19.1.0)': + '@react-stately/color@3.8.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@internationalized/number': 3.6.3 - '@internationalized/string': 3.2.7 - '@react-stately/form': 3.2.0(react@19.1.0) - '@react-stately/numberfield': 3.9.13(react@19.1.0) + '@internationalized/number': 3.6.7 + '@internationalized/string': 3.2.9 + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/numberfield': 3.9.13(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/slider': 3.6.5(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/color': 3.0.6(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + transitivePeerDependencies: + - react-dom - '@react-stately/combobox@3.10.6(react@19.1.0)': + '@react-stately/combobox@3.10.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/list': 3.12.3(react@19.1.0) '@react-stately/overlays': 3.6.17(react@19.1.0) - '@react-stately/select': 3.6.14(react@19.1.0) + '@react-stately/select': 3.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/combobox': 3.13.6(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + transitivePeerDependencies: + - react-dom '@react-stately/data@3.13.1(react@19.1.0)': dependencies: '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - '@react-stately/datepicker@3.14.2(react@19.1.0)': + '@react-stately/datepicker@3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/string': 3.2.7 - '@react-stately/form': 3.2.0(react@19.1.0) + '@internationalized/date': 3.12.2 + '@internationalized/string': 3.2.9 + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/overlays': 3.6.17(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/datepicker': 3.12.2(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + transitivePeerDependencies: + - react-dom '@react-stately/disclosure@3.0.5(react@19.1.0)': dependencies: '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/dnd@3.6.0(react@19.1.0)': dependencies: '@react-stately/selection': 3.20.3(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/flags@3.1.2': dependencies: - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 - '@react-stately/form@3.2.0(react@19.1.0)': + '@react-stately/form@3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@react-types/shared': 3.31.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-stately: 3.48.0(react@19.1.0) '@react-stately/grid@3.11.3(react@19.1.0)': dependencies: @@ -6037,20 +5039,8 @@ snapshots: '@react-stately/selection': 3.20.3(react@19.1.0) '@react-types/grid': 3.3.3(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - - '@react-stately/layout@4.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/table': 3.14.3(react@19.1.0) - '@react-stately/virtualizer': 4.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/grid': 3.3.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/table': 3.13.1(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) '@react-stately/list@3.12.3(react@19.1.0)': dependencies: @@ -6058,7 +5048,7 @@ snapshots: '@react-stately/selection': 3.20.3(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/menu@3.9.5(react@19.1.0)': @@ -6066,57 +5056,63 @@ snapshots: '@react-stately/overlays': 3.6.17(react@19.1.0) '@react-types/menu': 3.10.2(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - '@react-stately/numberfield@3.9.13(react@19.1.0)': + '@react-stately/numberfield@3.9.13(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@internationalized/number': 3.6.3 - '@react-stately/form': 3.2.0(react@19.1.0) + '@internationalized/number': 3.6.7 + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/numberfield': 3.8.12(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + transitivePeerDependencies: + - react-dom '@react-stately/overlays@3.6.17(react@19.1.0)': dependencies: '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/overlays': 3.8.16(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - '@react-stately/radio@3.10.14(react@19.1.0)': + '@react-stately/radio@3.10.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@react-stately/form': 3.2.0(react@19.1.0) + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/radio': 3.8.10(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + transitivePeerDependencies: + - react-dom '@react-stately/searchfield@3.5.13(react@19.1.0)': dependencies: '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/searchfield': 3.6.3(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - '@react-stately/select@3.6.14(react@19.1.0)': + '@react-stately/select@3.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@react-stately/form': 3.2.0(react@19.1.0) + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/list': 3.12.3(react@19.1.0) '@react-stately/overlays': 3.6.17(react@19.1.0) '@react-types/select': 3.9.13(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 + transitivePeerDependencies: + - react-dom '@react-stately/selection@3.20.3(react@19.1.0)': dependencies: '@react-stately/collections': 3.12.5(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/slider@3.6.5(react@19.1.0)': @@ -6124,7 +5120,7 @@ snapshots: '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) '@react-types/slider': 3.7.12(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/table@3.14.3(react@19.1.0)': @@ -6137,7 +5133,7 @@ snapshots: '@react-types/grid': 3.3.3(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) '@react-types/table': 3.13.1(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/tabs@3.8.3(react@19.1.0)': @@ -6145,28 +5141,28 @@ snapshots: '@react-stately/list': 3.12.3(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) '@react-types/tabs': 3.3.16(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/toast@3.1.1(react@19.1.0)': dependencies: - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 - use-sync-external-store: 1.5.0(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) '@react-stately/toggle@3.8.5(react@19.1.0)': dependencies: '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/checkbox': 3.9.5(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/tooltip@3.5.5(react@19.1.0)': dependencies: '@react-stately/overlays': 3.6.17(react@19.1.0) '@react-types/tooltip': 3.4.18(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/tree@3.9.0(react@19.1.0)': @@ -6175,48 +5171,17 @@ snapshots: '@react-stately/selection': 3.20.3(react@19.1.0) '@react-stately/utils': 3.10.7(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-stately/utils@3.10.7(react@19.1.0)': dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.0 - - '@react-stately/utils@3.10.8(react@19.1.0)': - dependencies: - '@swc/helpers': 0.5.17 - react: 19.1.0 - - '@react-stately/virtualizer@4.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@swc/helpers': 0.5.17 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - '@react-types/autocomplete@3.0.0-alpha.32(react@19.1.0)': - dependencies: - '@react-types/combobox': 3.13.6(react@19.1.0) - '@react-types/searchfield': 3.6.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - react: 19.1.0 - - '@react-types/breadcrumbs@3.7.14(react@19.1.0)': - dependencies: - '@react-types/link': 3.6.2(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - react: 19.1.0 - - '@react-types/button@3.12.2(react@19.1.0)': - dependencies: - '@react-types/shared': 3.30.0(react@19.1.0) + '@swc/helpers': 0.5.23 react: 19.1.0 '@react-types/calendar@3.7.2(react@19.1.0)': dependencies: - '@internationalized/date': 3.8.2 + '@internationalized/date': 3.12.2 '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 @@ -6238,49 +5203,23 @@ snapshots: '@react-types/datepicker@3.12.2(react@19.1.0)': dependencies: - '@internationalized/date': 3.8.2 + '@internationalized/date': 3.12.2 '@react-types/calendar': 3.7.2(react@19.1.0) '@react-types/overlays': 3.8.16(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 - '@react-types/dialog@3.5.19(react@19.1.0)': - dependencies: - '@react-types/overlays': 3.8.16(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - react: 19.1.0 - - '@react-types/form@3.7.13(react@19.1.0)': - dependencies: - '@react-types/shared': 3.30.0(react@19.1.0) - react: 19.1.0 - '@react-types/grid@3.3.3(react@19.1.0)': dependencies: '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 - '@react-types/link@3.6.2(react@19.1.0)': - dependencies: - '@react-types/shared': 3.30.0(react@19.1.0) - react: 19.1.0 - - '@react-types/listbox@3.7.1(react@19.1.0)': - dependencies: - '@react-types/shared': 3.30.0(react@19.1.0) - react: 19.1.0 - '@react-types/menu@3.10.2(react@19.1.0)': dependencies: '@react-types/overlays': 3.8.16(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 - '@react-types/meter@3.4.10(react@19.1.0)': - dependencies: - '@react-types/progress': 3.5.13(react@19.1.0) - react: 19.1.0 - '@react-types/numberfield@3.8.12(react@19.1.0)': dependencies: '@react-types/shared': 3.30.0(react@19.1.0) @@ -6291,11 +5230,6 @@ snapshots: '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 - '@react-types/progress@3.5.13(react@19.1.0)': - dependencies: - '@react-types/shared': 3.30.0(react@19.1.0) - react: 19.1.0 - '@react-types/radio@3.8.10(react@19.1.0)': dependencies: '@react-types/shared': 3.30.0(react@19.1.0) @@ -6316,16 +5250,15 @@ snapshots: dependencies: react: 19.1.0 - '@react-types/shared@3.31.0(react@19.1.0)': + '@react-types/shared@3.35.0(react@19.1.0)': dependencies: react: 19.1.0 - '@react-types/slider@3.7.12(react@19.1.0)': + '@react-types/shared@3.36.0(react@19.1.0)': dependencies: - '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 - '@react-types/switch@3.5.12(react@19.1.0)': + '@react-types/slider@3.7.12(react@19.1.0)': dependencies: '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 @@ -6523,10 +5456,10 @@ snapshots: storybook: 8.6.14(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-styling-webpack@1.0.1(storybook@8.6.14(prettier@3.5.3))(webpack@5.99.9(esbuild@0.25.5))': + '@storybook/addon-styling-webpack@1.0.1(storybook@8.6.14(prettier@3.5.3))(webpack@5.99.9(esbuild@0.25.5)(lightningcss@1.30.1))': dependencies: '@storybook/node-logger': 8.6.14(storybook@8.6.14(prettier@3.5.3)) - webpack: 5.99.9(esbuild@0.25.5) + webpack: 5.99.9(esbuild@0.25.5)(lightningcss@1.30.1) transitivePeerDependencies: - storybook @@ -6548,13 +5481,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-vite@8.6.14(storybook@8.6.14(prettier@3.5.3))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))': + '@storybook/builder-vite@8.6.14(storybook@8.6.14(prettier@3.5.3))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(prettier@3.5.3)) browser-assert: 1.2.1 storybook: 8.6.14(prettier@3.5.3) ts-dedent: 2.2.0 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) '@storybook/components@8.6.14(storybook@8.6.14(prettier@3.5.3))': dependencies: @@ -6601,9 +5534,9 @@ snapshots: storybook: 8.6.14(prettier@3.5.3) ts-dedent: 2.2.0 optionalDependencies: - '@vitest/browser': 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) + '@vitest/browser': 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) '@vitest/runner': 3.2.4 - vitest: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - react - react-dom @@ -6639,11 +5572,11 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 8.6.14(prettier@3.5.3) - '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))': + '@storybook/react-vite@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.44.1)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) '@rollup/pluginutils': 5.2.0(rollup@4.44.1) - '@storybook/builder-vite': 8.6.14(storybook@8.6.14(prettier@3.5.3))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + '@storybook/builder-vite': 8.6.14(storybook@8.6.14(prettier@3.5.3))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(prettier@3.5.3))(typescript@5.8.3) find-up: 5.0.0 magic-string: 0.30.17 @@ -6653,7 +5586,7 @@ snapshots: resolve: 1.22.10 storybook: 8.6.14(prettier@3.5.3) tsconfig-paths: 4.2.0 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) optionalDependencies: '@storybook/test': 8.6.14(storybook@8.6.14(prettier@3.5.3)) transitivePeerDependencies: @@ -6761,7 +5694,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@swc/helpers@0.5.17': + '@swc/helpers@0.5.23': dependencies: tslib: 2.8.1 @@ -6829,12 +5762,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.11 '@tailwindcss/oxide-win32-x64-msvc': 4.1.11 - '@tailwindcss/vite@4.1.11(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))': + '@tailwindcss/vite@4.1.11(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@tailwindcss/node': 4.1.11 '@tailwindcss/oxide': 4.1.11 tailwindcss: 4.1.11 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) '@tanstack/form-core@1.14.0': dependencies: @@ -6877,7 +5810,7 @@ snapshots: '@tanstack/store': 0.7.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - use-sync-external-store: 1.5.0(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) '@tanstack/react-store@0.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: @@ -6924,7 +5857,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.123.2(@tanstack/react-router@1.131.47(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.9(esbuild@0.25.5))': + '@tanstack/router-plugin@1.123.2(@tanstack/react-router@1.131.47(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))(webpack@5.99.9(esbuild@0.25.5)(lightningcss@1.30.1))': dependencies: '@babel/core': 7.27.7 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) @@ -6942,8 +5875,8 @@ snapshots: zod: 3.25.76 optionalDependencies: '@tanstack/react-router': 1.131.47(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) - webpack: 5.99.9(esbuild@0.25.5) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) + webpack: 5.99.9(esbuild@0.25.5)(lightningcss@1.30.1) transitivePeerDependencies: - supports-color @@ -7053,15 +5986,17 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/json-schema': 7.0.15 '@types/estree@1.0.8': {} + '@types/estree@1.0.9': {} + '@types/js-cookie@3.0.6': {} '@types/json-schema@7.0.15': {} @@ -7078,7 +6013,7 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@22.19.1': + '@types/node@22.19.21': dependencies: undici-types: 6.21.0 @@ -7197,7 +6132,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))': + '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@babel/core': 7.27.7 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.7) @@ -7205,20 +6140,20 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.19 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - supports-color - '@vitest/browser@3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)': + '@vitest/browser@3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4)': dependencies: '@testing-library/dom': 10.4.0 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) '@vitest/utils': 3.2.4 magic-string: 0.30.17 sirv: 3.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) ws: 8.18.3 optionalDependencies: playwright: 1.53.2 @@ -7243,9 +6178,9 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vitest: 3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) optionalDependencies: - '@vitest/browser': 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) + '@vitest/browser': 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) transitivePeerDependencies: - supports-color @@ -7264,13 +6199,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -7418,15 +6353,17 @@ snapshots: acorn@8.15.0: {} + acorn@8.17.0: {} + agent-base@7.1.3: {} - ajv-formats@2.1.1(ajv@8.17.1): + ajv-formats@2.1.1(ajv@8.20.0): optionalDependencies: - ajv: 8.17.1 + ajv: 8.20.0 - ajv-keywords@5.1.0(ajv@8.17.1): + ajv-keywords@5.1.0(ajv@8.20.0): dependencies: - ajv: 8.17.1 + ajv: 8.20.0 fast-deep-equal: 3.1.3 ajv@6.12.6: @@ -7436,10 +6373,10 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.17.1: + ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.0 + fast-uri: 3.1.2 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -7470,6 +6407,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -7515,7 +6456,7 @@ snapshots: transitivePeerDependencies: - '@types/emscripten' - baseline-browser-mapping@2.8.31: {} + baseline-browser-mapping@2.10.38: {} better-opn@3.0.2: dependencies: @@ -7549,13 +6490,13 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) - browserslist@4.28.0: + browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.8.31 - caniuse-lite: 1.0.30001757 - electron-to-chromium: 1.5.259 - node-releases: 2.0.27 - update-browserslist-db: 1.1.4(browserslist@4.28.0) + baseline-browser-mapping: 2.10.38 + caniuse-lite: 1.0.30001799 + electron-to-chromium: 1.5.375 + node-releases: 2.0.48 + update-browserslist-db: 1.2.3(browserslist@4.28.2) buffer-from@1.1.2: {} @@ -7584,7 +6525,7 @@ snapshots: caniuse-lite@1.0.30001726: {} - caniuse-lite@1.0.30001757: {} + caniuse-lite@1.0.30001799: {} chai@5.2.0: dependencies: @@ -7716,8 +6657,6 @@ snapshots: decimal.js@10.5.0: {} - decimal.js@10.6.0: {} - decode-formdata@0.9.0: {} deep-eql@5.0.2: {} @@ -7773,7 +6712,7 @@ snapshots: electron-to-chromium@1.5.178: {} - electron-to-chromium@1.5.259: {} + electron-to-chromium@1.5.375: {} emoji-regex@10.4.0: {} @@ -7786,10 +6725,10 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.2 - enhanced-resolve@5.18.3: + enhanced-resolve@5.24.0: dependencies: graceful-fs: 4.2.11 - tapable: 2.3.0 + tapable: 2.3.3 entities@4.5.0: {} @@ -7986,7 +6925,7 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.1.0: {} + fast-uri@3.1.2: {} fastq@1.19.1: dependencies: @@ -8163,13 +7102,6 @@ snapshots: inherits@2.0.4: {} - intl-messageformat@10.7.16: - dependencies: - '@formatjs/ecma402-abstract': 2.3.4 - '@formatjs/fast-memoize': 2.2.7 - '@formatjs/icu-messageformat-parser': 2.11.2 - tslib: 2.8.1 - is-arguments@1.2.0: dependencies: call-bound: 1.0.4 @@ -8264,7 +7196,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.19.1 + '@types/node': 22.19.21 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8419,7 +7351,7 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.0 - loader-runner@4.3.1: {} + loader-runner@4.3.2: {} local-pkg@1.1.1: dependencies: @@ -8568,7 +7500,7 @@ snapshots: node-releases@2.0.19: {} - node-releases@2.0.27: {} + node-releases@2.0.48: {} normalize-path@3.0.0: {} @@ -8742,89 +7674,30 @@ snapshots: queue-microtask@1.2.3: {} - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 - - react-aria-components@1.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@internationalized/date': 3.8.2 - '@internationalized/string': 3.2.7 - '@react-aria/autocomplete': 3.0.0-beta.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/collections': 3.0.0-rc.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/dnd': 3.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/live-announcer': 3.4.3 - '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-aria/toolbar': 3.0.0-beta.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/virtualizer': 4.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/autocomplete': 3.0.0-beta.2(react@19.1.0) - '@react-stately/layout': 4.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-stately/selection': 3.20.3(react@19.1.0) - '@react-stately/table': 3.14.3(react@19.1.0) - '@react-stately/utils': 3.10.7(react@19.1.0) - '@react-stately/virtualizer': 4.4.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/form': 3.7.13(react@19.1.0) - '@react-types/grid': 3.3.3(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) - '@react-types/table': 3.13.1(react@19.1.0) - '@swc/helpers': 0.5.17 + react-aria-components@1.18.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@internationalized/date': 3.12.2 + '@react-types/shared': 3.35.0(react@19.1.0) + '@swc/helpers': 0.5.23 client-only: 0.0.1 react: 19.1.0 - react-aria: 3.41.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-aria: 3.49.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-dom: 19.1.0(react@19.1.0) - react-stately: 3.39.0(react@19.1.0) - use-sync-external-store: 1.5.0(react@19.1.0) + react-stately: 3.47.0(react@19.1.0) - react-aria@3.41.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@internationalized/string': 3.2.7 - '@react-aria/breadcrumbs': 3.5.26(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/button': 3.13.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/calendar': 3.8.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/checkbox': 3.15.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/color': 3.0.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/combobox': 3.12.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/datepicker': 3.14.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/dialog': 3.5.27(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/disclosure': 3.0.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/dnd': 3.10.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/focus': 3.20.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/gridlist': 3.13.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/i18n': 3.12.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/interactions': 3.25.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/label': 3.7.19(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/landmark': 3.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/link': 3.8.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/listbox': 3.14.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/menu': 3.18.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/meter': 3.4.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/numberfield': 3.11.16(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/overlays': 3.27.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/progress': 3.4.24(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/radio': 3.11.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/searchfield': 3.8.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/select': 3.15.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/selection': 3.24.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/separator': 3.4.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/slider': 3.7.21(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/ssr': 3.9.9(react@19.1.0) - '@react-aria/switch': 3.7.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/table': 3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/tabs': 3.10.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/tag': 3.6.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/textfield': 3.17.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/toast': 3.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/tooltip': 3.8.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/tree': 3.1.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/utils': 3.29.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-aria/visually-hidden': 3.8.25(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-types/shared': 3.30.0(react@19.1.0) + react-aria@3.49.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@internationalized/date': 3.12.2 + '@internationalized/number': 3.6.7 + '@internationalized/string': 3.2.9 + '@react-types/shared': 3.35.0(react@19.1.0) + '@swc/helpers': 0.5.23 + aria-hidden: 1.2.6 + clsx: 2.1.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) + react-stately: 3.47.0(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) react-confetti@6.4.0(react@19.1.0): dependencies: @@ -8904,25 +7777,25 @@ snapshots: - '@types/react' - supports-color - react-stately@3.39.0(react@19.1.0): + react-stately@3.39.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@react-stately/calendar': 3.8.2(react@19.1.0) - '@react-stately/checkbox': 3.6.15(react@19.1.0) + '@react-stately/checkbox': 3.6.15(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/collections': 3.12.5(react@19.1.0) - '@react-stately/color': 3.8.6(react@19.1.0) - '@react-stately/combobox': 3.10.6(react@19.1.0) + '@react-stately/color': 3.8.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-stately/combobox': 3.10.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/data': 3.13.1(react@19.1.0) - '@react-stately/datepicker': 3.14.2(react@19.1.0) + '@react-stately/datepicker': 3.14.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/disclosure': 3.0.5(react@19.1.0) '@react-stately/dnd': 3.6.0(react@19.1.0) - '@react-stately/form': 3.2.0(react@19.1.0) + '@react-stately/form': 3.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/list': 3.12.3(react@19.1.0) '@react-stately/menu': 3.9.5(react@19.1.0) - '@react-stately/numberfield': 3.9.13(react@19.1.0) + '@react-stately/numberfield': 3.9.13(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/overlays': 3.6.17(react@19.1.0) - '@react-stately/radio': 3.10.14(react@19.1.0) + '@react-stately/radio': 3.10.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/searchfield': 3.5.13(react@19.1.0) - '@react-stately/select': 3.6.14(react@19.1.0) + '@react-stately/select': 3.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@react-stately/selection': 3.20.3(react@19.1.0) '@react-stately/slider': 3.6.5(react@19.1.0) '@react-stately/table': 3.14.3(react@19.1.0) @@ -8933,6 +7806,28 @@ snapshots: '@react-stately/tree': 3.9.0(react@19.1.0) '@react-types/shared': 3.30.0(react@19.1.0) react: 19.1.0 + transitivePeerDependencies: + - react-dom + + react-stately@3.47.0(react@19.1.0): + dependencies: + '@internationalized/date': 3.12.2 + '@internationalized/number': 3.6.7 + '@internationalized/string': 3.2.9 + '@react-types/shared': 3.35.0(react@19.1.0) + '@swc/helpers': 0.5.23 + react: 19.1.0 + use-sync-external-store: 1.6.0(react@19.1.0) + + react-stately@3.48.0(react@19.1.0): + dependencies: + '@internationalized/date': 3.12.2 + '@internationalized/number': 3.6.7 + '@internationalized/string': 3.2.9 + '@react-types/shared': 3.36.0(react@19.1.0) + '@swc/helpers': 0.5.23 + react: 19.1.0 + use-sync-external-store: 1.6.0(react@19.1.0) react-toastify@11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: @@ -9021,8 +7916,6 @@ snapshots: dependencies: queue-microtask: 1.2.3 - safe-buffer@5.2.1: {} - safe-regex-test@1.1.0: dependencies: call-bound: 1.0.4 @@ -9040,9 +7933,9 @@ snapshots: schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 2.1.1(ajv@8.17.1) - ajv-keywords: 5.1.0(ajv@8.17.1) + ajv: 8.20.0 + ajv-formats: 2.1.1(ajv@8.20.0) + ajv-keywords: 5.1.0(ajv@8.20.0) sdp@3.2.1: {} @@ -9050,10 +7943,6 @@ snapshots: semver@7.7.2: {} - serialize-javascript@6.0.2: - dependencies: - randombytes: 2.1.0 - seroval-plugins@1.3.3(seroval@1.3.2): dependencies: seroval: 1.3.2 @@ -9216,7 +8105,7 @@ snapshots: tapable@2.2.2: {} - tapable@2.3.0: {} + tapable@2.3.3: {} tar@7.4.3: dependencies: @@ -9227,21 +8116,21 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - terser-webpack-plugin@5.3.14(esbuild@0.25.5)(webpack@5.99.9(esbuild@0.25.5)): + terser-webpack-plugin@5.6.1(esbuild@0.25.5)(lightningcss@1.30.1)(webpack@5.99.9(esbuild@0.25.5)(lightningcss@1.30.1)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 - serialize-javascript: 6.0.2 - terser: 5.44.1 - webpack: 5.99.9(esbuild@0.25.5) + terser: 5.48.0 + webpack: 5.99.9(esbuild@0.25.5)(lightningcss@1.30.1) optionalDependencies: esbuild: 0.25.5 + lightningcss: 1.30.1 - terser@5.44.1: + terser@5.48.0: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 + acorn: 8.17.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -9380,9 +8269,9 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - update-browserslist-db@1.1.4(browserslist@4.28.0): + update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: - browserslist: 4.28.0 + browserslist: 4.28.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -9402,6 +8291,10 @@ snapshots: dependencies: react: 19.1.0 + use-sync-external-store@1.6.0(react@19.1.0): + dependencies: + react: 19.1.0 + util@0.12.5: dependencies: inherits: 2.0.4 @@ -9414,13 +8307,13 @@ snapshots: uzip@0.20201231.0: {} - vite-node@3.2.4(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0): + vite-node@3.2.4(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.0.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - jiti @@ -9435,18 +8328,18 @@ snapshots: - tsx - yaml - vite-plugin-svgr@4.5.0(rollup@4.44.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)): + vite-plugin-svgr@4.5.0(rollup@4.44.1)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)): dependencies: '@rollup/pluginutils': 5.2.0(rollup@4.44.1) '@svgr/core': 8.1.0(typescript@5.8.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3)) - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) transitivePeerDependencies: - rollup - supports-color - typescript - vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0): + vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -9459,15 +8352,15 @@ snapshots: fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.30.1 - terser: 5.44.1 + terser: 5.48.0 tsx: 4.20.3 yaml: 2.8.0 - vitest@3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0): + vitest@3.2.4(@types/node@22.15.34)(@vitest/browser@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -9485,12 +8378,12 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0) + vite: 6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) + vite-node: 3.2.4(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.15.34 - '@vitest/browser': 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.44.1)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) + '@vitest/browser': 3.2.4(playwright@1.53.2)(vite@6.3.5(@types/node@22.15.34)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.48.0)(tsx@4.20.3)(yaml@2.8.0))(vitest@3.2.4) jsdom: 26.1.0 transitivePeerDependencies: - jiti @@ -9514,46 +8407,54 @@ snapshots: dependencies: loose-envify: 1.4.0 - watchpack@2.4.4: + watchpack@2.5.2: dependencies: - glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 webidl-conversions@7.0.0: {} - webpack-sources@3.3.3: {} + webpack-sources@3.5.0: {} webpack-virtual-modules@0.6.2: {} - webpack@5.99.9(esbuild@0.25.5): + webpack@5.99.9(esbuild@0.25.5)(lightningcss@1.30.1): dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.8 + '@types/estree': 1.0.9 '@types/json-schema': 7.0.15 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - browserslist: 4.28.0 + acorn: 8.17.0 + browserslist: 4.28.2 chrome-trace-event: 1.0.4 - enhanced-resolve: 5.18.3 + enhanced-resolve: 5.24.0 es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.1 + loader-runner: 4.3.2 mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 4.3.3 - tapable: 2.3.0 - terser-webpack-plugin: 5.3.14(esbuild@0.25.5)(webpack@5.99.9(esbuild@0.25.5)) - watchpack: 2.4.4 - webpack-sources: 3.3.3 + tapable: 2.3.3 + terser-webpack-plugin: 5.6.1(esbuild@0.25.5)(lightningcss@1.30.1)(webpack@5.99.9(esbuild@0.25.5)(lightningcss@1.30.1)) + watchpack: 2.5.2 + webpack-sources: 3.5.0 transitivePeerDependencies: + - '@minify-html/node' - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso - esbuild + - html-minifier-terser + - lightningcss + - postcss - uglify-js webrtc-adapter@9.0.3: diff --git a/apps/web/src/components/AppShell/AdminNavbar.tsx b/apps/web/src/components/AppShell/AdminNavbar.tsx new file mode 100644 index 00000000..7a053e19 --- /dev/null +++ b/apps/web/src/components/AppShell/AdminNavbar.tsx @@ -0,0 +1,58 @@ +import { NavLink } from "@/components/AppShell/NavLink"; +import TablerInfoCircle from "~icons/tabler/info-circle"; +import TablerClipboardCheck from "~icons/tabler/clipboard-check"; +import TablerFileText from "~icons/tabler/file-text"; +import TablerChartBarPopular from "~icons/tabler/chart-bar-popular"; +import TablerSearch from "~icons/tabler/search"; + +interface AdminNavbaPropsProps { + pathname: string; +} + +export default function AdminNavbaProps({ pathname }: AdminNavbaPropsProps) { + const applicationReviewActive = /^\/application-review\/?$/.test(pathname); + const applicationStatisticsActive = /^\/application-statistics\/?$/.test( + pathname, + ); + const applicationSearchActive = /^\/application-search\/?$/.test(pathname); + + const commonNavLinks = ( + <> + } + active={pathname.startsWith("/information")} + /> + } + initialExpanded={ + applicationReviewActive || + applicationStatisticsActive || + applicationSearchActive + } + > + } + active={applicationReviewActive} + /> + } + active={applicationStatisticsActive} + /> + } + active={applicationSearchActive} + /> + + + ); + return commonNavLinks; +} diff --git a/apps/web/src/components/AppShell/AppShell.tsx b/apps/web/src/components/AppShell/AppShell.tsx index 3dd4ecfb..9b81995f 100644 --- a/apps/web/src/components/AppShell/AppShell.tsx +++ b/apps/web/src/components/AppShell/AppShell.tsx @@ -110,7 +110,7 @@ const AppShellBase: FC = ({ children }) => { {/* Main content */} {main && ( -
+
{main}
)} diff --git a/apps/web/src/components/AppShell/StaffNavbar.tsx b/apps/web/src/components/AppShell/StaffNavbar.tsx new file mode 100644 index 00000000..fba4f2d5 --- /dev/null +++ b/apps/web/src/components/AppShell/StaffNavbar.tsx @@ -0,0 +1,53 @@ +import { NavLink } from "@/components/AppShell/NavLink"; +import TablerInfoCircle from "~icons/tabler/info-circle"; +import TablerClipboardCheck from "~icons/tabler/clipboard-check"; +import TablerFileText from "~icons/tabler/file-text"; +import TablerChartBarPopular from "~icons/tabler/chart-bar-popular"; + +interface StaffNavbarProps { + pathname: string; +} + +export default function StaffNavbar({ pathname }: StaffNavbarProps) { + const applicationReviewActive = /^\/application-review\/?$/.test(pathname); + const waitlistActive = /^\/events\/[^/]+\/dashboard\/waitlist\/?$/.test( + pathname, + ); + const applicationStatisticsActive = /^\/application-statistics\/?$/.test( + pathname, + ); + + const commonNavLinks = ( + <> + } + active={pathname.startsWith("/information")} + /> + } + initialExpanded={ + waitlistActive || + applicationReviewActive || + applicationStatisticsActive + } + > + } + active={applicationReviewActive} + /> + } + active={applicationStatisticsActive} + /> + + + ); + return commonNavLinks; +} diff --git a/apps/web/src/components/ui/Field/Field.tsx b/apps/web/src/components/ui/Field/Field.tsx index 6a4ef1ff..fde85a32 100644 --- a/apps/web/src/components/ui/Field/Field.tsx +++ b/apps/web/src/components/ui/Field/Field.tsx @@ -133,7 +133,6 @@ export const Input = forwardRef( /> ); } - // console.log(iconPlacement); return (
diff --git a/apps/web/src/components/ui/FileField/FileField.tsx b/apps/web/src/components/ui/FileField/FileField.tsx index 50e02f09..831ea7ea 100644 --- a/apps/web/src/components/ui/FileField/FileField.tsx +++ b/apps/web/src/components/ui/FileField/FileField.tsx @@ -2,10 +2,7 @@ // The FileTrigger component doesn't support form submission yet, hence we use a custom file field component here. import { useFormValidation } from "@react-aria/form"; -import { - FormValidationContext, - useFormValidationState, -} from "@react-stately/form"; +import { useFormValidationState } from "@react-stately/form"; import { createContext, type JSX, @@ -15,7 +12,11 @@ import { useMemo, useRef, } from "react"; -import { FieldErrorContext, InputContext } from "react-aria-components"; +import { + FieldErrorContext, + FormValidationContext, + InputContext, +} from "react-aria-components"; import { Description, FieldError, Label } from "@/components/ui/Field"; import { FileInput } from "./FileInput"; import type { ValidationError } from "@tanstack/react-form"; diff --git a/apps/web/src/components/ui/Select/Select.tsx b/apps/web/src/components/ui/Select/Select.tsx index a66e7a17..4e2bc828 100644 --- a/apps/web/src/components/ui/Select/Select.tsx +++ b/apps/web/src/components/ui/Select/Select.tsx @@ -23,7 +23,7 @@ import TablerChevronDown from "~icons/tabler/chevron-down"; import { cn } from "@/utils/cn"; export const styles = tv({ - base: "h-9.5 flex items-center text-start gap-4 w-full cursor-default border border-input-border rounded-sm pl-3 pr-2 py-1.5 min-w-[150px] bg-input-bg", + base: "h-9.5 flex items-center text-start gap-4 w-full cursor-default rounded-sm pl-3 pr-2 py-1.5 min-w-[150px] bg-input-bg", variants: { isDisabled: { false: @@ -73,6 +73,7 @@ export function Select({ props.className, "group flex flex-col gap-1 font-figtree", )} + aria-label="select" // style={{ // maxWidth, // }} diff --git a/apps/web/src/components/ui/Sheet/Sheet.css b/apps/web/src/components/ui/Sheet/Sheet.css new file mode 100644 index 00000000..a798cc0c --- /dev/null +++ b/apps/web/src/components/ui/Sheet/Sheet.css @@ -0,0 +1,67 @@ +.sheet-overlay { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: color-mix(in oklab, var(--color-black) 15%, transparent); + backdrop-filter: blur(1px); + z-index: 100; + overflow: clip; + + &[data-entering] { + animation: sheet-blur 300ms; + } + + &[data-exiting] { + animation: sheet-blur 300ms reverse ease-in; + } +} + +.sheet { + position: sticky; + left: 0; + /* width: 650px; */ + padding: 5px; + /* Extra padding to account for iOS floating browser UI. */ + top: -100px; + height: calc(100dvh + 200px); + /* padding: 100px 0; */ + margin-left: auto; + background: var(--surface); + outline: none; + /* border-left: 1px solid var(--border); */ + /* box-shadow: -8px 0 20px rgba(0 0 0 / 0.1); */ + font-family: system-ui; + font-size: 0.875rem; + + &[data-entering] { + animation: sheet-slide 300ms; + } + + &[data-exiting] { + animation: sheet-slide 300ms reverse ease-in; + } +} + +@keyframes sheet-blur { + from { + background: rgba(0 0 0 / 0); + backdrop-filter: blur(0); + } + + to { + background: color-mix(in oklab, var(--color-black) 15%, transparent); + backdrop-filter: blur(1px); + } +} + +@keyframes sheet-slide { + from { + transform: translateX(100%); + } + + to { + transform: translateX(0); + } +} diff --git a/apps/web/src/components/ui/Sheet/Sheet.tsx b/apps/web/src/components/ui/Sheet/Sheet.tsx new file mode 100644 index 00000000..e95a93f9 --- /dev/null +++ b/apps/web/src/components/ui/Sheet/Sheet.tsx @@ -0,0 +1,28 @@ +import { + Modal, + ModalOverlay, + type ModalOverlayProps, + Heading, + composeRenderProps, +} from "react-aria-components"; +import { Dialog } from "../Dialog"; +import "./Sheet.css"; +import { cn } from "@/utils/cn"; + +type SheetProps = ModalOverlayProps & { + sheetClassName?: string; +}; + +export function Sheet(props: SheetProps) { + return ( + + {composeRenderProps(props.children, (children) => ( + + {children} + + ))} + + ); +} + +export { Heading }; diff --git a/apps/web/src/components/ui/Sheet/index.ts b/apps/web/src/components/ui/Sheet/index.ts new file mode 100644 index 00000000..f49d7b61 --- /dev/null +++ b/apps/web/src/components/ui/Sheet/index.ts @@ -0,0 +1 @@ +export * from "./Sheet"; diff --git a/apps/web/src/components/ui/Table/Table.tsx b/apps/web/src/components/ui/Table/Table.tsx index aef2b1e9..36796b42 100644 --- a/apps/web/src/components/ui/Table/Table.tsx +++ b/apps/web/src/components/ui/Table/Table.tsx @@ -1,13 +1,4 @@ -import { - flexRender, - getCoreRowModel, - getFilteredRowModel, - getSortedRowModel, - getPaginationRowModel, - useReactTable, - type ColumnDef, - type OnChangeFn, -} from "@tanstack/react-table"; +import { flexRender, type Table } from "@tanstack/react-table"; import { MultiSelect, type MultiSelectProps, @@ -42,246 +33,295 @@ export type PaginationState = { }; interface TableProps { - data: TData[]; - columns: ColumnDef[]; - columnFilters: ColumnFiltersState; - onColumnFiltersChange: OnChangeFn; - sorting: SortingState; - onSortingChange: OnChangeFn; - pagination: PaginationState; - onPaginationChange: OnChangeFn; - fallbackData?: TData[]; + table: Table; + showPagination?: boolean; + headerClassName?: string; + className?: string; } export function Table({ - data, - columns, - columnFilters, - onColumnFiltersChange, - sorting, - onSortingChange, - pagination, - onPaginationChange, - fallbackData = [], + table, + headerClassName, + className, + showPagination = true, }: TableProps) { - const table = useReactTable({ - columns, - data: data ?? fallbackData, - getCoreRowModel: getCoreRowModel(), - getFilteredRowModel: getFilteredRowModel(), - getSortedRowModel: getSortedRowModel(), - getPaginationRowModel: getPaginationRowModel(), - state: { columnFilters, sorting, pagination }, - onColumnFiltersChange: onColumnFiltersChange, - onSortingChange: onSortingChange, - onPaginationChange: onPaginationChange, - }); - return (
- - - {table.getHeaderGroups().map((headerGroup) => ( - - {headerGroup.headers.map((header) => { - const sortState = header.column.getIsSorted(); - const responsiveClass = - header.column.columnDef.meta?.responsiveClass ?? ""; - return ( +
+
+ + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => ( - ); - })} - - ))} - - - {table.getRowModel().rows.map((row, i) => ( - - {row.getVisibleCells().map((cell) => { - const responsiveClass = - cell.column.columnDef.meta?.responsiveClass ?? ""; - return ( + ))} + + ))} + + + {table.getRowModel().rows.map((row, i) => ( + + {row.getVisibleCells().map((cell) => ( - ); - })} - - ))} - -
-
-
- {flexRender( + {header.isPlaceholder + ? null + : flexRender( header.column.columnDef.header, header.getContext(), )} -
-
-
- {header.column.getCanFilter() && - header.column.columnDef.meta?.filterType == - "text" && ( - - header.column.setFilterValue(e) - } - placeholder="Search..." - className="mt-2" - /> - )} - {header.column.getCanFilter() && - header.column.columnDef.meta?.filterType === - "select" && - (() => { - const allOptions = - (header.column.columnDef.meta - ?.filterOptions as MultiSelectProps["options"]) ?? - []; - const filterValue = - (header.column.getFilterValue() ?? - []) as string[]; - const selectedOptions = allOptions.filter((opt) => - filterValue.includes(opt.value), - ); - - return ( -
- { - const newValues = selected.map( - (opt) => opt.value, - ); - header.column.setFilterValue( - newValues.length > 0 - ? newValues - : undefined, - ); - }} - /> -
- ); - })()} -
- {header.column.getCanSort() && ( -
- -
- )} -
-
{flexRender(cell.column.columnDef.cell, cell.getContext())}
-
-
- - - - - -
Page
- - {table.getState().pagination.pageIndex + 1} of{" "} - {table.getPageCount().toLocaleString()} - -
- {/* - | Go to page: - { - const page = e.target.value ? Number(e.target.value) - 1 : 0; - table.setPageIndex(page); - }} - className="border p-1 rounded w-16" - /> - */} - + ))} + + ))} + +
+ {showPagination && ( +
+
+ + + + +
+ + Page {table.getState().pagination.pageIndex + 1} of{" "} + {table.getPageCount().toLocaleString()} + +
+ +
+ +
+ Total Rows: {table.getRowCount()} +
+
+ )}
); + // return ( + //
+ // + // + // {table.getHeaderGroups().map((headerGroup) => ( + // + // {headerGroup.headers.map((header) => { + // // const sortState = header.column.getIsSorted(); + // const responsiveClass = + // header.column.columnDef.meta?.responsiveClass ?? ""; + // return ( + // + // ); + // })} + // + // ))} + // + // + // {table.getRowModel().rows.map((row, i) => ( + // + // {row.getVisibleCells().map((cell) => { + // const responsiveClass = + // cell.column.columnDef.meta?.responsiveClass ?? ""; + // return ( + // + // ); + // })} + // + // ))} + // + //
+ //
+ //
+ // {flexRender( + // header.column.columnDef.header, + // header.getContext(), + // )} + //
+ //
+ //
+ // {header.column.getCanFilter() && + // header.column.columnDef.meta?.filterType == + // "text" && ( + // + // header.column.setFilterValue(e) + // } + // placeholder="Search..." + // className="mt-2" + // /> + // )} + // {header.column.getCanFilter() && + // header.column.columnDef.meta?.filterType === + // "select" && + // (() => { + // const allOptions = + // (header.column.columnDef.meta + // ?.filterOptions as MultiSelectProps["options"]) ?? + // []; + // const filterValue = + // (header.column.getFilterValue() ?? + // []) as string[]; + // const selectedOptions = allOptions.filter((opt) => + // filterValue.includes(opt.value), + // ); + + // return ( + //
+ // { + // const newValues = selected.map( + // (opt) => opt.value, + // ); + // header.column.setFilterValue( + // newValues.length > 0 + // ? newValues + // : undefined, + // ); + // }} + // /> + //
+ // ); + // })()} + //
+ // {/* {header.column.getCanSort() && ( + //
+ // + //
+ // )} */} + //
+ //
+ //
+ // {flexRender(cell.column.columnDef.cell, cell.getContext())} + //
+ + //
+ // ); } diff --git a/apps/web/src/components/ui/Tabs/Tabs.tsx b/apps/web/src/components/ui/Tabs/Tabs.tsx new file mode 100644 index 00000000..4c16138c --- /dev/null +++ b/apps/web/src/components/ui/Tabs/Tabs.tsx @@ -0,0 +1,114 @@ +import { + Tab as RACTab, + TabList as RACTabList, + TabPanels as RACTabPanels, + TabPanel as RACTabPanel, + Tabs as RACTabs, + SelectionIndicator, + type TabListProps, + type TabPanelProps, + type TabPanelsProps, + type TabProps, + type TabsProps, +} from "react-aria-components/Tabs"; +import { composeRenderProps } from "react-aria-components"; +import { tv } from "tailwind-variants"; +import { twMerge } from "tailwind-merge"; + +const tabsStyles = tv({ + base: "flex gap-4 font-sans max-w-full", + variants: { + orientation: { + horizontal: "flex-col", + vertical: "flex-row", + }, + }, +}); + +export function Tabs(props: TabsProps) { + return ( + + tabsStyles({ ...renderProps, className }), + )} + /> + ); +} + +const tabListStyles = tv({ + base: "flex max-w-full p-1 -m-1 overflow-x-auto overflow-y-clip [scrollbar-width:none]", + variants: { + orientation: { + horizontal: "flex-row", + vertical: "flex-col items-start", + }, + }, +}); + +export function TabList(props: TabListProps) { + return ( + + tabListStyles({ ...renderProps, className }), + )} + /> + ); +} + +const tabProps = tv({ + // extend: focusRing, + base: "group relative flex items-center cursor-pointer rounded-full px-3 py-1.5 font-medium transition forced-color-adjust-none [-webkit-tap-highlight-color:transparent]", + variants: { + isDisabled: { + true: "text-neutral-200 dark:text-neutral-600 forced-colors:text-[GrayText] selected:text-white dark:selected:text-neutral-500 forced-colors:selected:text-[HighlightText] selected:bg-neutral-200 dark:selected:bg-neutral-600 forced-colors:selected:bg-[GrayText]", + }, + }, +}); + +export function Tab(props: TabProps) { + return ( + + tabProps({ ...renderProps, className }), + )} + > + {composeRenderProps(props.children, (children) => ( + <> + {children} + + + ))} + + ); +} + +export function TabPanels(props: TabPanelsProps) { + return ( + + ); +} + +const tabPanelStyles = tv({ + // extend: focusRing, + base: "flex-1 box-border text-sm text-neutral-900 dark:text-neutral-100 transition entering:opacity-0 exiting:opacity-0 exiting:absolute exiting:top-0 exiting:left-0 exiting:w-full", +}); + +export function TabPanel(props: TabPanelProps) { + return ( + + tabPanelStyles({ ...renderProps, className }), + )} + /> + ); +} diff --git a/apps/web/src/components/ui/Tabs/index.ts b/apps/web/src/components/ui/Tabs/index.ts new file mode 100644 index 00000000..5de2df69 --- /dev/null +++ b/apps/web/src/components/ui/Tabs/index.ts @@ -0,0 +1 @@ +export * from "./Tabs"; diff --git a/apps/web/src/index.css b/apps/web/src/index.css index 672db8a9..3188a1e0 100644 --- a/apps/web/src/index.css +++ b/apps/web/src/index.css @@ -104,3 +104,21 @@ body, } } } + +/* Target the overall scrollbar width/height */ +::-webkit-scrollbar { + width: 7px; + height:7px; +} + +/* Make the track (background) transparent */ +::-webkit-scrollbar-track { + background: transparent; +} + +/* Style the draggable thumb handle so it stays visible */ +::-webkit-scrollbar-thumb { + background-color: #888; + border-radius: 6px; + border: 3px solid transparent; /* Gives padding if track is transparent */ +} \ No newline at end of file diff --git a/apps/web/src/lib/openapi/schema.d.ts b/apps/web/src/lib/openapi/schema.d.ts deleted file mode 100644 index 2feae06e..00000000 --- a/apps/web/src/lib/openapi/schema.d.ts +++ /dev/null @@ -1,5749 +0,0 @@ -/** - * This file was auto-generated by openapi-typescript. - * Do not make direct changes to the file. - */ - -export interface paths { - "/application": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Application - * @description Get the application of the current user - */ - get: operations["get-application"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/accept-acceptance": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Accept Application Acceptance - * @description Accept an acceptance after being accepted. Sets event role to attendee, from applicant. - */ - patch: operations["accept-application-acceptance"]; - trace?: never; - }; - "/application/assigned": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Assigned Applications - * @description Returns assigned applications and their review progress for the authenticated reviewer - */ - get: operations["get-assigned-applications"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/calculate-admissions": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Submit Admissions Calculation Request - * @description Queues an admission calculation task to the BAT worker - */ - post: operations["calculate-admissions-request"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/join-waitlist": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Join Waitlist - * @description Adds a waitlist join time to application. Sets status to waitlisted - */ - patch: operations["join-waitlist"]; - trace?: never; - }; - "/application/release-decisions/{runId}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Release Decisions - * @description Releases decisions that were calculated by the worker from a specific run id - */ - post: operations["release-decisions"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/resume": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Resume Download URL - * @description Returns a presigned S3 URL with GET permission for the user's specific object, which is their uploaded resume. The client can use this URL to download the object. - */ - get: operations["get-download-resume-url"]; - /** - * Replace Resume - * @description Replaces the resume of an already-submitted application without modifying any question responses. - */ - put: operations["replace-resume"]; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/review/assign": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Assign Application Reviewers - * @description Assigns applications to reviewers for the application review process. - */ - post: operations["assign-application-reviewers"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/review/reset": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Reset Application Reviews - * @description Resets all application reviews, clearing any existing reviewer assignments. - */ - post: operations["reset-application-reviews"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/review/{applicantId}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Submit Application Review - * @description Handles ratings submissions from staff during the application review process - */ - post: operations["submit-application-review"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/review/{applicantId}/resume": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Resume URL (for review process) - * @description Returns a presigned S3 URL with GET permission for a specific user's resume as an object. The client can use this URL to download the object temporarily for application review. - */ - get: operations["get-resume"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/save": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Save Application - * @description Save user's progress on the application. File/Upload fields are not saved (eg. resumes). - */ - post: operations["save-application"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/stats": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Application Statistics - * @description Aggregates applications by race, gender, age, majors, and schools - */ - get: operations["get-application-statistics"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/submit": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Submit Application - * @description Submit the application - */ - post: operations["submit-application"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/application/transition-waitlisted-applications": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Transition Waitlisted Applications - * @description Transitions all accepted users to waitlist, and accepts 50 from the waitlist. Sets application status from accepted to rejected. - */ - patch: operations["transition-waitlist"]; - trace?: never; - }; - "/application/withdraw-acceptance": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Withdraw Acceptance - * @description Withdraw an acceptance after being accepted to an event. Sets application status from accepted to rejected. - */ - patch: operations["withdraw-acceptance"]; - trace?: never; - }; - "/application/withdraw-attendance": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Withdraw Attendance - * @description Withdraw attendance after accepting to go to the hackathon. Sets application status from accepted to withdrawn. Sets event role from attendee, back to applicant. - */ - patch: operations["withdraw-attendance"]; - trace?: never; - }; - "/auth/callback": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * OAuth Callback - * @description Handles the OAuth provider callback, validates state and nonce, and sets the session cookie. - */ - get: operations["oauth-callback"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/auth/logout": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Logout - * @description Logs out the authenticated user by invalidating their session - */ - post: operations["logout"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/email/queue-confirmation-email": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Queue Confirmation Email - * @description Pushes a confirmation email request to the task queue - */ - post: operations["queue-confirmation-email"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/email/queue-text-email": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Queue Text Email - * @description Pushes a text email request to the task queue - */ - post: operations["queue-text-email"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/email/queue-welcome-email": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Queue Welcome Email - * @description Pushes a welcome email request to the task queue - */ - post: operations["queue-welcome-email"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/email/send-welcome-emails": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Send Welcome Emails - * @description Send welcome emails to all attendees - */ - post: operations["send-welcome-emails"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Hackathon - * @description Returns public information of the hackathon - */ - get: operations["get-hackathon"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Update Hackathon - * @description Updates the information of the hackathon - */ - patch: operations["update-hackathon"]; - trace?: never; - }; - "/hackathon/attendees/count": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Hackathon Attendees Count - * @description Returns the number of users who is attending the hackathon - */ - get: operations["get-hackathon-attendees-count"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon/attendees/discord": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Hackathon Attendees with Discord - * @description Returns all users with a discord account that is also attending the hackathon - */ - get: operations["get-hackathon-attendees-with-discord"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon/attendees/userids": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Hackathon Attendees User Ids - * @description Returns all users ids of users who are attending the hackathon - */ - get: operations["get-hackathon-attendees-userids"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon/banner": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Upload Banner - * @description Uploads an image to be used as the banner for the hackathon - */ - post: operations["upload-banner"]; - /** - * Delete Banner - * @description Deletes the banner - */ - delete: operations["delete-banner"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon/checkin": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Check In User - * @description Staff route for checking a user to an event. The user to check in must be an attendee and have never been checked in yet. - */ - post: operations["check-in"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon/detailed": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Detailed Hackathon - * @description Returns all information of the hackathon - */ - get: operations["get-hackathon-for-staff"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon/interest": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Submit Interest Email - * @description Submits an email to interest/mailing list for the hackathon - */ - post: operations["submit-interest-email"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/hackathon/staff": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Hackathon Staff - * @description Returns the users who are part of the current staff of the hackathon - */ - get: operations["get-hackathon-staff"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/ping": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Ping - * @description Health Check - */ - get: operations["ping"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/redeemables": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Redeemables - * @description Returns a list of all redeemable items - */ - get: operations["get-redeemables"]; - put?: never; - /** - * Create Redeemable - * @description Creates a new redeemable item - */ - post: operations["create-redeemable"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/redeemables/{redeemableId}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - /** - * Delete Redeemable - * @description Deletes a redeemable by id - */ - delete: operations["delete-redeemable"]; - options?: never; - head?: never; - /** - * Update Redeemable - * @description Update specific fields (name, stock, max per user) of a redeemable - */ - patch: operations["update-redeemable"]; - trace?: never; - }; - "/redeemables/{redeemableId}/users/{userID}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Redeem Redeemable - * @description Redeems a redeemable by id. Creates a redemption record linking a specific user to a redeemable item - */ - post: operations["redeem-redeemable"]; - delete?: never; - options?: never; - head?: never; - /** - * Update Redemption - * @description Updates a redemption created by the user. - */ - patch: operations["update-redemption"]; - trace?: never; - }; - "/teams": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Create Team - * @description Creates a new team and assigns the user as the owner. Returns the team. - */ - post: operations["create-team"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/me": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get My Team - * @description Returns the team information and the full list of team members for the currently authenticated user - */ - get: operations["get-my-team"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/me/pending-joins": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get User's Pending Join Requests - * @description Returns the current user's pending requests for teams. - */ - get: operations["get-my-pending-join-requests"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/{requestId}/accept": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Accept Team Join Request - * @description Accepts a pending team join request. Only the team owner can perform this action. - */ - post: operations["accept-team-join-request"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/{requestId}/reject": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Reject Team Join Request - * @description Rejects a pending team join request. Only the team owner can perform this action. - */ - post: operations["reject-team-join-request"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/{teamId}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Team - * @description Returns the team information and the full list of team members by team id - */ - get: operations["get-team"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/{teamId}/join": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Request to Join Team - * @description Requests to join a team or fails if user is already on a team. - */ - post: operations["create-join-team-request"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/{teamId}/kick/{memberId}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Kick Team Member - * @description Kicks a member from a team. Only the team owner can perform this action. - */ - post: operations["kick-member-from-team"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/{teamId}/leave": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Leave Team - * @description Leaves a team if the user is on the team. - */ - post: operations["leave-team"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/teams/{teamId}/pending-joins": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Pending Join Requests for Team - * @description Returns a team's pending join requests. This is only allowed for the team's owner. - */ - get: operations["get-pending-join-team-requests"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Users - * @description Get or search for users by name or email. If no search term is provided, returns all users with pagination. - */ - get: operations["get-users"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users/email/{email}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get User By Email - * @description Returns the user associated with the email - */ - get: operations["get-user-by-email"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users/me": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get Me - * @description Returns the authenticated user's profile - */ - get: operations["get-me"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Update User - * @description Updates information of the authenticated user - */ - patch: operations["update-user"]; - trace?: never; - }; - "/users/me/email-consent": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Update Email Consent - * @description Updates the user's email consent setting - */ - patch: operations["update-email-consent"]; - trace?: never; - }; - "/users/me/onboarding": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - /** - * Onboard User - * @description Allows the user to submit information such as name and preferred email, and complete the onboarding process - */ - patch: operations["onboard-user"]; - trace?: never; - }; - "/users/rfid/{rfid}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get User By RFID - * @description Returns the user associated with the RFID - */ - get: operations["get-user-by-rfid"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users/roles/assign": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Assign Role - * @description Assigns/modify a user's role - */ - post: operations["assign-role"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users/roles/batch-assign": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Batch Assign Roles - * @description Batch assign/modify multiple users' roles - */ - post: operations["batch-assign-roles"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users/roles/revoke/{userID}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Revoke Role - * @description Remove a user's role - */ - post: operations["revoke-role"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users/userid/{userID}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get User By Id - * @description Returns the user associated with the user id - */ - get: operations["get-user-by-id"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/workshops": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get all UPCOMING workshops - * @description Returns a list of all workshops. - */ - get: operations["get-all-workshops"]; - put?: never; - /** - * Create a workshop - * @description Creates a workshop based on the provided body. - */ - post: operations["create-workshop"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/workshops/delete-all": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - post?: never; - /** - * Delete all workshops - * @description Deletes all the workshops - */ - delete: operations["delete-all-workshops"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/workshops/view-all": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * View all workshops ever made - * @description Returns a list of all workshops, including past workshops. - */ - get: operations["view-all-workshops"]; - put?: never; - post?: never; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/workshops/{workshopId}": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - /** - * Get a workshop off of workshopID - * @description Returns a workshop based on the provided id. - */ - get: operations["get-workshop"]; - put?: never; - post?: never; - /** - * Delete a workshop - * @description Deletes a workshop based on the provided id. - */ - delete: operations["delete-workshop"]; - options?: never; - head?: never; - /** - * Update a workshop - * @description Updates a workshop based on the provided id and body. Only the fields provided in the body will be updated. - */ - patch: operations["update-workshop"]; - trace?: never; - }; - "/workshops/{workshopId}/register": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Register for a workshop - * @description Lets a user register for a workshop. - */ - post: operations["register-for-workshop"]; - /** - * Unregister for a workshop - * @description Lets a user unregister for a workshop. - */ - delete: operations["unregister-for-workshop"]; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; - "/users/me/acknowledge-new-application-status": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - get?: never; - put?: never; - /** - * Acknowledge New Application Status - * @description Mark that the user has seen their new application status - */ - post: operations["update-has-seen-new-application-status"]; - delete?: never; - options?: never; - head?: never; - patch?: never; - trace?: never; - }; -} -export type webhooks = Record; -export interface components { - schemas: { - ApplicationStatistics: { - ageStats: components["schemas"]["GetApplicationAgeSplitRow"]; - genderStats: components["schemas"]["GetApplicationGenderSplitRow"]; - majorStats: components["schemas"]["GetApplicationMajorSplitRow"][] | null; - raceStats: components["schemas"]["GetApplicationRaceSplitRow"][] | null; - schoolStats: - | components["schemas"]["GetApplicationSchoolSplitRow"][] - | null; - statusStats: components["schemas"]["GetApplicationStatusSplitRow"]; - }; - AssignRoleBatchRequest: { - assignments: components["schemas"]["AssignRoleRequest"][] | null; - }; - AssignRoleRequest: { - email: string | null; - role: string; - userID: string | null; - }; - AssignedApplication: { - applicantId: string; - status: string; - }; - CheckInRequest: { - rfid: string | null; - userID: string; - }; - CreateJoinRequest: { - message: string | null; - }; - CreateRedeemableRequest: { - /** Format: int64 */ - amount: number; - /** Format: int64 */ - maxUserAmount: number; - name: string; - }; - CreateTeamRequest: { - name: string; - }; - CreateWorkshopInput: { - description: string; - /** Format: date-time */ - end_time: string; - location: string; - presenter: string; - /** Format: date-time */ - start_time: string; - title: string; - }; - ErrorDetail: { - /** @description Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id' */ - location?: string; - /** @description Error message text */ - message?: string; - /** @description The value at the given location */ - value?: unknown; - }; - ErrorModel: { - /** - * @description A human-readable explanation specific to this occurrence of the problem. - * @example Property foo is required but is missing. - */ - detail?: string; - /** @description Optional list of individual error details */ - errors?: components["schemas"]["ErrorDetail"][] | null; - /** - * Format: uri - * @description A URI reference that identifies the specific occurrence of the problem. - * @example https://example.com/error-log/abc123 - */ - instance?: string; - /** - * Format: int64 - * @description HTTP status code - * @example 400 - */ - status?: number; - /** - * @description A short, human-readable summary of the problem type. This value should not change between occurrences of the error. - * @example Bad Request - */ - title?: string; - /** - * Format: uri - * @description A URI reference to human-readable documentation for the error. - * @default about:blank - * @example https://example.com/errors/example - */ - type: string; - }; - FormFile: { - ContentType: string; - Filename: string; - IsSet: boolean; - /** Format: int64 */ - Size: number; - }; - GetApplicationAgeSplitRow: { - /** Format: int64 */ - age_18: number; - /** Format: int64 */ - age_19: number; - /** Format: int64 */ - age_20: number; - /** Format: int64 */ - age_21: number; - /** Format: int64 */ - age_22: number; - /** Format: int64 */ - age_23_plus: number; - /** Format: int64 */ - underage: number; - }; - GetApplicationGenderSplitRow: { - /** Format: int64 */ - female: number; - /** Format: int64 */ - male: number; - /** Format: int64 */ - non_binary: number; - /** Format: int64 */ - other: number; - }; - GetApplicationMajorSplitRow: { - /** Format: int64 */ - count: number; - major: string; - }; - GetApplicationRaceSplitRow: { - /** Format: int64 */ - count: number; - race_group: string; - }; - GetApplicationSchoolSplitRow: { - /** Format: int64 */ - count: number; - school: string; - }; - GetApplicationStatusSplitRow: { - /** Format: int64 */ - accepted: number; - /** Format: int64 */ - rejected: number; - /** Format: int64 */ - started: number; - /** Format: int64 */ - submitted: number; - /** Format: int64 */ - under_review: number; - /** Format: int64 */ - waitlisted: number; - /** Format: int64 */ - withdrawn: number; - }; - GetAttendeesWithDiscordRow: { - discord_id: string; - email: string | null; - name: string; - user_id: string; - }; - GetRedeemablesRow: { - /** Format: date-time */ - created_at: string; - id: string; - /** Format: int32 */ - max_user_amount: number; - name: string; - total_redeemed: unknown; - /** Format: int32 */ - total_stock: number; - /** Format: date-time */ - updated_at: string; - }; - Hackathon: { - accept_early_applications: boolean; - /** Format: date-time */ - application_close: string; - /** Format: date-time */ - application_open: string; - application_review_started: boolean; - banner: string | null; - /** Format: date-time */ - created_at: string; - /** Format: date-time */ - decision_release: string | null; - description: string | null; - /** Format: date-time */ - early_application_close: string | null; - /** Format: date-time */ - early_application_open: string | null; - /** Format: date-time */ - end_time: string; - id: string; - is_active: boolean; - location: string | null; - location_url: string | null; - /** Format: int32 */ - max_attendees: number | null; - name: string; - /** Format: date-time */ - rsvp_deadline: string | null; - /** Format: date-time */ - start_time: string; - /** Format: date-time */ - updated_at: string; - }; - HackerApplication: { - application: string; - /** Format: date-time */ - createdAt: string; - hackathonId: string; - /** Format: date-time */ - savedAt: string; - status: string; - /** Format: date-time */ - submittedAt: string | null; - /** Format: date-time */ - updatedAt: string; - userId: string; - }; - ListJoinRequestsByTeamAndStatusWithUserRow: { - /** Format: date-time */ - created_at: string; - id: string; - /** Format: date-time */ - processed_at: string | null; - processed_by_user_id: string; - request_message: string | null; - status: string; - team_id: string; - /** Format: date-time */ - updated_at: string; - user_email: string | null; - user_id: string; - user_image: string | null; - user_name: string; - }; - MemberWithUserInfo: { - email: string | null; - image: string | null; - /** Format: date-time */ - joinedAt: string; - name: string; - userID: string; - }; - OnboardingRequest: { - name: string; - preferredEmail: string; - }; - OpenWorkshop: { - /** Format: int64 */ - attendees: number; - description: string; - /** Format: date-time */ - end_time: string; - id: string; - location: string; - presenter: string; - /** Format: date-time */ - start_time: string; - title: string; - }; - PublicHackathon: { - acceptEarlyApplications: boolean; - /** Format: date-time */ - applicationClose: string; - /** Format: date-time */ - applicationOpen: string; - banner: string | null; - description: string | null; - /** Format: date-time */ - earlyApplicationClose: string | null; - /** Format: date-time */ - earlyApplicationOpen: string | null; - /** Format: date-time */ - endTime: string; - id: string; - location: string | null; - locationUrl: string | null; - name: string; - /** Format: date-time */ - rsvpDeadline: string | null; - /** Format: date-time */ - startTime: string; - }; - QueueConfirmationEmailRequest: { - email: string; - firstName: string; - }; - QueueTextEmailRequest: { - body: string; - subject: string; - to: string[] | null; - }; - QueueWelcomeEmailRequest: { - email: string; - firstName: string; - recipientId: string; - }; - Redeemable: { - /** Format: int32 */ - amount: number; - /** Format: date-time */ - created_at: string; - hackathon_id: string; - id: string; - /** Format: int32 */ - max_user_amount: number; - name: string; - /** Format: date-time */ - updated_at: string; - }; - ReviewRatings: { - /** Format: int64 */ - experienceRating: number; - /** Format: int64 */ - passionRating: number; - }; - ReviewerAssignment: { - /** Format: int64 */ - amount: number | null; - userID: string; - }; - SubmissionResult: { - /** Format: date-time */ - submittedAt: string | null; - }; - SubmitInterestEmailRequest: { - email: string; - source: string | null; - }; - Team: { - /** Format: date-time */ - created_at: string; - hackathon_id: string; - id: string; - name: string; - owner_id: string; - /** Format: date-time */ - updated_at: string; - }; - TeamJoinRequest: { - /** Format: date-time */ - created_at: string; - id: string; - /** Format: date-time */ - processed_at: string | null; - processed_by_user_id: string; - request_message: string | null; - status: string; - team_id: string; - /** Format: date-time */ - updated_at: string; - user_id: string; - }; - TeamWithMembers: { - id: string; - members: components["schemas"]["MemberWithUserInfo"][] | null; - name: string; - ownerId: string; - }; - UpdateEmailConsentRequest: { - emailConsent: boolean; - }; - UpdateHackathonRequest: { - /** Format: date-time */ - applicationClose?: string; - /** Format: date-time */ - applicationOpen?: string; - /** Format: date-time */ - decisionRelease?: string | null; - description?: string | null; - /** Format: date-time */ - endTime?: string; - location?: string | null; - locationUrl?: string | null; - /** Format: int32 */ - maxAttendees?: number | null; - name?: string; - /** Format: date-time */ - rsvpDeadline?: string | null; - /** Format: date-time */ - startTime?: string; - }; - UpdateRedeemableRequest: { - /** Format: int64 */ - maxUserAmount?: number; - name?: string; - /** Format: int64 */ - totalStock?: number; - }; - UpdateRedemptionRequest: { - /** Format: int64 */ - newAmount?: number; - }; - UpdateUserRequest: { - name: string; - preferredEmail: string; - }; - UpdateWorkshopInput: { - description: string | null; - /** Format: date-time */ - end_time: string | null; - location: string | null; - presenter: string | null; - /** Format: date-time */ - start_time: string | null; - title: string | null; - }; - User: { - /** Format: date-time */ - checked_in_at: string | null; - /** Format: date-time */ - created_at: string; - email: string | null; - email_consent: boolean; - email_verified: boolean; - id: string; - image: string | null; - name: string; - onboarded: boolean; - preferred_email: string | null; - rfid: string | null; - role: string; - /** Format: date-time */ - role_assigned_at: string | null; - /** Format: date-time */ - updated_at: string; - has_seen_new_application_status: boolean | null; - }; - UserContext: { - /** Format: date-time */ - checkedInAt: string | null; - /** @example user@example.com */ - email: string | null; - /** @example false */ - emailConsent: boolean; - /** @example https://cdn.example.com/avatar.png */ - image: string | null; - /** @example Jane Doe */ - name: string; - /** @example true */ - onboarded: boolean; - /** @example user.alt@example.com */ - preferredEmail: string | null; - rfid: string | null; - /** @enum {string} */ - role: "admin" | "staff" | "attendee" | "applicant" | "visitor"; - /** - * Format: uuid - * @example 550e8400-e29b-41d4-a716-446655440000 - */ - userId: string; - hasSeenNewApplicationStatus: boolean | null; - }; - Workshop: { - /** Format: date-time */ - created_at: string; - description: string | null; - /** Format: date-time */ - end_time: string; - id: string; - location: string | null; - /** Format: int32 */ - num_attendees: number; - presenter: string | null; - /** Format: date-time */ - start_time: string; - title: string; - /** Format: date-time */ - updated_at: string; - }; - }; - responses: never; - parameters: never; - requestBodies: never; - headers: never; - pathItems: never; -} -export type $defs = Record; -export interface operations { - "get-application": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["HackerApplication"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "accept-application-acceptance": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-assigned-applications": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": - | components["schemas"]["AssignedApplication"][] - | null; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "calculate-admissions-request": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "join-waitlist": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "release-decisions": { - parameters: { - query?: never; - header?: never; - path: { - runId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-download-resume-url": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": string; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "replace-resume": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: { - content: { - "multipart/form-data": { - /** Format: binary */ - resume: string; - }; - }; - }; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "assign-application-reviewers": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": - | components["schemas"]["ReviewerAssignment"][] - | null; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "reset-application-reviews": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "submit-application-review": { - parameters: { - query?: never; - header?: never; - path: { - applicantId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["ReviewRatings"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-resume": { - parameters: { - query?: never; - header?: never; - path: { - applicantId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": string; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "save-application": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: { - content: { - "application/json": unknown; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-application-statistics": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["ApplicationStatistics"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "submit-application": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["SubmissionResult"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "transition-waitlist": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "withdraw-acceptance": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "withdraw-attendance": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "oauth-callback": { - parameters: { - query: { - /** @description OAuth authorization code */ - code: string; - /** @description Base64 encoded OAuth state */ - state: string; - }; - header?: { - /** @description Client user agent */ - "User-Agent"?: string; - }; - path?: never; - cookie: { - /** @description Auth nonce cookie for CSRF protection */ - sh_auth_nonce: string; - }; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - Location?: string; - "Set-Cookie"?: string; - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Implemented */ - 501: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - logout: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - "Set-Cookie"?: string; - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "queue-confirmation-email": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["QueueConfirmationEmailRequest"]; - }; - }; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "queue-text-email": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["QueueTextEmailRequest"]; - }; - }; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "queue-welcome-email": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["QueueWelcomeEmailRequest"]; - }; - }; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "send-welcome-emails": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-hackathon": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["PublicHackathon"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "update-hackathon": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateHackathonRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-hackathon-attendees-count": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": number; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-hackathon-attendees-with-discord": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": - | components["schemas"]["GetAttendeesWithDiscordRow"][] - | null; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-hackathon-attendees-userids": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": string[] | null; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "upload-banner": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: { - content: { - "multipart/form-data": { - /** Format: binary */ - image: string; - }; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": string | null; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "delete-banner": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "check-in": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["CheckInRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-hackathon-for-staff": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Hackathon"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "submit-interest-email": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody: { - content: { - "application/json": components["schemas"]["SubmitInterestEmailRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-hackathon-staff": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"][] | null; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - ping: { - parameters: { - query?: never; - header?: never; - path?: never; - cookie?: never; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": string; - }; - }; - /** @description Error */ - default: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-redeemables": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": - | components["schemas"]["GetRedeemablesRow"][] - | null; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "create-redeemable": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateRedeemableRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Redeemable"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "delete-redeemable": { - parameters: { - query?: never; - header?: never; - path: { - redeemableId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "update-redeemable": { - parameters: { - query?: never; - header?: never; - path: { - redeemableId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateRedeemableRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "redeem-redeemable": { - parameters: { - query?: never; - header?: never; - path: { - redeemableId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "update-redemption": { - parameters: { - query?: never; - header?: never; - path: { - redeemableId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateRedemptionRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "create-team": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateTeamRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Team"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Conflict */ - 409: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-my-team": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TeamWithMembers"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-my-pending-join-requests": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TeamJoinRequest"][] | null; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "accept-team-join-request": { - parameters: { - query?: never; - header?: never; - path: { - requestId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "reject-team-join-request": { - parameters: { - query?: never; - header?: never; - path: { - requestId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-team": { - parameters: { - query?: never; - header?: never; - path: { - teamId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TeamWithMembers"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "create-join-team-request": { - parameters: { - query?: never; - header?: never; - path: { - teamId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateJoinRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["TeamJoinRequest"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Conflict */ - 409: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "kick-member-from-team": { - parameters: { - query?: never; - header?: never; - path: { - memberId: string; - teamId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "leave-team": { - parameters: { - query?: never; - header?: never; - path: { - teamId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-pending-join-team-requests": { - parameters: { - query?: never; - header?: never; - path: { - teamId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": - | components["schemas"]["ListJoinRequestsByTeamAndStatusWithUserRow"][] - | null; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Forbidden */ - 403: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-users": { - parameters: { - query?: { - search?: string; - limit?: number; - offset?: number; - }; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"][] | null; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-user-by-email": { - parameters: { - query?: never; - header?: never; - path: { - email: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-me": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["UserContext"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "update-user": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateUserRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "update-email-consent": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateEmailConsentRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "onboard-user": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["OnboardingRequest"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-user-by-rfid": { - parameters: { - query?: never; - header?: never; - path: { - rfid: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "assign-role": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["AssignRoleRequest"]; - }; - }; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "batch-assign-roles": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["AssignRoleBatchRequest"]; - }; - }; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "revoke-role": { - parameters: { - query?: never; - header?: never; - path: { - userID: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-user-by-id": { - parameters: { - query?: never; - header?: never; - path: { - userID: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["User"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-all-workshops": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Workshop"][] | null; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "create-workshop": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["CreateWorkshopInput"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["OpenWorkshop"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "delete-all-workshops": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "view-all-workshops": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["Workshop"][] | null; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "get-workshop": { - parameters: { - query?: never; - header?: never; - path: { - workshopId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["OpenWorkshop"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "delete-workshop": { - parameters: { - query?: never; - header?: never; - path: { - workshopId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "update-workshop": { - parameters: { - query?: never; - header?: never; - path: { - workshopId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody: { - content: { - "application/json": components["schemas"]["UpdateWorkshopInput"]; - }; - }; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["OpenWorkshop"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "register-for-workshop": { - parameters: { - query?: never; - header?: never; - path: { - workshopId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["OpenWorkshop"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "unregister-for-workshop": { - parameters: { - query?: never; - header?: never; - path: { - workshopId: string; - }; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description OK */ - 200: { - headers: { - [name: string]: unknown; - }; - content: { - "application/json": components["schemas"]["OpenWorkshop"]; - }; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Not Found */ - 404: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unprocessable Entity */ - 422: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; - "update-has-seen-new-application-status": { - parameters: { - query?: never; - header?: never; - path?: never; - cookie: { - /** @description Session cookie used to authenticate the user */ - sh_session_id: string; - }; - }; - requestBody?: never; - responses: { - /** @description No Content */ - 204: { - headers: { - [name: string]: unknown; - }; - content?: never; - }; - /** @description Bad Request */ - 400: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Unauthorized */ - 401: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - /** @description Internal Server Error */ - 500: { - headers: { - [name: string]: unknown; - }; - content: { - "application/problem+json": components["schemas"]["ErrorModel"]; - }; - }; - }; - }; -} diff --git a/apps/web/src/lib/openapi/types.ts b/apps/web/src/lib/openapi/types.ts deleted file mode 100644 index db38df5a..00000000 --- a/apps/web/src/lib/openapi/types.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { components } from "./schema"; - -export type UserContext = components["schemas"]["UserContext"]; -export type Application = components["schemas"]["HackerApplication"]; -export type Hackathon = components["schemas"]["PublicHackathon"]; diff --git a/apps/web/src/lib/openapi/zodSchemas.ts b/apps/web/src/lib/openapi/zodSchemas.ts deleted file mode 100644 index b7505804..00000000 --- a/apps/web/src/lib/openapi/zodSchemas.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Zod schemas for OpenAPI specification components. - * This file needs to be manually kept in sync with the OpenAPI schema definitions. - */ - -import { z } from "zod"; - -export const PlatformRoleSchema = z.enum(["user", "superuser"]); -export const EventRoleSchema = z.enum([ - "attendee", - "admin", - "staff", - "applicant", -]); diff --git a/apps/web/src/modules/Application/ApplicationForm.tsx b/apps/web/src/modules/Application/ApplicationForm.tsx index 6720429d..05b744cf 100644 --- a/apps/web/src/modules/Application/ApplicationForm.tsx +++ b/apps/web/src/modules/Application/ApplicationForm.tsx @@ -19,8 +19,9 @@ import Bell from "./assets/bell.svg?react"; // TODO: dynamically fetch application json data from somewhere (backend, cdn?) instead of hardcoding it in the frontend import data from "./application.json"; -import type { Application, Hackathon } from "@/lib/openapi/types"; import { HTTPError } from "ky"; +import type { Hackathon } from "@/modules/Hackathon/hooks/useHackathon"; +import type { Application } from "@/modules/Application/hooks/useApplication"; const SAVE_DELAY_MS = 3000; // delay in time before saving form progress diff --git a/apps/web/src/modules/Application/ApplicationReview/ApplicationReviewPage.tsx b/apps/web/src/modules/Application/ApplicationReview/ApplicationReviewPage.tsx new file mode 100644 index 00000000..4b47ac82 --- /dev/null +++ b/apps/web/src/modules/Application/ApplicationReview/ApplicationReviewPage.tsx @@ -0,0 +1,296 @@ +import { Button } from "@/components/ui/Button"; +import { Modal } from "@/components/ui/Modal"; +import { Table } from "@/components/ui/Table"; +import type { UserContext } from "@/lib/auth/types"; +import ReviewerAssignmentModal from "@/modules/Application/ApplicationReview/ReviewersAssignmentModal"; +import ReviewNotStartedAdmin from "@/modules/Application/ApplicationReview/ReviewNotStartedAdmin"; +import { useApplicationReviewAdminActions } from "@/modules/Application/hooks/useApplicationReviewAdminActions"; +import { Link } from "@tanstack/react-router"; +import { useMemo, useState } from "react"; +import { DialogTrigger } from "react-aria-components"; +import TablerBrowserShare from "~icons/tabler/browser-share"; +import TablerUserEdit from "~icons/tabler/user-edit"; +import { + getCoreRowModel, + useReactTable, + type ColumnDef, +} from "@tanstack/react-table"; +import { useReviewersProgress } from "@/modules/Application/hooks/useReviewersProgress"; +import { Input } from "@/components/ui/Field"; +import { Select } from "@/components/ui/Select"; +import TablerSearch from "~icons/tabler/search"; +import type { components } from "@/lib/openapi/schema"; +import { useDebounce } from "@uidotdev/usehooks"; +import AutoDecisionRequestList from "@/modules/Application/ApplicationReview/AutoDecisionRequestList"; + +interface ApplicationReviewPageProps { + hackathon: components["schemas"]["Hackathon"]; + user: UserContext; +} + +export default function ApplicationReviewPage({ + hackathon, + user, +}: ApplicationReviewPageProps) { + const { updateStatus } = useApplicationReviewAdminActions(); + + const handleStartApplicationReview = async () => { + await updateStatus.mutateAsync(true); + }; + + const handleEndApplicationReview = async () => { + if (window.confirm("Are you sure you want to end application review?")) { + await updateStatus.mutateAsync(false); + } + }; + + if (!hackathon.application_review_started) { + if (user.role === "admin") { + return ( + + ); + } else { + return ( +

+ Application review has not started. +

+ ); + } + } + + return ( +
+
+ + + + {user.role === "admin" && ( + + )} +
+ + {user.role === "admin" && ( +
+ + +
+ )} +
+ ); +} + +function AutoDecisionRequestsTable() { + const [searchInput, setSearchInput] = useState(""); + const debouncedSearchInput = useDebounce(searchInput, 500); + + const [approvalFilter, setApprovalFilter] = useState("all"); + const [decisionFilter, setDecisionFilter] = useState("all"); + + return ( +
+
+

Auto Decision Requests

+
+ +
+
+
+ setSearchInput(e.target.value)} + /> +
+
+ Decision Filter: + { + if (key) setApprovalFilter(key.toString()); + }} + children={null} + /> +
+
+
+ + +
+ ); +} + +function Reviewers() { + const { data, isLoading, isError } = useReviewersProgress(); + + const reviewers = data ?? []; + const columns: ColumnDef<(typeof reviewers)[number]>[] = useMemo( + () => [ + { + header: "Reviewer", + size: 190, + cell: ({ row }) => { + const avatarUrl = row.original.image; + return ( +
+ {avatarUrl ? ( + {"user + ) : ( +
+ + N/A + +
+ )} + + {row.original.name} + +
+ ); + }, + }, + { + header: "Assigned", + size: 80, + cell: ({ row }) => row.original.totalAssigned, + }, + { + header: "Completed", + size: 60, + cell: ({ row }) => row.original.completedCount, + }, + ], + [], + ); + + const table = useReactTable({ + columns, + data: reviewers, + getCoreRowModel: getCoreRowModel(), + }); + + if (isLoading) { + return

Loading reviewers progress...

; + } + + if (isError) { + return

Unable to load reviewers progress data.

; + } + + const totalApps = reviewers.reduce((prev, curr) => { + return curr.totalAssigned + prev; + }, 0); + + const completed = reviewers.reduce((prev, curr) => { + return curr.completedCount + prev; + }, 0); + + return ( +
+
+

Reviewers

+ + {reviewers.length} reviewer{reviewers.length === 1 ? "" : "s"} + +
+ + {reviewers.length === 0 ? ( +

+ No reviewers were assigned. +

+ ) : ( + + )} + +
+
+

Applications under review: {totalApps}

+

Reviews completed: {completed}

+
+ 0} + /> +
+ + ); +} + +function AssignReviewers({ + alreadyAssigned, + text = "Assign Reviewers", +}: { + text?: string; + alreadyAssigned: boolean; +}) { + const [open, setOpen] = useState(false); + + return ( + + + {open && ( + + setOpen(false)} + /> + + )} + + ); +} diff --git a/apps/web/src/modules/Application/ApplicationReview/AutoDecisionRequestList.tsx b/apps/web/src/modules/Application/ApplicationReview/AutoDecisionRequestList.tsx new file mode 100644 index 00000000..9aeb9e3d --- /dev/null +++ b/apps/web/src/modules/Application/ApplicationReview/AutoDecisionRequestList.tsx @@ -0,0 +1,259 @@ +import { Button } from "@/components/ui/Button"; +import { Popover } from "@/components/ui/Popover"; +import { Sheet } from "@/components/ui/Sheet"; +import { Table } from "@/components/ui/Table"; +import ApplicationViewer from "@/modules/Application/ApplicationViewer"; +import { useUpdateAutoDecisionRequest } from "@/modules/Application/hooks/useAutoDecisionRequests"; +import useParsedForm from "@/modules/Application/hooks/useParsedForm"; +import { + useSearchAutoDecisionRequests, + type SearchAutoDecisionRequestsResponse, +} from "@/modules/Application/hooks/useSearchAutoDecisionRequests"; +import { + type ColumnDef, + useReactTable, + getCoreRowModel, + getFilteredRowModel, +} from "@tanstack/react-table"; +import { useState, useMemo } from "react"; +import { DialogTrigger } from "react-aria-components"; + +interface AutoDecisionRequestListProps { + searchInput: string; + approvalFilter: string; + decisionFilter: string; +} + +export default function AutoDecisionRequestList({ + searchInput, + approvalFilter, + decisionFilter, +}: AutoDecisionRequestListProps) { + const [pagination, setPagination] = useState({ + pageIndex: 0, + pageSize: 10, + }); + + const searchAutoDecisionRequestsData = useSearchAutoDecisionRequests( + pagination.pageSize, + pagination.pageIndex, + searchInput, + approvalFilter, + decisionFilter, + ); + + const updateRequest = useUpdateAutoDecisionRequest(); + const parsedForm = useParsedForm(); + + const requestRows = + searchAutoDecisionRequestsData.data?.autoDecisionRequests ?? []; + + type AutoDecisionRequest = + SearchAutoDecisionRequestsResponse["autoDecisionRequests"][number]; + + const columns: ColumnDef[] = useMemo( + () => [ + { + id: "applicant", + header: "Applicant", + accessorKey: "user.name", + size: 200, + cell: ({ row }) => { + const avatarUrl = row.original.user.image; + return ( +
+ {avatarUrl ? ( + {"user + ) : ( +
+ + N/A + +
+ )} + + {row.original.user.name} + +
+ ); + }, + }, + { + id: "reviewer", + header: "Reviewer", + accessorKey: "reviewer.name", + size: 200, + cell: ({ row }) => { + const avatarUrl = row.original.reviewer.image; + return ( +
+ {avatarUrl ? ( + {"user + ) : ( +
+ + N/A + +
+ )} + + {row.original.reviewer.name} + +
+ ); + }, + }, + { + header: "Application", + size: 90, + cell: ({ row }) => ( + + + + + + + ), + }, + { + header: "Decision", + accessorKey: "requestedDecision", + enableGlobalFilter: false, + size: 130, + cell: ({ row }) => + row.original.requestedDecision === "auto_accept" + ? "Auto Accept" + : "Auto Reject", + }, + { + header: "Justification", + enableGlobalFilter: false, + size: 110, + cell: ({ row }) => ( + + + +
+

+ {row.original.justification} +

+
+
+
+ ), + }, + { + header: "Created At", + size: 200, + cell: ({ row }) => new Date(row.original.createdAt).toLocaleString(), + }, + { + header: "Actions", + id: "actions", + size: 150, + accessorFn: (row) => + row.decidedBy ? (row.approved ? "approved" : "denied") : "pending", + enableGlobalFilter: false, + cell: ({ row }) => { + const isResolved = row.original.decidedBy !== null; + + return isResolved ? ( + + {row.original.approved ? "Approved" : "Denied"} + + ) : ( +
+ + +
+ ); + }, + }, + { + header: "Decided By", + accessorKey: "decidedBy", + enableGlobalFilter: false, + size: 180, + cell: ({ row }) => ( + + {row.original.decidedBy?.name} + + ), + }, + ], + [parsedForm], + ); + + const table = useReactTable({ + globalFilterFn: "includesString", + columns, + data: requestRows, + rowCount: searchAutoDecisionRequestsData.data?.count, + state: { pagination, globalFilter: searchInput }, + getCoreRowModel: getCoreRowModel(), + onPaginationChange: setPagination, + getFilteredRowModel: getFilteredRowModel(), + manualPagination: true, + manualFiltering: true, + }); + + if (searchAutoDecisionRequestsData.isLoading) { + return

Loading requests....

; + } + + if (!searchAutoDecisionRequestsData.data) { + return

Unable to load requests.

; + } + + return requestRows.length === 0 ? ( +
+

No requests found.

+
+ ) : ( +
+ ); +} diff --git a/apps/web/src/modules/ApplicationReview/ResetReviewModal.tsx b/apps/web/src/modules/Application/ApplicationReview/ResetReviewModal.tsx similarity index 100% rename from apps/web/src/modules/ApplicationReview/ResetReviewModal.tsx rename to apps/web/src/modules/Application/ApplicationReview/ResetReviewModal.tsx diff --git a/apps/web/src/modules/Application/ApplicationReview/ReviewNotStartedAdmin.tsx b/apps/web/src/modules/Application/ApplicationReview/ReviewNotStartedAdmin.tsx new file mode 100644 index 00000000..046ac4e0 --- /dev/null +++ b/apps/web/src/modules/Application/ApplicationReview/ReviewNotStartedAdmin.tsx @@ -0,0 +1,50 @@ +import { useApplicationStatistics } from "@/modules/Application/hooks/useApplicationStatistics"; +import { Button } from "@/components/ui/Button"; +import type { StaffHackathon } from "@/modules/Hackathon/hooks/useHackathon"; + +interface ReviewNotStartedProps { + hackathon: StaffHackathon; + startApplicationReview: () => void; +} + +export default function ReviewNotStartedAdmin({ + hackathon, + startApplicationReview, +}: ReviewNotStartedProps) { + const stats = useApplicationStatistics(); + + if (stats.isLoading || !stats.data) { + return
Loading...
; + } + + const now = new Date(); + const applicationPeriodClosed = now >= new Date(hackathon.application_close); + const validNumOfApplicants = stats.data.statusStats.submitted > 0; + + return ( +
+

Application review has not started.

+ + + + {!applicationPeriodClosed ? ( +

+ The application period is still ongoing. +

+ ) : ( + !validNumOfApplicants && ( +

+ There are no submitted applications to review yet. +

+ ) + )} +
+ ); +} diff --git a/apps/web/src/modules/Application/ApplicationReview/ReviewersAssignmentModal.tsx b/apps/web/src/modules/Application/ApplicationReview/ReviewersAssignmentModal.tsx new file mode 100644 index 00000000..1881ca70 --- /dev/null +++ b/apps/web/src/modules/Application/ApplicationReview/ReviewersAssignmentModal.tsx @@ -0,0 +1,199 @@ +import { useState } from "react"; +import { Button } from "@/components/ui/Button"; +import { + useApplicationReviewAdminActions, + type AssignedReviewer, +} from "../hooks/useApplicationReviewAdminActions"; +import { toast } from "react-toastify"; +import { useApplicationStatistics } from "@/modules/Application/hooks/useApplicationStatistics"; +import { + useHackathonStaff, + type HackathonStaff, +} from "@/modules/Hackathon/hooks/useHackathonStaff"; +import { Checkbox, CheckboxGroup } from "@/components/ui/Checkbox"; +import { NumberField, Input } from "react-aria-components"; +import { Tooltip } from "@/components/ui/Tooltip"; +import TablerHelpCircle from "~icons/tabler/help-circle"; +import type { Dispatch, SetStateAction } from "react"; + +interface Props { + onClose: () => void; + alreadyAssigned: boolean; +} + +export default function ReviewerAssignmentModal({ + onClose, + alreadyAssigned, +}: Props) { + const [assigned, setAssigned] = useState([]); + const { assign } = useApplicationReviewAdminActions(); + const staff = useHackathonStaff(); + const stats = useApplicationStatistics(); + + if (staff.isLoading || !staff.data) { + return

Loading staff...

; + } + + if (stats.isLoading || !stats.data) { + return
Loading application stats...
; + } + + const numAssigned = assigned.reduce( + (acc, curr) => acc + (curr.amount ?? 0), + 0, + ); + + const remaining = stats.data.statusStats.under_review - numAssigned; + + const handleSubmit = async () => { + const hasNull = assigned.some((r) => r.amount === null); + const hasZero = assigned.some((r) => r.amount === 0); + const hasNegative = assigned.some((r) => (r.amount ?? 0) < 0); + + if (hasNegative) + return alert( + "Assigned applications cannot be negative for any reviewer.", + ); + if (hasZero) + return alert( + "Assigned applications cannot be zero for any reviewer. Either leave blank or assign a positive number.", + ); + if (remaining < 0) return alert("Assigned applications exceed total."); + if (remaining > 0 && !hasNull) + return alert( + "Leave at least one reviewer blank to distribute remaining.", + ); + if (assigned.length === 0) return alert("Select reviewers."); + + let confirmed; + if (alreadyAssigned) { + confirmed = window.confirm( + "Re-assigning will delete all application reviews and auto decision requests. Are you sure you want to proceed?", + ); + } + + if (confirmed || !alreadyAssigned) { + await assign.mutateAsync(assigned, { + onSuccess: () => { + toast.success("Reviewers assigned successfully."); + onClose(); + }, + onError: () => { + toast.error("Failed to assign reviewers. Please try again."); + }, + }); + } + }; + + return ( +
+

Select Reviewers

+
+ +
+
+
+

Assigned Applications: {numAssigned}

+

Total Applications: {stats.data.statusStats.under_review}

+

Remaining: {stats.data.statusStats.under_review - numAssigned}

+
+
+ + +
+
+
+ ); +} + +interface ReviewerListProps { + staff: HackathonStaff; + assigned: AssignedReviewer[]; + setAssigned: Dispatch>; +} + +function ReviewerList({ staff, assigned, setAssigned }: ReviewerListProps) { + const handleSelectionChange = (selected: string[]) => { + const updated = selected.map((userId) => { + const existing = assigned.find((r) => r.userId === userId); + return existing ?? { userId, amount: null }; + }); + + setAssigned(updated); + }; + + return ( + <> +
+

Reviewer

+ +
+ + + +

# of Apps

+
+
+ + + {staff.map((s) => { + const isSelected = assigned.some((a) => a.userId === s.id); + + return ( +
+ +
+ {s.name || "Anonymous"} + + {s.email} + +
+
+ + + { + const value = e.target.value; + setAssigned((prev) => + prev.map((r) => + r.userId === s.id + ? { + ...r, + amount: value === "" ? null : Number(value), + } + : r, + ), + ); + }} + className="border-border border-1 disabled:border-0 w-12 h-6 text-sm px-1 disabled:bg-input-bg-disbaled dark:disabled:bg-neutral-800 disabled:cursor-not-allowed" + /> + +
+ ); + })} +
+ + ); +} diff --git a/apps/web/src/modules/Application/ApplicationReview/Workspace.tsx b/apps/web/src/modules/Application/ApplicationReview/Workspace.tsx new file mode 100644 index 00000000..2889684d --- /dev/null +++ b/apps/web/src/modules/Application/ApplicationReview/Workspace.tsx @@ -0,0 +1,703 @@ +import type { UserContext } from "@/lib/auth/types"; +import { Link } from "@tanstack/react-router"; +import { useRatings } from "@/modules/Application/hooks/useRatings"; +import { + useReviewAssignments, + type ReviewAssignments, +} from "@/modules/Application/hooks/useReviewAssignments"; +import { useAppReviewProgress } from "@/modules/Application/hooks/useAppReviewProgress"; +import { + useApplicationReview, + type ParsedApplicationReview, +} from "@/modules/Application/hooks/useApplicationReview"; +import { useApplicationReviewActions } from "@/modules/Application/hooks/useApplicationReviewActions"; +import { toast } from "react-toastify"; +import { ProgressBar } from "@/components/ui/ProgressBar"; +import TablerX from "~icons/tabler/x"; +import { useState } from "react"; +import { DialogTrigger, TextArea } from "react-aria-components"; +import { Modal } from "@/components/ui/Modal"; +import { Input } from "@/components/ui/Field"; +import TablerCheck from "~icons/tabler/check"; +import TablerArrowLeft from "~icons/tabler/arrow-left"; +import TablerArrowRight from "~icons/tabler/arrow-right"; +import TablerRefresh from "~icons/tabler/refresh"; +import { Button } from "@/components/ui/Button"; +import type { ApplicationFields } from "@/modules/Application/hooks/useApplication"; + +interface ApplicationReviewWorkspaceProps { + user: UserContext; +} + +export default function ApplicationReviewWorkspace({ + user, +}: ApplicationReviewWorkspaceProps) { + const assignments = useReviewAssignments(); + const appReviewProgress = useAppReviewProgress(assignments.data || []); + + if (assignments.isLoading) { + return ( +
+

Loading assigned applications...

+
+ ); + } + + if (!assignments.data || assignments.data.length === 0) { + return ( +
+

+ You have no assigned applications to review at this time. +
+ Refresh the page or ask the organizers if you believe this is an + error. +

+
+ ); + } + + if (appReviewProgress.finished) { + return ( +
+
+
+ Review Completed +
+ +

Reviews Completed

+ +

+ You have completed reviewing all assigned applications. Thank you + for your time and effort! You can go back to change your reviews if + needed. +

+ +
+ +
+
+
+ ); + } + + return ( +
+
+
+ + + +

SwampHacks Application Review

+
+ +
+ +
+
+ + {appReviewProgress.currentAssignment ? ( + + ) : ( +
Loading application...
+ )} +
+ ); +} + +interface ApplicationViewerProps { + user: UserContext; + assignment: ReviewAssignments[number]; + currentIndex: number; + totalApplications: number; + next: () => void; + back: () => void; +} + +function ApplicationViewer({ + user, + assignment, + totalApplications, + currentIndex, + next, + back, +}: ApplicationViewerProps) { + const applicationReview = useApplicationReview(assignment.reviewId); + + if (!applicationReview.data || applicationReview.isLoading) { + return

Loading...

; + } + + const appFields = applicationReview.data.application; + const resume = applicationReview.data.resumeUrl; + + return ( +
+
+ + +
+ +
+
+ {resume === "" ? ( +

No resume provided.

+ ) : ( + +

+ Your browser does not support PDFs.{" "} + Download the PDF. +

+
+ )} +
+ + +
+
+ ); +} + +interface ApplicantInfoProps { + appFields: ApplicationFields; +} + +function ApplicantInfo({ appFields }: ApplicantInfoProps) { + const getHackathonExperienceText = (experience: string) => { + switch (experience) { + case "first_time": + return "Swamphacks would be my first!"; + case "one": + return "1"; + case "two": + return "2"; + case "three": + return "3"; + case "four_or_more": + return "4+"; + default: + return ""; + } + }; + + const getProjectExperienceText = (experience: string) => { + switch (experience) { + case "no_experience": + return "Swamphacks would be my first!"; + case "course_experience": + return "From courses"; + case "independent_project": + return "Yes"; + default: + return ""; + } + }; + + return ( +
+

Applicant Information

+
+
+
+
Name
+
+ {appFields.firstName + " " + appFields.lastName} +
+
+ +
+
Major(s)
+
{appFields.majors}
+
+ +
+
School
+
{appFields.school}
+
+ +
+
Graduation Year
+
{appFields.graduationYear}
+
+
+ +
+
+
# of Hackathons Attended
+
+ {getHackathonExperienceText(appFields.experience)} +
+
+
+
Project Experience
+
+ {getProjectExperienceText(appFields.projectExperience)} +
+
+
+
+
+ ); +} + +interface EssaysProps { + appFields: ApplicationFields; +} + +function Essays({ appFields }: EssaysProps) { + return ( +
+
+

Essay Responses

+
+
+
+ What is your most memorable experience working in a group? What + did you learn and accomplish? +
+
+ {appFields.essay1} +
+
+ +
+
+ Tell us about a project you are most proud of. +
+
+ {appFields.essay2} +
+
+
+
+
+ ); +} + +interface ReviewerPanelProps { + user: UserContext; + assignment: ReviewAssignments[number]; + applicationReview: ParsedApplicationReview; + totalApplications: number; + currentIndex: number; + next: () => void; + back: () => void; +} + +function ReviewerPanel({ + user, + applicationReview, + assignment, + totalApplications, + currentIndex, + next, + back, +}: ReviewerPanelProps) { + const { review, requestAutoDecision, deleteAutoDecisionRequest } = + useApplicationReviewActions(assignment.applicationId, assignment.reviewId); + const { + experience, + passion, + isDirty, + setExperience, + setPassion, + reset: resetRatings, + } = useRatings( + applicationReview.experienceRating || 0, + applicationReview.passionRating || 0, + ); + const [notes, setNotes] = useState(applicationReview.notes || ""); + + const autoDecisionRequest = applicationReview.autoDecisionRequest; + const isCompleted = assignment.status === "completed"; + const isLast = currentIndex === totalApplications - 1; + const isFilled = experience > 0 && passion > 0; + const allowSubmit = isFilled && isDirty; + + const mode = (() => { + if (!isCompleted) return "submit"; // Not last, not submitted yet + if (isCompleted && isDirty) return "completed-dirty"; + return "completed-clean"; // Not last, already submitted and clean + })(); + + const handleSubmitReview = async () => { + if (!allowSubmit) return; + + await review.mutateAsync( + { + reviewId: assignment.reviewId, + experienceRating: experience, + passionRating: passion, + notes, + }, + { + onSuccess: () => { + resetRatings(); + next(); + }, + onError: () => { + toast.error("Failed to submit review. Please try again."); + resetRatings(); + }, + }, + ); + }; + + const handleRequestAutoAccept = async (justification: string) => { + await requestAutoDecision.mutateAsync({ + applicationId: assignment.applicationId, + accept: true, + justification, + }); + }; + + const handleRequestAutoReject = async (justification: string) => { + await requestAutoDecision.mutateAsync({ + applicationId: assignment.applicationId, + accept: false, + justification, + }); + }; + + const handleUndoAutoDecision = async () => { + if (!autoDecisionRequest) return; + + await deleteAutoDecisionRequest.mutateAsync({ + requestId: autoDecisionRequest.id, + }); + }; + + return ( +
+

+ Rubric and Controls +

+
+ +
+